UNPKG

2.18 MBJavaScriptView Raw
1(function webpackUniversalModuleDefinition(root, factory) {
2 if(typeof exports === 'object' && typeof module === 'object')
3 module.exports = factory();
4 else if(typeof define === 'function' && define.amd)
5 define("service.middle.bundle", [], factory);
6 else if(typeof exports === 'object')
7 exports["service.middle.bundle"] = factory();
8 else
9 root["service.middle.bundle"] = factory();
10})(typeof self !== 'undefined' ? self : this, function() {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars
13/******/ var chunk = require("./" + "" + chunkId + "." + hotCurrentHash + ".hot-update.js");
14/******/ hotAddUpdateChunk(chunk.id, chunk.modules);
15/******/ }
16/******/
17/******/ function hotDownloadManifest() { // eslint-disable-line no-unused-vars
18/******/ try {
19/******/ var update = require("./" + "" + hotCurrentHash + ".hot-update.json");
20/******/ } catch(e) {
21/******/ return Promise.resolve();
22/******/ }
23/******/ return Promise.resolve(update);
24/******/ }
25/******/
26/******/ function hotDisposeChunk(chunkId) { //eslint-disable-line no-unused-vars
27/******/ delete installedChunks[chunkId];
28/******/ }
29/******/
30/******/
31/******/
32/******/ var hotApplyOnUpdate = true;
33/******/ var hotCurrentHash = "fee681bc64d8d24999b3"; // eslint-disable-line no-unused-vars
34/******/ var hotRequestTimeout = 10000;
35/******/ var hotCurrentModuleData = {};
36/******/ var hotCurrentChildModule; // eslint-disable-line no-unused-vars
37/******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars
38/******/ var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars
39/******/
40/******/ function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars
41/******/ var me = installedModules[moduleId];
42/******/ if(!me) return __webpack_require__;
43/******/ var fn = function(request) {
44/******/ if(me.hot.active) {
45/******/ if(installedModules[request]) {
46/******/ if(installedModules[request].parents.indexOf(moduleId) < 0)
47/******/ installedModules[request].parents.push(moduleId);
48/******/ } else {
49/******/ hotCurrentParents = [moduleId];
50/******/ hotCurrentChildModule = request;
51/******/ }
52/******/ if(me.children.indexOf(request) < 0)
53/******/ me.children.push(request);
54/******/ } else {
55/******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId);
56/******/ hotCurrentParents = [];
57/******/ }
58/******/ return __webpack_require__(request);
59/******/ };
60/******/ var ObjectFactory = function ObjectFactory(name) {
61/******/ return {
62/******/ configurable: true,
63/******/ enumerable: true,
64/******/ get: function() {
65/******/ return __webpack_require__[name];
66/******/ },
67/******/ set: function(value) {
68/******/ __webpack_require__[name] = value;
69/******/ }
70/******/ };
71/******/ };
72/******/ for(var name in __webpack_require__) {
73/******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name) && name !== "e") {
74/******/ Object.defineProperty(fn, name, ObjectFactory(name));
75/******/ }
76/******/ }
77/******/ fn.e = function(chunkId) {
78/******/ if(hotStatus === "ready")
79/******/ hotSetStatus("prepare");
80/******/ hotChunksLoading++;
81/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
82/******/ finishChunkLoading();
83/******/ throw err;
84/******/ });
85/******/
86/******/ function finishChunkLoading() {
87/******/ hotChunksLoading--;
88/******/ if(hotStatus === "prepare") {
89/******/ if(!hotWaitingFilesMap[chunkId]) {
90/******/ hotEnsureUpdateChunk(chunkId);
91/******/ }
92/******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) {
93/******/ hotUpdateDownloaded();
94/******/ }
95/******/ }
96/******/ }
97/******/ };
98/******/ return fn;
99/******/ }
100/******/
101/******/ function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars
102/******/ var hot = {
103/******/ // private stuff
104/******/ _acceptedDependencies: {},
105/******/ _declinedDependencies: {},
106/******/ _selfAccepted: false,
107/******/ _selfDeclined: false,
108/******/ _disposeHandlers: [],
109/******/ _main: hotCurrentChildModule !== moduleId,
110/******/
111/******/ // Module API
112/******/ active: true,
113/******/ accept: function(dep, callback) {
114/******/ if(typeof dep === "undefined")
115/******/ hot._selfAccepted = true;
116/******/ else if(typeof dep === "function")
117/******/ hot._selfAccepted = dep;
118/******/ else if(typeof dep === "object")
119/******/ for(var i = 0; i < dep.length; i++)
120/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
121/******/ else
122/******/ hot._acceptedDependencies[dep] = callback || function() {};
123/******/ },
124/******/ decline: function(dep) {
125/******/ if(typeof dep === "undefined")
126/******/ hot._selfDeclined = true;
127/******/ else if(typeof dep === "object")
128/******/ for(var i = 0; i < dep.length; i++)
129/******/ hot._declinedDependencies[dep[i]] = true;
130/******/ else
131/******/ hot._declinedDependencies[dep] = true;
132/******/ },
133/******/ dispose: function(callback) {
134/******/ hot._disposeHandlers.push(callback);
135/******/ },
136/******/ addDisposeHandler: function(callback) {
137/******/ hot._disposeHandlers.push(callback);
138/******/ },
139/******/ removeDisposeHandler: function(callback) {
140/******/ var idx = hot._disposeHandlers.indexOf(callback);
141/******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1);
142/******/ },
143/******/
144/******/ // Management API
145/******/ check: hotCheck,
146/******/ apply: hotApply,
147/******/ status: function(l) {
148/******/ if(!l) return hotStatus;
149/******/ hotStatusHandlers.push(l);
150/******/ },
151/******/ addStatusHandler: function(l) {
152/******/ hotStatusHandlers.push(l);
153/******/ },
154/******/ removeStatusHandler: function(l) {
155/******/ var idx = hotStatusHandlers.indexOf(l);
156/******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1);
157/******/ },
158/******/
159/******/ //inherit from previous dispose call
160/******/ data: hotCurrentModuleData[moduleId]
161/******/ };
162/******/ hotCurrentChildModule = undefined;
163/******/ return hot;
164/******/ }
165/******/
166/******/ var hotStatusHandlers = [];
167/******/ var hotStatus = "idle";
168/******/
169/******/ function hotSetStatus(newStatus) {
170/******/ hotStatus = newStatus;
171/******/ for(var i = 0; i < hotStatusHandlers.length; i++)
172/******/ hotStatusHandlers[i].call(null, newStatus);
173/******/ }
174/******/
175/******/ // while downloading
176/******/ var hotWaitingFiles = 0;
177/******/ var hotChunksLoading = 0;
178/******/ var hotWaitingFilesMap = {};
179/******/ var hotRequestedFilesMap = {};
180/******/ var hotAvailableFilesMap = {};
181/******/ var hotDeferred;
182/******/
183/******/ // The update info
184/******/ var hotUpdate, hotUpdateNewHash;
185/******/
186/******/ function toModuleId(id) {
187/******/ var isNumber = (+id) + "" === id;
188/******/ return isNumber ? +id : id;
189/******/ }
190/******/
191/******/ function hotCheck(apply) {
192/******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status");
193/******/ hotApplyOnUpdate = apply;
194/******/ hotSetStatus("check");
195/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
196/******/ if(!update) {
197/******/ hotSetStatus("idle");
198/******/ return null;
199/******/ }
200/******/ hotRequestedFilesMap = {};
201/******/ hotWaitingFilesMap = {};
202/******/ hotAvailableFilesMap = update.c;
203/******/ hotUpdateNewHash = update.h;
204/******/
205/******/ hotSetStatus("prepare");
206/******/ var promise = new Promise(function(resolve, reject) {
207/******/ hotDeferred = {
208/******/ resolve: resolve,
209/******/ reject: reject
210/******/ };
211/******/ });
212/******/ hotUpdate = {};
213/******/ var chunkId = 0;
214/******/ { // eslint-disable-line no-lone-blocks
215/******/ /*globals chunkId */
216/******/ hotEnsureUpdateChunk(chunkId);
217/******/ }
218/******/ if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) {
219/******/ hotUpdateDownloaded();
220/******/ }
221/******/ return promise;
222/******/ });
223/******/ }
224/******/
225/******/ function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars
226/******/ if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
227/******/ return;
228/******/ hotRequestedFilesMap[chunkId] = false;
229/******/ for(var moduleId in moreModules) {
230/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
231/******/ hotUpdate[moduleId] = moreModules[moduleId];
232/******/ }
233/******/ }
234/******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) {
235/******/ hotUpdateDownloaded();
236/******/ }
237/******/ }
238/******/
239/******/ function hotEnsureUpdateChunk(chunkId) {
240/******/ if(!hotAvailableFilesMap[chunkId]) {
241/******/ hotWaitingFilesMap[chunkId] = true;
242/******/ } else {
243/******/ hotRequestedFilesMap[chunkId] = true;
244/******/ hotWaitingFiles++;
245/******/ hotDownloadUpdateChunk(chunkId);
246/******/ }
247/******/ }
248/******/
249/******/ function hotUpdateDownloaded() {
250/******/ hotSetStatus("ready");
251/******/ var deferred = hotDeferred;
252/******/ hotDeferred = null;
253/******/ if(!deferred) return;
254/******/ if(hotApplyOnUpdate) {
255/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
256/******/ // avoid triggering uncaught exception warning in Chrome.
257/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
258/******/ Promise.resolve().then(function() {
259/******/ return hotApply(hotApplyOnUpdate);
260/******/ }).then(
261/******/ function(result) {
262/******/ deferred.resolve(result);
263/******/ },
264/******/ function(err) {
265/******/ deferred.reject(err);
266/******/ }
267/******/ );
268/******/ } else {
269/******/ var outdatedModules = [];
270/******/ for(var id in hotUpdate) {
271/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
272/******/ outdatedModules.push(toModuleId(id));
273/******/ }
274/******/ }
275/******/ deferred.resolve(outdatedModules);
276/******/ }
277/******/ }
278/******/
279/******/ function hotApply(options) {
280/******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status");
281/******/ options = options || {};
282/******/
283/******/ var cb;
284/******/ var i;
285/******/ var j;
286/******/ var module;
287/******/ var moduleId;
288/******/
289/******/ function getAffectedStuff(updateModuleId) {
290/******/ var outdatedModules = [updateModuleId];
291/******/ var outdatedDependencies = {};
292/******/
293/******/ var queue = outdatedModules.slice().map(function(id) {
294/******/ return {
295/******/ chain: [id],
296/******/ id: id
297/******/ };
298/******/ });
299/******/ while(queue.length > 0) {
300/******/ var queueItem = queue.pop();
301/******/ var moduleId = queueItem.id;
302/******/ var chain = queueItem.chain;
303/******/ module = installedModules[moduleId];
304/******/ if(!module || module.hot._selfAccepted)
305/******/ continue;
306/******/ if(module.hot._selfDeclined) {
307/******/ return {
308/******/ type: "self-declined",
309/******/ chain: chain,
310/******/ moduleId: moduleId
311/******/ };
312/******/ }
313/******/ if(module.hot._main) {
314/******/ return {
315/******/ type: "unaccepted",
316/******/ chain: chain,
317/******/ moduleId: moduleId
318/******/ };
319/******/ }
320/******/ for(var i = 0; i < module.parents.length; i++) {
321/******/ var parentId = module.parents[i];
322/******/ var parent = installedModules[parentId];
323/******/ if(!parent) continue;
324/******/ if(parent.hot._declinedDependencies[moduleId]) {
325/******/ return {
326/******/ type: "declined",
327/******/ chain: chain.concat([parentId]),
328/******/ moduleId: moduleId,
329/******/ parentId: parentId
330/******/ };
331/******/ }
332/******/ if(outdatedModules.indexOf(parentId) >= 0) continue;
333/******/ if(parent.hot._acceptedDependencies[moduleId]) {
334/******/ if(!outdatedDependencies[parentId])
335/******/ outdatedDependencies[parentId] = [];
336/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
337/******/ continue;
338/******/ }
339/******/ delete outdatedDependencies[parentId];
340/******/ outdatedModules.push(parentId);
341/******/ queue.push({
342/******/ chain: chain.concat([parentId]),
343/******/ id: parentId
344/******/ });
345/******/ }
346/******/ }
347/******/
348/******/ return {
349/******/ type: "accepted",
350/******/ moduleId: updateModuleId,
351/******/ outdatedModules: outdatedModules,
352/******/ outdatedDependencies: outdatedDependencies
353/******/ };
354/******/ }
355/******/
356/******/ function addAllToSet(a, b) {
357/******/ for(var i = 0; i < b.length; i++) {
358/******/ var item = b[i];
359/******/ if(a.indexOf(item) < 0)
360/******/ a.push(item);
361/******/ }
362/******/ }
363/******/
364/******/ // at begin all updates modules are outdated
365/******/ // the "outdated" status can propagate to parents if they don't accept the children
366/******/ var outdatedDependencies = {};
367/******/ var outdatedModules = [];
368/******/ var appliedUpdate = {};
369/******/
370/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
371/******/ console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module");
372/******/ };
373/******/
374/******/ for(var id in hotUpdate) {
375/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
376/******/ moduleId = toModuleId(id);
377/******/ var result;
378/******/ if(hotUpdate[id]) {
379/******/ result = getAffectedStuff(moduleId);
380/******/ } else {
381/******/ result = {
382/******/ type: "disposed",
383/******/ moduleId: id
384/******/ };
385/******/ }
386/******/ var abortError = false;
387/******/ var doApply = false;
388/******/ var doDispose = false;
389/******/ var chainInfo = "";
390/******/ if(result.chain) {
391/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
392/******/ }
393/******/ switch(result.type) {
394/******/ case "self-declined":
395/******/ if(options.onDeclined)
396/******/ options.onDeclined(result);
397/******/ if(!options.ignoreDeclined)
398/******/ abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo);
399/******/ break;
400/******/ case "declined":
401/******/ if(options.onDeclined)
402/******/ options.onDeclined(result);
403/******/ if(!options.ignoreDeclined)
404/******/ abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo);
405/******/ break;
406/******/ case "unaccepted":
407/******/ if(options.onUnaccepted)
408/******/ options.onUnaccepted(result);
409/******/ if(!options.ignoreUnaccepted)
410/******/ abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo);
411/******/ break;
412/******/ case "accepted":
413/******/ if(options.onAccepted)
414/******/ options.onAccepted(result);
415/******/ doApply = true;
416/******/ break;
417/******/ case "disposed":
418/******/ if(options.onDisposed)
419/******/ options.onDisposed(result);
420/******/ doDispose = true;
421/******/ break;
422/******/ default:
423/******/ throw new Error("Unexception type " + result.type);
424/******/ }
425/******/ if(abortError) {
426/******/ hotSetStatus("abort");
427/******/ return Promise.reject(abortError);
428/******/ }
429/******/ if(doApply) {
430/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
431/******/ addAllToSet(outdatedModules, result.outdatedModules);
432/******/ for(moduleId in result.outdatedDependencies) {
433/******/ if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) {
434/******/ if(!outdatedDependencies[moduleId])
435/******/ outdatedDependencies[moduleId] = [];
436/******/ addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]);
437/******/ }
438/******/ }
439/******/ }
440/******/ if(doDispose) {
441/******/ addAllToSet(outdatedModules, [result.moduleId]);
442/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
443/******/ }
444/******/ }
445/******/ }
446/******/
447/******/ // Store self accepted outdated modules to require them later by the module system
448/******/ var outdatedSelfAcceptedModules = [];
449/******/ for(i = 0; i < outdatedModules.length; i++) {
450/******/ moduleId = outdatedModules[i];
451/******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)
452/******/ outdatedSelfAcceptedModules.push({
453/******/ module: moduleId,
454/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
455/******/ });
456/******/ }
457/******/
458/******/ // Now in "dispose" phase
459/******/ hotSetStatus("dispose");
460/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
461/******/ if(hotAvailableFilesMap[chunkId] === false) {
462/******/ hotDisposeChunk(chunkId);
463/******/ }
464/******/ });
465/******/
466/******/ var idx;
467/******/ var queue = outdatedModules.slice();
468/******/ while(queue.length > 0) {
469/******/ moduleId = queue.pop();
470/******/ module = installedModules[moduleId];
471/******/ if(!module) continue;
472/******/
473/******/ var data = {};
474/******/
475/******/ // Call dispose handlers
476/******/ var disposeHandlers = module.hot._disposeHandlers;
477/******/ for(j = 0; j < disposeHandlers.length; j++) {
478/******/ cb = disposeHandlers[j];
479/******/ cb(data);
480/******/ }
481/******/ hotCurrentModuleData[moduleId] = data;
482/******/
483/******/ // disable module (this disables requires from this module)
484/******/ module.hot.active = false;
485/******/
486/******/ // remove module from cache
487/******/ delete installedModules[moduleId];
488/******/
489/******/ // when disposing there is no need to call dispose handler
490/******/ delete outdatedDependencies[moduleId];
491/******/
492/******/ // remove "parents" references from all children
493/******/ for(j = 0; j < module.children.length; j++) {
494/******/ var child = installedModules[module.children[j]];
495/******/ if(!child) continue;
496/******/ idx = child.parents.indexOf(moduleId);
497/******/ if(idx >= 0) {
498/******/ child.parents.splice(idx, 1);
499/******/ }
500/******/ }
501/******/ }
502/******/
503/******/ // remove outdated dependency from module children
504/******/ var dependency;
505/******/ var moduleOutdatedDependencies;
506/******/ for(moduleId in outdatedDependencies) {
507/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
508/******/ module = installedModules[moduleId];
509/******/ if(module) {
510/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
511/******/ for(j = 0; j < moduleOutdatedDependencies.length; j++) {
512/******/ dependency = moduleOutdatedDependencies[j];
513/******/ idx = module.children.indexOf(dependency);
514/******/ if(idx >= 0) module.children.splice(idx, 1);
515/******/ }
516/******/ }
517/******/ }
518/******/ }
519/******/
520/******/ // Not in "apply" phase
521/******/ hotSetStatus("apply");
522/******/
523/******/ hotCurrentHash = hotUpdateNewHash;
524/******/
525/******/ // insert new code
526/******/ for(moduleId in appliedUpdate) {
527/******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
528/******/ modules[moduleId] = appliedUpdate[moduleId];
529/******/ }
530/******/ }
531/******/
532/******/ // call accept handlers
533/******/ var error = null;
534/******/ for(moduleId in outdatedDependencies) {
535/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
536/******/ module = installedModules[moduleId];
537/******/ if(module) {
538/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
539/******/ var callbacks = [];
540/******/ for(i = 0; i < moduleOutdatedDependencies.length; i++) {
541/******/ dependency = moduleOutdatedDependencies[i];
542/******/ cb = module.hot._acceptedDependencies[dependency];
543/******/ if(cb) {
544/******/ if(callbacks.indexOf(cb) >= 0) continue;
545/******/ callbacks.push(cb);
546/******/ }
547/******/ }
548/******/ for(i = 0; i < callbacks.length; i++) {
549/******/ cb = callbacks[i];
550/******/ try {
551/******/ cb(moduleOutdatedDependencies);
552/******/ } catch(err) {
553/******/ if(options.onErrored) {
554/******/ options.onErrored({
555/******/ type: "accept-errored",
556/******/ moduleId: moduleId,
557/******/ dependencyId: moduleOutdatedDependencies[i],
558/******/ error: err
559/******/ });
560/******/ }
561/******/ if(!options.ignoreErrored) {
562/******/ if(!error)
563/******/ error = err;
564/******/ }
565/******/ }
566/******/ }
567/******/ }
568/******/ }
569/******/ }
570/******/
571/******/ // Load self accepted modules
572/******/ for(i = 0; i < outdatedSelfAcceptedModules.length; i++) {
573/******/ var item = outdatedSelfAcceptedModules[i];
574/******/ moduleId = item.module;
575/******/ hotCurrentParents = [moduleId];
576/******/ try {
577/******/ __webpack_require__(moduleId);
578/******/ } catch(err) {
579/******/ if(typeof item.errorHandler === "function") {
580/******/ try {
581/******/ item.errorHandler(err);
582/******/ } catch(err2) {
583/******/ if(options.onErrored) {
584/******/ options.onErrored({
585/******/ type: "self-accept-error-handler-errored",
586/******/ moduleId: moduleId,
587/******/ error: err2,
588/******/ orginalError: err, // TODO remove in webpack 4
589/******/ originalError: err
590/******/ });
591/******/ }
592/******/ if(!options.ignoreErrored) {
593/******/ if(!error)
594/******/ error = err2;
595/******/ }
596/******/ if(!error)
597/******/ error = err;
598/******/ }
599/******/ } else {
600/******/ if(options.onErrored) {
601/******/ options.onErrored({
602/******/ type: "self-accept-errored",
603/******/ moduleId: moduleId,
604/******/ error: err
605/******/ });
606/******/ }
607/******/ if(!options.ignoreErrored) {
608/******/ if(!error)
609/******/ error = err;
610/******/ }
611/******/ }
612/******/ }
613/******/ }
614/******/
615/******/ // handle errors in accept handlers and self accepted module load
616/******/ if(error) {
617/******/ hotSetStatus("fail");
618/******/ return Promise.reject(error);
619/******/ }
620/******/
621/******/ hotSetStatus("idle");
622/******/ return new Promise(function(resolve) {
623/******/ resolve(outdatedModules);
624/******/ });
625/******/ }
626/******/
627/******/ // The module cache
628/******/ var installedModules = {};
629/******/
630/******/ // The require function
631/******/ function __webpack_require__(moduleId) {
632/******/
633/******/ // Check if module is in cache
634/******/ if(installedModules[moduleId]) {
635/******/ return installedModules[moduleId].exports;
636/******/ }
637/******/ // Create a new module (and put it into the cache)
638/******/ var module = installedModules[moduleId] = {
639/******/ i: moduleId,
640/******/ l: false,
641/******/ exports: {},
642/******/ hot: hotCreateModule(moduleId),
643/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
644/******/ children: []
645/******/ };
646/******/
647/******/ // Execute the module function
648/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
649/******/
650/******/ // Flag the module as loaded
651/******/ module.l = true;
652/******/
653/******/ // Return the exports of the module
654/******/ return module.exports;
655/******/ }
656/******/
657/******/
658/******/ // expose the modules object (__webpack_modules__)
659/******/ __webpack_require__.m = modules;
660/******/
661/******/ // expose the module cache
662/******/ __webpack_require__.c = installedModules;
663/******/
664/******/ // define getter function for harmony exports
665/******/ __webpack_require__.d = function(exports, name, getter) {
666/******/ if(!__webpack_require__.o(exports, name)) {
667/******/ Object.defineProperty(exports, name, {
668/******/ configurable: false,
669/******/ enumerable: true,
670/******/ get: getter
671/******/ });
672/******/ }
673/******/ };
674/******/
675/******/ // getDefaultExport function for compatibility with non-harmony modules
676/******/ __webpack_require__.n = function(module) {
677/******/ var getter = module && module.__esModule ?
678/******/ function getDefault() { return module['default']; } :
679/******/ function getModuleExports() { return module; };
680/******/ __webpack_require__.d(getter, 'a', getter);
681/******/ return getter;
682/******/ };
683/******/
684/******/ // Object.prototype.hasOwnProperty.call
685/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
686/******/
687/******/ // __webpack_public_path__
688/******/ __webpack_require__.p = "/Volumes/Dev/www/devfest2017/services/packages/middle\\dist";
689/******/
690/******/ // __webpack_hash__
691/******/ __webpack_require__.h = function() { return hotCurrentHash; };
692/******/
693/******/ // Load entry module and return exports
694/******/ return hotCreateRequire(358)(__webpack_require__.s = 358);
695/******/ })
696/************************************************************************/
697/******/ ([
698/* 0 */
699/***/ (function(module, exports, __webpack_require__) {
700
701var global = __webpack_require__(2);
702var core = __webpack_require__(33);
703var hide = __webpack_require__(18);
704var redefine = __webpack_require__(19);
705var ctx = __webpack_require__(25);
706var PROTOTYPE = 'prototype';
707
708var $export = function (type, name, source) {
709 var IS_FORCED = type & $export.F;
710 var IS_GLOBAL = type & $export.G;
711 var IS_STATIC = type & $export.S;
712 var IS_PROTO = type & $export.P;
713 var IS_BIND = type & $export.B;
714 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
715 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
716 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
717 var key, own, out, exp;
718 if (IS_GLOBAL) source = name;
719 for (key in source) {
720 // contains in native
721 own = !IS_FORCED && target && target[key] !== undefined;
722 // export native or passed
723 out = (own ? target : source)[key];
724 // bind timers to global for call from export context
725 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
726 // extend global
727 if (target) redefine(target, key, out, type & $export.U);
728 // export
729 if (exports[key] != out) hide(exports, key, exp);
730 if (IS_PROTO && expProto[key] != out) expProto[key] = out;
731 }
732};
733global.core = core;
734// type bitmap
735$export.F = 1; // forced
736$export.G = 2; // global
737$export.S = 4; // static
738$export.P = 8; // proto
739$export.B = 16; // bind
740$export.W = 32; // wrap
741$export.U = 64; // safe
742$export.R = 128; // real proto method for `library`
743module.exports = $export;
744
745
746/***/ }),
747/* 1 */
748/***/ (function(module, exports, __webpack_require__) {
749
750var isObject = __webpack_require__(5);
751module.exports = function (it) {
752 if (!isObject(it)) throw TypeError(it + ' is not an object!');
753 return it;
754};
755
756
757/***/ }),
758/* 2 */
759/***/ (function(module, exports) {
760
761// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
762var global = module.exports = typeof window != 'undefined' && window.Math == Math
763 ? window : typeof self != 'undefined' && self.Math == Math ? self
764 // eslint-disable-next-line no-new-func
765 : Function('return this')();
766if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
767
768
769/***/ }),
770/* 3 */
771/***/ (function(module, exports, __webpack_require__) {
772
773"use strict";
774
775
776Object.defineProperty(exports, "__esModule", {
777 value: true
778});
779
780var _GraphQLError = __webpack_require__(75);
781
782Object.defineProperty(exports, 'GraphQLError', {
783 enumerable: true,
784 get: function get() {
785 return _GraphQLError.GraphQLError;
786 }
787});
788
789var _syntaxError = __webpack_require__(563);
790
791Object.defineProperty(exports, 'syntaxError', {
792 enumerable: true,
793 get: function get() {
794 return _syntaxError.syntaxError;
795 }
796});
797
798var _locatedError = __webpack_require__(249);
799
800Object.defineProperty(exports, 'locatedError', {
801 enumerable: true,
802 get: function get() {
803 return _locatedError.locatedError;
804 }
805});
806
807var _formatError = __webpack_require__(564);
808
809Object.defineProperty(exports, 'formatError', {
810 enumerable: true,
811 get: function get() {
812 return _formatError.formatError;
813 }
814});
815
816/***/ }),
817/* 4 */
818/***/ (function(module, exports) {
819
820module.exports = function (exec) {
821 try {
822 return !!exec();
823 } catch (e) {
824 return true;
825 }
826};
827
828
829/***/ }),
830/* 5 */
831/***/ (function(module, exports) {
832
833module.exports = function (it) {
834 return typeof it === 'object' ? it !== null : typeof it === 'function';
835};
836
837
838/***/ }),
839/* 6 */
840/***/ (function(module, exports, __webpack_require__) {
841
842"use strict";
843
844
845Object.defineProperty(exports, "__esModule", {
846 value: true
847});
848exports.GraphQLNonNull = exports.GraphQLList = exports.GraphQLInputObjectType = exports.GraphQLEnumType = exports.GraphQLUnionType = exports.GraphQLInterfaceType = exports.GraphQLObjectType = exports.GraphQLScalarType = undefined;
849
850var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
851
852var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
853
854exports.isType = isType;
855exports.assertType = assertType;
856exports.isInputType = isInputType;
857exports.assertInputType = assertInputType;
858exports.isOutputType = isOutputType;
859exports.assertOutputType = assertOutputType;
860exports.isLeafType = isLeafType;
861exports.assertLeafType = assertLeafType;
862exports.isCompositeType = isCompositeType;
863exports.assertCompositeType = assertCompositeType;
864exports.isAbstractType = isAbstractType;
865exports.assertAbstractType = assertAbstractType;
866exports.getNullableType = getNullableType;
867exports.isNamedType = isNamedType;
868exports.assertNamedType = assertNamedType;
869exports.getNamedType = getNamedType;
870
871var _invariant = __webpack_require__(11);
872
873var _invariant2 = _interopRequireDefault(_invariant);
874
875var _isNullish = __webpack_require__(66);
876
877var _isNullish2 = _interopRequireDefault(_isNullish);
878
879var _kinds = __webpack_require__(12);
880
881var Kind = _interopRequireWildcard(_kinds);
882
883var _assertValidName = __webpack_require__(176);
884
885function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
886
887function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
888
889function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
890 * Copyright (c) 2015-present, Facebook, Inc.
891 *
892 * This source code is licensed under the MIT license found in the
893 * LICENSE file in the root directory of this source tree.
894 *
895 *
896 */
897
898// Predicates & Assertions
899
900/**
901 * These are all of the possible kinds of types.
902 */
903function isType(type) {
904 return type instanceof GraphQLScalarType || type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType || type instanceof GraphQLEnumType || type instanceof GraphQLInputObjectType || type instanceof GraphQLList || type instanceof GraphQLNonNull;
905}
906
907function assertType(type) {
908 !isType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL type.') : void 0;
909 return type;
910}
911
912/**
913 * These types may be used as input types for arguments and directives.
914 */
915function isInputType(type) {
916 return type instanceof GraphQLScalarType || type instanceof GraphQLEnumType || type instanceof GraphQLInputObjectType || type instanceof GraphQLNonNull && isInputType(type.ofType) || type instanceof GraphQLList && isInputType(type.ofType);
917}
918
919function assertInputType(type) {
920 !isInputType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL input type.') : void 0;
921 return type;
922}
923
924/**
925 * These types may be used as output types as the result of fields.
926 */
927function isOutputType(type) {
928 return type instanceof GraphQLScalarType || type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType || type instanceof GraphQLEnumType || type instanceof GraphQLNonNull && isOutputType(type.ofType) || type instanceof GraphQLList && isOutputType(type.ofType);
929}
930
931function assertOutputType(type) {
932 !isOutputType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL output type.') : void 0;
933 return type;
934}
935
936/**
937 * These types may describe types which may be leaf values.
938 */
939function isLeafType(type) {
940 return type instanceof GraphQLScalarType || type instanceof GraphQLEnumType;
941}
942
943function assertLeafType(type) {
944 !isLeafType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL leaf type.') : void 0;
945 return type;
946}
947
948/**
949 * These types may describe the parent context of a selection set.
950 */
951function isCompositeType(type) {
952 return type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType;
953}
954
955function assertCompositeType(type) {
956 !isCompositeType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL composite type.') : void 0;
957 return type;
958}
959
960/**
961 * These types may describe the parent context of a selection set.
962 */
963function isAbstractType(type) {
964 return type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType;
965}
966
967function assertAbstractType(type) {
968 !isAbstractType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL abstract type.') : void 0;
969 return type;
970}
971
972/**
973 * These types can all accept null as a value.
974 */
975function getNullableType(type) {
976 return type instanceof GraphQLNonNull ? type.ofType : type;
977}
978
979/**
980 * These named types do not include modifiers like List or NonNull.
981 */
982function isNamedType(type) {
983 return type instanceof GraphQLScalarType || type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType || type instanceof GraphQLEnumType || type instanceof GraphQLInputObjectType;
984}
985
986function assertNamedType(type) {
987 !isNamedType(type) ? (0, _invariant2.default)(0, 'Expected ' + String(type) + ' to be a GraphQL named type.') : void 0;
988 return type;
989}
990
991/* eslint-disable no-redeclare */
992function getNamedType(type) {
993 /* eslint-enable no-redeclare */
994 if (type) {
995 var unmodifiedType = type;
996 while (unmodifiedType instanceof GraphQLList || unmodifiedType instanceof GraphQLNonNull) {
997 unmodifiedType = unmodifiedType.ofType;
998 }
999 return unmodifiedType;
1000 }
1001}
1002
1003/**
1004 * Used while defining GraphQL types to allow for circular references in
1005 * otherwise immutable type definitions.
1006 */
1007
1008
1009function resolveThunk(thunk) {
1010 return typeof thunk === 'function' ? thunk() : thunk;
1011}
1012
1013/**
1014 * Scalar Type Definition
1015 *
1016 * The leaf values of any request and input values to arguments are
1017 * Scalars (or Enums) and are defined with a name and a series of functions
1018 * used to parse input from ast or variables and to ensure validity.
1019 *
1020 * Example:
1021 *
1022 * const OddType = new GraphQLScalarType({
1023 * name: 'Odd',
1024 * serialize(value) {
1025 * return value % 2 === 1 ? value : null;
1026 * }
1027 * });
1028 *
1029 */
1030
1031var GraphQLScalarType = exports.GraphQLScalarType = function () {
1032 function GraphQLScalarType(config) {
1033 _classCallCheck(this, GraphQLScalarType);
1034
1035 (0, _assertValidName.assertValidName)(config.name);
1036 this.name = config.name;
1037 this.description = config.description;
1038 this.astNode = config.astNode;
1039 !(typeof config.serialize === 'function') ? (0, _invariant2.default)(0, this.name + ' must provide "serialize" function. If this custom Scalar ' + 'is also used as an input type, ensure "parseValue" and "parseLiteral" ' + 'functions are also provided.') : void 0;
1040 if (config.parseValue || config.parseLiteral) {
1041 !(typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function') ? (0, _invariant2.default)(0, this.name + ' must provide both "parseValue" and "parseLiteral" ' + 'functions.') : void 0;
1042 }
1043 this._scalarConfig = config;
1044 }
1045
1046 // Serializes an internal value to include in a response.
1047
1048
1049 GraphQLScalarType.prototype.serialize = function serialize(value) {
1050 var serializer = this._scalarConfig.serialize;
1051 return serializer(value);
1052 };
1053
1054 // Determines if an internal value is valid for this type.
1055 // Equivalent to checking for if the parsedValue is nullish.
1056
1057
1058 GraphQLScalarType.prototype.isValidValue = function isValidValue(value) {
1059 return !(0, _isNullish2.default)(this.parseValue(value));
1060 };
1061
1062 // Parses an externally provided value to use as an input.
1063
1064
1065 GraphQLScalarType.prototype.parseValue = function parseValue(value) {
1066 var parser = this._scalarConfig.parseValue;
1067 return parser && !(0, _isNullish2.default)(value) ? parser(value) : undefined;
1068 };
1069
1070 // Determines if an internal value is valid for this type.
1071 // Equivalent to checking for if the parsedLiteral is nullish.
1072
1073
1074 GraphQLScalarType.prototype.isValidLiteral = function isValidLiteral(valueNode) {
1075 return !(0, _isNullish2.default)(this.parseLiteral(valueNode));
1076 };
1077
1078 // Parses an externally provided literal value to use as an input.
1079
1080
1081 GraphQLScalarType.prototype.parseLiteral = function parseLiteral(valueNode) {
1082 var parser = this._scalarConfig.parseLiteral;
1083 return parser ? parser(valueNode) : undefined;
1084 };
1085
1086 GraphQLScalarType.prototype.toString = function toString() {
1087 return this.name;
1088 };
1089
1090 return GraphQLScalarType;
1091}();
1092
1093// Also provide toJSON and inspect aliases for toString.
1094
1095
1096GraphQLScalarType.prototype.toJSON = GraphQLScalarType.prototype.inspect = GraphQLScalarType.prototype.toString;
1097
1098/**
1099 * Object Type Definition
1100 *
1101 * Almost all of the GraphQL types you define will be object types. Object types
1102 * have a name, but most importantly describe their fields.
1103 *
1104 * Example:
1105 *
1106 * const AddressType = new GraphQLObjectType({
1107 * name: 'Address',
1108 * fields: {
1109 * street: { type: GraphQLString },
1110 * number: { type: GraphQLInt },
1111 * formatted: {
1112 * type: GraphQLString,
1113 * resolve(obj) {
1114 * return obj.number + ' ' + obj.street
1115 * }
1116 * }
1117 * }
1118 * });
1119 *
1120 * When two types need to refer to each other, or a type needs to refer to
1121 * itself in a field, you can use a function expression (aka a closure or a
1122 * thunk) to supply the fields lazily.
1123 *
1124 * Example:
1125 *
1126 * const PersonType = new GraphQLObjectType({
1127 * name: 'Person',
1128 * fields: () => ({
1129 * name: { type: GraphQLString },
1130 * bestFriend: { type: PersonType },
1131 * })
1132 * });
1133 *
1134 */
1135var GraphQLObjectType = exports.GraphQLObjectType = function () {
1136 function GraphQLObjectType(config) {
1137 _classCallCheck(this, GraphQLObjectType);
1138
1139 (0, _assertValidName.assertValidName)(config.name, config.isIntrospection);
1140 this.name = config.name;
1141 this.description = config.description;
1142 this.astNode = config.astNode;
1143 this.extensionASTNodes = config.extensionASTNodes || [];
1144 if (config.isTypeOf) {
1145 !(typeof config.isTypeOf === 'function') ? (0, _invariant2.default)(0, this.name + ' must provide "isTypeOf" as a function.') : void 0;
1146 }
1147 this.isTypeOf = config.isTypeOf;
1148 this._typeConfig = config;
1149 }
1150
1151 GraphQLObjectType.prototype.getFields = function getFields() {
1152 return this._fields || (this._fields = defineFieldMap(this, this._typeConfig.fields));
1153 };
1154
1155 GraphQLObjectType.prototype.getInterfaces = function getInterfaces() {
1156 return this._interfaces || (this._interfaces = defineInterfaces(this, this._typeConfig.interfaces));
1157 };
1158
1159 GraphQLObjectType.prototype.toString = function toString() {
1160 return this.name;
1161 };
1162
1163 return GraphQLObjectType;
1164}();
1165
1166// Also provide toJSON and inspect aliases for toString.
1167
1168
1169GraphQLObjectType.prototype.toJSON = GraphQLObjectType.prototype.inspect = GraphQLObjectType.prototype.toString;
1170
1171function defineInterfaces(type, interfacesThunk) {
1172 var interfaces = resolveThunk(interfacesThunk);
1173 if (!interfaces) {
1174 return [];
1175 }
1176 !Array.isArray(interfaces) ? (0, _invariant2.default)(0, type.name + ' interfaces must be an Array or a function which returns ' + 'an Array.') : void 0;
1177
1178 var implementedTypeNames = Object.create(null);
1179 interfaces.forEach(function (iface) {
1180 !(iface instanceof GraphQLInterfaceType) ? (0, _invariant2.default)(0, type.name + ' may only implement Interface types, it cannot ' + ('implement: ' + String(iface) + '.')) : void 0;
1181 !!implementedTypeNames[iface.name] ? (0, _invariant2.default)(0, type.name + ' may declare it implements ' + iface.name + ' only once.') : void 0;
1182 implementedTypeNames[iface.name] = true;
1183 if (typeof iface.resolveType !== 'function') {
1184 !(typeof type.isTypeOf === 'function') ? (0, _invariant2.default)(0, 'Interface Type ' + iface.name + ' does not provide a "resolveType" ' + ('function and implementing Type ' + type.name + ' does not provide a ') + '"isTypeOf" function. There is no way to resolve this implementing ' + 'type during execution.') : void 0;
1185 }
1186 });
1187 return interfaces;
1188}
1189
1190function defineFieldMap(type, fieldsThunk) {
1191 var fieldMap = resolveThunk(fieldsThunk);
1192 !isPlainObj(fieldMap) ? (0, _invariant2.default)(0, type.name + ' fields must be an object with field names as keys or a ' + 'function which returns such an object.') : void 0;
1193
1194 var fieldNames = Object.keys(fieldMap);
1195 !(fieldNames.length > 0) ? (0, _invariant2.default)(0, type.name + ' fields must be an object with field names as keys or a ' + 'function which returns such an object.') : void 0;
1196
1197 var resultFieldMap = Object.create(null);
1198 fieldNames.forEach(function (fieldName) {
1199 (0, _assertValidName.assertValidName)(fieldName);
1200 var fieldConfig = fieldMap[fieldName];
1201 !isPlainObj(fieldConfig) ? (0, _invariant2.default)(0, type.name + '.' + fieldName + ' field config must be an object') : void 0;
1202 !!fieldConfig.hasOwnProperty('isDeprecated') ? (0, _invariant2.default)(0, type.name + '.' + fieldName + ' should provide "deprecationReason" instead ' + 'of "isDeprecated".') : void 0;
1203 var field = _extends({}, fieldConfig, {
1204 isDeprecated: Boolean(fieldConfig.deprecationReason),
1205 name: fieldName
1206 });
1207 !isOutputType(field.type) ? (0, _invariant2.default)(0, type.name + '.' + fieldName + ' field type must be Output Type but ' + ('got: ' + String(field.type) + '.')) : void 0;
1208 !isValidResolver(field.resolve) ? (0, _invariant2.default)(0, type.name + '.' + fieldName + ' field resolver must be a function if ' + ('provided, but got: ' + String(field.resolve) + '.')) : void 0;
1209 var argsConfig = fieldConfig.args;
1210 if (!argsConfig) {
1211 field.args = [];
1212 } else {
1213 !isPlainObj(argsConfig) ? (0, _invariant2.default)(0, type.name + '.' + fieldName + ' args must be an object with argument ' + 'names as keys.') : void 0;
1214 field.args = Object.keys(argsConfig).map(function (argName) {
1215 (0, _assertValidName.assertValidName)(argName);
1216 var arg = argsConfig[argName];
1217 !isInputType(arg.type) ? (0, _invariant2.default)(0, type.name + '.' + fieldName + '(' + argName + ':) argument type must be ' + ('Input Type but got: ' + String(arg.type) + '.')) : void 0;
1218 return {
1219 name: argName,
1220 description: arg.description === undefined ? null : arg.description,
1221 type: arg.type,
1222 defaultValue: arg.defaultValue,
1223 astNode: arg.astNode
1224 };
1225 });
1226 }
1227 resultFieldMap[fieldName] = field;
1228 });
1229 return resultFieldMap;
1230}
1231
1232function isPlainObj(obj) {
1233 return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj);
1234}
1235
1236// If a resolver is defined, it must be a function.
1237function isValidResolver(resolver) {
1238 return resolver == null || typeof resolver === 'function';
1239}
1240
1241/**
1242 * Interface Type Definition
1243 *
1244 * When a field can return one of a heterogeneous set of types, a Interface type
1245 * is used to describe what types are possible, what fields are in common across
1246 * all types, as well as a function to determine which type is actually used
1247 * when the field is resolved.
1248 *
1249 * Example:
1250 *
1251 * const EntityType = new GraphQLInterfaceType({
1252 * name: 'Entity',
1253 * fields: {
1254 * name: { type: GraphQLString }
1255 * }
1256 * });
1257 *
1258 */
1259var GraphQLInterfaceType = exports.GraphQLInterfaceType = function () {
1260 function GraphQLInterfaceType(config) {
1261 _classCallCheck(this, GraphQLInterfaceType);
1262
1263 (0, _assertValidName.assertValidName)(config.name);
1264 this.name = config.name;
1265 this.description = config.description;
1266 this.astNode = config.astNode;
1267 if (config.resolveType) {
1268 !(typeof config.resolveType === 'function') ? (0, _invariant2.default)(0, this.name + ' must provide "resolveType" as a function.') : void 0;
1269 }
1270 this.resolveType = config.resolveType;
1271 this._typeConfig = config;
1272 }
1273
1274 GraphQLInterfaceType.prototype.getFields = function getFields() {
1275 return this._fields || (this._fields = defineFieldMap(this, this._typeConfig.fields));
1276 };
1277
1278 GraphQLInterfaceType.prototype.toString = function toString() {
1279 return this.name;
1280 };
1281
1282 return GraphQLInterfaceType;
1283}();
1284
1285// Also provide toJSON and inspect aliases for toString.
1286
1287
1288GraphQLInterfaceType.prototype.toJSON = GraphQLInterfaceType.prototype.inspect = GraphQLInterfaceType.prototype.toString;
1289
1290/**
1291 * Union Type Definition
1292 *
1293 * When a field can return one of a heterogeneous set of types, a Union type
1294 * is used to describe what types are possible as well as providing a function
1295 * to determine which type is actually used when the field is resolved.
1296 *
1297 * Example:
1298 *
1299 * const PetType = new GraphQLUnionType({
1300 * name: 'Pet',
1301 * types: [ DogType, CatType ],
1302 * resolveType(value) {
1303 * if (value instanceof Dog) {
1304 * return DogType;
1305 * }
1306 * if (value instanceof Cat) {
1307 * return CatType;
1308 * }
1309 * }
1310 * });
1311 *
1312 */
1313var GraphQLUnionType = exports.GraphQLUnionType = function () {
1314 function GraphQLUnionType(config) {
1315 _classCallCheck(this, GraphQLUnionType);
1316
1317 (0, _assertValidName.assertValidName)(config.name);
1318 this.name = config.name;
1319 this.description = config.description;
1320 this.astNode = config.astNode;
1321 if (config.resolveType) {
1322 !(typeof config.resolveType === 'function') ? (0, _invariant2.default)(0, this.name + ' must provide "resolveType" as a function.') : void 0;
1323 }
1324 this.resolveType = config.resolveType;
1325 this._typeConfig = config;
1326 }
1327
1328 GraphQLUnionType.prototype.getTypes = function getTypes() {
1329 return this._types || (this._types = defineTypes(this, this._typeConfig.types));
1330 };
1331
1332 GraphQLUnionType.prototype.toString = function toString() {
1333 return this.name;
1334 };
1335
1336 return GraphQLUnionType;
1337}();
1338
1339// Also provide toJSON and inspect aliases for toString.
1340
1341
1342GraphQLUnionType.prototype.toJSON = GraphQLUnionType.prototype.inspect = GraphQLUnionType.prototype.toString;
1343
1344function defineTypes(unionType, typesThunk) {
1345 var types = resolveThunk(typesThunk);
1346
1347 !(Array.isArray(types) && types.length > 0) ? (0, _invariant2.default)(0, 'Must provide Array of types or a function which returns ' + ('such an array for Union ' + unionType.name + '.')) : void 0;
1348 var includedTypeNames = Object.create(null);
1349 types.forEach(function (objType) {
1350 !(objType instanceof GraphQLObjectType) ? (0, _invariant2.default)(0, unionType.name + ' may only contain Object types, it cannot contain: ' + (String(objType) + '.')) : void 0;
1351 !!includedTypeNames[objType.name] ? (0, _invariant2.default)(0, unionType.name + ' can include ' + objType.name + ' type only once.') : void 0;
1352 includedTypeNames[objType.name] = true;
1353 if (typeof unionType.resolveType !== 'function') {
1354 !(typeof objType.isTypeOf === 'function') ? (0, _invariant2.default)(0, 'Union type "' + unionType.name + '" does not provide a "resolveType" ' + ('function and possible type "' + objType.name + '" does not provide an ') + '"isTypeOf" function. There is no way to resolve this possible type ' + 'during execution.') : void 0;
1355 }
1356 });
1357
1358 return types;
1359}
1360
1361/**
1362 * Enum Type Definition
1363 *
1364 * Some leaf values of requests and input values are Enums. GraphQL serializes
1365 * Enum values as strings, however internally Enums can be represented by any
1366 * kind of type, often integers.
1367 *
1368 * Example:
1369 *
1370 * const RGBType = new GraphQLEnumType({
1371 * name: 'RGB',
1372 * values: {
1373 * RED: { value: 0 },
1374 * GREEN: { value: 1 },
1375 * BLUE: { value: 2 }
1376 * }
1377 * });
1378 *
1379 * Note: If a value is not provided in a definition, the name of the enum value
1380 * will be used as its internal value.
1381 */
1382var GraphQLEnumType /* <T> */ = exports.GraphQLEnumType = function () {
1383 function GraphQLEnumType(config /* <T> */) {
1384 _classCallCheck(this, GraphQLEnumType);
1385
1386 this.name = config.name;
1387 (0, _assertValidName.assertValidName)(config.name, config.isIntrospection);
1388 this.description = config.description;
1389 this.astNode = config.astNode;
1390 this._values = defineEnumValues(this, config.values);
1391 this._enumConfig = config;
1392 }
1393
1394 GraphQLEnumType.prototype.getValues = function getValues() {
1395 return this._values;
1396 };
1397
1398 GraphQLEnumType.prototype.getValue = function getValue(name) {
1399 return this._getNameLookup()[name];
1400 };
1401
1402 GraphQLEnumType.prototype.serialize = function serialize(value /* T */) {
1403 var enumValue = this._getValueLookup().get(value);
1404 return enumValue ? enumValue.name : null;
1405 };
1406
1407 GraphQLEnumType.prototype.isValidValue = function isValidValue(value) {
1408 return typeof value === 'string' && this._getNameLookup()[value] !== undefined;
1409 };
1410
1411 GraphQLEnumType.prototype.parseValue = function parseValue(value) /* T */{
1412 if (typeof value === 'string') {
1413 var enumValue = this._getNameLookup()[value];
1414 if (enumValue) {
1415 return enumValue.value;
1416 }
1417 }
1418 };
1419
1420 GraphQLEnumType.prototype.isValidLiteral = function isValidLiteral(valueNode) {
1421 return valueNode.kind === Kind.ENUM && this._getNameLookup()[valueNode.value] !== undefined;
1422 };
1423
1424 GraphQLEnumType.prototype.parseLiteral = function parseLiteral(valueNode) /* T */{
1425 if (valueNode.kind === Kind.ENUM) {
1426 var enumValue = this._getNameLookup()[valueNode.value];
1427 if (enumValue) {
1428 return enumValue.value;
1429 }
1430 }
1431 };
1432
1433 GraphQLEnumType.prototype._getValueLookup = function _getValueLookup() {
1434 if (!this._valueLookup) {
1435 var lookup = new Map();
1436 this.getValues().forEach(function (value) {
1437 lookup.set(value.value, value);
1438 });
1439 this._valueLookup = lookup;
1440 }
1441 return this._valueLookup;
1442 };
1443
1444 GraphQLEnumType.prototype._getNameLookup = function _getNameLookup() {
1445 if (!this._nameLookup) {
1446 var lookup = Object.create(null);
1447 this.getValues().forEach(function (value) {
1448 lookup[value.name] = value;
1449 });
1450 this._nameLookup = lookup;
1451 }
1452 return this._nameLookup;
1453 };
1454
1455 GraphQLEnumType.prototype.toString = function toString() {
1456 return this.name;
1457 };
1458
1459 return GraphQLEnumType;
1460}();
1461
1462// Also provide toJSON and inspect aliases for toString.
1463
1464
1465GraphQLEnumType.prototype.toJSON = GraphQLEnumType.prototype.inspect = GraphQLEnumType.prototype.toString;
1466
1467function defineEnumValues(type, valueMap /* <T> */
1468) {
1469 !isPlainObj(valueMap) ? (0, _invariant2.default)(0, type.name + ' values must be an object with value names as keys.') : void 0;
1470 var valueNames = Object.keys(valueMap);
1471 !(valueNames.length > 0) ? (0, _invariant2.default)(0, type.name + ' values must be an object with value names as keys.') : void 0;
1472 return valueNames.map(function (valueName) {
1473 (0, _assertValidName.assertValidName)(valueName);
1474 !(['true', 'false', 'null'].indexOf(valueName) === -1) ? (0, _invariant2.default)(0, 'Name "' + valueName + '" can not be used as an Enum value.') : void 0;
1475
1476 var value = valueMap[valueName];
1477 !isPlainObj(value) ? (0, _invariant2.default)(0, type.name + '.' + valueName + ' must refer to an object with a "value" key ' + ('representing an internal value but got: ' + String(value) + '.')) : void 0;
1478 !!value.hasOwnProperty('isDeprecated') ? (0, _invariant2.default)(0, type.name + '.' + valueName + ' should provide "deprecationReason" instead ' + 'of "isDeprecated".') : void 0;
1479 return {
1480 name: valueName,
1481 description: value.description,
1482 isDeprecated: Boolean(value.deprecationReason),
1483 deprecationReason: value.deprecationReason,
1484 astNode: value.astNode,
1485 value: value.hasOwnProperty('value') ? value.value : valueName
1486 };
1487 });
1488} /* <T> */
1489
1490
1491/**
1492 * Input Object Type Definition
1493 *
1494 * An input object defines a structured collection of fields which may be
1495 * supplied to a field argument.
1496 *
1497 * Using `NonNull` will ensure that a value must be provided by the query
1498 *
1499 * Example:
1500 *
1501 * const GeoPoint = new GraphQLInputObjectType({
1502 * name: 'GeoPoint',
1503 * fields: {
1504 * lat: { type: new GraphQLNonNull(GraphQLFloat) },
1505 * lon: { type: new GraphQLNonNull(GraphQLFloat) },
1506 * alt: { type: GraphQLFloat, defaultValue: 0 },
1507 * }
1508 * });
1509 *
1510 */
1511var GraphQLInputObjectType = exports.GraphQLInputObjectType = function () {
1512 function GraphQLInputObjectType(config) {
1513 _classCallCheck(this, GraphQLInputObjectType);
1514
1515 (0, _assertValidName.assertValidName)(config.name);
1516 this.name = config.name;
1517 this.description = config.description;
1518 this.astNode = config.astNode;
1519 this._typeConfig = config;
1520 }
1521
1522 GraphQLInputObjectType.prototype.getFields = function getFields() {
1523 return this._fields || (this._fields = this._defineFieldMap());
1524 };
1525
1526 GraphQLInputObjectType.prototype._defineFieldMap = function _defineFieldMap() {
1527 var _this = this;
1528
1529 var fieldMap = resolveThunk(this._typeConfig.fields);
1530 !isPlainObj(fieldMap) ? (0, _invariant2.default)(0, this.name + ' fields must be an object with field names as keys or a ' + 'function which returns such an object.') : void 0;
1531 var fieldNames = Object.keys(fieldMap);
1532 !(fieldNames.length > 0) ? (0, _invariant2.default)(0, this.name + ' fields must be an object with field names as keys or a ' + 'function which returns such an object.') : void 0;
1533 var resultFieldMap = Object.create(null);
1534 fieldNames.forEach(function (fieldName) {
1535 (0, _assertValidName.assertValidName)(fieldName);
1536 var field = _extends({}, fieldMap[fieldName], {
1537 name: fieldName
1538 });
1539 !isInputType(field.type) ? (0, _invariant2.default)(0, _this.name + '.' + fieldName + ' field type must be Input Type but ' + ('got: ' + String(field.type) + '.')) : void 0;
1540 !(field.resolve == null) ? (0, _invariant2.default)(0, _this.name + '.' + fieldName + ' field type has a resolve property, but ' + 'Input Types cannot define resolvers.') : void 0;
1541 resultFieldMap[fieldName] = field;
1542 });
1543 return resultFieldMap;
1544 };
1545
1546 GraphQLInputObjectType.prototype.toString = function toString() {
1547 return this.name;
1548 };
1549
1550 return GraphQLInputObjectType;
1551}();
1552
1553// Also provide toJSON and inspect aliases for toString.
1554
1555
1556GraphQLInputObjectType.prototype.toJSON = GraphQLInputObjectType.prototype.inspect = GraphQLInputObjectType.prototype.toString;
1557
1558/**
1559 * List Modifier
1560 *
1561 * A list is a kind of type marker, a wrapping type which points to another
1562 * type. Lists are often created within the context of defining the fields of
1563 * an object type.
1564 *
1565 * Example:
1566 *
1567 * const PersonType = new GraphQLObjectType({
1568 * name: 'Person',
1569 * fields: () => ({
1570 * parents: { type: new GraphQLList(Person) },
1571 * children: { type: new GraphQLList(Person) },
1572 * })
1573 * })
1574 *
1575 */
1576var GraphQLList = exports.GraphQLList = function () {
1577 function GraphQLList(type) {
1578 _classCallCheck(this, GraphQLList);
1579
1580 !isType(type) ? (0, _invariant2.default)(0, 'Can only create List of a GraphQLType but got: ' + String(type) + '.') : void 0;
1581 this.ofType = type;
1582 }
1583
1584 GraphQLList.prototype.toString = function toString() {
1585 return '[' + String(this.ofType) + ']';
1586 };
1587
1588 return GraphQLList;
1589}();
1590
1591// Also provide toJSON and inspect aliases for toString.
1592
1593
1594GraphQLList.prototype.toJSON = GraphQLList.prototype.inspect = GraphQLList.prototype.toString;
1595
1596/**
1597 * Non-Null Modifier
1598 *
1599 * A non-null is a kind of type marker, a wrapping type which points to another
1600 * type. Non-null types enforce that their values are never null and can ensure
1601 * an error is raised if this ever occurs during a request. It is useful for
1602 * fields which you can make a strong guarantee on non-nullability, for example
1603 * usually the id field of a database row will never be null.
1604 *
1605 * Example:
1606 *
1607 * const RowType = new GraphQLObjectType({
1608 * name: 'Row',
1609 * fields: () => ({
1610 * id: { type: new GraphQLNonNull(GraphQLString) },
1611 * })
1612 * })
1613 *
1614 * Note: the enforcement of non-nullability occurs within the executor.
1615 */
1616
1617var GraphQLNonNull = exports.GraphQLNonNull = function () {
1618 function GraphQLNonNull(type) {
1619 _classCallCheck(this, GraphQLNonNull);
1620
1621 !(isType(type) && !(type instanceof GraphQLNonNull)) ? (0, _invariant2.default)(0, 'Can only create NonNull of a Nullable GraphQLType but got: ' + (String(type) + '.')) : void 0;
1622 this.ofType = type;
1623 }
1624
1625 GraphQLNonNull.prototype.toString = function toString() {
1626 return this.ofType.toString() + '!';
1627 };
1628
1629 return GraphQLNonNull;
1630}();
1631
1632// Also provide toJSON and inspect aliases for toString.
1633
1634
1635GraphQLNonNull.prototype.toJSON = GraphQLNonNull.prototype.inspect = GraphQLNonNull.prototype.toString;
1636
1637/***/ }),
1638/* 7 */
1639/***/ (function(module, exports, __webpack_require__) {
1640
1641var store = __webpack_require__(101)('wks');
1642var uid = __webpack_require__(56);
1643var Symbol = __webpack_require__(2).Symbol;
1644var USE_SYMBOL = typeof Symbol == 'function';
1645
1646var $exports = module.exports = function (name) {
1647 return store[name] || (store[name] =
1648 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
1649};
1650
1651$exports.store = store;
1652
1653
1654/***/ }),
1655/* 8 */
1656/***/ (function(module, exports, __webpack_require__) {
1657
1658// Thank's IE8 for his funny defineProperty
1659module.exports = !__webpack_require__(4)(function () {
1660 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
1661});
1662
1663
1664/***/ }),
1665/* 9 */
1666/***/ (function(module, exports, __webpack_require__) {
1667
1668var anObject = __webpack_require__(1);
1669var IE8_DOM_DEFINE = __webpack_require__(214);
1670var toPrimitive = __webpack_require__(34);
1671var dP = Object.defineProperty;
1672
1673exports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1674 anObject(O);
1675 P = toPrimitive(P, true);
1676 anObject(Attributes);
1677 if (IE8_DOM_DEFINE) try {
1678 return dP(O, P, Attributes);
1679 } catch (e) { /* empty */ }
1680 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1681 if ('value' in Attributes) O[P] = Attributes.value;
1682 return O;
1683};
1684
1685
1686/***/ }),
1687/* 10 */
1688/***/ (function(module, exports, __webpack_require__) {
1689
1690// 7.1.15 ToLength
1691var toInteger = __webpack_require__(36);
1692var min = Math.min;
1693module.exports = function (it) {
1694 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
1695};
1696
1697
1698/***/ }),
1699/* 11 */
1700/***/ (function(module, exports, __webpack_require__) {
1701
1702"use strict";
1703
1704
1705Object.defineProperty(exports, "__esModule", {
1706 value: true
1707});
1708exports.default = invariant;
1709/**
1710 * Copyright (c) 2015-present, Facebook, Inc.
1711 *
1712 * This source code is licensed under the MIT license found in the
1713 * LICENSE file in the root directory of this source tree.
1714 *
1715 *
1716 */
1717
1718function invariant(condition, message) {
1719 if (!condition) {
1720 throw new Error(message);
1721 }
1722}
1723
1724/***/ }),
1725/* 12 */
1726/***/ (function(module, exports, __webpack_require__) {
1727
1728"use strict";
1729
1730
1731Object.defineProperty(exports, "__esModule", {
1732 value: true
1733});
1734/**
1735 * Copyright (c) 2015-present, Facebook, Inc.
1736 *
1737 * This source code is licensed under the MIT license found in the
1738 * LICENSE file in the root directory of this source tree.
1739 *
1740 *
1741 */
1742
1743// Name
1744
1745var NAME = exports.NAME = 'Name';
1746
1747// Document
1748
1749var DOCUMENT = exports.DOCUMENT = 'Document';
1750var OPERATION_DEFINITION = exports.OPERATION_DEFINITION = 'OperationDefinition';
1751var VARIABLE_DEFINITION = exports.VARIABLE_DEFINITION = 'VariableDefinition';
1752var VARIABLE = exports.VARIABLE = 'Variable';
1753var SELECTION_SET = exports.SELECTION_SET = 'SelectionSet';
1754var FIELD = exports.FIELD = 'Field';
1755var ARGUMENT = exports.ARGUMENT = 'Argument';
1756
1757// Fragments
1758
1759var FRAGMENT_SPREAD = exports.FRAGMENT_SPREAD = 'FragmentSpread';
1760var INLINE_FRAGMENT = exports.INLINE_FRAGMENT = 'InlineFragment';
1761var FRAGMENT_DEFINITION = exports.FRAGMENT_DEFINITION = 'FragmentDefinition';
1762
1763// Values
1764
1765var INT = exports.INT = 'IntValue';
1766var FLOAT = exports.FLOAT = 'FloatValue';
1767var STRING = exports.STRING = 'StringValue';
1768var BOOLEAN = exports.BOOLEAN = 'BooleanValue';
1769var NULL = exports.NULL = 'NullValue';
1770var ENUM = exports.ENUM = 'EnumValue';
1771var LIST = exports.LIST = 'ListValue';
1772var OBJECT = exports.OBJECT = 'ObjectValue';
1773var OBJECT_FIELD = exports.OBJECT_FIELD = 'ObjectField';
1774
1775// Directives
1776
1777var DIRECTIVE = exports.DIRECTIVE = 'Directive';
1778
1779// Types
1780
1781var NAMED_TYPE = exports.NAMED_TYPE = 'NamedType';
1782var LIST_TYPE = exports.LIST_TYPE = 'ListType';
1783var NON_NULL_TYPE = exports.NON_NULL_TYPE = 'NonNullType';
1784
1785// Type System Definitions
1786
1787var SCHEMA_DEFINITION = exports.SCHEMA_DEFINITION = 'SchemaDefinition';
1788var OPERATION_TYPE_DEFINITION = exports.OPERATION_TYPE_DEFINITION = 'OperationTypeDefinition';
1789
1790// Type Definitions
1791
1792var SCALAR_TYPE_DEFINITION = exports.SCALAR_TYPE_DEFINITION = 'ScalarTypeDefinition';
1793var OBJECT_TYPE_DEFINITION = exports.OBJECT_TYPE_DEFINITION = 'ObjectTypeDefinition';
1794var FIELD_DEFINITION = exports.FIELD_DEFINITION = 'FieldDefinition';
1795var INPUT_VALUE_DEFINITION = exports.INPUT_VALUE_DEFINITION = 'InputValueDefinition';
1796var INTERFACE_TYPE_DEFINITION = exports.INTERFACE_TYPE_DEFINITION = 'InterfaceTypeDefinition';
1797var UNION_TYPE_DEFINITION = exports.UNION_TYPE_DEFINITION = 'UnionTypeDefinition';
1798var ENUM_TYPE_DEFINITION = exports.ENUM_TYPE_DEFINITION = 'EnumTypeDefinition';
1799var ENUM_VALUE_DEFINITION = exports.ENUM_VALUE_DEFINITION = 'EnumValueDefinition';
1800var INPUT_OBJECT_TYPE_DEFINITION = exports.INPUT_OBJECT_TYPE_DEFINITION = 'InputObjectTypeDefinition';
1801
1802// Type Extensions
1803
1804var TYPE_EXTENSION_DEFINITION = exports.TYPE_EXTENSION_DEFINITION = 'TypeExtensionDefinition';
1805
1806// Directive Definitions
1807
1808var DIRECTIVE_DEFINITION = exports.DIRECTIVE_DEFINITION = 'DirectiveDefinition';
1809
1810/***/ }),
1811/* 13 */
1812/***/ (function(module, exports, __webpack_require__) {
1813
1814// 7.1.13 ToObject(argument)
1815var defined = __webpack_require__(35);
1816module.exports = function (it) {
1817 return Object(defined(it));
1818};
1819
1820
1821/***/ }),
1822/* 14 */
1823/***/ (function(module, exports, __webpack_require__) {
1824
1825"use strict";
1826
1827
1828Object.defineProperty(exports, "__esModule", {
1829 value: true
1830});
1831
1832var _graphql = __webpack_require__(562);
1833
1834Object.defineProperty(exports, 'graphql', {
1835 enumerable: true,
1836 get: function get() {
1837 return _graphql.graphql;
1838 }
1839});
1840
1841var _type = __webpack_require__(565);
1842
1843Object.defineProperty(exports, 'GraphQLSchema', {
1844 enumerable: true,
1845 get: function get() {
1846 return _type.GraphQLSchema;
1847 }
1848});
1849Object.defineProperty(exports, 'GraphQLScalarType', {
1850 enumerable: true,
1851 get: function get() {
1852 return _type.GraphQLScalarType;
1853 }
1854});
1855Object.defineProperty(exports, 'GraphQLObjectType', {
1856 enumerable: true,
1857 get: function get() {
1858 return _type.GraphQLObjectType;
1859 }
1860});
1861Object.defineProperty(exports, 'GraphQLInterfaceType', {
1862 enumerable: true,
1863 get: function get() {
1864 return _type.GraphQLInterfaceType;
1865 }
1866});
1867Object.defineProperty(exports, 'GraphQLUnionType', {
1868 enumerable: true,
1869 get: function get() {
1870 return _type.GraphQLUnionType;
1871 }
1872});
1873Object.defineProperty(exports, 'GraphQLEnumType', {
1874 enumerable: true,
1875 get: function get() {
1876 return _type.GraphQLEnumType;
1877 }
1878});
1879Object.defineProperty(exports, 'GraphQLInputObjectType', {
1880 enumerable: true,
1881 get: function get() {
1882 return _type.GraphQLInputObjectType;
1883 }
1884});
1885Object.defineProperty(exports, 'GraphQLList', {
1886 enumerable: true,
1887 get: function get() {
1888 return _type.GraphQLList;
1889 }
1890});
1891Object.defineProperty(exports, 'GraphQLNonNull', {
1892 enumerable: true,
1893 get: function get() {
1894 return _type.GraphQLNonNull;
1895 }
1896});
1897Object.defineProperty(exports, 'GraphQLDirective', {
1898 enumerable: true,
1899 get: function get() {
1900 return _type.GraphQLDirective;
1901 }
1902});
1903Object.defineProperty(exports, 'TypeKind', {
1904 enumerable: true,
1905 get: function get() {
1906 return _type.TypeKind;
1907 }
1908});
1909Object.defineProperty(exports, 'DirectiveLocation', {
1910 enumerable: true,
1911 get: function get() {
1912 return _type.DirectiveLocation;
1913 }
1914});
1915Object.defineProperty(exports, 'GraphQLInt', {
1916 enumerable: true,
1917 get: function get() {
1918 return _type.GraphQLInt;
1919 }
1920});
1921Object.defineProperty(exports, 'GraphQLFloat', {
1922 enumerable: true,
1923 get: function get() {
1924 return _type.GraphQLFloat;
1925 }
1926});
1927Object.defineProperty(exports, 'GraphQLString', {
1928 enumerable: true,
1929 get: function get() {
1930 return _type.GraphQLString;
1931 }
1932});
1933Object.defineProperty(exports, 'GraphQLBoolean', {
1934 enumerable: true,
1935 get: function get() {
1936 return _type.GraphQLBoolean;
1937 }
1938});
1939Object.defineProperty(exports, 'GraphQLID', {
1940 enumerable: true,
1941 get: function get() {
1942 return _type.GraphQLID;
1943 }
1944});
1945Object.defineProperty(exports, 'specifiedDirectives', {
1946 enumerable: true,
1947 get: function get() {
1948 return _type.specifiedDirectives;
1949 }
1950});
1951Object.defineProperty(exports, 'GraphQLIncludeDirective', {
1952 enumerable: true,
1953 get: function get() {
1954 return _type.GraphQLIncludeDirective;
1955 }
1956});
1957Object.defineProperty(exports, 'GraphQLSkipDirective', {
1958 enumerable: true,
1959 get: function get() {
1960 return _type.GraphQLSkipDirective;
1961 }
1962});
1963Object.defineProperty(exports, 'GraphQLDeprecatedDirective', {
1964 enumerable: true,
1965 get: function get() {
1966 return _type.GraphQLDeprecatedDirective;
1967 }
1968});
1969Object.defineProperty(exports, 'DEFAULT_DEPRECATION_REASON', {
1970 enumerable: true,
1971 get: function get() {
1972 return _type.DEFAULT_DEPRECATION_REASON;
1973 }
1974});
1975Object.defineProperty(exports, 'SchemaMetaFieldDef', {
1976 enumerable: true,
1977 get: function get() {
1978 return _type.SchemaMetaFieldDef;
1979 }
1980});
1981Object.defineProperty(exports, 'TypeMetaFieldDef', {
1982 enumerable: true,
1983 get: function get() {
1984 return _type.TypeMetaFieldDef;
1985 }
1986});
1987Object.defineProperty(exports, 'TypeNameMetaFieldDef', {
1988 enumerable: true,
1989 get: function get() {
1990 return _type.TypeNameMetaFieldDef;
1991 }
1992});
1993Object.defineProperty(exports, '__Schema', {
1994 enumerable: true,
1995 get: function get() {
1996 return _type.__Schema;
1997 }
1998});
1999Object.defineProperty(exports, '__Directive', {
2000 enumerable: true,
2001 get: function get() {
2002 return _type.__Directive;
2003 }
2004});
2005Object.defineProperty(exports, '__DirectiveLocation', {
2006 enumerable: true,
2007 get: function get() {
2008 return _type.__DirectiveLocation;
2009 }
2010});
2011Object.defineProperty(exports, '__Type', {
2012 enumerable: true,
2013 get: function get() {
2014 return _type.__Type;
2015 }
2016});
2017Object.defineProperty(exports, '__Field', {
2018 enumerable: true,
2019 get: function get() {
2020 return _type.__Field;
2021 }
2022});
2023Object.defineProperty(exports, '__InputValue', {
2024 enumerable: true,
2025 get: function get() {
2026 return _type.__InputValue;
2027 }
2028});
2029Object.defineProperty(exports, '__EnumValue', {
2030 enumerable: true,
2031 get: function get() {
2032 return _type.__EnumValue;
2033 }
2034});
2035Object.defineProperty(exports, '__TypeKind', {
2036 enumerable: true,
2037 get: function get() {
2038 return _type.__TypeKind;
2039 }
2040});
2041Object.defineProperty(exports, 'isType', {
2042 enumerable: true,
2043 get: function get() {
2044 return _type.isType;
2045 }
2046});
2047Object.defineProperty(exports, 'isInputType', {
2048 enumerable: true,
2049 get: function get() {
2050 return _type.isInputType;
2051 }
2052});
2053Object.defineProperty(exports, 'isOutputType', {
2054 enumerable: true,
2055 get: function get() {
2056 return _type.isOutputType;
2057 }
2058});
2059Object.defineProperty(exports, 'isLeafType', {
2060 enumerable: true,
2061 get: function get() {
2062 return _type.isLeafType;
2063 }
2064});
2065Object.defineProperty(exports, 'isCompositeType', {
2066 enumerable: true,
2067 get: function get() {
2068 return _type.isCompositeType;
2069 }
2070});
2071Object.defineProperty(exports, 'isAbstractType', {
2072 enumerable: true,
2073 get: function get() {
2074 return _type.isAbstractType;
2075 }
2076});
2077Object.defineProperty(exports, 'isNamedType', {
2078 enumerable: true,
2079 get: function get() {
2080 return _type.isNamedType;
2081 }
2082});
2083Object.defineProperty(exports, 'assertType', {
2084 enumerable: true,
2085 get: function get() {
2086 return _type.assertType;
2087 }
2088});
2089Object.defineProperty(exports, 'assertInputType', {
2090 enumerable: true,
2091 get: function get() {
2092 return _type.assertInputType;
2093 }
2094});
2095Object.defineProperty(exports, 'assertOutputType', {
2096 enumerable: true,
2097 get: function get() {
2098 return _type.assertOutputType;
2099 }
2100});
2101Object.defineProperty(exports, 'assertLeafType', {
2102 enumerable: true,
2103 get: function get() {
2104 return _type.assertLeafType;
2105 }
2106});
2107Object.defineProperty(exports, 'assertCompositeType', {
2108 enumerable: true,
2109 get: function get() {
2110 return _type.assertCompositeType;
2111 }
2112});
2113Object.defineProperty(exports, 'assertAbstractType', {
2114 enumerable: true,
2115 get: function get() {
2116 return _type.assertAbstractType;
2117 }
2118});
2119Object.defineProperty(exports, 'assertNamedType', {
2120 enumerable: true,
2121 get: function get() {
2122 return _type.assertNamedType;
2123 }
2124});
2125Object.defineProperty(exports, 'getNullableType', {
2126 enumerable: true,
2127 get: function get() {
2128 return _type.getNullableType;
2129 }
2130});
2131Object.defineProperty(exports, 'getNamedType', {
2132 enumerable: true,
2133 get: function get() {
2134 return _type.getNamedType;
2135 }
2136});
2137
2138var _language = __webpack_require__(566);
2139
2140Object.defineProperty(exports, 'Source', {
2141 enumerable: true,
2142 get: function get() {
2143 return _language.Source;
2144 }
2145});
2146Object.defineProperty(exports, 'getLocation', {
2147 enumerable: true,
2148 get: function get() {
2149 return _language.getLocation;
2150 }
2151});
2152Object.defineProperty(exports, 'parse', {
2153 enumerable: true,
2154 get: function get() {
2155 return _language.parse;
2156 }
2157});
2158Object.defineProperty(exports, 'parseValue', {
2159 enumerable: true,
2160 get: function get() {
2161 return _language.parseValue;
2162 }
2163});
2164Object.defineProperty(exports, 'parseType', {
2165 enumerable: true,
2166 get: function get() {
2167 return _language.parseType;
2168 }
2169});
2170Object.defineProperty(exports, 'print', {
2171 enumerable: true,
2172 get: function get() {
2173 return _language.print;
2174 }
2175});
2176Object.defineProperty(exports, 'visit', {
2177 enumerable: true,
2178 get: function get() {
2179 return _language.visit;
2180 }
2181});
2182Object.defineProperty(exports, 'visitInParallel', {
2183 enumerable: true,
2184 get: function get() {
2185 return _language.visitInParallel;
2186 }
2187});
2188Object.defineProperty(exports, 'visitWithTypeInfo', {
2189 enumerable: true,
2190 get: function get() {
2191 return _language.visitWithTypeInfo;
2192 }
2193});
2194Object.defineProperty(exports, 'getVisitFn', {
2195 enumerable: true,
2196 get: function get() {
2197 return _language.getVisitFn;
2198 }
2199});
2200Object.defineProperty(exports, 'Kind', {
2201 enumerable: true,
2202 get: function get() {
2203 return _language.Kind;
2204 }
2205});
2206Object.defineProperty(exports, 'TokenKind', {
2207 enumerable: true,
2208 get: function get() {
2209 return _language.TokenKind;
2210 }
2211});
2212Object.defineProperty(exports, 'BREAK', {
2213 enumerable: true,
2214 get: function get() {
2215 return _language.BREAK;
2216 }
2217});
2218
2219var _execution = __webpack_require__(567);
2220
2221Object.defineProperty(exports, 'execute', {
2222 enumerable: true,
2223 get: function get() {
2224 return _execution.execute;
2225 }
2226});
2227Object.defineProperty(exports, 'defaultFieldResolver', {
2228 enumerable: true,
2229 get: function get() {
2230 return _execution.defaultFieldResolver;
2231 }
2232});
2233Object.defineProperty(exports, 'responsePathAsArray', {
2234 enumerable: true,
2235 get: function get() {
2236 return _execution.responsePathAsArray;
2237 }
2238});
2239Object.defineProperty(exports, 'getDirectiveValues', {
2240 enumerable: true,
2241 get: function get() {
2242 return _execution.getDirectiveValues;
2243 }
2244});
2245
2246var _subscription = __webpack_require__(568);
2247
2248Object.defineProperty(exports, 'subscribe', {
2249 enumerable: true,
2250 get: function get() {
2251 return _subscription.subscribe;
2252 }
2253});
2254Object.defineProperty(exports, 'createSourceEventStream', {
2255 enumerable: true,
2256 get: function get() {
2257 return _subscription.createSourceEventStream;
2258 }
2259});
2260
2261var _validation = __webpack_require__(571);
2262
2263Object.defineProperty(exports, 'validate', {
2264 enumerable: true,
2265 get: function get() {
2266 return _validation.validate;
2267 }
2268});
2269Object.defineProperty(exports, 'ValidationContext', {
2270 enumerable: true,
2271 get: function get() {
2272 return _validation.ValidationContext;
2273 }
2274});
2275Object.defineProperty(exports, 'specifiedRules', {
2276 enumerable: true,
2277 get: function get() {
2278 return _validation.specifiedRules;
2279 }
2280});
2281Object.defineProperty(exports, 'ArgumentsOfCorrectTypeRule', {
2282 enumerable: true,
2283 get: function get() {
2284 return _validation.ArgumentsOfCorrectTypeRule;
2285 }
2286});
2287Object.defineProperty(exports, 'DefaultValuesOfCorrectTypeRule', {
2288 enumerable: true,
2289 get: function get() {
2290 return _validation.DefaultValuesOfCorrectTypeRule;
2291 }
2292});
2293Object.defineProperty(exports, 'FieldsOnCorrectTypeRule', {
2294 enumerable: true,
2295 get: function get() {
2296 return _validation.FieldsOnCorrectTypeRule;
2297 }
2298});
2299Object.defineProperty(exports, 'FragmentsOnCompositeTypesRule', {
2300 enumerable: true,
2301 get: function get() {
2302 return _validation.FragmentsOnCompositeTypesRule;
2303 }
2304});
2305Object.defineProperty(exports, 'KnownArgumentNamesRule', {
2306 enumerable: true,
2307 get: function get() {
2308 return _validation.KnownArgumentNamesRule;
2309 }
2310});
2311Object.defineProperty(exports, 'KnownDirectivesRule', {
2312 enumerable: true,
2313 get: function get() {
2314 return _validation.KnownDirectivesRule;
2315 }
2316});
2317Object.defineProperty(exports, 'KnownFragmentNamesRule', {
2318 enumerable: true,
2319 get: function get() {
2320 return _validation.KnownFragmentNamesRule;
2321 }
2322});
2323Object.defineProperty(exports, 'KnownTypeNamesRule', {
2324 enumerable: true,
2325 get: function get() {
2326 return _validation.KnownTypeNamesRule;
2327 }
2328});
2329Object.defineProperty(exports, 'LoneAnonymousOperationRule', {
2330 enumerable: true,
2331 get: function get() {
2332 return _validation.LoneAnonymousOperationRule;
2333 }
2334});
2335Object.defineProperty(exports, 'NoFragmentCyclesRule', {
2336 enumerable: true,
2337 get: function get() {
2338 return _validation.NoFragmentCyclesRule;
2339 }
2340});
2341Object.defineProperty(exports, 'NoUndefinedVariablesRule', {
2342 enumerable: true,
2343 get: function get() {
2344 return _validation.NoUndefinedVariablesRule;
2345 }
2346});
2347Object.defineProperty(exports, 'NoUnusedFragmentsRule', {
2348 enumerable: true,
2349 get: function get() {
2350 return _validation.NoUnusedFragmentsRule;
2351 }
2352});
2353Object.defineProperty(exports, 'NoUnusedVariablesRule', {
2354 enumerable: true,
2355 get: function get() {
2356 return _validation.NoUnusedVariablesRule;
2357 }
2358});
2359Object.defineProperty(exports, 'OverlappingFieldsCanBeMergedRule', {
2360 enumerable: true,
2361 get: function get() {
2362 return _validation.OverlappingFieldsCanBeMergedRule;
2363 }
2364});
2365Object.defineProperty(exports, 'PossibleFragmentSpreadsRule', {
2366 enumerable: true,
2367 get: function get() {
2368 return _validation.PossibleFragmentSpreadsRule;
2369 }
2370});
2371Object.defineProperty(exports, 'ProvidedNonNullArgumentsRule', {
2372 enumerable: true,
2373 get: function get() {
2374 return _validation.ProvidedNonNullArgumentsRule;
2375 }
2376});
2377Object.defineProperty(exports, 'ScalarLeafsRule', {
2378 enumerable: true,
2379 get: function get() {
2380 return _validation.ScalarLeafsRule;
2381 }
2382});
2383Object.defineProperty(exports, 'SingleFieldSubscriptionsRule', {
2384 enumerable: true,
2385 get: function get() {
2386 return _validation.SingleFieldSubscriptionsRule;
2387 }
2388});
2389Object.defineProperty(exports, 'UniqueArgumentNamesRule', {
2390 enumerable: true,
2391 get: function get() {
2392 return _validation.UniqueArgumentNamesRule;
2393 }
2394});
2395Object.defineProperty(exports, 'UniqueDirectivesPerLocationRule', {
2396 enumerable: true,
2397 get: function get() {
2398 return _validation.UniqueDirectivesPerLocationRule;
2399 }
2400});
2401Object.defineProperty(exports, 'UniqueFragmentNamesRule', {
2402 enumerable: true,
2403 get: function get() {
2404 return _validation.UniqueFragmentNamesRule;
2405 }
2406});
2407Object.defineProperty(exports, 'UniqueInputFieldNamesRule', {
2408 enumerable: true,
2409 get: function get() {
2410 return _validation.UniqueInputFieldNamesRule;
2411 }
2412});
2413Object.defineProperty(exports, 'UniqueOperationNamesRule', {
2414 enumerable: true,
2415 get: function get() {
2416 return _validation.UniqueOperationNamesRule;
2417 }
2418});
2419Object.defineProperty(exports, 'UniqueVariableNamesRule', {
2420 enumerable: true,
2421 get: function get() {
2422 return _validation.UniqueVariableNamesRule;
2423 }
2424});
2425Object.defineProperty(exports, 'VariablesAreInputTypesRule', {
2426 enumerable: true,
2427 get: function get() {
2428 return _validation.VariablesAreInputTypesRule;
2429 }
2430});
2431Object.defineProperty(exports, 'VariablesInAllowedPositionRule', {
2432 enumerable: true,
2433 get: function get() {
2434 return _validation.VariablesInAllowedPositionRule;
2435 }
2436});
2437
2438var _error = __webpack_require__(3);
2439
2440Object.defineProperty(exports, 'GraphQLError', {
2441 enumerable: true,
2442 get: function get() {
2443 return _error.GraphQLError;
2444 }
2445});
2446Object.defineProperty(exports, 'formatError', {
2447 enumerable: true,
2448 get: function get() {
2449 return _error.formatError;
2450 }
2451});
2452
2453var _utilities = __webpack_require__(572);
2454
2455Object.defineProperty(exports, 'introspectionQuery', {
2456 enumerable: true,
2457 get: function get() {
2458 return _utilities.introspectionQuery;
2459 }
2460});
2461Object.defineProperty(exports, 'getOperationAST', {
2462 enumerable: true,
2463 get: function get() {
2464 return _utilities.getOperationAST;
2465 }
2466});
2467Object.defineProperty(exports, 'buildClientSchema', {
2468 enumerable: true,
2469 get: function get() {
2470 return _utilities.buildClientSchema;
2471 }
2472});
2473Object.defineProperty(exports, 'buildASTSchema', {
2474 enumerable: true,
2475 get: function get() {
2476 return _utilities.buildASTSchema;
2477 }
2478});
2479Object.defineProperty(exports, 'buildSchema', {
2480 enumerable: true,
2481 get: function get() {
2482 return _utilities.buildSchema;
2483 }
2484});
2485Object.defineProperty(exports, 'extendSchema', {
2486 enumerable: true,
2487 get: function get() {
2488 return _utilities.extendSchema;
2489 }
2490});
2491Object.defineProperty(exports, 'printSchema', {
2492 enumerable: true,
2493 get: function get() {
2494 return _utilities.printSchema;
2495 }
2496});
2497Object.defineProperty(exports, 'printIntrospectionSchema', {
2498 enumerable: true,
2499 get: function get() {
2500 return _utilities.printIntrospectionSchema;
2501 }
2502});
2503Object.defineProperty(exports, 'printType', {
2504 enumerable: true,
2505 get: function get() {
2506 return _utilities.printType;
2507 }
2508});
2509Object.defineProperty(exports, 'typeFromAST', {
2510 enumerable: true,
2511 get: function get() {
2512 return _utilities.typeFromAST;
2513 }
2514});
2515Object.defineProperty(exports, 'valueFromAST', {
2516 enumerable: true,
2517 get: function get() {
2518 return _utilities.valueFromAST;
2519 }
2520});
2521Object.defineProperty(exports, 'astFromValue', {
2522 enumerable: true,
2523 get: function get() {
2524 return _utilities.astFromValue;
2525 }
2526});
2527Object.defineProperty(exports, 'TypeInfo', {
2528 enumerable: true,
2529 get: function get() {
2530 return _utilities.TypeInfo;
2531 }
2532});
2533Object.defineProperty(exports, 'isValidJSValue', {
2534 enumerable: true,
2535 get: function get() {
2536 return _utilities.isValidJSValue;
2537 }
2538});
2539Object.defineProperty(exports, 'isValidLiteralValue', {
2540 enumerable: true,
2541 get: function get() {
2542 return _utilities.isValidLiteralValue;
2543 }
2544});
2545Object.defineProperty(exports, 'concatAST', {
2546 enumerable: true,
2547 get: function get() {
2548 return _utilities.concatAST;
2549 }
2550});
2551Object.defineProperty(exports, 'separateOperations', {
2552 enumerable: true,
2553 get: function get() {
2554 return _utilities.separateOperations;
2555 }
2556});
2557Object.defineProperty(exports, 'isEqualType', {
2558 enumerable: true,
2559 get: function get() {
2560 return _utilities.isEqualType;
2561 }
2562});
2563Object.defineProperty(exports, 'isTypeSubTypeOf', {
2564 enumerable: true,
2565 get: function get() {
2566 return _utilities.isTypeSubTypeOf;
2567 }
2568});
2569Object.defineProperty(exports, 'doTypesOverlap', {
2570 enumerable: true,
2571 get: function get() {
2572 return _utilities.doTypesOverlap;
2573 }
2574});
2575Object.defineProperty(exports, 'assertValidName', {
2576 enumerable: true,
2577 get: function get() {
2578 return _utilities.assertValidName;
2579 }
2580});
2581Object.defineProperty(exports, 'findBreakingChanges', {
2582 enumerable: true,
2583 get: function get() {
2584 return _utilities.findBreakingChanges;
2585 }
2586});
2587Object.defineProperty(exports, 'findDangerousChanges', {
2588 enumerable: true,
2589 get: function get() {
2590 return _utilities.findDangerousChanges;
2591 }
2592});
2593Object.defineProperty(exports, 'BreakingChangeType', {
2594 enumerable: true,
2595 get: function get() {
2596 return _utilities.BreakingChangeType;
2597 }
2598});
2599Object.defineProperty(exports, 'DangerousChangeType', {
2600 enumerable: true,
2601 get: function get() {
2602 return _utilities.DangerousChangeType;
2603 }
2604});
2605Object.defineProperty(exports, 'findDeprecatedUsages', {
2606 enumerable: true,
2607 get: function get() {
2608 return _utilities.findDeprecatedUsages;
2609 }
2610});
2611
2612/***/ }),
2613/* 15 */
2614/***/ (function(module, exports) {
2615
2616module.exports = function (it) {
2617 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
2618 return it;
2619};
2620
2621
2622/***/ }),
2623/* 16 */
2624/***/ (function(module, exports) {
2625
2626module.exports = require("buffer");
2627
2628/***/ }),
2629/* 17 */
2630/***/ (function(module, exports) {
2631
2632var hasOwnProperty = {}.hasOwnProperty;
2633module.exports = function (it, key) {
2634 return hasOwnProperty.call(it, key);
2635};
2636
2637
2638/***/ }),
2639/* 18 */
2640/***/ (function(module, exports, __webpack_require__) {
2641
2642var dP = __webpack_require__(9);
2643var createDesc = __webpack_require__(55);
2644module.exports = __webpack_require__(8) ? function (object, key, value) {
2645 return dP.f(object, key, createDesc(1, value));
2646} : function (object, key, value) {
2647 object[key] = value;
2648 return object;
2649};
2650
2651
2652/***/ }),
2653/* 19 */
2654/***/ (function(module, exports, __webpack_require__) {
2655
2656var global = __webpack_require__(2);
2657var hide = __webpack_require__(18);
2658var has = __webpack_require__(17);
2659var SRC = __webpack_require__(56)('src');
2660var TO_STRING = 'toString';
2661var $toString = Function[TO_STRING];
2662var TPL = ('' + $toString).split(TO_STRING);
2663
2664__webpack_require__(33).inspectSource = function (it) {
2665 return $toString.call(it);
2666};
2667
2668(module.exports = function (O, key, val, safe) {
2669 var isFunction = typeof val == 'function';
2670 if (isFunction) has(val, 'name') || hide(val, 'name', key);
2671 if (O[key] === val) return;
2672 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
2673 if (O === global) {
2674 O[key] = val;
2675 } else if (!safe) {
2676 delete O[key];
2677 hide(O, key, val);
2678 } else if (O[key]) {
2679 O[key] = val;
2680 } else {
2681 hide(O, key, val);
2682 }
2683// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
2684})(Function.prototype, TO_STRING, function toString() {
2685 return typeof this == 'function' && this[SRC] || $toString.call(this);
2686});
2687
2688
2689/***/ }),
2690/* 20 */
2691/***/ (function(module, exports, __webpack_require__) {
2692
2693var $export = __webpack_require__(0);
2694var fails = __webpack_require__(4);
2695var defined = __webpack_require__(35);
2696var quot = /"/g;
2697// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
2698var createHTML = function (string, tag, attribute, value) {
2699 var S = String(defined(string));
2700 var p1 = '<' + tag;
2701 if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
2702 return p1 + '>' + S + '</' + tag + '>';
2703};
2704module.exports = function (NAME, exec) {
2705 var O = {};
2706 O[NAME] = exec(createHTML);
2707 $export($export.P + $export.F * fails(function () {
2708 var test = ''[NAME]('"');
2709 return test !== test.toLowerCase() || test.split('"').length > 3;
2710 }), 'String', O);
2711};
2712
2713
2714/***/ }),
2715/* 21 */
2716/***/ (function(module, exports, __webpack_require__) {
2717
2718// to indexed object, toObject with fallback for non-array-like ES3 strings
2719var IObject = __webpack_require__(82);
2720var defined = __webpack_require__(35);
2721module.exports = function (it) {
2722 return IObject(defined(it));
2723};
2724
2725
2726/***/ }),
2727/* 22 */
2728/***/ (function(module, exports, __webpack_require__) {
2729
2730var pIE = __webpack_require__(83);
2731var createDesc = __webpack_require__(55);
2732var toIObject = __webpack_require__(21);
2733var toPrimitive = __webpack_require__(34);
2734var has = __webpack_require__(17);
2735var IE8_DOM_DEFINE = __webpack_require__(214);
2736var gOPD = Object.getOwnPropertyDescriptor;
2737
2738exports.f = __webpack_require__(8) ? gOPD : function getOwnPropertyDescriptor(O, P) {
2739 O = toIObject(O);
2740 P = toPrimitive(P, true);
2741 if (IE8_DOM_DEFINE) try {
2742 return gOPD(O, P);
2743 } catch (e) { /* empty */ }
2744 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
2745};
2746
2747
2748/***/ }),
2749/* 23 */
2750/***/ (function(module, exports, __webpack_require__) {
2751
2752// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
2753var has = __webpack_require__(17);
2754var toObject = __webpack_require__(13);
2755var IE_PROTO = __webpack_require__(149)('IE_PROTO');
2756var ObjectProto = Object.prototype;
2757
2758module.exports = Object.getPrototypeOf || function (O) {
2759 O = toObject(O);
2760 if (has(O, IE_PROTO)) return O[IE_PROTO];
2761 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
2762 return O.constructor.prototype;
2763 } return O instanceof Object ? ObjectProto : null;
2764};
2765
2766
2767/***/ }),
2768/* 24 */
2769/***/ (function(module, exports) {
2770
2771/**
2772 * Checks if `value` is classified as an `Array` object.
2773 *
2774 * @static
2775 * @memberOf _
2776 * @since 0.1.0
2777 * @category Lang
2778 * @param {*} value The value to check.
2779 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
2780 * @example
2781 *
2782 * _.isArray([1, 2, 3]);
2783 * // => true
2784 *
2785 * _.isArray(document.body.children);
2786 * // => false
2787 *
2788 * _.isArray('abc');
2789 * // => false
2790 *
2791 * _.isArray(_.noop);
2792 * // => false
2793 */
2794var isArray = Array.isArray;
2795
2796module.exports = isArray;
2797
2798
2799/***/ }),
2800/* 25 */
2801/***/ (function(module, exports, __webpack_require__) {
2802
2803// optional / simple context binding
2804var aFunction = __webpack_require__(15);
2805module.exports = function (fn, that, length) {
2806 aFunction(fn);
2807 if (that === undefined) return fn;
2808 switch (length) {
2809 case 1: return function (a) {
2810 return fn.call(that, a);
2811 };
2812 case 2: return function (a, b) {
2813 return fn.call(that, a, b);
2814 };
2815 case 3: return function (a, b, c) {
2816 return fn.call(that, a, b, c);
2817 };
2818 }
2819 return function (/* ...args */) {
2820 return fn.apply(that, arguments);
2821 };
2822};
2823
2824
2825/***/ }),
2826/* 26 */
2827/***/ (function(module, exports) {
2828
2829var toString = {}.toString;
2830
2831module.exports = function (it) {
2832 return toString.call(it).slice(8, -1);
2833};
2834
2835
2836/***/ }),
2837/* 27 */
2838/***/ (function(module, exports, __webpack_require__) {
2839
2840"use strict";
2841
2842var fails = __webpack_require__(4);
2843
2844module.exports = function (method, arg) {
2845 return !!method && fails(function () {
2846 // eslint-disable-next-line no-useless-call
2847 arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
2848 });
2849};
2850
2851
2852/***/ }),
2853/* 28 */
2854/***/ (function(module, exports, __webpack_require__) {
2855
2856"use strict";
2857
2858
2859Object.defineProperty(exports, "__esModule", {
2860 value: true
2861});
2862exports.print = print;
2863
2864var _visitor = __webpack_require__(85);
2865
2866/**
2867 * Converts an AST into a string, using one set of reasonable
2868 * formatting rules.
2869 */
2870function print(ast) {
2871 return (0, _visitor.visit)(ast, { leave: printDocASTReducer });
2872} /**
2873 * Copyright (c) 2015-present, Facebook, Inc.
2874 *
2875 * This source code is licensed under the MIT license found in the
2876 * LICENSE file in the root directory of this source tree.
2877 */
2878
2879var printDocASTReducer = {
2880 Name: function Name(node) {
2881 return node.value;
2882 },
2883 Variable: function Variable(node) {
2884 return '$' + node.name;
2885 },
2886
2887 // Document
2888
2889 Document: function Document(node) {
2890 return join(node.definitions, '\n\n') + '\n';
2891 },
2892
2893 OperationDefinition: function OperationDefinition(node) {
2894 var op = node.operation;
2895 var name = node.name;
2896 var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');
2897 var directives = join(node.directives, ' ');
2898 var selectionSet = node.selectionSet;
2899 // Anonymous queries with no directives or variable definitions can use
2900 // the query short form.
2901 return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');
2902 },
2903
2904
2905 VariableDefinition: function VariableDefinition(_ref) {
2906 var variable = _ref.variable,
2907 type = _ref.type,
2908 defaultValue = _ref.defaultValue;
2909 return variable + ': ' + type + wrap(' = ', defaultValue);
2910 },
2911
2912 SelectionSet: function SelectionSet(_ref2) {
2913 var selections = _ref2.selections;
2914 return block(selections);
2915 },
2916
2917 Field: function Field(_ref3) {
2918 var alias = _ref3.alias,
2919 name = _ref3.name,
2920 args = _ref3.arguments,
2921 directives = _ref3.directives,
2922 selectionSet = _ref3.selectionSet;
2923 return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');
2924 },
2925
2926 Argument: function Argument(_ref4) {
2927 var name = _ref4.name,
2928 value = _ref4.value;
2929 return name + ': ' + value;
2930 },
2931
2932 // Fragments
2933
2934 FragmentSpread: function FragmentSpread(_ref5) {
2935 var name = _ref5.name,
2936 directives = _ref5.directives;
2937 return '...' + name + wrap(' ', join(directives, ' '));
2938 },
2939
2940 InlineFragment: function InlineFragment(_ref6) {
2941 var typeCondition = _ref6.typeCondition,
2942 directives = _ref6.directives,
2943 selectionSet = _ref6.selectionSet;
2944 return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');
2945 },
2946
2947 FragmentDefinition: function FragmentDefinition(_ref7) {
2948 var name = _ref7.name,
2949 typeCondition = _ref7.typeCondition,
2950 directives = _ref7.directives,
2951 selectionSet = _ref7.selectionSet;
2952 return 'fragment ' + name + ' on ' + typeCondition + ' ' + wrap('', join(directives, ' '), ' ') + selectionSet;
2953 },
2954
2955 // Value
2956
2957 IntValue: function IntValue(_ref8) {
2958 var value = _ref8.value;
2959 return value;
2960 },
2961 FloatValue: function FloatValue(_ref9) {
2962 var value = _ref9.value;
2963 return value;
2964 },
2965 StringValue: function StringValue(_ref10) {
2966 var value = _ref10.value;
2967 return JSON.stringify(value);
2968 },
2969 BooleanValue: function BooleanValue(_ref11) {
2970 var value = _ref11.value;
2971 return JSON.stringify(value);
2972 },
2973 NullValue: function NullValue() {
2974 return 'null';
2975 },
2976 EnumValue: function EnumValue(_ref12) {
2977 var value = _ref12.value;
2978 return value;
2979 },
2980 ListValue: function ListValue(_ref13) {
2981 var values = _ref13.values;
2982 return '[' + join(values, ', ') + ']';
2983 },
2984 ObjectValue: function ObjectValue(_ref14) {
2985 var fields = _ref14.fields;
2986 return '{' + join(fields, ', ') + '}';
2987 },
2988 ObjectField: function ObjectField(_ref15) {
2989 var name = _ref15.name,
2990 value = _ref15.value;
2991 return name + ': ' + value;
2992 },
2993
2994 // Directive
2995
2996 Directive: function Directive(_ref16) {
2997 var name = _ref16.name,
2998 args = _ref16.arguments;
2999 return '@' + name + wrap('(', join(args, ', '), ')');
3000 },
3001
3002 // Type
3003
3004 NamedType: function NamedType(_ref17) {
3005 var name = _ref17.name;
3006 return name;
3007 },
3008 ListType: function ListType(_ref18) {
3009 var type = _ref18.type;
3010 return '[' + type + ']';
3011 },
3012 NonNullType: function NonNullType(_ref19) {
3013 var type = _ref19.type;
3014 return type + '!';
3015 },
3016
3017 // Type System Definitions
3018
3019 SchemaDefinition: function SchemaDefinition(_ref20) {
3020 var directives = _ref20.directives,
3021 operationTypes = _ref20.operationTypes;
3022 return join(['schema', join(directives, ' '), block(operationTypes)], ' ');
3023 },
3024
3025 OperationTypeDefinition: function OperationTypeDefinition(_ref21) {
3026 var operation = _ref21.operation,
3027 type = _ref21.type;
3028 return operation + ': ' + type;
3029 },
3030
3031 ScalarTypeDefinition: function ScalarTypeDefinition(_ref22) {
3032 var name = _ref22.name,
3033 directives = _ref22.directives;
3034 return join(['scalar', name, join(directives, ' ')], ' ');
3035 },
3036
3037 ObjectTypeDefinition: function ObjectTypeDefinition(_ref23) {
3038 var name = _ref23.name,
3039 interfaces = _ref23.interfaces,
3040 directives = _ref23.directives,
3041 fields = _ref23.fields;
3042 return join(['type', name, wrap('implements ', join(interfaces, ', ')), join(directives, ' '), block(fields)], ' ');
3043 },
3044
3045 FieldDefinition: function FieldDefinition(_ref24) {
3046 var name = _ref24.name,
3047 args = _ref24.arguments,
3048 type = _ref24.type,
3049 directives = _ref24.directives;
3050 return name + wrap('(', join(args, ', '), ')') + ': ' + type + wrap(' ', join(directives, ' '));
3051 },
3052
3053 InputValueDefinition: function InputValueDefinition(_ref25) {
3054 var name = _ref25.name,
3055 type = _ref25.type,
3056 defaultValue = _ref25.defaultValue,
3057 directives = _ref25.directives;
3058 return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');
3059 },
3060
3061 InterfaceTypeDefinition: function InterfaceTypeDefinition(_ref26) {
3062 var name = _ref26.name,
3063 directives = _ref26.directives,
3064 fields = _ref26.fields;
3065 return join(['interface', name, join(directives, ' '), block(fields)], ' ');
3066 },
3067
3068 UnionTypeDefinition: function UnionTypeDefinition(_ref27) {
3069 var name = _ref27.name,
3070 directives = _ref27.directives,
3071 types = _ref27.types;
3072 return join(['union', name, join(directives, ' '), '= ' + join(types, ' | ')], ' ');
3073 },
3074
3075 EnumTypeDefinition: function EnumTypeDefinition(_ref28) {
3076 var name = _ref28.name,
3077 directives = _ref28.directives,
3078 values = _ref28.values;
3079 return join(['enum', name, join(directives, ' '), block(values)], ' ');
3080 },
3081
3082 EnumValueDefinition: function EnumValueDefinition(_ref29) {
3083 var name = _ref29.name,
3084 directives = _ref29.directives;
3085 return join([name, join(directives, ' ')], ' ');
3086 },
3087
3088 InputObjectTypeDefinition: function InputObjectTypeDefinition(_ref30) {
3089 var name = _ref30.name,
3090 directives = _ref30.directives,
3091 fields = _ref30.fields;
3092 return join(['input', name, join(directives, ' '), block(fields)], ' ');
3093 },
3094
3095 TypeExtensionDefinition: function TypeExtensionDefinition(_ref31) {
3096 var definition = _ref31.definition;
3097 return 'extend ' + definition;
3098 },
3099
3100 DirectiveDefinition: function DirectiveDefinition(_ref32) {
3101 var name = _ref32.name,
3102 args = _ref32.arguments,
3103 locations = _ref32.locations;
3104 return 'directive @' + name + wrap('(', join(args, ', '), ')') + ' on ' + join(locations, ' | ');
3105 }
3106};
3107
3108/**
3109 * Given maybeArray, print an empty string if it is null or empty, otherwise
3110 * print all items together separated by separator if provided
3111 */
3112function join(maybeArray, separator) {
3113 return maybeArray ? maybeArray.filter(function (x) {
3114 return x;
3115 }).join(separator || '') : '';
3116}
3117
3118/**
3119 * Given array, print each item on its own line, wrapped in an
3120 * indented "{ }" block.
3121 */
3122function block(array) {
3123 return array && array.length !== 0 ? indent('{\n' + join(array, '\n')) + '\n}' : '{}';
3124}
3125
3126/**
3127 * If maybeString is not null or empty, then wrap with start and end, otherwise
3128 * print an empty string.
3129 */
3130function wrap(start, maybeString, end) {
3131 return maybeString ? start + maybeString + (end || '') : '';
3132}
3133
3134function indent(maybeString) {
3135 return maybeString && maybeString.replace(/\n/g, '\n ');
3136}
3137
3138/***/ }),
3139/* 29 */
3140/***/ (function(module, exports, __webpack_require__) {
3141
3142/* eslint-disable node/no-deprecated-api */
3143var buffer = __webpack_require__(16)
3144var Buffer = buffer.Buffer
3145
3146// alternative to using Object.keys for old browsers
3147function copyProps (src, dst) {
3148 for (var key in src) {
3149 dst[key] = src[key]
3150 }
3151}
3152if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
3153 module.exports = buffer
3154} else {
3155 // Copy properties from require('buffer')
3156 copyProps(buffer, exports)
3157 exports.Buffer = SafeBuffer
3158}
3159
3160function SafeBuffer (arg, encodingOrOffset, length) {
3161 return Buffer(arg, encodingOrOffset, length)
3162}
3163
3164// Copy static methods from Buffer
3165copyProps(Buffer, SafeBuffer)
3166
3167SafeBuffer.from = function (arg, encodingOrOffset, length) {
3168 if (typeof arg === 'number') {
3169 throw new TypeError('Argument must not be a number')
3170 }
3171 return Buffer(arg, encodingOrOffset, length)
3172}
3173
3174SafeBuffer.alloc = function (size, fill, encoding) {
3175 if (typeof size !== 'number') {
3176 throw new TypeError('Argument must be a number')
3177 }
3178 var buf = Buffer(size)
3179 if (fill !== undefined) {
3180 if (typeof encoding === 'string') {
3181 buf.fill(fill, encoding)
3182 } else {
3183 buf.fill(fill)
3184 }
3185 } else {
3186 buf.fill(0)
3187 }
3188 return buf
3189}
3190
3191SafeBuffer.allocUnsafe = function (size) {
3192 if (typeof size !== 'number') {
3193 throw new TypeError('Argument must be a number')
3194 }
3195 return Buffer(size)
3196}
3197
3198SafeBuffer.allocUnsafeSlow = function (size) {
3199 if (typeof size !== 'number') {
3200 throw new TypeError('Argument must be a number')
3201 }
3202 return buffer.SlowBuffer(size)
3203}
3204
3205
3206/***/ }),
3207/* 30 */
3208/***/ (function(module, exports, __webpack_require__) {
3209
3210/**
3211 * Detect Electron renderer process, which is node, but we should
3212 * treat as a browser.
3213 */
3214
3215if (typeof process !== 'undefined' && process.type === 'renderer') {
3216 module.exports = __webpack_require__(614);
3217} else {
3218 module.exports = __webpack_require__(615);
3219}
3220
3221
3222/***/ }),
3223/* 31 */
3224/***/ (function(module, exports) {
3225
3226// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
3227var global = module.exports = typeof window != 'undefined' && window.Math == Math
3228 ? window : typeof self != 'undefined' && self.Math == Math ? self
3229 // eslint-disable-next-line no-new-func
3230 : Function('return this')();
3231if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
3232
3233
3234/***/ }),
3235/* 32 */
3236/***/ (function(module, exports, __webpack_require__) {
3237
3238var store = __webpack_require__(328)('wks');
3239var uid = __webpack_require__(329);
3240var Symbol = __webpack_require__(31).Symbol;
3241var USE_SYMBOL = typeof Symbol == 'function';
3242
3243var $exports = module.exports = function (name) {
3244 return store[name] || (store[name] =
3245 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
3246};
3247
3248$exports.store = store;
3249
3250
3251/***/ }),
3252/* 33 */
3253/***/ (function(module, exports) {
3254
3255var core = module.exports = { version: '2.5.3' };
3256if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
3257
3258
3259/***/ }),
3260/* 34 */
3261/***/ (function(module, exports, __webpack_require__) {
3262
3263// 7.1.1 ToPrimitive(input [, PreferredType])
3264var isObject = __webpack_require__(5);
3265// instead of the ES6 spec version, we didn't implement @@toPrimitive case
3266// and the second argument - flag - preferred type is a string
3267module.exports = function (it, S) {
3268 if (!isObject(it)) return it;
3269 var fn, val;
3270 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
3271 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
3272 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
3273 throw TypeError("Can't convert object to primitive value");
3274};
3275
3276
3277/***/ }),
3278/* 35 */
3279/***/ (function(module, exports) {
3280
3281// 7.2.1 RequireObjectCoercible(argument)
3282module.exports = function (it) {
3283 if (it == undefined) throw TypeError("Can't call method on " + it);
3284 return it;
3285};
3286
3287
3288/***/ }),
3289/* 36 */
3290/***/ (function(module, exports) {
3291
3292// 7.1.4 ToInteger
3293var ceil = Math.ceil;
3294var floor = Math.floor;
3295module.exports = function (it) {
3296 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
3297};
3298
3299
3300/***/ }),
3301/* 37 */
3302/***/ (function(module, exports, __webpack_require__) {
3303
3304// most Object methods by ES6 should accept primitives
3305var $export = __webpack_require__(0);
3306var core = __webpack_require__(33);
3307var fails = __webpack_require__(4);
3308module.exports = function (KEY, exec) {
3309 var fn = (core.Object || {})[KEY] || Object[KEY];
3310 var exp = {};
3311 exp[KEY] = exec(fn);
3312 $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
3313};
3314
3315
3316/***/ }),
3317/* 38 */
3318/***/ (function(module, exports, __webpack_require__) {
3319
3320// 0 -> Array#forEach
3321// 1 -> Array#map
3322// 2 -> Array#filter
3323// 3 -> Array#some
3324// 4 -> Array#every
3325// 5 -> Array#find
3326// 6 -> Array#findIndex
3327var ctx = __webpack_require__(25);
3328var IObject = __webpack_require__(82);
3329var toObject = __webpack_require__(13);
3330var toLength = __webpack_require__(10);
3331var asc = __webpack_require__(166);
3332module.exports = function (TYPE, $create) {
3333 var IS_MAP = TYPE == 1;
3334 var IS_FILTER = TYPE == 2;
3335 var IS_SOME = TYPE == 3;
3336 var IS_EVERY = TYPE == 4;
3337 var IS_FIND_INDEX = TYPE == 6;
3338 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
3339 var create = $create || asc;
3340 return function ($this, callbackfn, that) {
3341 var O = toObject($this);
3342 var self = IObject(O);
3343 var f = ctx(callbackfn, that, 3);
3344 var length = toLength(self.length);
3345 var index = 0;
3346 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
3347 var val, res;
3348 for (;length > index; index++) if (NO_HOLES || index in self) {
3349 val = self[index];
3350 res = f(val, index, O);
3351 if (TYPE) {
3352 if (IS_MAP) result[index] = res; // map
3353 else if (res) switch (TYPE) {
3354 case 3: return true; // some
3355 case 5: return val; // find
3356 case 6: return index; // findIndex
3357 case 2: result.push(val); // filter
3358 } else if (IS_EVERY) return false; // every
3359 }
3360 }
3361 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
3362 };
3363};
3364
3365
3366/***/ }),
3367/* 39 */
3368/***/ (function(module, exports) {
3369
3370/**
3371 * Copyright (c) 2016, Lee Byron
3372 * All rights reserved.
3373 *
3374 * This source code is licensed under the MIT license found in the
3375 * LICENSE file in the root directory of this source tree.
3376 *
3377 * @ignore
3378 */
3379
3380/**
3381 * [Iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterator)
3382 * is a *protocol* which describes a standard way to produce a sequence of
3383 * values, typically the values of the Iterable represented by this Iterator.
3384 *
3385 * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterator-interface)
3386 * it can be utilized by any version of JavaScript.
3387 *
3388 * @typedef {Object} Iterator
3389 * @template T The type of each iterated value
3390 * @property {function (): { value: T, done: boolean }} next
3391 * A method which produces either the next value in a sequence or a result
3392 * where the `done` property is `true` indicating the end of the Iterator.
3393 */
3394
3395/**
3396 * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable)
3397 * is a *protocol* which when implemented allows a JavaScript object to define
3398 * their iteration behavior, such as what values are looped over in a `for..of`
3399 * loop or `iterall`'s `forEach` function. Many [built-in types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#Builtin_iterables)
3400 * implement the Iterable protocol, including `Array` and `Map`.
3401 *
3402 * While described by the [ES2015 version of JavaScript](http://www.ecma-international.org/ecma-262/6.0/#sec-iterable-interface)
3403 * it can be utilized by any version of JavaScript.
3404 *
3405 * @typedef {Object} Iterable
3406 * @template T The type of each iterated value
3407 * @property {function (): Iterator<T>} Symbol.iterator
3408 * A method which produces an Iterator for this Iterable.
3409 */
3410
3411// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
3412var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator
3413
3414/**
3415 * A property name to be used as the name of an Iterable's method responsible
3416 * for producing an Iterator, referred to as `@@iterator`. Typically represents
3417 * the value `Symbol.iterator` but falls back to the string `"@@iterator"` when
3418 * `Symbol.iterator` is not defined.
3419 *
3420 * Use `$$iterator` for defining new Iterables instead of `Symbol.iterator`,
3421 * but do not use it for accessing existing Iterables, instead use
3422 * `getIterator()` or `isIterable()`.
3423 *
3424 * @example
3425 *
3426 * var $$iterator = require('iterall').$$iterator
3427 *
3428 * function Counter (to) {
3429 * this.to = to
3430 * }
3431 *
3432 * Counter.prototype[$$iterator] = function () {
3433 * return {
3434 * to: this.to,
3435 * num: 0,
3436 * next () {
3437 * if (this.num >= this.to) {
3438 * return { value: undefined, done: true }
3439 * }
3440 * return { value: this.num++, done: false }
3441 * }
3442 * }
3443 * }
3444 *
3445 * var counter = new Counter(3)
3446 * for (var number of counter) {
3447 * console.log(number) // 0 ... 1 ... 2
3448 * }
3449 *
3450 * @type {Symbol|string}
3451 */
3452var $$iterator = SYMBOL_ITERATOR || '@@iterator'
3453exports.$$iterator = $$iterator
3454
3455/**
3456 * Returns true if the provided object implements the Iterator protocol via
3457 * either implementing a `Symbol.iterator` or `"@@iterator"` method.
3458 *
3459 * @example
3460 *
3461 * var isIterable = require('iterall').isIterable
3462 * isIterable([ 1, 2, 3 ]) // true
3463 * isIterable('ABC') // true
3464 * isIterable({ length: 1, 0: 'Alpha' }) // false
3465 * isIterable({ key: 'value' }) // false
3466 * isIterable(new Map()) // true
3467 *
3468 * @param obj
3469 * A value which might implement the Iterable protocol.
3470 * @return {boolean} true if Iterable.
3471 */
3472function isIterable(obj) {
3473 return !!getIteratorMethod(obj)
3474}
3475exports.isIterable = isIterable
3476
3477/**
3478 * Returns true if the provided object implements the Array-like protocol via
3479 * defining a positive-integer `length` property.
3480 *
3481 * @example
3482 *
3483 * var isArrayLike = require('iterall').isArrayLike
3484 * isArrayLike([ 1, 2, 3 ]) // true
3485 * isArrayLike('ABC') // true
3486 * isArrayLike({ length: 1, 0: 'Alpha' }) // true
3487 * isArrayLike({ key: 'value' }) // false
3488 * isArrayLike(new Map()) // false
3489 *
3490 * @param obj
3491 * A value which might implement the Array-like protocol.
3492 * @return {boolean} true if Array-like.
3493 */
3494function isArrayLike(obj) {
3495 var length = obj != null && obj.length
3496 return typeof length === 'number' && length >= 0 && length % 1 === 0
3497}
3498exports.isArrayLike = isArrayLike
3499
3500/**
3501 * Returns true if the provided object is an Object (i.e. not a string literal)
3502 * and is either Iterable or Array-like.
3503 *
3504 * This may be used in place of [Array.isArray()][isArray] to determine if an
3505 * object should be iterated-over. It always excludes string literals and
3506 * includes Arrays (regardless of if it is Iterable). It also includes other
3507 * Array-like objects such as NodeList, TypedArray, and Buffer.
3508 *
3509 * @example
3510 *
3511 * var isCollection = require('iterall').isCollection
3512 * isCollection([ 1, 2, 3 ]) // true
3513 * isCollection('ABC') // false
3514 * isCollection({ length: 1, 0: 'Alpha' }) // true
3515 * isCollection({ key: 'value' }) // false
3516 * isCollection(new Map()) // true
3517 *
3518 * @example
3519 *
3520 * var forEach = require('iterall').forEach
3521 * if (isCollection(obj)) {
3522 * forEach(obj, function (value) {
3523 * console.log(value)
3524 * })
3525 * }
3526 *
3527 * @param obj
3528 * An Object value which might implement the Iterable or Array-like protocols.
3529 * @return {boolean} true if Iterable or Array-like Object.
3530 */
3531function isCollection(obj) {
3532 return Object(obj) === obj && (isArrayLike(obj) || isIterable(obj))
3533}
3534exports.isCollection = isCollection
3535
3536/**
3537 * If the provided object implements the Iterator protocol, its Iterator object
3538 * is returned. Otherwise returns undefined.
3539 *
3540 * @example
3541 *
3542 * var getIterator = require('iterall').getIterator
3543 * var iterator = getIterator([ 1, 2, 3 ])
3544 * iterator.next() // { value: 1, done: false }
3545 * iterator.next() // { value: 2, done: false }
3546 * iterator.next() // { value: 3, done: false }
3547 * iterator.next() // { value: undefined, done: true }
3548 *
3549 * @template T the type of each iterated value
3550 * @param {Iterable<T>} iterable
3551 * An Iterable object which is the source of an Iterator.
3552 * @return {Iterator<T>} new Iterator instance.
3553 */
3554function getIterator(iterable) {
3555 var method = getIteratorMethod(iterable)
3556 if (method) {
3557 return method.call(iterable)
3558 }
3559}
3560exports.getIterator = getIterator
3561
3562/**
3563 * If the provided object implements the Iterator protocol, the method
3564 * responsible for producing its Iterator object is returned.
3565 *
3566 * This is used in rare cases for performance tuning. This method must be called
3567 * with obj as the contextual this-argument.
3568 *
3569 * @example
3570 *
3571 * var getIteratorMethod = require('iterall').getIteratorMethod
3572 * var myArray = [ 1, 2, 3 ]
3573 * var method = getIteratorMethod(myArray)
3574 * if (method) {
3575 * var iterator = method.call(myArray)
3576 * }
3577 *
3578 * @template T the type of each iterated value
3579 * @param {Iterable<T>} iterable
3580 * An Iterable object which defines an `@@iterator` method.
3581 * @return {function(): Iterator<T>} `@@iterator` method.
3582 */
3583function getIteratorMethod(iterable) {
3584 if (iterable != null) {
3585 var method =
3586 (SYMBOL_ITERATOR && iterable[SYMBOL_ITERATOR]) || iterable['@@iterator']
3587 if (typeof method === 'function') {
3588 return method
3589 }
3590 }
3591}
3592exports.getIteratorMethod = getIteratorMethod
3593
3594/**
3595 * Similar to `getIterator()`, this method returns a new Iterator given an
3596 * Iterable. However it will also create an Iterator for a non-Iterable
3597 * Array-like collection, such as Array in a non-ES2015 environment.
3598 *
3599 * `createIterator` is complimentary to `forEach`, but allows a "pull"-based
3600 * iteration as opposed to `forEach`'s "push"-based iteration.
3601 *
3602 * `createIterator` produces an Iterator for Array-likes with the same behavior
3603 * as ArrayIteratorPrototype described in the ECMAScript specification, and
3604 * does *not* skip over "holes".
3605 *
3606 * @example
3607 *
3608 * var createIterator = require('iterall').createIterator
3609 *
3610 * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' }
3611 * var iterator = createIterator(myArraylike)
3612 * iterator.next() // { value: 'Alpha', done: false }
3613 * iterator.next() // { value: 'Bravo', done: false }
3614 * iterator.next() // { value: 'Charlie', done: false }
3615 * iterator.next() // { value: undefined, done: true }
3616 *
3617 * @template T the type of each iterated value
3618 * @param {Iterable<T>|{ length: number }} collection
3619 * An Iterable or Array-like object to produce an Iterator.
3620 * @return {Iterator<T>} new Iterator instance.
3621 */
3622function createIterator(collection) {
3623 if (collection != null) {
3624 var iterator = getIterator(collection)
3625 if (iterator) {
3626 return iterator
3627 }
3628 if (isArrayLike(collection)) {
3629 return new ArrayLikeIterator(collection)
3630 }
3631 }
3632}
3633exports.createIterator = createIterator
3634
3635// When the object provided to `createIterator` is not Iterable but is
3636// Array-like, this simple Iterator is created.
3637function ArrayLikeIterator(obj) {
3638 this._o = obj
3639 this._i = 0
3640}
3641
3642// Note: all Iterators are themselves Iterable.
3643ArrayLikeIterator.prototype[$$iterator] = function() {
3644 return this
3645}
3646
3647// A simple state-machine determines the IteratorResult returned, yielding
3648// each value in the Array-like object in order of their indicies.
3649ArrayLikeIterator.prototype.next = function() {
3650 if (this._o === void 0 || this._i >= this._o.length) {
3651 this._o = void 0
3652 return { value: void 0, done: true }
3653 }
3654 return { value: this._o[this._i++], done: false }
3655}
3656
3657/**
3658 * Given an object which either implements the Iterable protocol or is
3659 * Array-like, iterate over it, calling the `callback` at each iteration.
3660 *
3661 * Use `forEach` where you would expect to use a `for ... of` loop in ES6.
3662 * However `forEach` adheres to the behavior of [Array#forEach][] described in
3663 * the ECMAScript specification, skipping over "holes" in Array-likes. It will
3664 * also delegate to a `forEach` method on `collection` if one is defined,
3665 * ensuring native performance for `Arrays`.
3666 *
3667 * Similar to [Array#forEach][], the `callback` function accepts three
3668 * arguments, and is provided with `thisArg` as the calling context.
3669 *
3670 * Note: providing an infinite Iterator to forEach will produce an error.
3671 *
3672 * [Array#forEach]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
3673 *
3674 * @example
3675 *
3676 * var forEach = require('iterall').forEach
3677 *
3678 * forEach(myIterable, function (value, index, iterable) {
3679 * console.log(value, index, iterable === myIterable)
3680 * })
3681 *
3682 * @example
3683 *
3684 * // ES6:
3685 * for (let value of myIterable) {
3686 * console.log(value)
3687 * }
3688 *
3689 * // Any JavaScript environment:
3690 * forEach(myIterable, function (value) {
3691 * console.log(value)
3692 * })
3693 *
3694 * @template T the type of each iterated value
3695 * @param {Iterable<T>|{ length: number }} collection
3696 * The Iterable or array to iterate over.
3697 * @param {function(T, number, object)} callback
3698 * Function to execute for each iteration, taking up to three arguments
3699 * @param [thisArg]
3700 * Optional. Value to use as `this` when executing `callback`.
3701 */
3702function forEach(collection, callback, thisArg) {
3703 if (collection != null) {
3704 if (typeof collection.forEach === 'function') {
3705 return collection.forEach(callback, thisArg)
3706 }
3707 var i = 0
3708 var iterator = getIterator(collection)
3709 if (iterator) {
3710 var step
3711 while (!(step = iterator.next()).done) {
3712 callback.call(thisArg, step.value, i++, collection)
3713 // Infinite Iterators could cause forEach to run forever.
3714 // After a very large number of iterations, produce an error.
3715 /* istanbul ignore if */
3716 if (i > 9999999) {
3717 throw new TypeError('Near-infinite iteration.')
3718 }
3719 }
3720 } else if (isArrayLike(collection)) {
3721 for (; i < collection.length; i++) {
3722 if (collection.hasOwnProperty(i)) {
3723 callback.call(thisArg, collection[i], i, collection)
3724 }
3725 }
3726 }
3727 }
3728}
3729exports.forEach = forEach
3730
3731/////////////////////////////////////////////////////
3732// //
3733// ASYNC ITERATORS //
3734// //
3735/////////////////////////////////////////////////////
3736
3737/**
3738 * [AsyncIterator](https://tc39.github.io/proposal-async-iteration/)
3739 * is a *protocol* which describes a standard way to produce and consume an
3740 * asynchronous sequence of values, typically the values of the AsyncIterable
3741 * represented by this AsyncIterator.
3742 *
3743 * AsyncIterator is similar to Observable or Stream.
3744 *
3745 * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/)
3746 * it can be utilized by any version of JavaScript.
3747 *
3748 * @typedef {Object} AsyncIterator
3749 * @template T The type of each iterated value
3750 * @property {function (): Promise<{ value: T, done: boolean }>} next
3751 * A method which produces a Promise which resolves to either the next value
3752 * in a sequence or a result where the `done` property is `true` indicating
3753 * the end of the sequence of values. It may also produce a Promise which
3754 * becomes rejected, indicating a failure.
3755 */
3756
3757/**
3758 * AsyncIterable is a *protocol* which when implemented allows a JavaScript
3759 * object to define their asynchronous iteration behavior, such as what values
3760 * are looped over in a `for-await-of` loop or `iterall`'s `forAwaitEach`
3761 * function.
3762 *
3763 * While described as a proposed addition to the [ES2017 version of JavaScript](https://tc39.github.io/proposal-async-iteration/)
3764 * it can be utilized by any version of JavaScript.
3765 *
3766 * @typedef {Object} AsyncIterable
3767 * @template T The type of each iterated value
3768 * @property {function (): AsyncIterator<T>} Symbol.asyncIterator
3769 * A method which produces an AsyncIterator for this AsyncIterable.
3770 */
3771
3772// In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
3773var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator
3774
3775/**
3776 * A property name to be used as the name of an AsyncIterable's method
3777 * responsible for producing an Iterator, referred to as `@@asyncIterator`.
3778 * Typically represents the value `Symbol.asyncIterator` but falls back to the
3779 * string `"@@asyncIterator"` when `Symbol.asyncIterator` is not defined.
3780 *
3781 * Use `$$asyncIterator` for defining new AsyncIterables instead of
3782 * `Symbol.asyncIterator`, but do not use it for accessing existing Iterables,
3783 * instead use `getAsyncIterator()` or `isAsyncIterable()`.
3784 *
3785 * @example
3786 *
3787 * var $$asyncIterator = require('iterall').$$asyncIterator
3788 *
3789 * function Chirper (to) {
3790 * this.to = to
3791 * }
3792 *
3793 * Chirper.prototype[$$asyncIterator] = function () {
3794 * return {
3795 * to: this.to,
3796 * num: 0,
3797 * next () {
3798 * return new Promise(function (resolve) {
3799 * if (this.num >= this.to) {
3800 * resolve({ value: undefined, done: true })
3801 * } else {
3802 * setTimeout(function () {
3803 * resolve({ value: this.num++, done: false })
3804 * }, 1000)
3805 * }
3806 * }
3807 * }
3808 * }
3809 * }
3810 *
3811 * var chirper = new Chirper(3)
3812 * for await (var number of chirper) {
3813 * console.log(number) // 0 ...wait... 1 ...wait... 2
3814 * }
3815 *
3816 * @type {Symbol|string}
3817 */
3818var $$asyncIterator = SYMBOL_ASYNC_ITERATOR || '@@asyncIterator'
3819exports.$$asyncIterator = $$asyncIterator
3820
3821/**
3822 * Returns true if the provided object implements the AsyncIterator protocol via
3823 * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
3824 *
3825 * @example
3826 *
3827 * var isAsyncIterable = require('iterall').isAsyncIterable
3828 * isAsyncIterable(myStream) // true
3829 * isAsyncIterable('ABC') // false
3830 *
3831 * @param obj
3832 * A value which might implement the AsyncIterable protocol.
3833 * @return {boolean} true if AsyncIterable.
3834 */
3835function isAsyncIterable(obj) {
3836 return !!getAsyncIteratorMethod(obj)
3837}
3838exports.isAsyncIterable = isAsyncIterable
3839
3840/**
3841 * If the provided object implements the AsyncIterator protocol, its
3842 * AsyncIterator object is returned. Otherwise returns undefined.
3843 *
3844 * @example
3845 *
3846 * var getAsyncIterator = require('iterall').getAsyncIterator
3847 * var asyncIterator = getAsyncIterator(myStream)
3848 * asyncIterator.next().then(console.log) // { value: 1, done: false }
3849 * asyncIterator.next().then(console.log) // { value: 2, done: false }
3850 * asyncIterator.next().then(console.log) // { value: 3, done: false }
3851 * asyncIterator.next().then(console.log) // { value: undefined, done: true }
3852 *
3853 * @template T the type of each iterated value
3854 * @param {AsyncIterable<T>} asyncIterable
3855 * An AsyncIterable object which is the source of an AsyncIterator.
3856 * @return {AsyncIterator<T>} new AsyncIterator instance.
3857 */
3858function getAsyncIterator(asyncIterable) {
3859 var method = getAsyncIteratorMethod(asyncIterable)
3860 if (method) {
3861 return method.call(asyncIterable)
3862 }
3863}
3864exports.getAsyncIterator = getAsyncIterator
3865
3866/**
3867 * If the provided object implements the AsyncIterator protocol, the method
3868 * responsible for producing its AsyncIterator object is returned.
3869 *
3870 * This is used in rare cases for performance tuning. This method must be called
3871 * with obj as the contextual this-argument.
3872 *
3873 * @example
3874 *
3875 * var getAsyncIteratorMethod = require('iterall').getAsyncIteratorMethod
3876 * var method = getAsyncIteratorMethod(myStream)
3877 * if (method) {
3878 * var asyncIterator = method.call(myStream)
3879 * }
3880 *
3881 * @template T the type of each iterated value
3882 * @param {AsyncIterable<T>} asyncIterable
3883 * An AsyncIterable object which defines an `@@asyncIterator` method.
3884 * @return {function(): AsyncIterator<T>} `@@asyncIterator` method.
3885 */
3886function getAsyncIteratorMethod(asyncIterable) {
3887 if (asyncIterable != null) {
3888 var method =
3889 (SYMBOL_ASYNC_ITERATOR && asyncIterable[SYMBOL_ASYNC_ITERATOR]) ||
3890 asyncIterable['@@asyncIterator']
3891 if (typeof method === 'function') {
3892 return method
3893 }
3894 }
3895}
3896exports.getAsyncIteratorMethod = getAsyncIteratorMethod
3897
3898/**
3899 * Similar to `getAsyncIterator()`, this method returns a new AsyncIterator
3900 * given an AsyncIterable. However it will also create an AsyncIterator for a
3901 * non-async Iterable as well as non-Iterable Array-like collection, such as
3902 * Array in a pre-ES2015 environment.
3903 *
3904 * `createAsyncIterator` is complimentary to `forAwaitEach`, but allows a
3905 * buffering "pull"-based iteration as opposed to `forAwaitEach`'s
3906 * "push"-based iteration.
3907 *
3908 * `createAsyncIterator` produces an AsyncIterator for non-async Iterables as
3909 * described in the ECMAScript proposal [Async-from-Sync Iterator Objects](https://tc39.github.io/proposal-async-iteration/#sec-async-from-sync-iterator-objects).
3910 *
3911 * > Note: Creating `AsyncIterator`s requires the existence of `Promise`.
3912 * > While `Promise` has been available in modern browsers for a number of
3913 * > years, legacy browsers (like IE 11) may require a polyfill.
3914 *
3915 * @example
3916 *
3917 * var createAsyncIterator = require('iterall').createAsyncIterator
3918 *
3919 * var myArraylike = { length: 3, 0: 'Alpha', 1: 'Bravo', 2: 'Charlie' }
3920 * var iterator = createAsyncIterator(myArraylike)
3921 * iterator.next().then(console.log) // { value: 'Alpha', done: false }
3922 * iterator.next().then(console.log) // { value: 'Bravo', done: false }
3923 * iterator.next().then(console.log) // { value: 'Charlie', done: false }
3924 * iterator.next().then(console.log) // { value: undefined, done: true }
3925 *
3926 * @template T the type of each iterated value
3927 * @param {AsyncIterable<T>|Iterable<T>|{ length: number }} source
3928 * An AsyncIterable, Iterable, or Array-like object to produce an Iterator.
3929 * @return {AsyncIterator<T>} new AsyncIterator instance.
3930 */
3931function createAsyncIterator(source) {
3932 if (source != null) {
3933 var asyncIterator = getAsyncIterator(source)
3934 if (asyncIterator) {
3935 return asyncIterator
3936 }
3937 var iterator = createIterator(source)
3938 if (iterator) {
3939 return new AsyncFromSyncIterator(iterator)
3940 }
3941 }
3942}
3943exports.createAsyncIterator = createAsyncIterator
3944
3945// When the object provided to `createAsyncIterator` is not AsyncIterable but is
3946// sync Iterable, this simple wrapper is created.
3947function AsyncFromSyncIterator(iterator) {
3948 this._i = iterator
3949}
3950
3951// Note: all AsyncIterators are themselves AsyncIterable.
3952AsyncFromSyncIterator.prototype[$$asyncIterator] = function() {
3953 return this
3954}
3955
3956// A simple state-machine determines the IteratorResult returned, yielding
3957// each value in the Array-like object in order of their indicies.
3958AsyncFromSyncIterator.prototype.next = function() {
3959 var step = this._i.next()
3960 return Promise.resolve(step.value).then(function(value) {
3961 return { value: value, done: step.done }
3962 })
3963}
3964
3965/**
3966 * Given an object which either implements the AsyncIterable protocol or is
3967 * Array-like, iterate over it, calling the `callback` at each iteration.
3968 *
3969 * Use `forAwaitEach` where you would expect to use a `for-await-of` loop.
3970 *
3971 * Similar to [Array#forEach][], the `callback` function accepts three
3972 * arguments, and is provided with `thisArg` as the calling context.
3973 *
3974 * > Note: Using `forAwaitEach` requires the existence of `Promise`.
3975 * > While `Promise` has been available in modern browsers for a number of
3976 * > years, legacy browsers (like IE 11) may require a polyfill.
3977 *
3978 * @example
3979 *
3980 * var forAwaitEach = require('iterall').forAwaitEach
3981 *
3982 * forAwaitEach(myIterable, function (value, index, iterable) {
3983 * console.log(value, index, iterable === myIterable)
3984 * })
3985 *
3986 * @example
3987 *
3988 * // ES2017:
3989 * for await (let value of myAsyncIterable) {
3990 * console.log(await doSomethingAsync(value))
3991 * }
3992 * console.log('done')
3993 *
3994 * // Any JavaScript environment:
3995 * forAwaitEach(myAsyncIterable, function (value) {
3996 * return doSomethingAsync(value).then(console.log)
3997 * }).then(function () {
3998 * console.log('done')
3999 * })
4000 *
4001 * @template T the type of each iterated value
4002 * @param {AsyncIterable<T>|Iterable<Promise<T> | T>|{ length: number }} source
4003 * The AsyncIterable or array to iterate over.
4004 * @param {function(T, number, object)} callback
4005 * Function to execute for each iteration, taking up to three arguments
4006 * @param [thisArg]
4007 * Optional. Value to use as `this` when executing `callback`.
4008 */
4009function forAwaitEach(source, callback, thisArg) {
4010 var asyncIterator = createAsyncIterator(source)
4011 if (asyncIterator) {
4012 var i = 0
4013 return new Promise(function(resolve, reject) {
4014 function next() {
4015 return asyncIterator
4016 .next()
4017 .then(function(step) {
4018 if (!step.done) {
4019 Promise.resolve(callback.call(thisArg, step.value, i++, source))
4020 .then(next)
4021 .catch(reject)
4022 } else {
4023 resolve()
4024 }
4025 })
4026 .catch(reject)
4027 }
4028 next()
4029 })
4030 }
4031}
4032exports.forAwaitEach = forAwaitEach
4033
4034
4035/***/ }),
4036/* 40 */
4037/***/ (function(module, exports) {
4038
4039module.exports = require("stream");
4040
4041/***/ }),
4042/* 41 */
4043/***/ (function(module, exports, __webpack_require__) {
4044
4045"use strict";
4046
4047if (__webpack_require__(8)) {
4048 var LIBRARY = __webpack_require__(57);
4049 var global = __webpack_require__(2);
4050 var fails = __webpack_require__(4);
4051 var $export = __webpack_require__(0);
4052 var $typed = __webpack_require__(111);
4053 var $buffer = __webpack_require__(172);
4054 var ctx = __webpack_require__(25);
4055 var anInstance = __webpack_require__(63);
4056 var propertyDesc = __webpack_require__(55);
4057 var hide = __webpack_require__(18);
4058 var redefineAll = __webpack_require__(65);
4059 var toInteger = __webpack_require__(36);
4060 var toLength = __webpack_require__(10);
4061 var toIndex = __webpack_require__(240);
4062 var toAbsoluteIndex = __webpack_require__(59);
4063 var toPrimitive = __webpack_require__(34);
4064 var has = __webpack_require__(17);
4065 var classof = __webpack_require__(84);
4066 var isObject = __webpack_require__(5);
4067 var toObject = __webpack_require__(13);
4068 var isArrayIter = __webpack_require__(163);
4069 var create = __webpack_require__(60);
4070 var getPrototypeOf = __webpack_require__(23);
4071 var gOPN = __webpack_require__(61).f;
4072 var getIterFn = __webpack_require__(165);
4073 var uid = __webpack_require__(56);
4074 var wks = __webpack_require__(7);
4075 var createArrayMethod = __webpack_require__(38);
4076 var createArrayIncludes = __webpack_require__(102);
4077 var speciesConstructor = __webpack_require__(109);
4078 var ArrayIterators = __webpack_require__(168);
4079 var Iterators = __webpack_require__(73);
4080 var $iterDetect = __webpack_require__(106);
4081 var setSpecies = __webpack_require__(62);
4082 var arrayFill = __webpack_require__(167);
4083 var arrayCopyWithin = __webpack_require__(230);
4084 var $DP = __webpack_require__(9);
4085 var $GOPD = __webpack_require__(22);
4086 var dP = $DP.f;
4087 var gOPD = $GOPD.f;
4088 var RangeError = global.RangeError;
4089 var TypeError = global.TypeError;
4090 var Uint8Array = global.Uint8Array;
4091 var ARRAY_BUFFER = 'ArrayBuffer';
4092 var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
4093 var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
4094 var PROTOTYPE = 'prototype';
4095 var ArrayProto = Array[PROTOTYPE];
4096 var $ArrayBuffer = $buffer.ArrayBuffer;
4097 var $DataView = $buffer.DataView;
4098 var arrayForEach = createArrayMethod(0);
4099 var arrayFilter = createArrayMethod(2);
4100 var arraySome = createArrayMethod(3);
4101 var arrayEvery = createArrayMethod(4);
4102 var arrayFind = createArrayMethod(5);
4103 var arrayFindIndex = createArrayMethod(6);
4104 var arrayIncludes = createArrayIncludes(true);
4105 var arrayIndexOf = createArrayIncludes(false);
4106 var arrayValues = ArrayIterators.values;
4107 var arrayKeys = ArrayIterators.keys;
4108 var arrayEntries = ArrayIterators.entries;
4109 var arrayLastIndexOf = ArrayProto.lastIndexOf;
4110 var arrayReduce = ArrayProto.reduce;
4111 var arrayReduceRight = ArrayProto.reduceRight;
4112 var arrayJoin = ArrayProto.join;
4113 var arraySort = ArrayProto.sort;
4114 var arraySlice = ArrayProto.slice;
4115 var arrayToString = ArrayProto.toString;
4116 var arrayToLocaleString = ArrayProto.toLocaleString;
4117 var ITERATOR = wks('iterator');
4118 var TAG = wks('toStringTag');
4119 var TYPED_CONSTRUCTOR = uid('typed_constructor');
4120 var DEF_CONSTRUCTOR = uid('def_constructor');
4121 var ALL_CONSTRUCTORS = $typed.CONSTR;
4122 var TYPED_ARRAY = $typed.TYPED;
4123 var VIEW = $typed.VIEW;
4124 var WRONG_LENGTH = 'Wrong length!';
4125
4126 var $map = createArrayMethod(1, function (O, length) {
4127 return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
4128 });
4129
4130 var LITTLE_ENDIAN = fails(function () {
4131 // eslint-disable-next-line no-undef
4132 return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
4133 });
4134
4135 var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {
4136 new Uint8Array(1).set({});
4137 });
4138
4139 var toOffset = function (it, BYTES) {
4140 var offset = toInteger(it);
4141 if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
4142 return offset;
4143 };
4144
4145 var validate = function (it) {
4146 if (isObject(it) && TYPED_ARRAY in it) return it;
4147 throw TypeError(it + ' is not a typed array!');
4148 };
4149
4150 var allocate = function (C, length) {
4151 if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
4152 throw TypeError('It is not a typed array constructor!');
4153 } return new C(length);
4154 };
4155
4156 var speciesFromList = function (O, list) {
4157 return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
4158 };
4159
4160 var fromList = function (C, list) {
4161 var index = 0;
4162 var length = list.length;
4163 var result = allocate(C, length);
4164 while (length > index) result[index] = list[index++];
4165 return result;
4166 };
4167
4168 var addGetter = function (it, key, internal) {
4169 dP(it, key, { get: function () { return this._d[internal]; } });
4170 };
4171
4172 var $from = function from(source /* , mapfn, thisArg */) {
4173 var O = toObject(source);
4174 var aLen = arguments.length;
4175 var mapfn = aLen > 1 ? arguments[1] : undefined;
4176 var mapping = mapfn !== undefined;
4177 var iterFn = getIterFn(O);
4178 var i, length, values, result, step, iterator;
4179 if (iterFn != undefined && !isArrayIter(iterFn)) {
4180 for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
4181 values.push(step.value);
4182 } O = values;
4183 }
4184 if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
4185 for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
4186 result[i] = mapping ? mapfn(O[i], i) : O[i];
4187 }
4188 return result;
4189 };
4190
4191 var $of = function of(/* ...items */) {
4192 var index = 0;
4193 var length = arguments.length;
4194 var result = allocate(this, length);
4195 while (length > index) result[index] = arguments[index++];
4196 return result;
4197 };
4198
4199 // iOS Safari 6.x fails here
4200 var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });
4201
4202 var $toLocaleString = function toLocaleString() {
4203 return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
4204 };
4205
4206 var proto = {
4207 copyWithin: function copyWithin(target, start /* , end */) {
4208 return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
4209 },
4210 every: function every(callbackfn /* , thisArg */) {
4211 return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4212 },
4213 fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars
4214 return arrayFill.apply(validate(this), arguments);
4215 },
4216 filter: function filter(callbackfn /* , thisArg */) {
4217 return speciesFromList(this, arrayFilter(validate(this), callbackfn,
4218 arguments.length > 1 ? arguments[1] : undefined));
4219 },
4220 find: function find(predicate /* , thisArg */) {
4221 return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4222 },
4223 findIndex: function findIndex(predicate /* , thisArg */) {
4224 return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4225 },
4226 forEach: function forEach(callbackfn /* , thisArg */) {
4227 arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4228 },
4229 indexOf: function indexOf(searchElement /* , fromIndex */) {
4230 return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4231 },
4232 includes: function includes(searchElement /* , fromIndex */) {
4233 return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4234 },
4235 join: function join(separator) { // eslint-disable-line no-unused-vars
4236 return arrayJoin.apply(validate(this), arguments);
4237 },
4238 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars
4239 return arrayLastIndexOf.apply(validate(this), arguments);
4240 },
4241 map: function map(mapfn /* , thisArg */) {
4242 return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
4243 },
4244 reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4245 return arrayReduce.apply(validate(this), arguments);
4246 },
4247 reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4248 return arrayReduceRight.apply(validate(this), arguments);
4249 },
4250 reverse: function reverse() {
4251 var that = this;
4252 var length = validate(that).length;
4253 var middle = Math.floor(length / 2);
4254 var index = 0;
4255 var value;
4256 while (index < middle) {
4257 value = that[index];
4258 that[index++] = that[--length];
4259 that[length] = value;
4260 } return that;
4261 },
4262 some: function some(callbackfn /* , thisArg */) {
4263 return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4264 },
4265 sort: function sort(comparefn) {
4266 return arraySort.call(validate(this), comparefn);
4267 },
4268 subarray: function subarray(begin, end) {
4269 var O = validate(this);
4270 var length = O.length;
4271 var $begin = toAbsoluteIndex(begin, length);
4272 return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
4273 O.buffer,
4274 O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
4275 toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
4276 );
4277 }
4278 };
4279
4280 var $slice = function slice(start, end) {
4281 return speciesFromList(this, arraySlice.call(validate(this), start, end));
4282 };
4283
4284 var $set = function set(arrayLike /* , offset */) {
4285 validate(this);
4286 var offset = toOffset(arguments[1], 1);
4287 var length = this.length;
4288 var src = toObject(arrayLike);
4289 var len = toLength(src.length);
4290 var index = 0;
4291 if (len + offset > length) throw RangeError(WRONG_LENGTH);
4292 while (index < len) this[offset + index] = src[index++];
4293 };
4294
4295 var $iterators = {
4296 entries: function entries() {
4297 return arrayEntries.call(validate(this));
4298 },
4299 keys: function keys() {
4300 return arrayKeys.call(validate(this));
4301 },
4302 values: function values() {
4303 return arrayValues.call(validate(this));
4304 }
4305 };
4306
4307 var isTAIndex = function (target, key) {
4308 return isObject(target)
4309 && target[TYPED_ARRAY]
4310 && typeof key != 'symbol'
4311 && key in target
4312 && String(+key) == String(key);
4313 };
4314 var $getDesc = function getOwnPropertyDescriptor(target, key) {
4315 return isTAIndex(target, key = toPrimitive(key, true))
4316 ? propertyDesc(2, target[key])
4317 : gOPD(target, key);
4318 };
4319 var $setDesc = function defineProperty(target, key, desc) {
4320 if (isTAIndex(target, key = toPrimitive(key, true))
4321 && isObject(desc)
4322 && has(desc, 'value')
4323 && !has(desc, 'get')
4324 && !has(desc, 'set')
4325 // TODO: add validation descriptor w/o calling accessors
4326 && !desc.configurable
4327 && (!has(desc, 'writable') || desc.writable)
4328 && (!has(desc, 'enumerable') || desc.enumerable)
4329 ) {
4330 target[key] = desc.value;
4331 return target;
4332 } return dP(target, key, desc);
4333 };
4334
4335 if (!ALL_CONSTRUCTORS) {
4336 $GOPD.f = $getDesc;
4337 $DP.f = $setDesc;
4338 }
4339
4340 $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
4341 getOwnPropertyDescriptor: $getDesc,
4342 defineProperty: $setDesc
4343 });
4344
4345 if (fails(function () { arrayToString.call({}); })) {
4346 arrayToString = arrayToLocaleString = function toString() {
4347 return arrayJoin.call(this);
4348 };
4349 }
4350
4351 var $TypedArrayPrototype$ = redefineAll({}, proto);
4352 redefineAll($TypedArrayPrototype$, $iterators);
4353 hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
4354 redefineAll($TypedArrayPrototype$, {
4355 slice: $slice,
4356 set: $set,
4357 constructor: function () { /* noop */ },
4358 toString: arrayToString,
4359 toLocaleString: $toLocaleString
4360 });
4361 addGetter($TypedArrayPrototype$, 'buffer', 'b');
4362 addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
4363 addGetter($TypedArrayPrototype$, 'byteLength', 'l');
4364 addGetter($TypedArrayPrototype$, 'length', 'e');
4365 dP($TypedArrayPrototype$, TAG, {
4366 get: function () { return this[TYPED_ARRAY]; }
4367 });
4368
4369 // eslint-disable-next-line max-statements
4370 module.exports = function (KEY, BYTES, wrapper, CLAMPED) {
4371 CLAMPED = !!CLAMPED;
4372 var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
4373 var GETTER = 'get' + KEY;
4374 var SETTER = 'set' + KEY;
4375 var TypedArray = global[NAME];
4376 var Base = TypedArray || {};
4377 var TAC = TypedArray && getPrototypeOf(TypedArray);
4378 var FORCED = !TypedArray || !$typed.ABV;
4379 var O = {};
4380 var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
4381 var getter = function (that, index) {
4382 var data = that._d;
4383 return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
4384 };
4385 var setter = function (that, index, value) {
4386 var data = that._d;
4387 if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
4388 data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
4389 };
4390 var addElement = function (that, index) {
4391 dP(that, index, {
4392 get: function () {
4393 return getter(this, index);
4394 },
4395 set: function (value) {
4396 return setter(this, index, value);
4397 },
4398 enumerable: true
4399 });
4400 };
4401 if (FORCED) {
4402 TypedArray = wrapper(function (that, data, $offset, $length) {
4403 anInstance(that, TypedArray, NAME, '_d');
4404 var index = 0;
4405 var offset = 0;
4406 var buffer, byteLength, length, klass;
4407 if (!isObject(data)) {
4408 length = toIndex(data);
4409 byteLength = length * BYTES;
4410 buffer = new $ArrayBuffer(byteLength);
4411 } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4412 buffer = data;
4413 offset = toOffset($offset, BYTES);
4414 var $len = data.byteLength;
4415 if ($length === undefined) {
4416 if ($len % BYTES) throw RangeError(WRONG_LENGTH);
4417 byteLength = $len - offset;
4418 if (byteLength < 0) throw RangeError(WRONG_LENGTH);
4419 } else {
4420 byteLength = toLength($length) * BYTES;
4421 if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
4422 }
4423 length = byteLength / BYTES;
4424 } else if (TYPED_ARRAY in data) {
4425 return fromList(TypedArray, data);
4426 } else {
4427 return $from.call(TypedArray, data);
4428 }
4429 hide(that, '_d', {
4430 b: buffer,
4431 o: offset,
4432 l: byteLength,
4433 e: length,
4434 v: new $DataView(buffer)
4435 });
4436 while (index < length) addElement(that, index++);
4437 });
4438 TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
4439 hide(TypedArrayPrototype, 'constructor', TypedArray);
4440 } else if (!fails(function () {
4441 TypedArray(1);
4442 }) || !fails(function () {
4443 new TypedArray(-1); // eslint-disable-line no-new
4444 }) || !$iterDetect(function (iter) {
4445 new TypedArray(); // eslint-disable-line no-new
4446 new TypedArray(null); // eslint-disable-line no-new
4447 new TypedArray(1.5); // eslint-disable-line no-new
4448 new TypedArray(iter); // eslint-disable-line no-new
4449 }, true)) {
4450 TypedArray = wrapper(function (that, data, $offset, $length) {
4451 anInstance(that, TypedArray, NAME);
4452 var klass;
4453 // `ws` module bug, temporarily remove validation length for Uint8Array
4454 // https://github.com/websockets/ws/pull/645
4455 if (!isObject(data)) return new Base(toIndex(data));
4456 if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4457 return $length !== undefined
4458 ? new Base(data, toOffset($offset, BYTES), $length)
4459 : $offset !== undefined
4460 ? new Base(data, toOffset($offset, BYTES))
4461 : new Base(data);
4462 }
4463 if (TYPED_ARRAY in data) return fromList(TypedArray, data);
4464 return $from.call(TypedArray, data);
4465 });
4466 arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
4467 if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
4468 });
4469 TypedArray[PROTOTYPE] = TypedArrayPrototype;
4470 if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
4471 }
4472 var $nativeIterator = TypedArrayPrototype[ITERATOR];
4473 var CORRECT_ITER_NAME = !!$nativeIterator
4474 && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
4475 var $iterator = $iterators.values;
4476 hide(TypedArray, TYPED_CONSTRUCTOR, true);
4477 hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
4478 hide(TypedArrayPrototype, VIEW, true);
4479 hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
4480
4481 if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
4482 dP(TypedArrayPrototype, TAG, {
4483 get: function () { return NAME; }
4484 });
4485 }
4486
4487 O[NAME] = TypedArray;
4488
4489 $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
4490
4491 $export($export.S, NAME, {
4492 BYTES_PER_ELEMENT: BYTES
4493 });
4494
4495 $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {
4496 from: $from,
4497 of: $of
4498 });
4499
4500 if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
4501
4502 $export($export.P, NAME, proto);
4503
4504 setSpecies(NAME);
4505
4506 $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
4507
4508 $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
4509
4510 if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
4511
4512 $export($export.P + $export.F * fails(function () {
4513 new TypedArray(1).slice();
4514 }), NAME, { slice: $slice });
4515
4516 $export($export.P + $export.F * (fails(function () {
4517 return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();
4518 }) || !fails(function () {
4519 TypedArrayPrototype.toLocaleString.call([1, 2]);
4520 })), NAME, { toLocaleString: $toLocaleString });
4521
4522 Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
4523 if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
4524 };
4525} else module.exports = function () { /* empty */ };
4526
4527
4528/***/ }),
4529/* 42 */
4530/***/ (function(module, exports, __webpack_require__) {
4531
4532var Map = __webpack_require__(235);
4533var $export = __webpack_require__(0);
4534var shared = __webpack_require__(101)('metadata');
4535var store = shared.store || (shared.store = new (__webpack_require__(238))());
4536
4537var getOrCreateMetadataMap = function (target, targetKey, create) {
4538 var targetMetadata = store.get(target);
4539 if (!targetMetadata) {
4540 if (!create) return undefined;
4541 store.set(target, targetMetadata = new Map());
4542 }
4543 var keyMetadata = targetMetadata.get(targetKey);
4544 if (!keyMetadata) {
4545 if (!create) return undefined;
4546 targetMetadata.set(targetKey, keyMetadata = new Map());
4547 } return keyMetadata;
4548};
4549var ordinaryHasOwnMetadata = function (MetadataKey, O, P) {
4550 var metadataMap = getOrCreateMetadataMap(O, P, false);
4551 return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
4552};
4553var ordinaryGetOwnMetadata = function (MetadataKey, O, P) {
4554 var metadataMap = getOrCreateMetadataMap(O, P, false);
4555 return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
4556};
4557var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
4558 getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
4559};
4560var ordinaryOwnMetadataKeys = function (target, targetKey) {
4561 var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
4562 var keys = [];
4563 if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
4564 return keys;
4565};
4566var toMetaKey = function (it) {
4567 return it === undefined || typeof it == 'symbol' ? it : String(it);
4568};
4569var exp = function (O) {
4570 $export($export.S, 'Reflect', O);
4571};
4572
4573module.exports = {
4574 store: store,
4575 map: getOrCreateMetadataMap,
4576 has: ordinaryHasOwnMetadata,
4577 get: ordinaryGetOwnMetadata,
4578 set: ordinaryDefineOwnMetadata,
4579 keys: ordinaryOwnMetadataKeys,
4580 key: toMetaKey,
4581 exp: exp
4582};
4583
4584
4585/***/ }),
4586/* 43 */
4587/***/ (function(module, exports) {
4588
4589module.exports = require("http");
4590
4591/***/ }),
4592/* 44 */
4593/***/ (function(module, exports, __webpack_require__) {
4594
4595"use strict";
4596
4597
4598Object.defineProperty(exports, "__esModule", {
4599 value: true
4600});
4601exports.GraphQLSchema = undefined;
4602
4603var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4604
4605var _definition = __webpack_require__(6);
4606
4607var _directives = __webpack_require__(45);
4608
4609var _introspection = __webpack_require__(67);
4610
4611var _find = __webpack_require__(76);
4612
4613var _find2 = _interopRequireDefault(_find);
4614
4615var _invariant = __webpack_require__(11);
4616
4617var _invariant2 = _interopRequireDefault(_invariant);
4618
4619var _typeComparators = __webpack_require__(116);
4620
4621function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4622
4623function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
4624 * Copyright (c) 2015-present, Facebook, Inc.
4625 *
4626 * This source code is licensed under the MIT license found in the
4627 * LICENSE file in the root directory of this source tree.
4628 *
4629 *
4630 */
4631
4632/**
4633 * Schema Definition
4634 *
4635 * A Schema is created by supplying the root types of each type of operation,
4636 * query and mutation (optional). A schema definition is then supplied to the
4637 * validator and executor.
4638 *
4639 * Example:
4640 *
4641 * const MyAppSchema = new GraphQLSchema({
4642 * query: MyAppQueryRootType,
4643 * mutation: MyAppMutationRootType,
4644 * })
4645 *
4646 * Note: If an array of `directives` are provided to GraphQLSchema, that will be
4647 * the exact list of directives represented and allowed. If `directives` is not
4648 * provided then a default set of the specified directives (e.g. @include and
4649 * @skip) will be used. If you wish to provide *additional* directives to these
4650 * specified directives, you must explicitly declare them. Example:
4651 *
4652 * const MyAppSchema = new GraphQLSchema({
4653 * ...
4654 * directives: specifiedDirectives.concat([ myCustomDirective ]),
4655 * })
4656 *
4657 */
4658var GraphQLSchema = exports.GraphQLSchema = function () {
4659 function GraphQLSchema(config) {
4660 var _this = this;
4661
4662 _classCallCheck(this, GraphQLSchema);
4663
4664 !((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') ? (0, _invariant2.default)(0, 'Must provide configuration object.') : void 0;
4665
4666 !(config.query instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Schema query must be Object Type but got: ' + String(config.query) + '.') : void 0;
4667 this._queryType = config.query;
4668
4669 !(!config.mutation || config.mutation instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Schema mutation must be Object Type if provided but got: ' + String(config.mutation) + '.') : void 0;
4670 this._mutationType = config.mutation;
4671
4672 !(!config.subscription || config.subscription instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Schema subscription must be Object Type if provided but got: ' + String(config.subscription) + '.') : void 0;
4673 this._subscriptionType = config.subscription;
4674
4675 !(!config.types || Array.isArray(config.types)) ? (0, _invariant2.default)(0, 'Schema types must be Array if provided but got: ' + String(config.types) + '.') : void 0;
4676
4677 !(!config.directives || Array.isArray(config.directives) && config.directives.every(function (directive) {
4678 return directive instanceof _directives.GraphQLDirective;
4679 })) ? (0, _invariant2.default)(0, 'Schema directives must be Array<GraphQLDirective> if provided but got: ' + String(config.directives) + '.') : void 0;
4680 // Provide specified directives (e.g. @include and @skip) by default.
4681 this._directives = config.directives || _directives.specifiedDirectives;
4682 this.astNode = config.astNode || null;
4683
4684 // Build type map now to detect any errors within this schema.
4685 var initialTypes = [this.getQueryType(), this.getMutationType(), this.getSubscriptionType(), _introspection.__Schema];
4686
4687 var types = config.types;
4688 if (types) {
4689 initialTypes = initialTypes.concat(types);
4690 }
4691
4692 this._typeMap = initialTypes.reduce(typeMapReducer, Object.create(null));
4693
4694 // Keep track of all implementations by interface name.
4695 this._implementations = Object.create(null);
4696 Object.keys(this._typeMap).forEach(function (typeName) {
4697 var type = _this._typeMap[typeName];
4698 if (type instanceof _definition.GraphQLObjectType) {
4699 type.getInterfaces().forEach(function (iface) {
4700 var impls = _this._implementations[iface.name];
4701 if (impls) {
4702 impls.push(type);
4703 } else {
4704 _this._implementations[iface.name] = [type];
4705 }
4706 });
4707 }
4708 });
4709
4710 // Enforce correct interface implementations.
4711 Object.keys(this._typeMap).forEach(function (typeName) {
4712 var type = _this._typeMap[typeName];
4713 if (type instanceof _definition.GraphQLObjectType) {
4714 type.getInterfaces().forEach(function (iface) {
4715 return assertObjectImplementsInterface(_this, type, iface);
4716 });
4717 }
4718 });
4719 }
4720
4721 GraphQLSchema.prototype.getQueryType = function getQueryType() {
4722 return this._queryType;
4723 };
4724
4725 GraphQLSchema.prototype.getMutationType = function getMutationType() {
4726 return this._mutationType;
4727 };
4728
4729 GraphQLSchema.prototype.getSubscriptionType = function getSubscriptionType() {
4730 return this._subscriptionType;
4731 };
4732
4733 GraphQLSchema.prototype.getTypeMap = function getTypeMap() {
4734 return this._typeMap;
4735 };
4736
4737 GraphQLSchema.prototype.getType = function getType(name) {
4738 return this.getTypeMap()[name];
4739 };
4740
4741 GraphQLSchema.prototype.getPossibleTypes = function getPossibleTypes(abstractType) {
4742 if (abstractType instanceof _definition.GraphQLUnionType) {
4743 return abstractType.getTypes();
4744 }
4745 !(abstractType instanceof _definition.GraphQLInterfaceType) ? (0, _invariant2.default)(0) : void 0;
4746 return this._implementations[abstractType.name];
4747 };
4748
4749 GraphQLSchema.prototype.isPossibleType = function isPossibleType(abstractType, possibleType) {
4750 var possibleTypeMap = this._possibleTypeMap;
4751 if (!possibleTypeMap) {
4752 this._possibleTypeMap = possibleTypeMap = Object.create(null);
4753 }
4754
4755 if (!possibleTypeMap[abstractType.name]) {
4756 var possibleTypes = this.getPossibleTypes(abstractType);
4757 !Array.isArray(possibleTypes) ? (0, _invariant2.default)(0, 'Could not find possible implementing types for ' + abstractType.name + ' ' + 'in schema. Check that schema.types is defined and is an array of ' + 'all possible types in the schema.') : void 0;
4758 possibleTypeMap[abstractType.name] = possibleTypes.reduce(function (map, type) {
4759 return map[type.name] = true, map;
4760 }, Object.create(null));
4761 }
4762
4763 return Boolean(possibleTypeMap[abstractType.name][possibleType.name]);
4764 };
4765
4766 GraphQLSchema.prototype.getDirectives = function getDirectives() {
4767 return this._directives;
4768 };
4769
4770 GraphQLSchema.prototype.getDirective = function getDirective(name) {
4771 return (0, _find2.default)(this.getDirectives(), function (directive) {
4772 return directive.name === name;
4773 });
4774 };
4775
4776 return GraphQLSchema;
4777}();
4778
4779function typeMapReducer(map, type) {
4780 if (!type) {
4781 return map;
4782 }
4783 if (type instanceof _definition.GraphQLList || type instanceof _definition.GraphQLNonNull) {
4784 return typeMapReducer(map, type.ofType);
4785 }
4786 if (map[type.name]) {
4787 !(map[type.name] === type) ? (0, _invariant2.default)(0, 'Schema must contain unique named types but contains multiple ' + ('types named "' + type.name + '".')) : void 0;
4788 return map;
4789 }
4790 map[type.name] = type;
4791
4792 var reducedMap = map;
4793
4794 if (type instanceof _definition.GraphQLUnionType) {
4795 reducedMap = type.getTypes().reduce(typeMapReducer, reducedMap);
4796 }
4797
4798 if (type instanceof _definition.GraphQLObjectType) {
4799 reducedMap = type.getInterfaces().reduce(typeMapReducer, reducedMap);
4800 }
4801
4802 if (type instanceof _definition.GraphQLObjectType || type instanceof _definition.GraphQLInterfaceType) {
4803 var fieldMap = type.getFields();
4804 Object.keys(fieldMap).forEach(function (fieldName) {
4805 var field = fieldMap[fieldName];
4806
4807 if (field.args) {
4808 var fieldArgTypes = field.args.map(function (arg) {
4809 return arg.type;
4810 });
4811 reducedMap = fieldArgTypes.reduce(typeMapReducer, reducedMap);
4812 }
4813 reducedMap = typeMapReducer(reducedMap, field.type);
4814 });
4815 }
4816
4817 if (type instanceof _definition.GraphQLInputObjectType) {
4818 var _fieldMap = type.getFields();
4819 Object.keys(_fieldMap).forEach(function (fieldName) {
4820 var field = _fieldMap[fieldName];
4821 reducedMap = typeMapReducer(reducedMap, field.type);
4822 });
4823 }
4824
4825 return reducedMap;
4826}
4827
4828function assertObjectImplementsInterface(schema, object, iface) {
4829 var objectFieldMap = object.getFields();
4830 var ifaceFieldMap = iface.getFields();
4831
4832 // Assert each interface field is implemented.
4833 Object.keys(ifaceFieldMap).forEach(function (fieldName) {
4834 var objectField = objectFieldMap[fieldName];
4835 var ifaceField = ifaceFieldMap[fieldName];
4836
4837 // Assert interface field exists on object.
4838 !objectField ? (0, _invariant2.default)(0, '"' + iface.name + '" expects field "' + fieldName + '" but "' + object.name + '" ' + 'does not provide it.') : void 0;
4839
4840 // Assert interface field type is satisfied by object field type, by being
4841 // a valid subtype. (covariant)
4842 !(0, _typeComparators.isTypeSubTypeOf)(schema, objectField.type, ifaceField.type) ? (0, _invariant2.default)(0, iface.name + '.' + fieldName + ' expects type "' + String(ifaceField.type) + '" ' + 'but ' + (object.name + '.' + fieldName + ' provides type "' + String(objectField.type) + '".')) : void 0;
4843
4844 // Assert each interface field arg is implemented.
4845 ifaceField.args.forEach(function (ifaceArg) {
4846 var argName = ifaceArg.name;
4847 var objectArg = (0, _find2.default)(objectField.args, function (arg) {
4848 return arg.name === argName;
4849 });
4850
4851 // Assert interface field arg exists on object field.
4852 !objectArg ? (0, _invariant2.default)(0, iface.name + '.' + fieldName + ' expects argument "' + argName + '" but ' + (object.name + '.' + fieldName + ' does not provide it.')) : void 0;
4853
4854 // Assert interface field arg type matches object field arg type.
4855 // (invariant)
4856 !(0, _typeComparators.isEqualType)(ifaceArg.type, objectArg.type) ? (0, _invariant2.default)(0, iface.name + '.' + fieldName + '(' + argName + ':) expects type ' + ('"' + String(ifaceArg.type) + '" but ') + (object.name + '.' + fieldName + '(' + argName + ':) provides type ') + ('"' + String(objectArg.type) + '".')) : void 0;
4857 });
4858
4859 // Assert additional arguments must not be required.
4860 objectField.args.forEach(function (objectArg) {
4861 var argName = objectArg.name;
4862 var ifaceArg = (0, _find2.default)(ifaceField.args, function (arg) {
4863 return arg.name === argName;
4864 });
4865 if (!ifaceArg) {
4866 !!(objectArg.type instanceof _definition.GraphQLNonNull) ? (0, _invariant2.default)(0, object.name + '.' + fieldName + '(' + argName + ':) is of required type ' + ('"' + String(objectArg.type) + '" but is not also provided by the ') + ('interface ' + iface.name + '.' + fieldName + '.')) : void 0;
4867 }
4868 });
4869 });
4870}
4871
4872/***/ }),
4873/* 45 */
4874/***/ (function(module, exports, __webpack_require__) {
4875
4876"use strict";
4877
4878
4879Object.defineProperty(exports, "__esModule", {
4880 value: true
4881});
4882exports.specifiedDirectives = exports.GraphQLDeprecatedDirective = exports.DEFAULT_DEPRECATION_REASON = exports.GraphQLSkipDirective = exports.GraphQLIncludeDirective = exports.GraphQLDirective = exports.DirectiveLocation = undefined;
4883
4884var _definition = __webpack_require__(6);
4885
4886var _scalars = __webpack_require__(52);
4887
4888var _invariant = __webpack_require__(11);
4889
4890var _invariant2 = _interopRequireDefault(_invariant);
4891
4892var _assertValidName = __webpack_require__(176);
4893
4894function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4895
4896function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
4897 * Copyright (c) 2015-present, Facebook, Inc.
4898 *
4899 * This source code is licensed under the MIT license found in the
4900 * LICENSE file in the root directory of this source tree.
4901 *
4902 *
4903 */
4904
4905var DirectiveLocation = exports.DirectiveLocation = {
4906 // Operations
4907 QUERY: 'QUERY',
4908 MUTATION: 'MUTATION',
4909 SUBSCRIPTION: 'SUBSCRIPTION',
4910 FIELD: 'FIELD',
4911 FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',
4912 FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',
4913 INLINE_FRAGMENT: 'INLINE_FRAGMENT',
4914 // Schema Definitions
4915 SCHEMA: 'SCHEMA',
4916 SCALAR: 'SCALAR',
4917 OBJECT: 'OBJECT',
4918 FIELD_DEFINITION: 'FIELD_DEFINITION',
4919 ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',
4920 INTERFACE: 'INTERFACE',
4921 UNION: 'UNION',
4922 ENUM: 'ENUM',
4923 ENUM_VALUE: 'ENUM_VALUE',
4924 INPUT_OBJECT: 'INPUT_OBJECT',
4925 INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'
4926};
4927
4928// eslint-disable-line
4929
4930/**
4931 * Directives are used by the GraphQL runtime as a way of modifying execution
4932 * behavior. Type system creators will usually not create these directly.
4933 */
4934var GraphQLDirective = exports.GraphQLDirective = function GraphQLDirective(config) {
4935 _classCallCheck(this, GraphQLDirective);
4936
4937 !config.name ? (0, _invariant2.default)(0, 'Directive must be named.') : void 0;
4938 (0, _assertValidName.assertValidName)(config.name);
4939 !Array.isArray(config.locations) ? (0, _invariant2.default)(0, 'Must provide locations for directive.') : void 0;
4940 this.name = config.name;
4941 this.description = config.description;
4942 this.locations = config.locations;
4943 this.astNode = config.astNode;
4944
4945 var args = config.args;
4946 if (!args) {
4947 this.args = [];
4948 } else {
4949 !!Array.isArray(args) ? (0, _invariant2.default)(0, '@' + config.name + ' args must be an object with argument names as keys.') : void 0;
4950 this.args = Object.keys(args).map(function (argName) {
4951 (0, _assertValidName.assertValidName)(argName);
4952 var arg = args[argName];
4953 !(0, _definition.isInputType)(arg.type) ? (0, _invariant2.default)(0, '@' + config.name + '(' + argName + ':) argument type must be ' + ('Input Type but got: ' + String(arg.type) + '.')) : void 0;
4954 return {
4955 name: argName,
4956 description: arg.description === undefined ? null : arg.description,
4957 type: arg.type,
4958 defaultValue: arg.defaultValue,
4959 astNode: arg.astNode
4960 };
4961 });
4962 }
4963};
4964
4965/**
4966 * Used to conditionally include fields or fragments.
4967 */
4968var GraphQLIncludeDirective = exports.GraphQLIncludeDirective = new GraphQLDirective({
4969 name: 'include',
4970 description: 'Directs the executor to include this field or fragment only when ' + 'the `if` argument is true.',
4971 locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
4972 args: {
4973 if: {
4974 type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
4975 description: 'Included when true.'
4976 }
4977 }
4978});
4979
4980/**
4981 * Used to conditionally skip (exclude) fields or fragments.
4982 */
4983var GraphQLSkipDirective = exports.GraphQLSkipDirective = new GraphQLDirective({
4984 name: 'skip',
4985 description: 'Directs the executor to skip this field or fragment when the `if` ' + 'argument is true.',
4986 locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
4987 args: {
4988 if: {
4989 type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
4990 description: 'Skipped when true.'
4991 }
4992 }
4993});
4994
4995/**
4996 * Constant string used for default reason for a deprecation.
4997 */
4998var DEFAULT_DEPRECATION_REASON = exports.DEFAULT_DEPRECATION_REASON = 'No longer supported';
4999
5000/**
5001 * Used to declare element of a GraphQL schema as deprecated.
5002 */
5003var GraphQLDeprecatedDirective = exports.GraphQLDeprecatedDirective = new GraphQLDirective({
5004 name: 'deprecated',
5005 description: 'Marks an element of a GraphQL schema as no longer supported.',
5006 locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
5007 args: {
5008 reason: {
5009 type: _scalars.GraphQLString,
5010 description: 'Explains why this element was deprecated, usually also including a ' + 'suggestion for how to access supported similar data. Formatted ' + 'in [Markdown](https://daringfireball.net/projects/markdown/).',
5011 defaultValue: DEFAULT_DEPRECATION_REASON
5012 }
5013 }
5014});
5015
5016/**
5017 * The full list of specified directives.
5018 */
5019var specifiedDirectives = exports.specifiedDirectives = [GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective];
5020
5021/***/ }),
5022/* 46 */
5023/***/ (function(module, exports, __webpack_require__) {
5024
5025"use strict";
5026
5027
5028Object.defineProperty(exports, "__esModule", {
5029 value: true
5030});
5031exports.typeFromAST = undefined;
5032
5033var _invariant = __webpack_require__(11);
5034
5035var _invariant2 = _interopRequireDefault(_invariant);
5036
5037var _kinds = __webpack_require__(12);
5038
5039var Kind = _interopRequireWildcard(_kinds);
5040
5041var _definition = __webpack_require__(6);
5042
5043function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
5044
5045function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5046
5047/**
5048 * Given a Schema and an AST node describing a type, return a GraphQLType
5049 * definition which applies to that type. For example, if provided the parsed
5050 * AST node for `[User]`, a GraphQLList instance will be returned, containing
5051 * the type called "User" found in the schema. If a type called "User" is not
5052 * found in the schema, then undefined will be returned.
5053 */
5054/* eslint-disable no-redeclare */
5055function typeFromASTImpl(schema, typeNode) {
5056 /* eslint-enable no-redeclare */
5057 var innerType = void 0;
5058 if (typeNode.kind === Kind.LIST_TYPE) {
5059 innerType = typeFromAST(schema, typeNode.type);
5060 return innerType && new _definition.GraphQLList(innerType);
5061 }
5062 if (typeNode.kind === Kind.NON_NULL_TYPE) {
5063 innerType = typeFromAST(schema, typeNode.type);
5064 return innerType && new _definition.GraphQLNonNull(innerType);
5065 }
5066 !(typeNode.kind === Kind.NAMED_TYPE) ? (0, _invariant2.default)(0, 'Must be a named type.') : void 0;
5067 return schema.getType(typeNode.name.value);
5068}
5069// This will export typeFromAST with the correct type, but currently exposes
5070// ~26 errors: https://gist.github.com/4a29403a99a8186fcb15064d69c5f3ae
5071// export var typeFromAST: typeof typeFromASTType = typeFromASTImpl;
5072/**
5073 * Copyright (c) 2015-present, Facebook, Inc.
5074 *
5075 * This source code is licensed under the MIT license found in the
5076 * LICENSE file in the root directory of this source tree.
5077 *
5078 *
5079 */
5080
5081var typeFromAST = exports.typeFromAST = typeFromASTImpl;
5082
5083/***/ }),
5084/* 47 */
5085/***/ (function(module, exports, __webpack_require__) {
5086
5087/*!
5088 * depd
5089 * Copyright(c) 2014-2017 Douglas Christopher Wilson
5090 * MIT Licensed
5091 */
5092
5093/**
5094 * Module dependencies.
5095 */
5096
5097var callSiteToString = __webpack_require__(295).callSiteToString
5098var eventListenerCount = __webpack_require__(295).eventListenerCount
5099var relative = __webpack_require__(48).relative
5100
5101/**
5102 * Module exports.
5103 */
5104
5105module.exports = depd
5106
5107/**
5108 * Get the path to base files on.
5109 */
5110
5111var basePath = process.cwd()
5112
5113/**
5114 * Determine if namespace is contained in the string.
5115 */
5116
5117function containsNamespace (str, namespace) {
5118 var vals = str.split(/[ ,]+/)
5119 var ns = String(namespace).toLowerCase()
5120
5121 for (var i = 0; i < vals.length; i++) {
5122 var val = vals[i]
5123
5124 // namespace contained
5125 if (val && (val === '*' || val.toLowerCase() === ns)) {
5126 return true
5127 }
5128 }
5129
5130 return false
5131}
5132
5133/**
5134 * Convert a data descriptor to accessor descriptor.
5135 */
5136
5137function convertDataDescriptorToAccessor (obj, prop, message) {
5138 var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
5139 var value = descriptor.value
5140
5141 descriptor.get = function getter () { return value }
5142
5143 if (descriptor.writable) {
5144 descriptor.set = function setter (val) { return (value = val) }
5145 }
5146
5147 delete descriptor.value
5148 delete descriptor.writable
5149
5150 Object.defineProperty(obj, prop, descriptor)
5151
5152 return descriptor
5153}
5154
5155/**
5156 * Create arguments string to keep arity.
5157 */
5158
5159function createArgumentsString (arity) {
5160 var str = ''
5161
5162 for (var i = 0; i < arity; i++) {
5163 str += ', arg' + i
5164 }
5165
5166 return str.substr(2)
5167}
5168
5169/**
5170 * Create stack string from stack.
5171 */
5172
5173function createStackString (stack) {
5174 var str = this.name + ': ' + this.namespace
5175
5176 if (this.message) {
5177 str += ' deprecated ' + this.message
5178 }
5179
5180 for (var i = 0; i < stack.length; i++) {
5181 str += '\n at ' + callSiteToString(stack[i])
5182 }
5183
5184 return str
5185}
5186
5187/**
5188 * Create deprecate for namespace in caller.
5189 */
5190
5191function depd (namespace) {
5192 if (!namespace) {
5193 throw new TypeError('argument namespace is required')
5194 }
5195
5196 var stack = getStack()
5197 var site = callSiteLocation(stack[1])
5198 var file = site[0]
5199
5200 function deprecate (message) {
5201 // call to self as log
5202 log.call(deprecate, message)
5203 }
5204
5205 deprecate._file = file
5206 deprecate._ignored = isignored(namespace)
5207 deprecate._namespace = namespace
5208 deprecate._traced = istraced(namespace)
5209 deprecate._warned = Object.create(null)
5210
5211 deprecate.function = wrapfunction
5212 deprecate.property = wrapproperty
5213
5214 return deprecate
5215}
5216
5217/**
5218 * Determine if namespace is ignored.
5219 */
5220
5221function isignored (namespace) {
5222 /* istanbul ignore next: tested in a child processs */
5223 if (process.noDeprecation) {
5224 // --no-deprecation support
5225 return true
5226 }
5227
5228 var str = process.env.NO_DEPRECATION || ''
5229
5230 // namespace ignored
5231 return containsNamespace(str, namespace)
5232}
5233
5234/**
5235 * Determine if namespace is traced.
5236 */
5237
5238function istraced (namespace) {
5239 /* istanbul ignore next: tested in a child processs */
5240 if (process.traceDeprecation) {
5241 // --trace-deprecation support
5242 return true
5243 }
5244
5245 var str = process.env.TRACE_DEPRECATION || ''
5246
5247 // namespace traced
5248 return containsNamespace(str, namespace)
5249}
5250
5251/**
5252 * Display deprecation message.
5253 */
5254
5255function log (message, site) {
5256 var haslisteners = eventListenerCount(process, 'deprecation') !== 0
5257
5258 // abort early if no destination
5259 if (!haslisteners && this._ignored) {
5260 return
5261 }
5262
5263 var caller
5264 var callFile
5265 var callSite
5266 var depSite
5267 var i = 0
5268 var seen = false
5269 var stack = getStack()
5270 var file = this._file
5271
5272 if (site) {
5273 // provided site
5274 depSite = site
5275 callSite = callSiteLocation(stack[1])
5276 callSite.name = depSite.name
5277 file = callSite[0]
5278 } else {
5279 // get call site
5280 i = 2
5281 depSite = callSiteLocation(stack[i])
5282 callSite = depSite
5283 }
5284
5285 // get caller of deprecated thing in relation to file
5286 for (; i < stack.length; i++) {
5287 caller = callSiteLocation(stack[i])
5288 callFile = caller[0]
5289
5290 if (callFile === file) {
5291 seen = true
5292 } else if (callFile === this._file) {
5293 file = this._file
5294 } else if (seen) {
5295 break
5296 }
5297 }
5298
5299 var key = caller
5300 ? depSite.join(':') + '__' + caller.join(':')
5301 : undefined
5302
5303 if (key !== undefined && key in this._warned) {
5304 // already warned
5305 return
5306 }
5307
5308 this._warned[key] = true
5309
5310 // generate automatic message from call site
5311 var msg = message
5312 if (!msg) {
5313 msg = callSite === depSite || !callSite.name
5314 ? defaultMessage(depSite)
5315 : defaultMessage(callSite)
5316 }
5317
5318 // emit deprecation if listeners exist
5319 if (haslisteners) {
5320 var err = DeprecationError(this._namespace, msg, stack.slice(i))
5321 process.emit('deprecation', err)
5322 return
5323 }
5324
5325 // format and write message
5326 var format = process.stderr.isTTY
5327 ? formatColor
5328 : formatPlain
5329 var output = format.call(this, msg, caller, stack.slice(i))
5330 process.stderr.write(output + '\n', 'utf8')
5331}
5332
5333/**
5334 * Get call site location as array.
5335 */
5336
5337function callSiteLocation (callSite) {
5338 var file = callSite.getFileName() || '<anonymous>'
5339 var line = callSite.getLineNumber()
5340 var colm = callSite.getColumnNumber()
5341
5342 if (callSite.isEval()) {
5343 file = callSite.getEvalOrigin() + ', ' + file
5344 }
5345
5346 var site = [file, line, colm]
5347
5348 site.callSite = callSite
5349 site.name = callSite.getFunctionName()
5350
5351 return site
5352}
5353
5354/**
5355 * Generate a default message from the site.
5356 */
5357
5358function defaultMessage (site) {
5359 var callSite = site.callSite
5360 var funcName = site.name
5361
5362 // make useful anonymous name
5363 if (!funcName) {
5364 funcName = '<anonymous@' + formatLocation(site) + '>'
5365 }
5366
5367 var context = callSite.getThis()
5368 var typeName = context && callSite.getTypeName()
5369
5370 // ignore useless type name
5371 if (typeName === 'Object') {
5372 typeName = undefined
5373 }
5374
5375 // make useful type name
5376 if (typeName === 'Function') {
5377 typeName = context.name || typeName
5378 }
5379
5380 return typeName && callSite.getMethodName()
5381 ? typeName + '.' + funcName
5382 : funcName
5383}
5384
5385/**
5386 * Format deprecation message without color.
5387 */
5388
5389function formatPlain (msg, caller, stack) {
5390 var timestamp = new Date().toUTCString()
5391
5392 var formatted = timestamp +
5393 ' ' + this._namespace +
5394 ' deprecated ' + msg
5395
5396 // add stack trace
5397 if (this._traced) {
5398 for (var i = 0; i < stack.length; i++) {
5399 formatted += '\n at ' + callSiteToString(stack[i])
5400 }
5401
5402 return formatted
5403 }
5404
5405 if (caller) {
5406 formatted += ' at ' + formatLocation(caller)
5407 }
5408
5409 return formatted
5410}
5411
5412/**
5413 * Format deprecation message with color.
5414 */
5415
5416function formatColor (msg, caller, stack) {
5417 var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan
5418 ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow
5419 ' \x1b[0m' + msg + '\x1b[39m' // reset
5420
5421 // add stack trace
5422 if (this._traced) {
5423 for (var i = 0; i < stack.length; i++) {
5424 formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan
5425 }
5426
5427 return formatted
5428 }
5429
5430 if (caller) {
5431 formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan
5432 }
5433
5434 return formatted
5435}
5436
5437/**
5438 * Format call site location.
5439 */
5440
5441function formatLocation (callSite) {
5442 return relative(basePath, callSite[0]) +
5443 ':' + callSite[1] +
5444 ':' + callSite[2]
5445}
5446
5447/**
5448 * Get the stack as array of call sites.
5449 */
5450
5451function getStack () {
5452 var limit = Error.stackTraceLimit
5453 var obj = {}
5454 var prep = Error.prepareStackTrace
5455
5456 Error.prepareStackTrace = prepareObjectStackTrace
5457 Error.stackTraceLimit = Math.max(10, limit)
5458
5459 // capture the stack
5460 Error.captureStackTrace(obj)
5461
5462 // slice this function off the top
5463 var stack = obj.stack.slice(1)
5464
5465 Error.prepareStackTrace = prep
5466 Error.stackTraceLimit = limit
5467
5468 return stack
5469}
5470
5471/**
5472 * Capture call site stack from v8.
5473 */
5474
5475function prepareObjectStackTrace (obj, stack) {
5476 return stack
5477}
5478
5479/**
5480 * Return a wrapped function in a deprecation message.
5481 */
5482
5483function wrapfunction (fn, message) {
5484 if (typeof fn !== 'function') {
5485 throw new TypeError('argument fn must be a function')
5486 }
5487
5488 var args = createArgumentsString(fn.length)
5489 var deprecate = this // eslint-disable-line no-unused-vars
5490 var stack = getStack()
5491 var site = callSiteLocation(stack[1])
5492
5493 site.name = fn.name
5494
5495 // eslint-disable-next-line no-eval
5496 var deprecatedfn = eval('(function (' + args + ') {\n' +
5497 '"use strict"\n' +
5498 'log.call(deprecate, message, site)\n' +
5499 'return fn.apply(this, arguments)\n' +
5500 '})')
5501
5502 return deprecatedfn
5503}
5504
5505/**
5506 * Wrap property in a deprecation message.
5507 */
5508
5509function wrapproperty (obj, prop, message) {
5510 if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
5511 throw new TypeError('argument obj must be object')
5512 }
5513
5514 var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
5515
5516 if (!descriptor) {
5517 throw new TypeError('must call property on owner object')
5518 }
5519
5520 if (!descriptor.configurable) {
5521 throw new TypeError('property must be configurable')
5522 }
5523
5524 var deprecate = this
5525 var stack = getStack()
5526 var site = callSiteLocation(stack[1])
5527
5528 // set site name
5529 site.name = prop
5530
5531 // convert data descriptor
5532 if ('value' in descriptor) {
5533 descriptor = convertDataDescriptorToAccessor(obj, prop, message)
5534 }
5535
5536 var get = descriptor.get
5537 var set = descriptor.set
5538
5539 // wrap getter
5540 if (typeof get === 'function') {
5541 descriptor.get = function getter () {
5542 log.call(deprecate, message, site)
5543 return get.apply(this, arguments)
5544 }
5545 }
5546
5547 // wrap setter
5548 if (typeof set === 'function') {
5549 descriptor.set = function setter () {
5550 log.call(deprecate, message, site)
5551 return set.apply(this, arguments)
5552 }
5553 }
5554
5555 Object.defineProperty(obj, prop, descriptor)
5556}
5557
5558/**
5559 * Create DeprecationError for deprecation
5560 */
5561
5562function DeprecationError (namespace, message, stack) {
5563 var error = new Error()
5564 var stackString
5565
5566 Object.defineProperty(error, 'constructor', {
5567 value: DeprecationError
5568 })
5569
5570 Object.defineProperty(error, 'message', {
5571 configurable: true,
5572 enumerable: false,
5573 value: message,
5574 writable: true
5575 })
5576
5577 Object.defineProperty(error, 'name', {
5578 enumerable: false,
5579 configurable: true,
5580 value: 'DeprecationError',
5581 writable: true
5582 })
5583
5584 Object.defineProperty(error, 'namespace', {
5585 configurable: true,
5586 enumerable: false,
5587 value: namespace,
5588 writable: true
5589 })
5590
5591 Object.defineProperty(error, 'stack', {
5592 configurable: true,
5593 enumerable: false,
5594 get: function () {
5595 if (stackString !== undefined) {
5596 return stackString
5597 }
5598
5599 // prepare stack trace
5600 return (stackString = createStackString.call(this, stack))
5601 },
5602 set: function setter (val) {
5603 stackString = val
5604 }
5605 })
5606
5607 return error
5608}
5609
5610
5611/***/ }),
5612/* 48 */
5613/***/ (function(module, exports) {
5614
5615module.exports = require("path");
5616
5617/***/ }),
5618/* 49 */
5619/***/ (function(module, exports, __webpack_require__) {
5620
5621var freeGlobal = __webpack_require__(341);
5622
5623/** Detect free variable `self`. */
5624var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
5625
5626/** Used as a reference to the global object. */
5627var root = freeGlobal || freeSelf || Function('return this')();
5628
5629module.exports = root;
5630
5631
5632/***/ }),
5633/* 50 */
5634/***/ (function(module, exports, __webpack_require__) {
5635
5636var META = __webpack_require__(56)('meta');
5637var isObject = __webpack_require__(5);
5638var has = __webpack_require__(17);
5639var setDesc = __webpack_require__(9).f;
5640var id = 0;
5641var isExtensible = Object.isExtensible || function () {
5642 return true;
5643};
5644var FREEZE = !__webpack_require__(4)(function () {
5645 return isExtensible(Object.preventExtensions({}));
5646});
5647var setMeta = function (it) {
5648 setDesc(it, META, { value: {
5649 i: 'O' + ++id, // object ID
5650 w: {} // weak collections IDs
5651 } });
5652};
5653var fastKey = function (it, create) {
5654 // return primitive with prefix
5655 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
5656 if (!has(it, META)) {
5657 // can't set metadata to uncaught frozen object
5658 if (!isExtensible(it)) return 'F';
5659 // not necessary to add metadata
5660 if (!create) return 'E';
5661 // add missing metadata
5662 setMeta(it);
5663 // return object ID
5664 } return it[META].i;
5665};
5666var getWeak = function (it, create) {
5667 if (!has(it, META)) {
5668 // can't set metadata to uncaught frozen object
5669 if (!isExtensible(it)) return true;
5670 // not necessary to add metadata
5671 if (!create) return false;
5672 // add missing metadata
5673 setMeta(it);
5674 // return hash weak collections IDs
5675 } return it[META].w;
5676};
5677// add metadata on freeze-family methods calling
5678var onFreeze = function (it) {
5679 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
5680 return it;
5681};
5682var meta = module.exports = {
5683 KEY: META,
5684 NEED: false,
5685 fastKey: fastKey,
5686 getWeak: getWeak,
5687 onFreeze: onFreeze
5688};
5689
5690
5691/***/ }),
5692/* 51 */
5693/***/ (function(module, exports, __webpack_require__) {
5694
5695// 22.1.3.31 Array.prototype[@@unscopables]
5696var UNSCOPABLES = __webpack_require__(7)('unscopables');
5697var ArrayProto = Array.prototype;
5698if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(18)(ArrayProto, UNSCOPABLES, {});
5699module.exports = function (key) {
5700 ArrayProto[UNSCOPABLES][key] = true;
5701};
5702
5703
5704/***/ }),
5705/* 52 */
5706/***/ (function(module, exports, __webpack_require__) {
5707
5708"use strict";
5709
5710
5711Object.defineProperty(exports, "__esModule", {
5712 value: true
5713});
5714exports.GraphQLID = exports.GraphQLBoolean = exports.GraphQLString = exports.GraphQLFloat = exports.GraphQLInt = undefined;
5715
5716var _definition = __webpack_require__(6);
5717
5718var _kinds = __webpack_require__(12);
5719
5720var Kind = _interopRequireWildcard(_kinds);
5721
5722function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
5723
5724// As per the GraphQL Spec, Integers are only treated as valid when a valid
5725// 32-bit signed integer, providing the broadest support across platforms.
5726//
5727// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because
5728// they are internally represented as IEEE 754 doubles.
5729/**
5730 * Copyright (c) 2015-present, Facebook, Inc.
5731 *
5732 * This source code is licensed under the MIT license found in the
5733 * LICENSE file in the root directory of this source tree.
5734 *
5735 *
5736 */
5737
5738var MAX_INT = 2147483647;
5739var MIN_INT = -2147483648;
5740
5741function coerceInt(value) {
5742 if (value === '') {
5743 throw new TypeError('Int cannot represent non 32-bit signed integer value: (empty string)');
5744 }
5745 var num = Number(value);
5746 if (num !== num || num > MAX_INT || num < MIN_INT) {
5747 throw new TypeError('Int cannot represent non 32-bit signed integer value: ' + String(value));
5748 }
5749 var int = Math.floor(num);
5750 if (int !== num) {
5751 throw new TypeError('Int cannot represent non-integer value: ' + String(value));
5752 }
5753 return int;
5754}
5755
5756var GraphQLInt = exports.GraphQLInt = new _definition.GraphQLScalarType({
5757 name: 'Int',
5758 description: 'The `Int` scalar type represents non-fractional signed whole numeric ' + 'values. Int can represent values between -(2^31) and 2^31 - 1. ',
5759 serialize: coerceInt,
5760 parseValue: coerceInt,
5761 parseLiteral: function parseLiteral(ast) {
5762 if (ast.kind === Kind.INT) {
5763 var num = parseInt(ast.value, 10);
5764 if (num <= MAX_INT && num >= MIN_INT) {
5765 return num;
5766 }
5767 }
5768 return null;
5769 }
5770});
5771
5772function coerceFloat(value) {
5773 if (value === '') {
5774 throw new TypeError('Float cannot represent non numeric value: (empty string)');
5775 }
5776 var num = Number(value);
5777 if (num === num) {
5778 return num;
5779 }
5780 throw new TypeError('Float cannot represent non numeric value: ' + String(value));
5781}
5782
5783var GraphQLFloat = exports.GraphQLFloat = new _definition.GraphQLScalarType({
5784 name: 'Float',
5785 description: 'The `Float` scalar type represents signed double-precision fractional ' + 'values as specified by ' + '[IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point). ',
5786 serialize: coerceFloat,
5787 parseValue: coerceFloat,
5788 parseLiteral: function parseLiteral(ast) {
5789 return ast.kind === Kind.FLOAT || ast.kind === Kind.INT ? parseFloat(ast.value) : null;
5790 }
5791});
5792
5793function coerceString(value) {
5794 if (Array.isArray(value)) {
5795 throw new TypeError('String cannot represent an array value: [' + String(value) + ']');
5796 }
5797 return String(value);
5798}
5799
5800var GraphQLString = exports.GraphQLString = new _definition.GraphQLScalarType({
5801 name: 'String',
5802 description: 'The `String` scalar type represents textual data, represented as UTF-8 ' + 'character sequences. The String type is most often used by GraphQL to ' + 'represent free-form human-readable text.',
5803 serialize: coerceString,
5804 parseValue: coerceString,
5805 parseLiteral: function parseLiteral(ast) {
5806 return ast.kind === Kind.STRING ? ast.value : null;
5807 }
5808});
5809
5810var GraphQLBoolean = exports.GraphQLBoolean = new _definition.GraphQLScalarType({
5811 name: 'Boolean',
5812 description: 'The `Boolean` scalar type represents `true` or `false`.',
5813 serialize: Boolean,
5814 parseValue: Boolean,
5815 parseLiteral: function parseLiteral(ast) {
5816 return ast.kind === Kind.BOOLEAN ? ast.value : null;
5817 }
5818});
5819
5820var GraphQLID = exports.GraphQLID = new _definition.GraphQLScalarType({
5821 name: 'ID',
5822 description: 'The `ID` scalar type represents a unique identifier, often used to ' + 'refetch an object or as key for a cache. The ID type appears in a JSON ' + 'response as a String; however, it is not intended to be human-readable. ' + 'When expected as an input type, any string (such as `"4"`) or integer ' + '(such as `4`) input value will be accepted as an ID.',
5823 serialize: String,
5824 parseValue: String,
5825 parseLiteral: function parseLiteral(ast) {
5826 return ast.kind === Kind.STRING || ast.kind === Kind.INT ? ast.value : null;
5827 }
5828});
5829
5830/***/ }),
5831/* 53 */
5832/***/ (function(module, exports) {
5833
5834module.exports = require("url");
5835
5836/***/ }),
5837/* 54 */
5838/***/ (function(module, exports) {
5839
5840module.exports = require("util");
5841
5842/***/ }),
5843/* 55 */
5844/***/ (function(module, exports) {
5845
5846module.exports = function (bitmap, value) {
5847 return {
5848 enumerable: !(bitmap & 1),
5849 configurable: !(bitmap & 2),
5850 writable: !(bitmap & 4),
5851 value: value
5852 };
5853};
5854
5855
5856/***/ }),
5857/* 56 */
5858/***/ (function(module, exports) {
5859
5860var id = 0;
5861var px = Math.random();
5862module.exports = function (key) {
5863 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
5864};
5865
5866
5867/***/ }),
5868/* 57 */
5869/***/ (function(module, exports) {
5870
5871module.exports = false;
5872
5873
5874/***/ }),
5875/* 58 */
5876/***/ (function(module, exports, __webpack_require__) {
5877
5878// 19.1.2.14 / 15.2.3.14 Object.keys(O)
5879var $keys = __webpack_require__(216);
5880var enumBugKeys = __webpack_require__(150);
5881
5882module.exports = Object.keys || function keys(O) {
5883 return $keys(O, enumBugKeys);
5884};
5885
5886
5887/***/ }),
5888/* 59 */
5889/***/ (function(module, exports, __webpack_require__) {
5890
5891var toInteger = __webpack_require__(36);
5892var max = Math.max;
5893var min = Math.min;
5894module.exports = function (index, length) {
5895 index = toInteger(index);
5896 return index < 0 ? max(index + length, 0) : min(index, length);
5897};
5898
5899
5900/***/ }),
5901/* 60 */
5902/***/ (function(module, exports, __webpack_require__) {
5903
5904// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
5905var anObject = __webpack_require__(1);
5906var dPs = __webpack_require__(217);
5907var enumBugKeys = __webpack_require__(150);
5908var IE_PROTO = __webpack_require__(149)('IE_PROTO');
5909var Empty = function () { /* empty */ };
5910var PROTOTYPE = 'prototype';
5911
5912// Create object with fake `null` prototype: use iframe Object with cleared prototype
5913var createDict = function () {
5914 // Thrash, waste and sodomy: IE GC bug
5915 var iframe = __webpack_require__(147)('iframe');
5916 var i = enumBugKeys.length;
5917 var lt = '<';
5918 var gt = '>';
5919 var iframeDocument;
5920 iframe.style.display = 'none';
5921 __webpack_require__(151).appendChild(iframe);
5922 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
5923 // createDict = iframe.contentWindow.Object;
5924 // html.removeChild(iframe);
5925 iframeDocument = iframe.contentWindow.document;
5926 iframeDocument.open();
5927 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
5928 iframeDocument.close();
5929 createDict = iframeDocument.F;
5930 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
5931 return createDict();
5932};
5933
5934module.exports = Object.create || function create(O, Properties) {
5935 var result;
5936 if (O !== null) {
5937 Empty[PROTOTYPE] = anObject(O);
5938 result = new Empty();
5939 Empty[PROTOTYPE] = null;
5940 // add "__proto__" for Object.getPrototypeOf polyfill
5941 result[IE_PROTO] = O;
5942 } else result = createDict();
5943 return Properties === undefined ? result : dPs(result, Properties);
5944};
5945
5946
5947/***/ }),
5948/* 61 */
5949/***/ (function(module, exports, __webpack_require__) {
5950
5951// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
5952var $keys = __webpack_require__(216);
5953var hiddenKeys = __webpack_require__(150).concat('length', 'prototype');
5954
5955exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
5956 return $keys(O, hiddenKeys);
5957};
5958
5959
5960/***/ }),
5961/* 62 */
5962/***/ (function(module, exports, __webpack_require__) {
5963
5964"use strict";
5965
5966var global = __webpack_require__(2);
5967var dP = __webpack_require__(9);
5968var DESCRIPTORS = __webpack_require__(8);
5969var SPECIES = __webpack_require__(7)('species');
5970
5971module.exports = function (KEY) {
5972 var C = global[KEY];
5973 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
5974 configurable: true,
5975 get: function () { return this; }
5976 });
5977};
5978
5979
5980/***/ }),
5981/* 63 */
5982/***/ (function(module, exports) {
5983
5984module.exports = function (it, Constructor, name, forbiddenField) {
5985 if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
5986 throw TypeError(name + ': incorrect invocation!');
5987 } return it;
5988};
5989
5990
5991/***/ }),
5992/* 64 */
5993/***/ (function(module, exports, __webpack_require__) {
5994
5995var ctx = __webpack_require__(25);
5996var call = __webpack_require__(228);
5997var isArrayIter = __webpack_require__(163);
5998var anObject = __webpack_require__(1);
5999var toLength = __webpack_require__(10);
6000var getIterFn = __webpack_require__(165);
6001var BREAK = {};
6002var RETURN = {};
6003var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
6004 var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
6005 var f = ctx(fn, that, entries ? 2 : 1);
6006 var index = 0;
6007 var length, step, iterator, result;
6008 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
6009 // fast case for arrays with default iterator
6010 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
6011 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
6012 if (result === BREAK || result === RETURN) return result;
6013 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
6014 result = call(iterator, f, step.value, entries);
6015 if (result === BREAK || result === RETURN) return result;
6016 }
6017};
6018exports.BREAK = BREAK;
6019exports.RETURN = RETURN;
6020
6021
6022/***/ }),
6023/* 65 */
6024/***/ (function(module, exports, __webpack_require__) {
6025
6026var redefine = __webpack_require__(19);
6027module.exports = function (target, src, safe) {
6028 for (var key in src) redefine(target, key, src[key], safe);
6029 return target;
6030};
6031
6032
6033/***/ }),
6034/* 66 */
6035/***/ (function(module, exports, __webpack_require__) {
6036
6037"use strict";
6038
6039
6040Object.defineProperty(exports, "__esModule", {
6041 value: true
6042});
6043exports.default = isNullish;
6044/**
6045 * Copyright (c) 2015-present, Facebook, Inc.
6046 *
6047 * This source code is licensed under the MIT license found in the
6048 * LICENSE file in the root directory of this source tree.
6049 *
6050 *
6051 */
6052
6053/**
6054 * Returns true if a value is null, undefined, or NaN.
6055 */
6056function isNullish(value) {
6057 return value === null || value === undefined || value !== value;
6058}
6059
6060/***/ }),
6061/* 67 */
6062/***/ (function(module, exports, __webpack_require__) {
6063
6064"use strict";
6065
6066
6067Object.defineProperty(exports, "__esModule", {
6068 value: true
6069});
6070exports.TypeNameMetaFieldDef = exports.TypeMetaFieldDef = exports.SchemaMetaFieldDef = exports.__TypeKind = exports.TypeKind = exports.__EnumValue = exports.__InputValue = exports.__Field = exports.__Type = exports.__DirectiveLocation = exports.__Directive = exports.__Schema = undefined;
6071
6072var _isInvalid = __webpack_require__(86);
6073
6074var _isInvalid2 = _interopRequireDefault(_isInvalid);
6075
6076var _astFromValue = __webpack_require__(177);
6077
6078var _printer = __webpack_require__(28);
6079
6080var _definition = __webpack_require__(6);
6081
6082var _scalars = __webpack_require__(52);
6083
6084var _directives = __webpack_require__(45);
6085
6086function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6087
6088/**
6089 * Copyright (c) 2015-present, Facebook, Inc.
6090 *
6091 * This source code is licensed under the MIT license found in the
6092 * LICENSE file in the root directory of this source tree.
6093 *
6094 *
6095 */
6096
6097var __Schema = exports.__Schema = new _definition.GraphQLObjectType({
6098 name: '__Schema',
6099 isIntrospection: true,
6100 description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It ' + 'exposes all available types and directives on the server, as well as ' + 'the entry points for query, mutation, and subscription operations.',
6101 fields: function fields() {
6102 return {
6103 types: {
6104 description: 'A list of all types supported by this server.',
6105 type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type))),
6106 resolve: function resolve(schema) {
6107 var typeMap = schema.getTypeMap();
6108 return Object.keys(typeMap).map(function (key) {
6109 return typeMap[key];
6110 });
6111 }
6112 },
6113 queryType: {
6114 description: 'The type that query operations will be rooted at.',
6115 type: new _definition.GraphQLNonNull(__Type),
6116 resolve: function resolve(schema) {
6117 return schema.getQueryType();
6118 }
6119 },
6120 mutationType: {
6121 description: 'If this server supports mutation, the type that ' + 'mutation operations will be rooted at.',
6122 type: __Type,
6123 resolve: function resolve(schema) {
6124 return schema.getMutationType();
6125 }
6126 },
6127 subscriptionType: {
6128 description: 'If this server support subscription, the type that ' + 'subscription operations will be rooted at.',
6129 type: __Type,
6130 resolve: function resolve(schema) {
6131 return schema.getSubscriptionType();
6132 }
6133 },
6134 directives: {
6135 description: 'A list of all directives supported by this server.',
6136 type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__Directive))),
6137 resolve: function resolve(schema) {
6138 return schema.getDirectives();
6139 }
6140 }
6141 };
6142 }
6143});
6144
6145var __Directive = exports.__Directive = new _definition.GraphQLObjectType({
6146 name: '__Directive',
6147 isIntrospection: true,
6148 description: 'A Directive provides a way to describe alternate runtime execution and ' + 'type validation behavior in a GraphQL document.' + '\n\nIn some cases, you need to provide options to alter GraphQL\'s ' + 'execution behavior in ways field arguments will not suffice, such as ' + 'conditionally including or skipping a field. Directives provide this by ' + 'describing additional information to the executor.',
6149 fields: function fields() {
6150 return {
6151 name: { type: new _definition.GraphQLNonNull(_scalars.GraphQLString) },
6152 description: { type: _scalars.GraphQLString },
6153 locations: {
6154 type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__DirectiveLocation)))
6155 },
6156 args: {
6157 type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue))),
6158 resolve: function resolve(directive) {
6159 return directive.args || [];
6160 }
6161 },
6162 // NOTE: the following three fields are deprecated and are no longer part
6163 // of the GraphQL specification.
6164 onOperation: {
6165 deprecationReason: 'Use `locations`.',
6166 type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
6167 resolve: function resolve(d) {
6168 return d.locations.indexOf(_directives.DirectiveLocation.QUERY) !== -1 || d.locations.indexOf(_directives.DirectiveLocation.MUTATION) !== -1 || d.locations.indexOf(_directives.DirectiveLocation.SUBSCRIPTION) !== -1;
6169 }
6170 },
6171 onFragment: {
6172 deprecationReason: 'Use `locations`.',
6173 type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
6174 resolve: function resolve(d) {
6175 return d.locations.indexOf(_directives.DirectiveLocation.FRAGMENT_SPREAD) !== -1 || d.locations.indexOf(_directives.DirectiveLocation.INLINE_FRAGMENT) !== -1 || d.locations.indexOf(_directives.DirectiveLocation.FRAGMENT_DEFINITION) !== -1;
6176 }
6177 },
6178 onField: {
6179 deprecationReason: 'Use `locations`.',
6180 type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean),
6181 resolve: function resolve(d) {
6182 return d.locations.indexOf(_directives.DirectiveLocation.FIELD) !== -1;
6183 }
6184 }
6185 };
6186 }
6187});
6188
6189var __DirectiveLocation = exports.__DirectiveLocation = new _definition.GraphQLEnumType({
6190 name: '__DirectiveLocation',
6191 isIntrospection: true,
6192 description: 'A Directive can be adjacent to many parts of the GraphQL language, a ' + '__DirectiveLocation describes one such possible adjacencies.',
6193 values: {
6194 QUERY: {
6195 value: _directives.DirectiveLocation.QUERY,
6196 description: 'Location adjacent to a query operation.'
6197 },
6198 MUTATION: {
6199 value: _directives.DirectiveLocation.MUTATION,
6200 description: 'Location adjacent to a mutation operation.'
6201 },
6202 SUBSCRIPTION: {
6203 value: _directives.DirectiveLocation.SUBSCRIPTION,
6204 description: 'Location adjacent to a subscription operation.'
6205 },
6206 FIELD: {
6207 value: _directives.DirectiveLocation.FIELD,
6208 description: 'Location adjacent to a field.'
6209 },
6210 FRAGMENT_DEFINITION: {
6211 value: _directives.DirectiveLocation.FRAGMENT_DEFINITION,
6212 description: 'Location adjacent to a fragment definition.'
6213 },
6214 FRAGMENT_SPREAD: {
6215 value: _directives.DirectiveLocation.FRAGMENT_SPREAD,
6216 description: 'Location adjacent to a fragment spread.'
6217 },
6218 INLINE_FRAGMENT: {
6219 value: _directives.DirectiveLocation.INLINE_FRAGMENT,
6220 description: 'Location adjacent to an inline fragment.'
6221 },
6222 SCHEMA: {
6223 value: _directives.DirectiveLocation.SCHEMA,
6224 description: 'Location adjacent to a schema definition.'
6225 },
6226 SCALAR: {
6227 value: _directives.DirectiveLocation.SCALAR,
6228 description: 'Location adjacent to a scalar definition.'
6229 },
6230 OBJECT: {
6231 value: _directives.DirectiveLocation.OBJECT,
6232 description: 'Location adjacent to an object type definition.'
6233 },
6234 FIELD_DEFINITION: {
6235 value: _directives.DirectiveLocation.FIELD_DEFINITION,
6236 description: 'Location adjacent to a field definition.'
6237 },
6238 ARGUMENT_DEFINITION: {
6239 value: _directives.DirectiveLocation.ARGUMENT_DEFINITION,
6240 description: 'Location adjacent to an argument definition.'
6241 },
6242 INTERFACE: {
6243 value: _directives.DirectiveLocation.INTERFACE,
6244 description: 'Location adjacent to an interface definition.'
6245 },
6246 UNION: {
6247 value: _directives.DirectiveLocation.UNION,
6248 description: 'Location adjacent to a union definition.'
6249 },
6250 ENUM: {
6251 value: _directives.DirectiveLocation.ENUM,
6252 description: 'Location adjacent to an enum definition.'
6253 },
6254 ENUM_VALUE: {
6255 value: _directives.DirectiveLocation.ENUM_VALUE,
6256 description: 'Location adjacent to an enum value definition.'
6257 },
6258 INPUT_OBJECT: {
6259 value: _directives.DirectiveLocation.INPUT_OBJECT,
6260 description: 'Location adjacent to an input object type definition.'
6261 },
6262 INPUT_FIELD_DEFINITION: {
6263 value: _directives.DirectiveLocation.INPUT_FIELD_DEFINITION,
6264 description: 'Location adjacent to an input object field definition.'
6265 }
6266 }
6267});
6268
6269var __Type = exports.__Type = new _definition.GraphQLObjectType({
6270 name: '__Type',
6271 isIntrospection: true,
6272 description: 'The fundamental unit of any GraphQL Schema is the type. There are ' + 'many kinds of types in GraphQL as represented by the `__TypeKind` enum.' + '\n\nDepending on the kind of a type, certain fields describe ' + 'information about that type. Scalar types provide no information ' + 'beyond a name and description, while Enum types provide their values. ' + 'Object and Interface types provide the fields they describe. Abstract ' + 'types, Union and Interface, provide the Object types possible ' + 'at runtime. List and NonNull types compose other types.',
6273 fields: function fields() {
6274 return {
6275 kind: {
6276 type: new _definition.GraphQLNonNull(__TypeKind),
6277 resolve: function resolve(type) {
6278 if (type instanceof _definition.GraphQLScalarType) {
6279 return TypeKind.SCALAR;
6280 } else if (type instanceof _definition.GraphQLObjectType) {
6281 return TypeKind.OBJECT;
6282 } else if (type instanceof _definition.GraphQLInterfaceType) {
6283 return TypeKind.INTERFACE;
6284 } else if (type instanceof _definition.GraphQLUnionType) {
6285 return TypeKind.UNION;
6286 } else if (type instanceof _definition.GraphQLEnumType) {
6287 return TypeKind.ENUM;
6288 } else if (type instanceof _definition.GraphQLInputObjectType) {
6289 return TypeKind.INPUT_OBJECT;
6290 } else if (type instanceof _definition.GraphQLList) {
6291 return TypeKind.LIST;
6292 } else if (type instanceof _definition.GraphQLNonNull) {
6293 return TypeKind.NON_NULL;
6294 }
6295 throw new Error('Unknown kind of type: ' + type);
6296 }
6297 },
6298 name: { type: _scalars.GraphQLString },
6299 description: { type: _scalars.GraphQLString },
6300 fields: {
6301 type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Field)),
6302 args: {
6303 includeDeprecated: { type: _scalars.GraphQLBoolean, defaultValue: false }
6304 },
6305 resolve: function resolve(type, _ref) {
6306 var includeDeprecated = _ref.includeDeprecated;
6307
6308 if (type instanceof _definition.GraphQLObjectType || type instanceof _definition.GraphQLInterfaceType) {
6309 var fieldMap = type.getFields();
6310 var fields = Object.keys(fieldMap).map(function (fieldName) {
6311 return fieldMap[fieldName];
6312 });
6313 if (!includeDeprecated) {
6314 fields = fields.filter(function (field) {
6315 return !field.deprecationReason;
6316 });
6317 }
6318 return fields;
6319 }
6320 return null;
6321 }
6322 },
6323 interfaces: {
6324 type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)),
6325 resolve: function resolve(type) {
6326 if (type instanceof _definition.GraphQLObjectType) {
6327 return type.getInterfaces();
6328 }
6329 }
6330 },
6331 possibleTypes: {
6332 type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__Type)),
6333 resolve: function resolve(type, args, context, _ref2) {
6334 var schema = _ref2.schema;
6335
6336 if ((0, _definition.isAbstractType)(type)) {
6337 return schema.getPossibleTypes(type);
6338 }
6339 }
6340 },
6341 enumValues: {
6342 type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__EnumValue)),
6343 args: {
6344 includeDeprecated: { type: _scalars.GraphQLBoolean, defaultValue: false }
6345 },
6346 resolve: function resolve(type, _ref3) {
6347 var includeDeprecated = _ref3.includeDeprecated;
6348
6349 if (type instanceof _definition.GraphQLEnumType) {
6350 var values = type.getValues();
6351 if (!includeDeprecated) {
6352 values = values.filter(function (value) {
6353 return !value.deprecationReason;
6354 });
6355 }
6356 return values;
6357 }
6358 }
6359 },
6360 inputFields: {
6361 type: new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue)),
6362 resolve: function resolve(type) {
6363 if (type instanceof _definition.GraphQLInputObjectType) {
6364 var fieldMap = type.getFields();
6365 return Object.keys(fieldMap).map(function (fieldName) {
6366 return fieldMap[fieldName];
6367 });
6368 }
6369 }
6370 },
6371 ofType: { type: __Type }
6372 };
6373 }
6374});
6375
6376var __Field = exports.__Field = new _definition.GraphQLObjectType({
6377 name: '__Field',
6378 isIntrospection: true,
6379 description: 'Object and Interface types are described by a list of Fields, each of ' + 'which has a name, potentially a list of arguments, and a return type.',
6380 fields: function fields() {
6381 return {
6382 name: { type: new _definition.GraphQLNonNull(_scalars.GraphQLString) },
6383 description: { type: _scalars.GraphQLString },
6384 args: {
6385 type: new _definition.GraphQLNonNull(new _definition.GraphQLList(new _definition.GraphQLNonNull(__InputValue))),
6386 resolve: function resolve(field) {
6387 return field.args || [];
6388 }
6389 },
6390 type: { type: new _definition.GraphQLNonNull(__Type) },
6391 isDeprecated: { type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean) },
6392 deprecationReason: {
6393 type: _scalars.GraphQLString
6394 }
6395 };
6396 }
6397});
6398
6399var __InputValue = exports.__InputValue = new _definition.GraphQLObjectType({
6400 name: '__InputValue',
6401 isIntrospection: true,
6402 description: 'Arguments provided to Fields or Directives and the input fields of an ' + 'InputObject are represented as Input Values which describe their type ' + 'and optionally a default value.',
6403 fields: function fields() {
6404 return {
6405 name: { type: new _definition.GraphQLNonNull(_scalars.GraphQLString) },
6406 description: { type: _scalars.GraphQLString },
6407 type: { type: new _definition.GraphQLNonNull(__Type) },
6408 defaultValue: {
6409 type: _scalars.GraphQLString,
6410 description: 'A GraphQL-formatted string representing the default value for this ' + 'input value.',
6411 resolve: function resolve(inputVal) {
6412 return (0, _isInvalid2.default)(inputVal.defaultValue) ? null : (0, _printer.print)((0, _astFromValue.astFromValue)(inputVal.defaultValue, inputVal.type));
6413 }
6414 }
6415 };
6416 }
6417});
6418
6419var __EnumValue = exports.__EnumValue = new _definition.GraphQLObjectType({
6420 name: '__EnumValue',
6421 isIntrospection: true,
6422 description: 'One possible value for a given Enum. Enum values are unique values, not ' + 'a placeholder for a string or numeric value. However an Enum value is ' + 'returned in a JSON response as a string.',
6423 fields: function fields() {
6424 return {
6425 name: { type: new _definition.GraphQLNonNull(_scalars.GraphQLString) },
6426 description: { type: _scalars.GraphQLString },
6427 isDeprecated: { type: new _definition.GraphQLNonNull(_scalars.GraphQLBoolean) },
6428 deprecationReason: {
6429 type: _scalars.GraphQLString
6430 }
6431 };
6432 }
6433});
6434
6435var TypeKind = exports.TypeKind = {
6436 SCALAR: 'SCALAR',
6437 OBJECT: 'OBJECT',
6438 INTERFACE: 'INTERFACE',
6439 UNION: 'UNION',
6440 ENUM: 'ENUM',
6441 INPUT_OBJECT: 'INPUT_OBJECT',
6442 LIST: 'LIST',
6443 NON_NULL: 'NON_NULL'
6444};
6445
6446var __TypeKind = exports.__TypeKind = new _definition.GraphQLEnumType({
6447 name: '__TypeKind',
6448 isIntrospection: true,
6449 description: 'An enum describing what kind of type a given `__Type` is.',
6450 values: {
6451 SCALAR: {
6452 value: TypeKind.SCALAR,
6453 description: 'Indicates this type is a scalar.'
6454 },
6455 OBJECT: {
6456 value: TypeKind.OBJECT,
6457 description: 'Indicates this type is an object. ' + '`fields` and `interfaces` are valid fields.'
6458 },
6459 INTERFACE: {
6460 value: TypeKind.INTERFACE,
6461 description: 'Indicates this type is an interface. ' + '`fields` and `possibleTypes` are valid fields.'
6462 },
6463 UNION: {
6464 value: TypeKind.UNION,
6465 description: 'Indicates this type is a union. ' + '`possibleTypes` is a valid field.'
6466 },
6467 ENUM: {
6468 value: TypeKind.ENUM,
6469 description: 'Indicates this type is an enum. ' + '`enumValues` is a valid field.'
6470 },
6471 INPUT_OBJECT: {
6472 value: TypeKind.INPUT_OBJECT,
6473 description: 'Indicates this type is an input object. ' + '`inputFields` is a valid field.'
6474 },
6475 LIST: {
6476 value: TypeKind.LIST,
6477 description: 'Indicates this type is a list. ' + '`ofType` is a valid field.'
6478 },
6479 NON_NULL: {
6480 value: TypeKind.NON_NULL,
6481 description: 'Indicates this type is a non-null. ' + '`ofType` is a valid field.'
6482 }
6483 }
6484});
6485
6486/**
6487 * Note that these are GraphQLField and not GraphQLFieldConfig,
6488 * so the format for args is different.
6489 */
6490
6491var SchemaMetaFieldDef = exports.SchemaMetaFieldDef = {
6492 name: '__schema',
6493 type: new _definition.GraphQLNonNull(__Schema),
6494 description: 'Access the current type schema of this server.',
6495 args: [],
6496 resolve: function resolve(source, args, context, _ref4) {
6497 var schema = _ref4.schema;
6498 return schema;
6499 }
6500};
6501
6502var TypeMetaFieldDef = exports.TypeMetaFieldDef = {
6503 name: '__type',
6504 type: __Type,
6505 description: 'Request the type information of a single type.',
6506 args: [{ name: 'name', type: new _definition.GraphQLNonNull(_scalars.GraphQLString) }],
6507 resolve: function resolve(source, _ref5, context, _ref6) {
6508 var name = _ref5.name;
6509 var schema = _ref6.schema;
6510 return schema.getType(name);
6511 }
6512};
6513
6514var TypeNameMetaFieldDef = exports.TypeNameMetaFieldDef = {
6515 name: '__typename',
6516 type: new _definition.GraphQLNonNull(_scalars.GraphQLString),
6517 description: 'The name of the current Object type at runtime.',
6518 args: [],
6519 resolve: function resolve(source, args, context, _ref7) {
6520 var parentType = _ref7.parentType;
6521 return parentType.name;
6522 }
6523};
6524
6525/***/ }),
6526/* 68 */
6527/***/ (function(module, exports) {
6528
6529module.exports = require("fs");
6530
6531/***/ }),
6532/* 69 */
6533/***/ (function(module, exports, __webpack_require__) {
6534
6535"use strict";
6536/*!
6537 * express
6538 * Copyright(c) 2009-2013 TJ Holowaychuk
6539 * Copyright(c) 2014-2015 Douglas Christopher Wilson
6540 * MIT Licensed
6541 */
6542
6543
6544
6545/**
6546 * Module dependencies.
6547 * @api private
6548 */
6549
6550var Buffer = __webpack_require__(29).Buffer
6551var contentDisposition = __webpack_require__(309);
6552var contentType = __webpack_require__(121);
6553var deprecate = __webpack_require__(47)('express');
6554var flatten = __webpack_require__(128);
6555var mime = __webpack_require__(192).mime;
6556var etag = __webpack_require__(310);
6557var proxyaddr = __webpack_require__(313);
6558var qs = __webpack_require__(190);
6559var querystring = __webpack_require__(304);
6560
6561/**
6562 * Return strong ETag for `body`.
6563 *
6564 * @param {String|Buffer} body
6565 * @param {String} [encoding]
6566 * @return {String}
6567 * @api private
6568 */
6569
6570exports.etag = createETagGenerator({ weak: false })
6571
6572/**
6573 * Return weak ETag for `body`.
6574 *
6575 * @param {String|Buffer} body
6576 * @param {String} [encoding]
6577 * @return {String}
6578 * @api private
6579 */
6580
6581exports.wetag = createETagGenerator({ weak: true })
6582
6583/**
6584 * Check if `path` looks absolute.
6585 *
6586 * @param {String} path
6587 * @return {Boolean}
6588 * @api private
6589 */
6590
6591exports.isAbsolute = function(path){
6592 if ('/' === path[0]) return true;
6593 if (':' === path[1] && ('\\' === path[2] || '/' === path[2])) return true; // Windows device path
6594 if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path
6595};
6596
6597/**
6598 * Flatten the given `arr`.
6599 *
6600 * @param {Array} arr
6601 * @return {Array}
6602 * @api private
6603 */
6604
6605exports.flatten = deprecate.function(flatten,
6606 'utils.flatten: use array-flatten npm module instead');
6607
6608/**
6609 * Normalize the given `type`, for example "html" becomes "text/html".
6610 *
6611 * @param {String} type
6612 * @return {Object}
6613 * @api private
6614 */
6615
6616exports.normalizeType = function(type){
6617 return ~type.indexOf('/')
6618 ? acceptParams(type)
6619 : { value: mime.lookup(type), params: {} };
6620};
6621
6622/**
6623 * Normalize `types`, for example "html" becomes "text/html".
6624 *
6625 * @param {Array} types
6626 * @return {Array}
6627 * @api private
6628 */
6629
6630exports.normalizeTypes = function(types){
6631 var ret = [];
6632
6633 for (var i = 0; i < types.length; ++i) {
6634 ret.push(exports.normalizeType(types[i]));
6635 }
6636
6637 return ret;
6638};
6639
6640/**
6641 * Generate Content-Disposition header appropriate for the filename.
6642 * non-ascii filenames are urlencoded and a filename* parameter is added
6643 *
6644 * @param {String} filename
6645 * @return {String}
6646 * @api private
6647 */
6648
6649exports.contentDisposition = deprecate.function(contentDisposition,
6650 'utils.contentDisposition: use content-disposition npm module instead');
6651
6652/**
6653 * Parse accept params `str` returning an
6654 * object with `.value`, `.quality` and `.params`.
6655 * also includes `.originalIndex` for stable sorting
6656 *
6657 * @param {String} str
6658 * @return {Object}
6659 * @api private
6660 */
6661
6662function acceptParams(str, index) {
6663 var parts = str.split(/ *; */);
6664 var ret = { value: parts[0], quality: 1, params: {}, originalIndex: index };
6665
6666 for (var i = 1; i < parts.length; ++i) {
6667 var pms = parts[i].split(/ *= */);
6668 if ('q' === pms[0]) {
6669 ret.quality = parseFloat(pms[1]);
6670 } else {
6671 ret.params[pms[0]] = pms[1];
6672 }
6673 }
6674
6675 return ret;
6676}
6677
6678/**
6679 * Compile "etag" value to function.
6680 *
6681 * @param {Boolean|String|Function} val
6682 * @return {Function}
6683 * @api private
6684 */
6685
6686exports.compileETag = function(val) {
6687 var fn;
6688
6689 if (typeof val === 'function') {
6690 return val;
6691 }
6692
6693 switch (val) {
6694 case true:
6695 fn = exports.wetag;
6696 break;
6697 case false:
6698 break;
6699 case 'strong':
6700 fn = exports.etag;
6701 break;
6702 case 'weak':
6703 fn = exports.wetag;
6704 break;
6705 default:
6706 throw new TypeError('unknown value for etag function: ' + val);
6707 }
6708
6709 return fn;
6710}
6711
6712/**
6713 * Compile "query parser" value to function.
6714 *
6715 * @param {String|Function} val
6716 * @return {Function}
6717 * @api private
6718 */
6719
6720exports.compileQueryParser = function compileQueryParser(val) {
6721 var fn;
6722
6723 if (typeof val === 'function') {
6724 return val;
6725 }
6726
6727 switch (val) {
6728 case true:
6729 fn = querystring.parse;
6730 break;
6731 case false:
6732 fn = newObject;
6733 break;
6734 case 'extended':
6735 fn = parseExtendedQueryString;
6736 break;
6737 case 'simple':
6738 fn = querystring.parse;
6739 break;
6740 default:
6741 throw new TypeError('unknown value for query parser function: ' + val);
6742 }
6743
6744 return fn;
6745}
6746
6747/**
6748 * Compile "proxy trust" value to function.
6749 *
6750 * @param {Boolean|String|Number|Array|Function} val
6751 * @return {Function}
6752 * @api private
6753 */
6754
6755exports.compileTrust = function(val) {
6756 if (typeof val === 'function') return val;
6757
6758 if (val === true) {
6759 // Support plain true/false
6760 return function(){ return true };
6761 }
6762
6763 if (typeof val === 'number') {
6764 // Support trusting hop count
6765 return function(a, i){ return i < val };
6766 }
6767
6768 if (typeof val === 'string') {
6769 // Support comma-separated values
6770 val = val.split(/ *, */);
6771 }
6772
6773 return proxyaddr.compile(val || []);
6774}
6775
6776/**
6777 * Set the charset in a given Content-Type string.
6778 *
6779 * @param {String} type
6780 * @param {String} charset
6781 * @return {String}
6782 * @api private
6783 */
6784
6785exports.setCharset = function setCharset(type, charset) {
6786 if (!type || !charset) {
6787 return type;
6788 }
6789
6790 // parse type
6791 var parsed = contentType.parse(type);
6792
6793 // set charset
6794 parsed.parameters.charset = charset;
6795
6796 // format type
6797 return contentType.format(parsed);
6798};
6799
6800/**
6801 * Create an ETag generator function, generating ETags with
6802 * the given options.
6803 *
6804 * @param {object} options
6805 * @return {function}
6806 * @private
6807 */
6808
6809function createETagGenerator (options) {
6810 return function generateETag (body, encoding) {
6811 var buf = !Buffer.isBuffer(body)
6812 ? Buffer.from(body, encoding)
6813 : body
6814
6815 return etag(buf, options)
6816 }
6817}
6818
6819/**
6820 * Parse an extended query string with qs.
6821 *
6822 * @return {Object}
6823 * @private
6824 */
6825
6826function parseExtendedQueryString(str) {
6827 return qs.parse(str, {
6828 allowPrototypes: true
6829 });
6830}
6831
6832/**
6833 * Return new empty object.
6834 *
6835 * @return {Object}
6836 * @api private
6837 */
6838
6839function newObject() {
6840 return {};
6841}
6842
6843
6844/***/ }),
6845/* 70 */
6846/***/ (function(module, exports, __webpack_require__) {
6847
6848var isObject = __webpack_require__(93);
6849module.exports = function (it) {
6850 if (!isObject(it)) throw TypeError(it + ' is not an object!');
6851 return it;
6852};
6853
6854
6855/***/ }),
6856/* 71 */
6857/***/ (function(module, exports, __webpack_require__) {
6858
6859var def = __webpack_require__(9).f;
6860var has = __webpack_require__(17);
6861var TAG = __webpack_require__(7)('toStringTag');
6862
6863module.exports = function (it, tag, stat) {
6864 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
6865};
6866
6867
6868/***/ }),
6869/* 72 */
6870/***/ (function(module, exports, __webpack_require__) {
6871
6872var $export = __webpack_require__(0);
6873var defined = __webpack_require__(35);
6874var fails = __webpack_require__(4);
6875var spaces = __webpack_require__(153);
6876var space = '[' + spaces + ']';
6877var non = '\u200b\u0085';
6878var ltrim = RegExp('^' + space + space + '*');
6879var rtrim = RegExp(space + space + '*$');
6880
6881var exporter = function (KEY, exec, ALIAS) {
6882 var exp = {};
6883 var FORCE = fails(function () {
6884 return !!spaces[KEY]() || non[KEY]() != non;
6885 });
6886 var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
6887 if (ALIAS) exp[ALIAS] = fn;
6888 $export($export.P + $export.F * FORCE, 'String', exp);
6889};
6890
6891// 1 -> String#trimLeft
6892// 2 -> String#trimRight
6893// 3 -> String#trim
6894var trim = exporter.trim = function (string, TYPE) {
6895 string = String(defined(string));
6896 if (TYPE & 1) string = string.replace(ltrim, '');
6897 if (TYPE & 2) string = string.replace(rtrim, '');
6898 return string;
6899};
6900
6901module.exports = exporter;
6902
6903
6904/***/ }),
6905/* 73 */
6906/***/ (function(module, exports) {
6907
6908module.exports = {};
6909
6910
6911/***/ }),
6912/* 74 */
6913/***/ (function(module, exports, __webpack_require__) {
6914
6915var isObject = __webpack_require__(5);
6916module.exports = function (it, TYPE) {
6917 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
6918 return it;
6919};
6920
6921
6922/***/ }),
6923/* 75 */
6924/***/ (function(module, exports, __webpack_require__) {
6925
6926"use strict";
6927
6928
6929Object.defineProperty(exports, "__esModule", {
6930 value: true
6931});
6932exports.GraphQLError = GraphQLError;
6933
6934var _location = __webpack_require__(174);
6935
6936/**
6937 * A GraphQLError describes an Error found during the parse, validate, or
6938 * execute phases of performing a GraphQL operation. In addition to a message
6939 * and stack trace, it also includes information about the locations in a
6940 * GraphQL document and/or execution result that correspond to the Error.
6941 */
6942function GraphQLError( // eslint-disable-line no-redeclare
6943message, nodes, source, positions, path, originalError) {
6944 // Compute locations in the source for the given nodes/positions.
6945 var _source = source;
6946 if (!_source && nodes && nodes.length > 0) {
6947 var node = nodes[0];
6948 _source = node && node.loc && node.loc.source;
6949 }
6950
6951 var _positions = positions;
6952 if (!_positions && nodes) {
6953 _positions = nodes.filter(function (node) {
6954 return Boolean(node.loc);
6955 }).map(function (node) {
6956 return node.loc.start;
6957 });
6958 }
6959 if (_positions && _positions.length === 0) {
6960 _positions = undefined;
6961 }
6962
6963 var _locations = void 0;
6964 var _source2 = _source; // seems here Flow need a const to resolve type.
6965 if (_source2 && _positions) {
6966 _locations = _positions.map(function (pos) {
6967 return (0, _location.getLocation)(_source2, pos);
6968 });
6969 }
6970
6971 Object.defineProperties(this, {
6972 message: {
6973 value: message,
6974 // By being enumerable, JSON.stringify will include `message` in the
6975 // resulting output. This ensures that the simplest possible GraphQL
6976 // service adheres to the spec.
6977 enumerable: true,
6978 writable: true
6979 },
6980 locations: {
6981 // Coercing falsey values to undefined ensures they will not be included
6982 // in JSON.stringify() when not provided.
6983 value: _locations || undefined,
6984 // By being enumerable, JSON.stringify will include `locations` in the
6985 // resulting output. This ensures that the simplest possible GraphQL
6986 // service adheres to the spec.
6987 enumerable: true
6988 },
6989 path: {
6990 // Coercing falsey values to undefined ensures they will not be included
6991 // in JSON.stringify() when not provided.
6992 value: path || undefined,
6993 // By being enumerable, JSON.stringify will include `path` in the
6994 // resulting output. This ensures that the simplest possible GraphQL
6995 // service adheres to the spec.
6996 enumerable: true
6997 },
6998 nodes: {
6999 value: nodes || undefined
7000 },
7001 source: {
7002 value: _source || undefined
7003 },
7004 positions: {
7005 value: _positions || undefined
7006 },
7007 originalError: {
7008 value: originalError
7009 }
7010 });
7011
7012 // Include (non-enumerable) stack trace.
7013 if (originalError && originalError.stack) {
7014 Object.defineProperty(this, 'stack', {
7015 value: originalError.stack,
7016 writable: true,
7017 configurable: true
7018 });
7019 } else if (Error.captureStackTrace) {
7020 Error.captureStackTrace(this, GraphQLError);
7021 } else {
7022 Object.defineProperty(this, 'stack', {
7023 value: Error().stack,
7024 writable: true,
7025 configurable: true
7026 });
7027 }
7028} /**
7029 * Copyright (c) 2015-present, Facebook, Inc.
7030 *
7031 * This source code is licensed under the MIT license found in the
7032 * LICENSE file in the root directory of this source tree.
7033 *
7034 *
7035 */
7036
7037GraphQLError.prototype = Object.create(Error.prototype, {
7038 constructor: { value: GraphQLError },
7039 name: { value: 'GraphQLError' }
7040});
7041
7042/***/ }),
7043/* 76 */
7044/***/ (function(module, exports, __webpack_require__) {
7045
7046"use strict";
7047
7048
7049Object.defineProperty(exports, "__esModule", {
7050 value: true
7051});
7052exports.default = find;
7053/**
7054 * Copyright (c) 2015-present, Facebook, Inc.
7055 *
7056 * This source code is licensed under the MIT license found in the
7057 * LICENSE file in the root directory of this source tree.
7058 *
7059 *
7060 */
7061
7062function find(list, predicate) {
7063 for (var i = 0; i < list.length; i++) {
7064 if (predicate(list[i])) {
7065 return list[i];
7066 }
7067 }
7068}
7069
7070/***/ }),
7071/* 77 */
7072/***/ (function(module, exports, __webpack_require__) {
7073
7074"use strict";
7075
7076
7077Object.defineProperty(exports, "__esModule", {
7078 value: true
7079});
7080exports.default = keyMap;
7081
7082
7083/**
7084 * Creates a keyed JS object from an array, given a function to produce the keys
7085 * for each value in the array.
7086 *
7087 * This provides a convenient lookup for the array items if the key function
7088 * produces unique results.
7089 *
7090 * const phoneBook = [
7091 * { name: 'Jon', num: '555-1234' },
7092 * { name: 'Jenny', num: '867-5309' }
7093 * ]
7094 *
7095 * // { Jon: { name: 'Jon', num: '555-1234' },
7096 * // Jenny: { name: 'Jenny', num: '867-5309' } }
7097 * const entriesByName = keyMap(
7098 * phoneBook,
7099 * entry => entry.name
7100 * )
7101 *
7102 * // { name: 'Jenny', num: '857-6309' }
7103 * const jennyEntry = entriesByName['Jenny']
7104 *
7105 */
7106function keyMap(list, keyFn) {
7107 return list.reduce(function (map, item) {
7108 return map[keyFn(item)] = item, map;
7109 }, Object.create(null));
7110} /**
7111 * Copyright (c) 2015-present, Facebook, Inc.
7112 *
7113 * This source code is licensed under the MIT license found in the
7114 * LICENSE file in the root directory of this source tree.
7115 *
7116 *
7117 */
7118
7119/***/ }),
7120/* 78 */
7121/***/ (function(module, exports) {
7122
7123module.exports = require("crypto");
7124
7125/***/ }),
7126/* 79 */
7127/***/ (function(module, exports) {
7128
7129var core = module.exports = { version: '2.5.3' };
7130if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
7131
7132
7133/***/ }),
7134/* 80 */
7135/***/ (function(module, exports, __webpack_require__) {
7136
7137var dP = __webpack_require__(135);
7138var createDesc = __webpack_require__(326);
7139module.exports = __webpack_require__(94) ? function (object, key, value) {
7140 return dP.f(object, key, createDesc(1, value));
7141} : function (object, key, value) {
7142 object[key] = value;
7143 return object;
7144};
7145
7146
7147/***/ }),
7148/* 81 */
7149/***/ (function(module, exports, __webpack_require__) {
7150
7151var baseIsNative = __webpack_require__(782),
7152 getValue = __webpack_require__(785);
7153
7154/**
7155 * Gets the native function at `key` of `object`.
7156 *
7157 * @private
7158 * @param {Object} object The object to query.
7159 * @param {string} key The key of the method to get.
7160 * @returns {*} Returns the function if it's native, else `undefined`.
7161 */
7162function getNative(object, key) {
7163 var value = getValue(object, key);
7164 return baseIsNative(value) ? value : undefined;
7165}
7166
7167module.exports = getNative;
7168
7169
7170/***/ }),
7171/* 82 */
7172/***/ (function(module, exports, __webpack_require__) {
7173
7174// fallback for non-array-like ES3 and non-enumerable old V8 strings
7175var cof = __webpack_require__(26);
7176// eslint-disable-next-line no-prototype-builtins
7177module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
7178 return cof(it) == 'String' ? it.split('') : Object(it);
7179};
7180
7181
7182/***/ }),
7183/* 83 */
7184/***/ (function(module, exports) {
7185
7186exports.f = {}.propertyIsEnumerable;
7187
7188
7189/***/ }),
7190/* 84 */
7191/***/ (function(module, exports, __webpack_require__) {
7192
7193// getting tag from 19.1.3.6 Object.prototype.toString()
7194var cof = __webpack_require__(26);
7195var TAG = __webpack_require__(7)('toStringTag');
7196// ES3 wrong here
7197var ARG = cof(function () { return arguments; }()) == 'Arguments';
7198
7199// fallback for IE11 Script Access Denied error
7200var tryGet = function (it, key) {
7201 try {
7202 return it[key];
7203 } catch (e) { /* empty */ }
7204};
7205
7206module.exports = function (it) {
7207 var O, T, B;
7208 return it === undefined ? 'Undefined' : it === null ? 'Null'
7209 // @@toStringTag case
7210 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
7211 // builtinTag case
7212 : ARG ? cof(O)
7213 // ES3 arguments fallback
7214 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
7215};
7216
7217
7218/***/ }),
7219/* 85 */
7220/***/ (function(module, exports, __webpack_require__) {
7221
7222"use strict";
7223
7224
7225Object.defineProperty(exports, "__esModule", {
7226 value: true
7227});
7228exports.visit = visit;
7229exports.visitInParallel = visitInParallel;
7230exports.visitWithTypeInfo = visitWithTypeInfo;
7231exports.getVisitFn = getVisitFn;
7232/**
7233 * Copyright (c) 2015-present, Facebook, Inc.
7234 *
7235 * This source code is licensed under the MIT license found in the
7236 * LICENSE file in the root directory of this source tree.
7237 */
7238
7239var QueryDocumentKeys = exports.QueryDocumentKeys = {
7240 Name: [],
7241
7242 Document: ['definitions'],
7243 OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],
7244 VariableDefinition: ['variable', 'type', 'defaultValue'],
7245 Variable: ['name'],
7246 SelectionSet: ['selections'],
7247 Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
7248 Argument: ['name', 'value'],
7249
7250 FragmentSpread: ['name', 'directives'],
7251 InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
7252 FragmentDefinition: ['name', 'typeCondition', 'directives', 'selectionSet'],
7253
7254 IntValue: [],
7255 FloatValue: [],
7256 StringValue: [],
7257 BooleanValue: [],
7258 NullValue: [],
7259 EnumValue: [],
7260 ListValue: ['values'],
7261 ObjectValue: ['fields'],
7262 ObjectField: ['name', 'value'],
7263
7264 Directive: ['name', 'arguments'],
7265
7266 NamedType: ['name'],
7267 ListType: ['type'],
7268 NonNullType: ['type'],
7269
7270 SchemaDefinition: ['directives', 'operationTypes'],
7271 OperationTypeDefinition: ['type'],
7272
7273 ScalarTypeDefinition: ['name', 'directives'],
7274 ObjectTypeDefinition: ['name', 'interfaces', 'directives', 'fields'],
7275 FieldDefinition: ['name', 'arguments', 'type', 'directives'],
7276 InputValueDefinition: ['name', 'type', 'defaultValue', 'directives'],
7277 InterfaceTypeDefinition: ['name', 'directives', 'fields'],
7278 UnionTypeDefinition: ['name', 'directives', 'types'],
7279 EnumTypeDefinition: ['name', 'directives', 'values'],
7280 EnumValueDefinition: ['name', 'directives'],
7281 InputObjectTypeDefinition: ['name', 'directives', 'fields'],
7282
7283 TypeExtensionDefinition: ['definition'],
7284
7285 DirectiveDefinition: ['name', 'arguments', 'locations']
7286};
7287
7288var BREAK = exports.BREAK = {};
7289
7290/**
7291 * visit() will walk through an AST using a depth first traversal, calling
7292 * the visitor's enter function at each node in the traversal, and calling the
7293 * leave function after visiting that node and all of its child nodes.
7294 *
7295 * By returning different values from the enter and leave functions, the
7296 * behavior of the visitor can be altered, including skipping over a sub-tree of
7297 * the AST (by returning false), editing the AST by returning a value or null
7298 * to remove the value, or to stop the whole traversal by returning BREAK.
7299 *
7300 * When using visit() to edit an AST, the original AST will not be modified, and
7301 * a new version of the AST with the changes applied will be returned from the
7302 * visit function.
7303 *
7304 * const editedAST = visit(ast, {
7305 * enter(node, key, parent, path, ancestors) {
7306 * // @return
7307 * // undefined: no action
7308 * // false: skip visiting this node
7309 * // visitor.BREAK: stop visiting altogether
7310 * // null: delete this node
7311 * // any value: replace this node with the returned value
7312 * },
7313 * leave(node, key, parent, path, ancestors) {
7314 * // @return
7315 * // undefined: no action
7316 * // false: no action
7317 * // visitor.BREAK: stop visiting altogether
7318 * // null: delete this node
7319 * // any value: replace this node with the returned value
7320 * }
7321 * });
7322 *
7323 * Alternatively to providing enter() and leave() functions, a visitor can
7324 * instead provide functions named the same as the kinds of AST nodes, or
7325 * enter/leave visitors at a named key, leading to four permutations of
7326 * visitor API:
7327 *
7328 * 1) Named visitors triggered when entering a node a specific kind.
7329 *
7330 * visit(ast, {
7331 * Kind(node) {
7332 * // enter the "Kind" node
7333 * }
7334 * })
7335 *
7336 * 2) Named visitors that trigger upon entering and leaving a node of
7337 * a specific kind.
7338 *
7339 * visit(ast, {
7340 * Kind: {
7341 * enter(node) {
7342 * // enter the "Kind" node
7343 * }
7344 * leave(node) {
7345 * // leave the "Kind" node
7346 * }
7347 * }
7348 * })
7349 *
7350 * 3) Generic visitors that trigger upon entering and leaving any node.
7351 *
7352 * visit(ast, {
7353 * enter(node) {
7354 * // enter any node
7355 * },
7356 * leave(node) {
7357 * // leave any node
7358 * }
7359 * })
7360 *
7361 * 4) Parallel visitors for entering and leaving nodes of a specific kind.
7362 *
7363 * visit(ast, {
7364 * enter: {
7365 * Kind(node) {
7366 * // enter the "Kind" node
7367 * }
7368 * },
7369 * leave: {
7370 * Kind(node) {
7371 * // leave the "Kind" node
7372 * }
7373 * }
7374 * })
7375 */
7376function visit(root, visitor, keyMap) {
7377 var visitorKeys = keyMap || QueryDocumentKeys;
7378
7379 var stack = void 0;
7380 var inArray = Array.isArray(root);
7381 var keys = [root];
7382 var index = -1;
7383 var edits = [];
7384 var parent = void 0;
7385 var path = [];
7386 var ancestors = [];
7387 var newRoot = root;
7388
7389 do {
7390 index++;
7391 var isLeaving = index === keys.length;
7392 var key = void 0;
7393 var node = void 0;
7394 var isEdited = isLeaving && edits.length !== 0;
7395 if (isLeaving) {
7396 key = ancestors.length === 0 ? undefined : path.pop();
7397 node = parent;
7398 parent = ancestors.pop();
7399 if (isEdited) {
7400 if (inArray) {
7401 node = node.slice();
7402 } else {
7403 var clone = {};
7404 for (var k in node) {
7405 if (node.hasOwnProperty(k)) {
7406 clone[k] = node[k];
7407 }
7408 }
7409 node = clone;
7410 }
7411 var editOffset = 0;
7412 for (var ii = 0; ii < edits.length; ii++) {
7413 var editKey = edits[ii][0];
7414 var editValue = edits[ii][1];
7415 if (inArray) {
7416 editKey -= editOffset;
7417 }
7418 if (inArray && editValue === null) {
7419 node.splice(editKey, 1);
7420 editOffset++;
7421 } else {
7422 node[editKey] = editValue;
7423 }
7424 }
7425 }
7426 index = stack.index;
7427 keys = stack.keys;
7428 edits = stack.edits;
7429 inArray = stack.inArray;
7430 stack = stack.prev;
7431 } else {
7432 key = parent ? inArray ? index : keys[index] : undefined;
7433 node = parent ? parent[key] : newRoot;
7434 if (node === null || node === undefined) {
7435 continue;
7436 }
7437 if (parent) {
7438 path.push(key);
7439 }
7440 }
7441
7442 var result = void 0;
7443 if (!Array.isArray(node)) {
7444 if (!isNode(node)) {
7445 throw new Error('Invalid AST Node: ' + JSON.stringify(node));
7446 }
7447 var visitFn = getVisitFn(visitor, node.kind, isLeaving);
7448 if (visitFn) {
7449 result = visitFn.call(visitor, node, key, parent, path, ancestors);
7450
7451 if (result === BREAK) {
7452 break;
7453 }
7454
7455 if (result === false) {
7456 if (!isLeaving) {
7457 path.pop();
7458 continue;
7459 }
7460 } else if (result !== undefined) {
7461 edits.push([key, result]);
7462 if (!isLeaving) {
7463 if (isNode(result)) {
7464 node = result;
7465 } else {
7466 path.pop();
7467 continue;
7468 }
7469 }
7470 }
7471 }
7472 }
7473
7474 if (result === undefined && isEdited) {
7475 edits.push([key, node]);
7476 }
7477
7478 if (!isLeaving) {
7479 stack = { inArray: inArray, index: index, keys: keys, edits: edits, prev: stack };
7480 inArray = Array.isArray(node);
7481 keys = inArray ? node : visitorKeys[node.kind] || [];
7482 index = -1;
7483 edits = [];
7484 if (parent) {
7485 ancestors.push(parent);
7486 }
7487 parent = node;
7488 }
7489 } while (stack !== undefined);
7490
7491 if (edits.length !== 0) {
7492 newRoot = edits[edits.length - 1][1];
7493 }
7494
7495 return newRoot;
7496}
7497
7498function isNode(maybeNode) {
7499 return maybeNode && typeof maybeNode.kind === 'string';
7500}
7501
7502/**
7503 * Creates a new visitor instance which delegates to many visitors to run in
7504 * parallel. Each visitor will be visited for each node before moving on.
7505 *
7506 * If a prior visitor edits a node, no following visitors will see that node.
7507 */
7508function visitInParallel(visitors) {
7509 var skipping = new Array(visitors.length);
7510
7511 return {
7512 enter: function enter(node) {
7513 for (var i = 0; i < visitors.length; i++) {
7514 if (!skipping[i]) {
7515 var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */false);
7516 if (fn) {
7517 var result = fn.apply(visitors[i], arguments);
7518 if (result === false) {
7519 skipping[i] = node;
7520 } else if (result === BREAK) {
7521 skipping[i] = BREAK;
7522 } else if (result !== undefined) {
7523 return result;
7524 }
7525 }
7526 }
7527 }
7528 },
7529 leave: function leave(node) {
7530 for (var i = 0; i < visitors.length; i++) {
7531 if (!skipping[i]) {
7532 var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */true);
7533 if (fn) {
7534 var result = fn.apply(visitors[i], arguments);
7535 if (result === BREAK) {
7536 skipping[i] = BREAK;
7537 } else if (result !== undefined && result !== false) {
7538 return result;
7539 }
7540 }
7541 } else if (skipping[i] === node) {
7542 skipping[i] = null;
7543 }
7544 }
7545 }
7546 };
7547}
7548
7549/**
7550 * Creates a new visitor instance which maintains a provided TypeInfo instance
7551 * along with visiting visitor.
7552 */
7553function visitWithTypeInfo(typeInfo, visitor) {
7554 return {
7555 enter: function enter(node) {
7556 typeInfo.enter(node);
7557 var fn = getVisitFn(visitor, node.kind, /* isLeaving */false);
7558 if (fn) {
7559 var result = fn.apply(visitor, arguments);
7560 if (result !== undefined) {
7561 typeInfo.leave(node);
7562 if (isNode(result)) {
7563 typeInfo.enter(result);
7564 }
7565 }
7566 return result;
7567 }
7568 },
7569 leave: function leave(node) {
7570 var fn = getVisitFn(visitor, node.kind, /* isLeaving */true);
7571 var result = void 0;
7572 if (fn) {
7573 result = fn.apply(visitor, arguments);
7574 }
7575 typeInfo.leave(node);
7576 return result;
7577 }
7578 };
7579}
7580
7581/**
7582 * Given a visitor instance, if it is leaving or not, and a node kind, return
7583 * the function the visitor runtime should call.
7584 */
7585function getVisitFn(visitor, kind, isLeaving) {
7586 var kindVisitor = visitor[kind];
7587 if (kindVisitor) {
7588 if (!isLeaving && typeof kindVisitor === 'function') {
7589 // { Kind() {} }
7590 return kindVisitor;
7591 }
7592 var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;
7593 if (typeof kindSpecificVisitor === 'function') {
7594 // { Kind: { enter() {}, leave() {} } }
7595 return kindSpecificVisitor;
7596 }
7597 } else {
7598 var specificVisitor = isLeaving ? visitor.leave : visitor.enter;
7599 if (specificVisitor) {
7600 if (typeof specificVisitor === 'function') {
7601 // { enter() {}, leave() {} }
7602 return specificVisitor;
7603 }
7604 var specificKindVisitor = specificVisitor[kind];
7605 if (typeof specificKindVisitor === 'function') {
7606 // { enter: { Kind() {} }, leave: { Kind() {} } }
7607 return specificKindVisitor;
7608 }
7609 }
7610 }
7611}
7612
7613/***/ }),
7614/* 86 */
7615/***/ (function(module, exports, __webpack_require__) {
7616
7617"use strict";
7618
7619
7620Object.defineProperty(exports, "__esModule", {
7621 value: true
7622});
7623exports.default = isInvalid;
7624/**
7625 * Copyright (c) 2015-present, Facebook, Inc.
7626 *
7627 * This source code is licensed under the MIT license found in the
7628 * LICENSE file in the root directory of this source tree.
7629 *
7630 *
7631 */
7632
7633/**
7634 * Returns true if a value is undefined, or NaN.
7635 */
7636function isInvalid(value) {
7637 return value === undefined || value !== value;
7638}
7639
7640/***/ }),
7641/* 87 */
7642/***/ (function(module, exports, __webpack_require__) {
7643
7644"use strict";
7645
7646
7647Object.defineProperty(exports, "__esModule", {
7648 value: true
7649});
7650exports.valueFromAST = valueFromAST;
7651
7652var _keyMap = __webpack_require__(77);
7653
7654var _keyMap2 = _interopRequireDefault(_keyMap);
7655
7656var _invariant = __webpack_require__(11);
7657
7658var _invariant2 = _interopRequireDefault(_invariant);
7659
7660var _isNullish = __webpack_require__(66);
7661
7662var _isNullish2 = _interopRequireDefault(_isNullish);
7663
7664var _isInvalid = __webpack_require__(86);
7665
7666var _isInvalid2 = _interopRequireDefault(_isInvalid);
7667
7668var _kinds = __webpack_require__(12);
7669
7670var Kind = _interopRequireWildcard(_kinds);
7671
7672var _definition = __webpack_require__(6);
7673
7674function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
7675
7676function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7677
7678/**
7679 * Produces a JavaScript value given a GraphQL Value AST.
7680 *
7681 * A GraphQL type must be provided, which will be used to interpret different
7682 * GraphQL Value literals.
7683 *
7684 * Returns `undefined` when the value could not be validly coerced according to
7685 * the provided type.
7686 *
7687 * | GraphQL Value | JSON Value |
7688 * | -------------------- | ------------- |
7689 * | Input Object | Object |
7690 * | List | Array |
7691 * | Boolean | Boolean |
7692 * | String | String |
7693 * | Int / Float | Number |
7694 * | Enum Value | Mixed |
7695 * | NullValue | null |
7696 *
7697 */
7698/**
7699 * Copyright (c) 2015-present, Facebook, Inc.
7700 *
7701 * This source code is licensed under the MIT license found in the
7702 * LICENSE file in the root directory of this source tree.
7703 *
7704 *
7705 */
7706
7707function valueFromAST(valueNode, type, variables) {
7708 if (!valueNode) {
7709 // When there is no node, then there is also no value.
7710 // Importantly, this is different from returning the value null.
7711 return;
7712 }
7713
7714 if (type instanceof _definition.GraphQLNonNull) {
7715 if (valueNode.kind === Kind.NULL) {
7716 return; // Invalid: intentionally return no value.
7717 }
7718 return valueFromAST(valueNode, type.ofType, variables);
7719 }
7720
7721 if (valueNode.kind === Kind.NULL) {
7722 // This is explicitly returning the value null.
7723 return null;
7724 }
7725
7726 if (valueNode.kind === Kind.VARIABLE) {
7727 var variableName = valueNode.name.value;
7728 if (!variables || (0, _isInvalid2.default)(variables[variableName])) {
7729 // No valid return value.
7730 return;
7731 }
7732 // Note: we're not doing any checking that this variable is correct. We're
7733 // assuming that this query has been validated and the variable usage here
7734 // is of the correct type.
7735 return variables[variableName];
7736 }
7737
7738 if (type instanceof _definition.GraphQLList) {
7739 var itemType = type.ofType;
7740 if (valueNode.kind === Kind.LIST) {
7741 var coercedValues = [];
7742 var itemNodes = valueNode.values;
7743 for (var i = 0; i < itemNodes.length; i++) {
7744 if (isMissingVariable(itemNodes[i], variables)) {
7745 // If an array contains a missing variable, it is either coerced to
7746 // null or if the item type is non-null, it considered invalid.
7747 if (itemType instanceof _definition.GraphQLNonNull) {
7748 return; // Invalid: intentionally return no value.
7749 }
7750 coercedValues.push(null);
7751 } else {
7752 var itemValue = valueFromAST(itemNodes[i], itemType, variables);
7753 if ((0, _isInvalid2.default)(itemValue)) {
7754 return; // Invalid: intentionally return no value.
7755 }
7756 coercedValues.push(itemValue);
7757 }
7758 }
7759 return coercedValues;
7760 }
7761 var coercedValue = valueFromAST(valueNode, itemType, variables);
7762 if ((0, _isInvalid2.default)(coercedValue)) {
7763 return; // Invalid: intentionally return no value.
7764 }
7765 return [coercedValue];
7766 }
7767
7768 if (type instanceof _definition.GraphQLInputObjectType) {
7769 if (valueNode.kind !== Kind.OBJECT) {
7770 return; // Invalid: intentionally return no value.
7771 }
7772 var coercedObj = Object.create(null);
7773 var fields = type.getFields();
7774 var fieldNodes = (0, _keyMap2.default)(valueNode.fields, function (field) {
7775 return field.name.value;
7776 });
7777 var fieldNames = Object.keys(fields);
7778 for (var _i = 0; _i < fieldNames.length; _i++) {
7779 var fieldName = fieldNames[_i];
7780 var field = fields[fieldName];
7781 var fieldNode = fieldNodes[fieldName];
7782 if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {
7783 if (!(0, _isInvalid2.default)(field.defaultValue)) {
7784 coercedObj[fieldName] = field.defaultValue;
7785 } else if (field.type instanceof _definition.GraphQLNonNull) {
7786 return; // Invalid: intentionally return no value.
7787 }
7788 continue;
7789 }
7790 var fieldValue = valueFromAST(fieldNode.value, field.type, variables);
7791 if ((0, _isInvalid2.default)(fieldValue)) {
7792 return; // Invalid: intentionally return no value.
7793 }
7794 coercedObj[fieldName] = fieldValue;
7795 }
7796 return coercedObj;
7797 }
7798
7799 !(type instanceof _definition.GraphQLScalarType || type instanceof _definition.GraphQLEnumType) ? (0, _invariant2.default)(0, 'Must be input type') : void 0;
7800
7801 var parsed = type.parseLiteral(valueNode);
7802 if ((0, _isNullish2.default)(parsed) && !type.isValidLiteral(valueNode)) {
7803 // Invalid values represent a failure to parse correctly, in which case
7804 // no value is returned.
7805 return;
7806 }
7807
7808 return parsed;
7809}
7810
7811// Returns true if the provided valueNode is a variable which is not defined
7812// in the set of variables.
7813function isMissingVariable(valueNode, variables) {
7814 return valueNode.kind === Kind.VARIABLE && (!variables || (0, _isInvalid2.default)(variables[valueNode.name.value]));
7815}
7816
7817/***/ }),
7818/* 88 */
7819/***/ (function(module, exports) {
7820
7821module.exports = require("events");
7822
7823/***/ }),
7824/* 89 */
7825/***/ (function(module, exports, __webpack_require__) {
7826
7827"use strict";
7828/*!
7829 * bytes
7830 * Copyright(c) 2012-2014 TJ Holowaychuk
7831 * Copyright(c) 2015 Jed Watson
7832 * MIT Licensed
7833 */
7834
7835
7836
7837/**
7838 * Module exports.
7839 * @public
7840 */
7841
7842module.exports = bytes;
7843module.exports.format = format;
7844module.exports.parse = parse;
7845
7846/**
7847 * Module variables.
7848 * @private
7849 */
7850
7851var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
7852
7853var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
7854
7855var map = {
7856 b: 1,
7857 kb: 1 << 10,
7858 mb: 1 << 20,
7859 gb: 1 << 30,
7860 tb: ((1 << 30) * 1024)
7861};
7862
7863var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
7864
7865/**
7866 * Convert the given value in bytes into a string or parse to string to an integer in bytes.
7867 *
7868 * @param {string|number} value
7869 * @param {{
7870 * case: [string],
7871 * decimalPlaces: [number]
7872 * fixedDecimals: [boolean]
7873 * thousandsSeparator: [string]
7874 * unitSeparator: [string]
7875 * }} [options] bytes options.
7876 *
7877 * @returns {string|number|null}
7878 */
7879
7880function bytes(value, options) {
7881 if (typeof value === 'string') {
7882 return parse(value);
7883 }
7884
7885 if (typeof value === 'number') {
7886 return format(value, options);
7887 }
7888
7889 return null;
7890}
7891
7892/**
7893 * Format the given value in bytes into a string.
7894 *
7895 * If the value is negative, it is kept as such. If it is a float,
7896 * it is rounded.
7897 *
7898 * @param {number} value
7899 * @param {object} [options]
7900 * @param {number} [options.decimalPlaces=2]
7901 * @param {number} [options.fixedDecimals=false]
7902 * @param {string} [options.thousandsSeparator=]
7903 * @param {string} [options.unit=]
7904 * @param {string} [options.unitSeparator=]
7905 *
7906 * @returns {string|null}
7907 * @public
7908 */
7909
7910function format(value, options) {
7911 if (!Number.isFinite(value)) {
7912 return null;
7913 }
7914
7915 var mag = Math.abs(value);
7916 var thousandsSeparator = (options && options.thousandsSeparator) || '';
7917 var unitSeparator = (options && options.unitSeparator) || '';
7918 var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
7919 var fixedDecimals = Boolean(options && options.fixedDecimals);
7920 var unit = (options && options.unit) || '';
7921
7922 if (!unit || !map[unit.toLowerCase()]) {
7923 if (mag >= map.tb) {
7924 unit = 'TB';
7925 } else if (mag >= map.gb) {
7926 unit = 'GB';
7927 } else if (mag >= map.mb) {
7928 unit = 'MB';
7929 } else if (mag >= map.kb) {
7930 unit = 'KB';
7931 } else {
7932 unit = 'B';
7933 }
7934 }
7935
7936 var val = value / map[unit.toLowerCase()];
7937 var str = val.toFixed(decimalPlaces);
7938
7939 if (!fixedDecimals) {
7940 str = str.replace(formatDecimalsRegExp, '$1');
7941 }
7942
7943 if (thousandsSeparator) {
7944 str = str.replace(formatThousandsRegExp, thousandsSeparator);
7945 }
7946
7947 return str + unitSeparator + unit;
7948}
7949
7950/**
7951 * Parse the string value into an integer in bytes.
7952 *
7953 * If no unit is given, it is assumed the value is in bytes.
7954 *
7955 * @param {number|string} val
7956 *
7957 * @returns {number|null}
7958 * @public
7959 */
7960
7961function parse(val) {
7962 if (typeof val === 'number' && !isNaN(val)) {
7963 return val;
7964 }
7965
7966 if (typeof val !== 'string') {
7967 return null;
7968 }
7969
7970 // Test if the string passed is valid
7971 var results = parseRegExp.exec(val);
7972 var floatValue;
7973 var unit = 'b';
7974
7975 if (!results) {
7976 // Nothing could be extracted from the given string
7977 floatValue = parseInt(val, 10);
7978 unit = 'b'
7979 } else {
7980 // Retrieve the value and the unit
7981 floatValue = parseFloat(results[1]);
7982 unit = results[4].toLowerCase();
7983 }
7984
7985 return Math.floor(map[unit] * floatValue);
7986}
7987
7988
7989/***/ }),
7990/* 90 */
7991/***/ (function(module, exports, __webpack_require__) {
7992
7993"use strict";
7994/*!
7995 * http-errors
7996 * Copyright(c) 2014 Jonathan Ong
7997 * Copyright(c) 2016 Douglas Christopher Wilson
7998 * MIT Licensed
7999 */
8000
8001
8002
8003/**
8004 * Module dependencies.
8005 * @private
8006 */
8007
8008var deprecate = __webpack_require__(47)('http-errors')
8009var setPrototypeOf = __webpack_require__(122)
8010var statuses = __webpack_require__(123)
8011var inherits = __webpack_require__(612)
8012
8013/**
8014 * Module exports.
8015 * @public
8016 */
8017
8018module.exports = createError
8019module.exports.HttpError = createHttpErrorConstructor()
8020
8021// Populate exports for all constructors
8022populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)
8023
8024/**
8025 * Get the code class of a status code.
8026 * @private
8027 */
8028
8029function codeClass (status) {
8030 return Number(String(status).charAt(0) + '00')
8031}
8032
8033/**
8034 * Create a new HTTP Error.
8035 *
8036 * @returns {Error}
8037 * @public
8038 */
8039
8040function createError () {
8041 // so much arity going on ~_~
8042 var err
8043 var msg
8044 var status = 500
8045 var props = {}
8046 for (var i = 0; i < arguments.length; i++) {
8047 var arg = arguments[i]
8048 if (arg instanceof Error) {
8049 err = arg
8050 status = err.status || err.statusCode || status
8051 continue
8052 }
8053 switch (typeof arg) {
8054 case 'string':
8055 msg = arg
8056 break
8057 case 'number':
8058 status = arg
8059 if (i !== 0) {
8060 deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')
8061 }
8062 break
8063 case 'object':
8064 props = arg
8065 break
8066 }
8067 }
8068
8069 if (typeof status === 'number' && (status < 400 || status >= 600)) {
8070 deprecate('non-error status code; use only 4xx or 5xx status codes')
8071 }
8072
8073 if (typeof status !== 'number' ||
8074 (!statuses[status] && (status < 400 || status >= 600))) {
8075 status = 500
8076 }
8077
8078 // constructor
8079 var HttpError = createError[status] || createError[codeClass(status)]
8080
8081 if (!err) {
8082 // create error
8083 err = HttpError
8084 ? new HttpError(msg)
8085 : new Error(msg || statuses[status])
8086 Error.captureStackTrace(err, createError)
8087 }
8088
8089 if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
8090 // add properties to generic error
8091 err.expose = status < 500
8092 err.status = err.statusCode = status
8093 }
8094
8095 for (var key in props) {
8096 if (key !== 'status' && key !== 'statusCode') {
8097 err[key] = props[key]
8098 }
8099 }
8100
8101 return err
8102}
8103
8104/**
8105 * Create HTTP error abstract base class.
8106 * @private
8107 */
8108
8109function createHttpErrorConstructor () {
8110 function HttpError () {
8111 throw new TypeError('cannot construct abstract class')
8112 }
8113
8114 inherits(HttpError, Error)
8115
8116 return HttpError
8117}
8118
8119/**
8120 * Create a constructor for a client error.
8121 * @private
8122 */
8123
8124function createClientErrorConstructor (HttpError, name, code) {
8125 var className = name.match(/Error$/) ? name : name + 'Error'
8126
8127 function ClientError (message) {
8128 // create the error object
8129 var msg = message != null ? message : statuses[code]
8130 var err = new Error(msg)
8131
8132 // capture a stack trace to the construction point
8133 Error.captureStackTrace(err, ClientError)
8134
8135 // adjust the [[Prototype]]
8136 setPrototypeOf(err, ClientError.prototype)
8137
8138 // redefine the error message
8139 Object.defineProperty(err, 'message', {
8140 enumerable: true,
8141 configurable: true,
8142 value: msg,
8143 writable: true
8144 })
8145
8146 // redefine the error name
8147 Object.defineProperty(err, 'name', {
8148 enumerable: false,
8149 configurable: true,
8150 value: className,
8151 writable: true
8152 })
8153
8154 return err
8155 }
8156
8157 inherits(ClientError, HttpError)
8158
8159 ClientError.prototype.status = code
8160 ClientError.prototype.statusCode = code
8161 ClientError.prototype.expose = true
8162
8163 return ClientError
8164}
8165
8166/**
8167 * Create a constructor for a server error.
8168 * @private
8169 */
8170
8171function createServerErrorConstructor (HttpError, name, code) {
8172 var className = name.match(/Error$/) ? name : name + 'Error'
8173
8174 function ServerError (message) {
8175 // create the error object
8176 var msg = message != null ? message : statuses[code]
8177 var err = new Error(msg)
8178
8179 // capture a stack trace to the construction point
8180 Error.captureStackTrace(err, ServerError)
8181
8182 // adjust the [[Prototype]]
8183 setPrototypeOf(err, ServerError.prototype)
8184
8185 // redefine the error message
8186 Object.defineProperty(err, 'message', {
8187 enumerable: true,
8188 configurable: true,
8189 value: msg,
8190 writable: true
8191 })
8192
8193 // redefine the error name
8194 Object.defineProperty(err, 'name', {
8195 enumerable: false,
8196 configurable: true,
8197 value: className,
8198 writable: true
8199 })
8200
8201 return err
8202 }
8203
8204 inherits(ServerError, HttpError)
8205
8206 ServerError.prototype.status = code
8207 ServerError.prototype.statusCode = code
8208 ServerError.prototype.expose = false
8209
8210 return ServerError
8211}
8212
8213/**
8214 * Populate the exports object with constructors for every error class.
8215 * @private
8216 */
8217
8218function populateConstructorExports (exports, codes, HttpError) {
8219 codes.forEach(function forEachCode (code) {
8220 var CodeError
8221 var name = toIdentifier(statuses[code])
8222
8223 switch (codeClass(code)) {
8224 case 400:
8225 CodeError = createClientErrorConstructor(HttpError, name, code)
8226 break
8227 case 500:
8228 CodeError = createServerErrorConstructor(HttpError, name, code)
8229 break
8230 }
8231
8232 if (CodeError) {
8233 // export the constructor
8234 exports[code] = CodeError
8235 exports[name] = CodeError
8236 }
8237 })
8238
8239 // backwards-compatibility
8240 exports["I'mateapot"] = deprecate.function(exports.ImATeapot,
8241 '"I\'mateapot"; use "ImATeapot" instead')
8242}
8243
8244/**
8245 * Convert a string of words to a JavaScript identifier.
8246 * @private
8247 */
8248
8249function toIdentifier (str) {
8250 return str.split(' ').map(function (token) {
8251 return token.slice(0, 1).toUpperCase() + token.slice(1)
8252 }).join('').replace(/[^ _0-9a-z]/gi, '')
8253}
8254
8255
8256/***/ }),
8257/* 91 */
8258/***/ (function(module, exports, __webpack_require__) {
8259
8260"use strict";
8261/*!
8262 * type-is
8263 * Copyright(c) 2014 Jonathan Ong
8264 * Copyright(c) 2014-2015 Douglas Christopher Wilson
8265 * MIT Licensed
8266 */
8267
8268
8269
8270/**
8271 * Module dependencies.
8272 * @private
8273 */
8274
8275var typer = __webpack_require__(637)
8276var mime = __webpack_require__(301)
8277
8278/**
8279 * Module exports.
8280 * @public
8281 */
8282
8283module.exports = typeofrequest
8284module.exports.is = typeis
8285module.exports.hasBody = hasbody
8286module.exports.normalize = normalize
8287module.exports.match = mimeMatch
8288
8289/**
8290 * Compare a `value` content-type with `types`.
8291 * Each `type` can be an extension like `html`,
8292 * a special shortcut like `multipart` or `urlencoded`,
8293 * or a mime type.
8294 *
8295 * If no types match, `false` is returned.
8296 * Otherwise, the first `type` that matches is returned.
8297 *
8298 * @param {String} value
8299 * @param {Array} types
8300 * @public
8301 */
8302
8303function typeis (value, types_) {
8304 var i
8305 var types = types_
8306
8307 // remove parameters and normalize
8308 var val = tryNormalizeType(value)
8309
8310 // no type or invalid
8311 if (!val) {
8312 return false
8313 }
8314
8315 // support flattened arguments
8316 if (types && !Array.isArray(types)) {
8317 types = new Array(arguments.length - 1)
8318 for (i = 0; i < types.length; i++) {
8319 types[i] = arguments[i + 1]
8320 }
8321 }
8322
8323 // no types, return the content type
8324 if (!types || !types.length) {
8325 return val
8326 }
8327
8328 var type
8329 for (i = 0; i < types.length; i++) {
8330 if (mimeMatch(normalize(type = types[i]), val)) {
8331 return type[0] === '+' || type.indexOf('*') !== -1
8332 ? val
8333 : type
8334 }
8335 }
8336
8337 // no matches
8338 return false
8339}
8340
8341/**
8342 * Check if a request has a request body.
8343 * A request with a body __must__ either have `transfer-encoding`
8344 * or `content-length` headers set.
8345 * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3
8346 *
8347 * @param {Object} request
8348 * @return {Boolean}
8349 * @public
8350 */
8351
8352function hasbody (req) {
8353 return req.headers['transfer-encoding'] !== undefined ||
8354 !isNaN(req.headers['content-length'])
8355}
8356
8357/**
8358 * Check if the incoming request contains the "Content-Type"
8359 * header field, and it contains any of the give mime `type`s.
8360 * If there is no request body, `null` is returned.
8361 * If there is no content type, `false` is returned.
8362 * Otherwise, it returns the first `type` that matches.
8363 *
8364 * Examples:
8365 *
8366 * // With Content-Type: text/html; charset=utf-8
8367 * this.is('html'); // => 'html'
8368 * this.is('text/html'); // => 'text/html'
8369 * this.is('text/*', 'application/json'); // => 'text/html'
8370 *
8371 * // When Content-Type is application/json
8372 * this.is('json', 'urlencoded'); // => 'json'
8373 * this.is('application/json'); // => 'application/json'
8374 * this.is('html', 'application/*'); // => 'application/json'
8375 *
8376 * this.is('html'); // => false
8377 *
8378 * @param {String|Array} types...
8379 * @return {String|false|null}
8380 * @public
8381 */
8382
8383function typeofrequest (req, types_) {
8384 var types = types_
8385
8386 // no body
8387 if (!hasbody(req)) {
8388 return null
8389 }
8390
8391 // support flattened arguments
8392 if (arguments.length > 2) {
8393 types = new Array(arguments.length - 1)
8394 for (var i = 0; i < types.length; i++) {
8395 types[i] = arguments[i + 1]
8396 }
8397 }
8398
8399 // request content type
8400 var value = req.headers['content-type']
8401
8402 return typeis(value, types)
8403}
8404
8405/**
8406 * Normalize a mime type.
8407 * If it's a shorthand, expand it to a valid mime type.
8408 *
8409 * In general, you probably want:
8410 *
8411 * var type = is(req, ['urlencoded', 'json', 'multipart']);
8412 *
8413 * Then use the appropriate body parsers.
8414 * These three are the most common request body types
8415 * and are thus ensured to work.
8416 *
8417 * @param {String} type
8418 * @private
8419 */
8420
8421function normalize (type) {
8422 if (typeof type !== 'string') {
8423 // invalid type
8424 return false
8425 }
8426
8427 switch (type) {
8428 case 'urlencoded':
8429 return 'application/x-www-form-urlencoded'
8430 case 'multipart':
8431 return 'multipart/*'
8432 }
8433
8434 if (type[0] === '+') {
8435 // "+json" -> "*/*+json" expando
8436 return '*/*' + type
8437 }
8438
8439 return type.indexOf('/') === -1
8440 ? mime.lookup(type)
8441 : type
8442}
8443
8444/**
8445 * Check if `expected` mime type
8446 * matches `actual` mime type with
8447 * wildcard and +suffix support.
8448 *
8449 * @param {String} expected
8450 * @param {String} actual
8451 * @return {Boolean}
8452 * @private
8453 */
8454
8455function mimeMatch (expected, actual) {
8456 // invalid type
8457 if (expected === false) {
8458 return false
8459 }
8460
8461 // split types
8462 var actualParts = actual.split('/')
8463 var expectedParts = expected.split('/')
8464
8465 // invalid format
8466 if (actualParts.length !== 2 || expectedParts.length !== 2) {
8467 return false
8468 }
8469
8470 // validate type
8471 if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) {
8472 return false
8473 }
8474
8475 // validate suffix wildcard
8476 if (expectedParts[1].substr(0, 2) === '*+') {
8477 return expectedParts[1].length <= actualParts[1].length + 1 &&
8478 expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length)
8479 }
8480
8481 // validate subtype
8482 if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) {
8483 return false
8484 }
8485
8486 return true
8487}
8488
8489/**
8490 * Normalize a type and remove parameters.
8491 *
8492 * @param {string} value
8493 * @return {string}
8494 * @private
8495 */
8496
8497function normalizeType (value) {
8498 // parse the type
8499 var type = typer.parse(value)
8500
8501 // remove the parameters
8502 type.parameters = undefined
8503
8504 // reformat it
8505 return typer.format(type)
8506}
8507
8508/**
8509 * Try to normalize a type and remove parameters.
8510 *
8511 * @param {string} value
8512 * @return {string}
8513 * @private
8514 */
8515
8516function tryNormalizeType (value) {
8517 try {
8518 return normalizeType(value)
8519 } catch (err) {
8520 return null
8521 }
8522}
8523
8524
8525/***/ }),
8526/* 92 */
8527/***/ (function(module, exports, __webpack_require__) {
8528
8529"use strict";
8530/*!
8531 * parseurl
8532 * Copyright(c) 2014 Jonathan Ong
8533 * Copyright(c) 2014-2017 Douglas Christopher Wilson
8534 * MIT Licensed
8535 */
8536
8537
8538
8539/**
8540 * Module dependencies.
8541 * @private
8542 */
8543
8544var url = __webpack_require__(53)
8545var parse = url.parse
8546var Url = url.Url
8547
8548/**
8549 * Module exports.
8550 * @public
8551 */
8552
8553module.exports = parseurl
8554module.exports.original = originalurl
8555
8556/**
8557 * Parse the `req` url with memoization.
8558 *
8559 * @param {ServerRequest} req
8560 * @return {Object}
8561 * @public
8562 */
8563
8564function parseurl (req) {
8565 var url = req.url
8566
8567 if (url === undefined) {
8568 // URL is undefined
8569 return undefined
8570 }
8571
8572 var parsed = req._parsedUrl
8573
8574 if (fresh(url, parsed)) {
8575 // Return cached URL parse
8576 return parsed
8577 }
8578
8579 // Parse the URL
8580 parsed = fastparse(url)
8581 parsed._raw = url
8582
8583 return (req._parsedUrl = parsed)
8584};
8585
8586/**
8587 * Parse the `req` original url with fallback and memoization.
8588 *
8589 * @param {ServerRequest} req
8590 * @return {Object}
8591 * @public
8592 */
8593
8594function originalurl (req) {
8595 var url = req.originalUrl
8596
8597 if (typeof url !== 'string') {
8598 // Fallback
8599 return parseurl(req)
8600 }
8601
8602 var parsed = req._parsedOriginalUrl
8603
8604 if (fresh(url, parsed)) {
8605 // Return cached URL parse
8606 return parsed
8607 }
8608
8609 // Parse the URL
8610 parsed = fastparse(url)
8611 parsed._raw = url
8612
8613 return (req._parsedOriginalUrl = parsed)
8614};
8615
8616/**
8617 * Parse the `str` url with fast-path short-cut.
8618 *
8619 * @param {string} str
8620 * @return {Object}
8621 * @private
8622 */
8623
8624function fastparse (str) {
8625 if (typeof str !== 'string' || str.charCodeAt(0) !== 0x2f /* / */) {
8626 return parse(str)
8627 }
8628
8629 var pathname = str
8630 var query = null
8631 var search = null
8632
8633 // This takes the regexp from https://github.com/joyent/node/pull/7878
8634 // Which is /^(\/[^?#\s]*)(\?[^#\s]*)?$/
8635 // And unrolls it into a for loop
8636 for (var i = 1; i < str.length; i++) {
8637 switch (str.charCodeAt(i)) {
8638 case 0x3f: /* ? */
8639 if (search === null) {
8640 pathname = str.substring(0, i)
8641 query = str.substring(i + 1)
8642 search = str.substring(i)
8643 }
8644 break
8645 case 0x09: /* \t */
8646 case 0x0a: /* \n */
8647 case 0x0c: /* \f */
8648 case 0x0d: /* \r */
8649 case 0x20: /* */
8650 case 0x23: /* # */
8651 case 0xa0:
8652 case 0xfeff:
8653 return parse(str)
8654 }
8655 }
8656
8657 var url = Url !== undefined
8658 ? new Url()
8659 : {}
8660 url.path = str
8661 url.href = str
8662 url.pathname = pathname
8663 url.query = query
8664 url.search = search
8665
8666 return url
8667}
8668
8669/**
8670 * Determine if parsed is still fresh for url.
8671 *
8672 * @param {string} url
8673 * @param {object} parsedUrl
8674 * @return {boolean}
8675 * @private
8676 */
8677
8678function fresh (url, parsedUrl) {
8679 return typeof parsedUrl === 'object' &&
8680 parsedUrl !== null &&
8681 (Url === undefined || parsedUrl instanceof Url) &&
8682 parsedUrl._raw === url
8683}
8684
8685
8686/***/ }),
8687/* 93 */
8688/***/ (function(module, exports) {
8689
8690module.exports = function (it) {
8691 return typeof it === 'object' ? it !== null : typeof it === 'function';
8692};
8693
8694
8695/***/ }),
8696/* 94 */
8697/***/ (function(module, exports, __webpack_require__) {
8698
8699// Thank's IE8 for his funny defineProperty
8700module.exports = !__webpack_require__(325)(function () {
8701 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
8702});
8703
8704
8705/***/ }),
8706/* 95 */
8707/***/ (function(module, exports) {
8708
8709module.exports = {};
8710
8711
8712/***/ }),
8713/* 96 */
8714/***/ (function(module, exports, __webpack_require__) {
8715
8716"use strict";
8717
8718
8719Object.defineProperty(exports, "__esModule", {
8720 value: true
8721});
8722
8723var _connection = __webpack_require__(724);
8724
8725Object.defineProperty(exports, 'backwardConnectionArgs', {
8726 enumerable: true,
8727 get: function get() {
8728 return _connection.backwardConnectionArgs;
8729 }
8730});
8731Object.defineProperty(exports, 'connectionArgs', {
8732 enumerable: true,
8733 get: function get() {
8734 return _connection.connectionArgs;
8735 }
8736});
8737Object.defineProperty(exports, 'connectionDefinitions', {
8738 enumerable: true,
8739 get: function get() {
8740 return _connection.connectionDefinitions;
8741 }
8742});
8743Object.defineProperty(exports, 'forwardConnectionArgs', {
8744 enumerable: true,
8745 get: function get() {
8746 return _connection.forwardConnectionArgs;
8747 }
8748});
8749
8750var _arrayconnection = __webpack_require__(725);
8751
8752Object.defineProperty(exports, 'connectionFromArray', {
8753 enumerable: true,
8754 get: function get() {
8755 return _arrayconnection.connectionFromArray;
8756 }
8757});
8758Object.defineProperty(exports, 'connectionFromArraySlice', {
8759 enumerable: true,
8760 get: function get() {
8761 return _arrayconnection.connectionFromArraySlice;
8762 }
8763});
8764Object.defineProperty(exports, 'connectionFromPromisedArray', {
8765 enumerable: true,
8766 get: function get() {
8767 return _arrayconnection.connectionFromPromisedArray;
8768 }
8769});
8770Object.defineProperty(exports, 'connectionFromPromisedArraySlice', {
8771 enumerable: true,
8772 get: function get() {
8773 return _arrayconnection.connectionFromPromisedArraySlice;
8774 }
8775});
8776Object.defineProperty(exports, 'cursorForObjectInConnection', {
8777 enumerable: true,
8778 get: function get() {
8779 return _arrayconnection.cursorForObjectInConnection;
8780 }
8781});
8782Object.defineProperty(exports, 'cursorToOffset', {
8783 enumerable: true,
8784 get: function get() {
8785 return _arrayconnection.cursorToOffset;
8786 }
8787});
8788Object.defineProperty(exports, 'getOffsetWithDefault', {
8789 enumerable: true,
8790 get: function get() {
8791 return _arrayconnection.getOffsetWithDefault;
8792 }
8793});
8794Object.defineProperty(exports, 'offsetToCursor', {
8795 enumerable: true,
8796 get: function get() {
8797 return _arrayconnection.offsetToCursor;
8798 }
8799});
8800
8801var _mutation = __webpack_require__(726);
8802
8803Object.defineProperty(exports, 'mutationWithClientMutationId', {
8804 enumerable: true,
8805 get: function get() {
8806 return _mutation.mutationWithClientMutationId;
8807 }
8808});
8809
8810var _node = __webpack_require__(727);
8811
8812Object.defineProperty(exports, 'nodeDefinitions', {
8813 enumerable: true,
8814 get: function get() {
8815 return _node.nodeDefinitions;
8816 }
8817});
8818
8819var _plural = __webpack_require__(728);
8820
8821Object.defineProperty(exports, 'pluralIdentifyingRootField', {
8822 enumerable: true,
8823 get: function get() {
8824 return _plural.pluralIdentifyingRootField;
8825 }
8826});
8827Object.defineProperty(exports, 'fromGlobalId', {
8828 enumerable: true,
8829 get: function get() {
8830 return _node.fromGlobalId;
8831 }
8832});
8833Object.defineProperty(exports, 'globalIdField', {
8834 enumerable: true,
8835 get: function get() {
8836 return _node.globalIdField;
8837 }
8838});
8839Object.defineProperty(exports, 'toGlobalId', {
8840 enumerable: true,
8841 get: function get() {
8842 return _node.toGlobalId;
8843 }
8844});
8845
8846/***/ }),
8847/* 97 */
8848/***/ (function(module, exports, __webpack_require__) {
8849
8850
8851/**
8852 * index.js
8853 *
8854 * a request API compatible with window.fetch
8855 */
8856
8857var parse_url = __webpack_require__(53).parse;
8858var resolve_url = __webpack_require__(53).resolve;
8859var http = __webpack_require__(43);
8860var https = __webpack_require__(289);
8861var zlib = __webpack_require__(185);
8862var stream = __webpack_require__(40);
8863
8864var Body = __webpack_require__(202);
8865var Response = __webpack_require__(743);
8866var Headers = __webpack_require__(203);
8867var Request = __webpack_require__(744);
8868var FetchError = __webpack_require__(340);
8869
8870// commonjs
8871module.exports = Fetch;
8872// es6 default export compatibility
8873module.exports.default = module.exports;
8874
8875/**
8876 * Fetch class
8877 *
8878 * @param Mixed url Absolute url or Request instance
8879 * @param Object opts Fetch options
8880 * @return Promise
8881 */
8882function Fetch(url, opts) {
8883
8884 // allow call as function
8885 if (!(this instanceof Fetch))
8886 return new Fetch(url, opts);
8887
8888 // allow custom promise
8889 if (!Fetch.Promise) {
8890 throw new Error('native promise missing, set Fetch.Promise to your favorite alternative');
8891 }
8892
8893 Body.Promise = Fetch.Promise;
8894
8895 var self = this;
8896
8897 // wrap http.request into fetch
8898 return new Fetch.Promise(function(resolve, reject) {
8899 // build request object
8900 var options = new Request(url, opts);
8901
8902 if (!options.protocol || !options.hostname) {
8903 throw new Error('only absolute urls are supported');
8904 }
8905
8906 if (options.protocol !== 'http:' && options.protocol !== 'https:') {
8907 throw new Error('only http(s) protocols are supported');
8908 }
8909
8910 var send;
8911 if (options.protocol === 'https:') {
8912 send = https.request;
8913 } else {
8914 send = http.request;
8915 }
8916
8917 // normalize headers
8918 var headers = new Headers(options.headers);
8919
8920 if (options.compress) {
8921 headers.set('accept-encoding', 'gzip,deflate');
8922 }
8923
8924 if (!headers.has('user-agent')) {
8925 headers.set('user-agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
8926 }
8927
8928 if (!headers.has('connection') && !options.agent) {
8929 headers.set('connection', 'close');
8930 }
8931
8932 if (!headers.has('accept')) {
8933 headers.set('accept', '*/*');
8934 }
8935
8936 // detect form data input from form-data module, this hack avoid the need to pass multipart header manually
8937 if (!headers.has('content-type') && options.body && typeof options.body.getBoundary === 'function') {
8938 headers.set('content-type', 'multipart/form-data; boundary=' + options.body.getBoundary());
8939 }
8940
8941 // bring node-fetch closer to browser behavior by setting content-length automatically
8942 if (!headers.has('content-length') && /post|put|patch|delete/i.test(options.method)) {
8943 if (typeof options.body === 'string') {
8944 headers.set('content-length', Buffer.byteLength(options.body));
8945 // detect form data input from form-data module, this hack avoid the need to add content-length header manually
8946 } else if (options.body && typeof options.body.getLengthSync === 'function') {
8947 // for form-data 1.x
8948 if (options.body._lengthRetrievers && options.body._lengthRetrievers.length == 0) {
8949 headers.set('content-length', options.body.getLengthSync().toString());
8950 // for form-data 2.x
8951 } else if (options.body.hasKnownLength && options.body.hasKnownLength()) {
8952 headers.set('content-length', options.body.getLengthSync().toString());
8953 }
8954 // this is only necessary for older nodejs releases (before iojs merge)
8955 } else if (options.body === undefined || options.body === null) {
8956 headers.set('content-length', '0');
8957 }
8958 }
8959
8960 options.headers = headers.raw();
8961
8962 // http.request only support string as host header, this hack make custom host header possible
8963 if (options.headers.host) {
8964 options.headers.host = options.headers.host[0];
8965 }
8966
8967 // send request
8968 var req = send(options);
8969 var reqTimeout;
8970
8971 if (options.timeout) {
8972 req.once('socket', function(socket) {
8973 reqTimeout = setTimeout(function() {
8974 req.abort();
8975 reject(new FetchError('network timeout at: ' + options.url, 'request-timeout'));
8976 }, options.timeout);
8977 });
8978 }
8979
8980 req.on('error', function(err) {
8981 clearTimeout(reqTimeout);
8982 reject(new FetchError('request to ' + options.url + ' failed, reason: ' + err.message, 'system', err));
8983 });
8984
8985 req.on('response', function(res) {
8986 clearTimeout(reqTimeout);
8987
8988 // handle redirect
8989 if (self.isRedirect(res.statusCode) && options.redirect !== 'manual') {
8990 if (options.redirect === 'error') {
8991 reject(new FetchError('redirect mode is set to error: ' + options.url, 'no-redirect'));
8992 return;
8993 }
8994
8995 if (options.counter >= options.follow) {
8996 reject(new FetchError('maximum redirect reached at: ' + options.url, 'max-redirect'));
8997 return;
8998 }
8999
9000 if (!res.headers.location) {
9001 reject(new FetchError('redirect location header missing at: ' + options.url, 'invalid-redirect'));
9002 return;
9003 }
9004
9005 // per fetch spec, for POST request with 301/302 response, or any request with 303 response, use GET when following redirect
9006 if (res.statusCode === 303
9007 || ((res.statusCode === 301 || res.statusCode === 302) && options.method === 'POST'))
9008 {
9009 options.method = 'GET';
9010 delete options.body;
9011 delete options.headers['content-length'];
9012 }
9013
9014 options.counter++;
9015
9016 resolve(Fetch(resolve_url(options.url, res.headers.location), options));
9017 return;
9018 }
9019
9020 // normalize location header for manual redirect mode
9021 var headers = new Headers(res.headers);
9022 if (options.redirect === 'manual' && headers.has('location')) {
9023 headers.set('location', resolve_url(options.url, headers.get('location')));
9024 }
9025
9026 // prepare response
9027 var body = res.pipe(new stream.PassThrough());
9028 var response_options = {
9029 url: options.url
9030 , status: res.statusCode
9031 , statusText: res.statusMessage
9032 , headers: headers
9033 , size: options.size
9034 , timeout: options.timeout
9035 };
9036
9037 // response object
9038 var output;
9039
9040 // in following scenarios we ignore compression support
9041 // 1. compression support is disabled
9042 // 2. HEAD request
9043 // 3. no content-encoding header
9044 // 4. no content response (204)
9045 // 5. content not modified response (304)
9046 if (!options.compress || options.method === 'HEAD' || !headers.has('content-encoding') || res.statusCode === 204 || res.statusCode === 304) {
9047 output = new Response(body, response_options);
9048 resolve(output);
9049 return;
9050 }
9051
9052 // otherwise, check for gzip or deflate
9053 var name = headers.get('content-encoding');
9054
9055 // for gzip
9056 if (name == 'gzip' || name == 'x-gzip') {
9057 body = body.pipe(zlib.createGunzip());
9058 output = new Response(body, response_options);
9059 resolve(output);
9060 return;
9061
9062 // for deflate
9063 } else if (name == 'deflate' || name == 'x-deflate') {
9064 // handle the infamous raw deflate response from old servers
9065 // a hack for old IIS and Apache servers
9066 var raw = res.pipe(new stream.PassThrough());
9067 raw.once('data', function(chunk) {
9068 // see http://stackoverflow.com/questions/37519828
9069 if ((chunk[0] & 0x0F) === 0x08) {
9070 body = body.pipe(zlib.createInflate());
9071 } else {
9072 body = body.pipe(zlib.createInflateRaw());
9073 }
9074 output = new Response(body, response_options);
9075 resolve(output);
9076 });
9077 return;
9078 }
9079
9080 // otherwise, use response as-is
9081 output = new Response(body, response_options);
9082 resolve(output);
9083 return;
9084 });
9085
9086 // accept string, buffer or readable stream as body
9087 // per spec we will call tostring on non-stream objects
9088 if (typeof options.body === 'string') {
9089 req.write(options.body);
9090 req.end();
9091 } else if (options.body instanceof Buffer) {
9092 req.write(options.body);
9093 req.end();
9094 } else if (typeof options.body === 'object' && options.body.pipe) {
9095 options.body.pipe(req);
9096 } else if (typeof options.body === 'object') {
9097 req.write(options.body.toString());
9098 req.end();
9099 } else {
9100 req.end();
9101 }
9102 });
9103
9104};
9105
9106/**
9107 * Redirect code matching
9108 *
9109 * @param Number code Status code
9110 * @return Boolean
9111 */
9112Fetch.prototype.isRedirect = function(code) {
9113 return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
9114}
9115
9116// expose Promise
9117Fetch.Promise = global.Promise;
9118Fetch.Response = Response;
9119Fetch.Headers = Headers;
9120Fetch.Request = Request;
9121
9122
9123/***/ }),
9124/* 98 */
9125/***/ (function(module, exports, __webpack_require__) {
9126
9127var Symbol = __webpack_require__(99),
9128 getRawTag = __webpack_require__(757),
9129 objectToString = __webpack_require__(758);
9130
9131/** `Object#toString` result references. */
9132var nullTag = '[object Null]',
9133 undefinedTag = '[object Undefined]';
9134
9135/** Built-in value references. */
9136var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
9137
9138/**
9139 * The base implementation of `getTag` without fallbacks for buggy environments.
9140 *
9141 * @private
9142 * @param {*} value The value to query.
9143 * @returns {string} Returns the `toStringTag`.
9144 */
9145function baseGetTag(value) {
9146 if (value == null) {
9147 return value === undefined ? undefinedTag : nullTag;
9148 }
9149 return (symToStringTag && symToStringTag in Object(value))
9150 ? getRawTag(value)
9151 : objectToString(value);
9152}
9153
9154module.exports = baseGetTag;
9155
9156
9157/***/ }),
9158/* 99 */
9159/***/ (function(module, exports, __webpack_require__) {
9160
9161var root = __webpack_require__(49);
9162
9163/** Built-in value references. */
9164var Symbol = root.Symbol;
9165
9166module.exports = Symbol;
9167
9168
9169/***/ }),
9170/* 100 */
9171/***/ (function(module, exports) {
9172
9173/**
9174 * Checks if `value` is object-like. A value is object-like if it's not `null`
9175 * and has a `typeof` result of "object".
9176 *
9177 * @static
9178 * @memberOf _
9179 * @since 4.0.0
9180 * @category Lang
9181 * @param {*} value The value to check.
9182 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
9183 * @example
9184 *
9185 * _.isObjectLike({});
9186 * // => true
9187 *
9188 * _.isObjectLike([1, 2, 3]);
9189 * // => true
9190 *
9191 * _.isObjectLike(_.noop);
9192 * // => false
9193 *
9194 * _.isObjectLike(null);
9195 * // => false
9196 */
9197function isObjectLike(value) {
9198 return value != null && typeof value == 'object';
9199}
9200
9201module.exports = isObjectLike;
9202
9203
9204/***/ }),
9205/* 101 */
9206/***/ (function(module, exports, __webpack_require__) {
9207
9208var global = __webpack_require__(2);
9209var SHARED = '__core-js_shared__';
9210var store = global[SHARED] || (global[SHARED] = {});
9211module.exports = function (key) {
9212 return store[key] || (store[key] = {});
9213};
9214
9215
9216/***/ }),
9217/* 102 */
9218/***/ (function(module, exports, __webpack_require__) {
9219
9220// false -> Array#indexOf
9221// true -> Array#includes
9222var toIObject = __webpack_require__(21);
9223var toLength = __webpack_require__(10);
9224var toAbsoluteIndex = __webpack_require__(59);
9225module.exports = function (IS_INCLUDES) {
9226 return function ($this, el, fromIndex) {
9227 var O = toIObject($this);
9228 var length = toLength(O.length);
9229 var index = toAbsoluteIndex(fromIndex, length);
9230 var value;
9231 // Array#includes uses SameValueZero equality algorithm
9232 // eslint-disable-next-line no-self-compare
9233 if (IS_INCLUDES && el != el) while (length > index) {
9234 value = O[index++];
9235 // eslint-disable-next-line no-self-compare
9236 if (value != value) return true;
9237 // Array#indexOf ignores holes, Array#includes - not
9238 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
9239 if (O[index] === el) return IS_INCLUDES || index || 0;
9240 } return !IS_INCLUDES && -1;
9241 };
9242};
9243
9244
9245/***/ }),
9246/* 103 */
9247/***/ (function(module, exports) {
9248
9249exports.f = Object.getOwnPropertySymbols;
9250
9251
9252/***/ }),
9253/* 104 */
9254/***/ (function(module, exports, __webpack_require__) {
9255
9256// 7.2.2 IsArray(argument)
9257var cof = __webpack_require__(26);
9258module.exports = Array.isArray || function isArray(arg) {
9259 return cof(arg) == 'Array';
9260};
9261
9262
9263/***/ }),
9264/* 105 */
9265/***/ (function(module, exports, __webpack_require__) {
9266
9267// 7.2.8 IsRegExp(argument)
9268var isObject = __webpack_require__(5);
9269var cof = __webpack_require__(26);
9270var MATCH = __webpack_require__(7)('match');
9271module.exports = function (it) {
9272 var isRegExp;
9273 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
9274};
9275
9276
9277/***/ }),
9278/* 106 */
9279/***/ (function(module, exports, __webpack_require__) {
9280
9281var ITERATOR = __webpack_require__(7)('iterator');
9282var SAFE_CLOSING = false;
9283
9284try {
9285 var riter = [7][ITERATOR]();
9286 riter['return'] = function () { SAFE_CLOSING = true; };
9287 // eslint-disable-next-line no-throw-literal
9288 Array.from(riter, function () { throw 2; });
9289} catch (e) { /* empty */ }
9290
9291module.exports = function (exec, skipClosing) {
9292 if (!skipClosing && !SAFE_CLOSING) return false;
9293 var safe = false;
9294 try {
9295 var arr = [7];
9296 var iter = arr[ITERATOR]();
9297 iter.next = function () { return { done: safe = true }; };
9298 arr[ITERATOR] = function () { return iter; };
9299 exec(arr);
9300 } catch (e) { /* empty */ }
9301 return safe;
9302};
9303
9304
9305/***/ }),
9306/* 107 */
9307/***/ (function(module, exports, __webpack_require__) {
9308
9309"use strict";
9310
9311// 21.2.5.3 get RegExp.prototype.flags
9312var anObject = __webpack_require__(1);
9313module.exports = function () {
9314 var that = anObject(this);
9315 var result = '';
9316 if (that.global) result += 'g';
9317 if (that.ignoreCase) result += 'i';
9318 if (that.multiline) result += 'm';
9319 if (that.unicode) result += 'u';
9320 if (that.sticky) result += 'y';
9321 return result;
9322};
9323
9324
9325/***/ }),
9326/* 108 */
9327/***/ (function(module, exports, __webpack_require__) {
9328
9329"use strict";
9330
9331var hide = __webpack_require__(18);
9332var redefine = __webpack_require__(19);
9333var fails = __webpack_require__(4);
9334var defined = __webpack_require__(35);
9335var wks = __webpack_require__(7);
9336
9337module.exports = function (KEY, length, exec) {
9338 var SYMBOL = wks(KEY);
9339 var fns = exec(defined, SYMBOL, ''[KEY]);
9340 var strfn = fns[0];
9341 var rxfn = fns[1];
9342 if (fails(function () {
9343 var O = {};
9344 O[SYMBOL] = function () { return 7; };
9345 return ''[KEY](O) != 7;
9346 })) {
9347 redefine(String.prototype, KEY, strfn);
9348 hide(RegExp.prototype, SYMBOL, length == 2
9349 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
9350 // 21.2.5.11 RegExp.prototype[@@split](string, limit)
9351 ? function (string, arg) { return rxfn.call(string, this, arg); }
9352 // 21.2.5.6 RegExp.prototype[@@match](string)
9353 // 21.2.5.9 RegExp.prototype[@@search](string)
9354 : function (string) { return rxfn.call(string, this); }
9355 );
9356 }
9357};
9358
9359
9360/***/ }),
9361/* 109 */
9362/***/ (function(module, exports, __webpack_require__) {
9363
9364// 7.3.20 SpeciesConstructor(O, defaultConstructor)
9365var anObject = __webpack_require__(1);
9366var aFunction = __webpack_require__(15);
9367var SPECIES = __webpack_require__(7)('species');
9368module.exports = function (O, D) {
9369 var C = anObject(O).constructor;
9370 var S;
9371 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
9372};
9373
9374
9375/***/ }),
9376/* 110 */
9377/***/ (function(module, exports, __webpack_require__) {
9378
9379"use strict";
9380
9381var global = __webpack_require__(2);
9382var $export = __webpack_require__(0);
9383var redefine = __webpack_require__(19);
9384var redefineAll = __webpack_require__(65);
9385var meta = __webpack_require__(50);
9386var forOf = __webpack_require__(64);
9387var anInstance = __webpack_require__(63);
9388var isObject = __webpack_require__(5);
9389var fails = __webpack_require__(4);
9390var $iterDetect = __webpack_require__(106);
9391var setToStringTag = __webpack_require__(71);
9392var inheritIfRequired = __webpack_require__(154);
9393
9394module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
9395 var Base = global[NAME];
9396 var C = Base;
9397 var ADDER = IS_MAP ? 'set' : 'add';
9398 var proto = C && C.prototype;
9399 var O = {};
9400 var fixMethod = function (KEY) {
9401 var fn = proto[KEY];
9402 redefine(proto, KEY,
9403 KEY == 'delete' ? function (a) {
9404 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
9405 } : KEY == 'has' ? function has(a) {
9406 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
9407 } : KEY == 'get' ? function get(a) {
9408 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
9409 } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
9410 : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
9411 );
9412 };
9413 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
9414 new C().entries().next();
9415 }))) {
9416 // create collection constructor
9417 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
9418 redefineAll(C.prototype, methods);
9419 meta.NEED = true;
9420 } else {
9421 var instance = new C();
9422 // early implementations not supports chaining
9423 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
9424 // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
9425 var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
9426 // most early implementations doesn't supports iterables, most modern - not close it correctly
9427 var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
9428 // for early implementations -0 and +0 not the same
9429 var BUGGY_ZERO = !IS_WEAK && fails(function () {
9430 // V8 ~ Chromium 42- fails only with 5+ elements
9431 var $instance = new C();
9432 var index = 5;
9433 while (index--) $instance[ADDER](index, index);
9434 return !$instance.has(-0);
9435 });
9436 if (!ACCEPT_ITERABLES) {
9437 C = wrapper(function (target, iterable) {
9438 anInstance(target, C, NAME);
9439 var that = inheritIfRequired(new Base(), target, C);
9440 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
9441 return that;
9442 });
9443 C.prototype = proto;
9444 proto.constructor = C;
9445 }
9446 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
9447 fixMethod('delete');
9448 fixMethod('has');
9449 IS_MAP && fixMethod('get');
9450 }
9451 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
9452 // weak collections should not contains .clear method
9453 if (IS_WEAK && proto.clear) delete proto.clear;
9454 }
9455
9456 setToStringTag(C, NAME);
9457
9458 O[NAME] = C;
9459 $export($export.G + $export.W + $export.F * (C != Base), O);
9460
9461 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
9462
9463 return C;
9464};
9465
9466
9467/***/ }),
9468/* 111 */
9469/***/ (function(module, exports, __webpack_require__) {
9470
9471var global = __webpack_require__(2);
9472var hide = __webpack_require__(18);
9473var uid = __webpack_require__(56);
9474var TYPED = uid('typed_array');
9475var VIEW = uid('view');
9476var ABV = !!(global.ArrayBuffer && global.DataView);
9477var CONSTR = ABV;
9478var i = 0;
9479var l = 9;
9480var Typed;
9481
9482var TypedArrayConstructors = (
9483 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
9484).split(',');
9485
9486while (i < l) {
9487 if (Typed = global[TypedArrayConstructors[i++]]) {
9488 hide(Typed.prototype, TYPED, true);
9489 hide(Typed.prototype, VIEW, true);
9490 } else CONSTR = false;
9491}
9492
9493module.exports = {
9494 ABV: ABV,
9495 CONSTR: CONSTR,
9496 TYPED: TYPED,
9497 VIEW: VIEW
9498};
9499
9500
9501/***/ }),
9502/* 112 */
9503/***/ (function(module, exports, __webpack_require__) {
9504
9505"use strict";
9506
9507// Forced replacement prototype accessors methods
9508module.exports = __webpack_require__(57) || !__webpack_require__(4)(function () {
9509 var K = Math.random();
9510 // In FF throws only define methods
9511 // eslint-disable-next-line no-undef, no-useless-call
9512 __defineSetter__.call(null, K, function () { /* empty */ });
9513 delete __webpack_require__(2)[K];
9514});
9515
9516
9517/***/ }),
9518/* 113 */
9519/***/ (function(module, exports, __webpack_require__) {
9520
9521"use strict";
9522
9523// https://tc39.github.io/proposal-setmap-offrom/
9524var $export = __webpack_require__(0);
9525
9526module.exports = function (COLLECTION) {
9527 $export($export.S, COLLECTION, { of: function of() {
9528 var length = arguments.length;
9529 var A = new Array(length);
9530 while (length--) A[length] = arguments[length];
9531 return new this(A);
9532 } });
9533};
9534
9535
9536/***/ }),
9537/* 114 */
9538/***/ (function(module, exports, __webpack_require__) {
9539
9540"use strict";
9541
9542// https://tc39.github.io/proposal-setmap-offrom/
9543var $export = __webpack_require__(0);
9544var aFunction = __webpack_require__(15);
9545var ctx = __webpack_require__(25);
9546var forOf = __webpack_require__(64);
9547
9548module.exports = function (COLLECTION) {
9549 $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
9550 var mapFn = arguments[1];
9551 var mapping, A, n, cb;
9552 aFunction(this);
9553 mapping = mapFn !== undefined;
9554 if (mapping) aFunction(mapFn);
9555 if (source == undefined) return new this();
9556 A = [];
9557 if (mapping) {
9558 n = 0;
9559 cb = ctx(mapFn, arguments[2], 2);
9560 forOf(source, false, function (nextItem) {
9561 A.push(cb(nextItem, n++));
9562 });
9563 } else {
9564 forOf(source, false, A.push, A);
9565 }
9566 return new this(A);
9567 } });
9568};
9569
9570
9571/***/ }),
9572/* 115 */
9573/***/ (function(module, exports, __webpack_require__) {
9574
9575"use strict";
9576
9577
9578Object.defineProperty(exports, "__esModule", {
9579 value: true
9580});
9581exports.parse = parse;
9582exports.parseValue = parseValue;
9583exports.parseType = parseType;
9584exports.parseConstValue = parseConstValue;
9585exports.parseTypeReference = parseTypeReference;
9586exports.parseNamedType = parseNamedType;
9587
9588var _source = __webpack_require__(248);
9589
9590var _error = __webpack_require__(3);
9591
9592var _lexer = __webpack_require__(175);
9593
9594var _kinds = __webpack_require__(12);
9595
9596/**
9597 * Given a GraphQL source, parses it into a Document.
9598 * Throws GraphQLError if a syntax error is encountered.
9599 */
9600
9601
9602/**
9603 * Configuration options to control parser behavior
9604 */
9605/**
9606 * Copyright (c) 2015-present, Facebook, Inc.
9607 *
9608 * This source code is licensed under the MIT license found in the
9609 * LICENSE file in the root directory of this source tree.
9610 *
9611 *
9612 */
9613
9614function parse(source, options) {
9615 var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
9616 if (!(sourceObj instanceof _source.Source)) {
9617 throw new TypeError('Must provide Source. Received: ' + String(sourceObj));
9618 }
9619 var lexer = (0, _lexer.createLexer)(sourceObj, options || {});
9620 return parseDocument(lexer);
9621}
9622
9623/**
9624 * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for
9625 * that value.
9626 * Throws GraphQLError if a syntax error is encountered.
9627 *
9628 * This is useful within tools that operate upon GraphQL Values directly and
9629 * in isolation of complete GraphQL documents.
9630 *
9631 * Consider providing the results to the utility function: valueFromAST().
9632 */
9633function parseValue(source, options) {
9634 var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
9635 var lexer = (0, _lexer.createLexer)(sourceObj, options || {});
9636 expect(lexer, _lexer.TokenKind.SOF);
9637 var value = parseValueLiteral(lexer, false);
9638 expect(lexer, _lexer.TokenKind.EOF);
9639 return value;
9640}
9641
9642/**
9643 * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for
9644 * that type.
9645 * Throws GraphQLError if a syntax error is encountered.
9646 *
9647 * This is useful within tools that operate upon GraphQL Types directly and
9648 * in isolation of complete GraphQL documents.
9649 *
9650 * Consider providing the results to the utility function: typeFromAST().
9651 */
9652function parseType(source, options) {
9653 var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
9654 var lexer = (0, _lexer.createLexer)(sourceObj, options || {});
9655 expect(lexer, _lexer.TokenKind.SOF);
9656 var type = parseTypeReference(lexer);
9657 expect(lexer, _lexer.TokenKind.EOF);
9658 return type;
9659}
9660
9661/**
9662 * Converts a name lex token into a name parse node.
9663 */
9664function parseName(lexer) {
9665 var token = expect(lexer, _lexer.TokenKind.NAME);
9666 return {
9667 kind: _kinds.NAME,
9668 value: token.value,
9669 loc: loc(lexer, token)
9670 };
9671}
9672
9673// Implements the parsing rules in the Document section.
9674
9675/**
9676 * Document : Definition+
9677 */
9678function parseDocument(lexer) {
9679 var start = lexer.token;
9680 expect(lexer, _lexer.TokenKind.SOF);
9681 var definitions = [];
9682 do {
9683 definitions.push(parseDefinition(lexer));
9684 } while (!skip(lexer, _lexer.TokenKind.EOF));
9685
9686 return {
9687 kind: _kinds.DOCUMENT,
9688 definitions: definitions,
9689 loc: loc(lexer, start)
9690 };
9691}
9692
9693/**
9694 * Definition :
9695 * - OperationDefinition
9696 * - FragmentDefinition
9697 * - TypeSystemDefinition
9698 */
9699function parseDefinition(lexer) {
9700 if (peek(lexer, _lexer.TokenKind.BRACE_L)) {
9701 return parseOperationDefinition(lexer);
9702 }
9703
9704 if (peek(lexer, _lexer.TokenKind.NAME)) {
9705 switch (lexer.token.value) {
9706 // Note: subscription is an experimental non-spec addition.
9707 case 'query':
9708 case 'mutation':
9709 case 'subscription':
9710 return parseOperationDefinition(lexer);
9711
9712 case 'fragment':
9713 return parseFragmentDefinition(lexer);
9714
9715 // Note: the Type System IDL is an experimental non-spec addition.
9716 case 'schema':
9717 case 'scalar':
9718 case 'type':
9719 case 'interface':
9720 case 'union':
9721 case 'enum':
9722 case 'input':
9723 case 'extend':
9724 case 'directive':
9725 return parseTypeSystemDefinition(lexer);
9726 }
9727 }
9728
9729 throw unexpected(lexer);
9730}
9731
9732// Implements the parsing rules in the Operations section.
9733
9734/**
9735 * OperationDefinition :
9736 * - SelectionSet
9737 * - OperationType Name? VariableDefinitions? Directives? SelectionSet
9738 */
9739function parseOperationDefinition(lexer) {
9740 var start = lexer.token;
9741 if (peek(lexer, _lexer.TokenKind.BRACE_L)) {
9742 return {
9743 kind: _kinds.OPERATION_DEFINITION,
9744 operation: 'query',
9745 name: null,
9746 variableDefinitions: null,
9747 directives: [],
9748 selectionSet: parseSelectionSet(lexer),
9749 loc: loc(lexer, start)
9750 };
9751 }
9752 var operation = parseOperationType(lexer);
9753 var name = void 0;
9754 if (peek(lexer, _lexer.TokenKind.NAME)) {
9755 name = parseName(lexer);
9756 }
9757 return {
9758 kind: _kinds.OPERATION_DEFINITION,
9759 operation: operation,
9760 name: name,
9761 variableDefinitions: parseVariableDefinitions(lexer),
9762 directives: parseDirectives(lexer),
9763 selectionSet: parseSelectionSet(lexer),
9764 loc: loc(lexer, start)
9765 };
9766}
9767
9768/**
9769 * OperationType : one of query mutation subscription
9770 */
9771function parseOperationType(lexer) {
9772 var operationToken = expect(lexer, _lexer.TokenKind.NAME);
9773 switch (operationToken.value) {
9774 case 'query':
9775 return 'query';
9776 case 'mutation':
9777 return 'mutation';
9778 // Note: subscription is an experimental non-spec addition.
9779 case 'subscription':
9780 return 'subscription';
9781 }
9782
9783 throw unexpected(lexer, operationToken);
9784}
9785
9786/**
9787 * VariableDefinitions : ( VariableDefinition+ )
9788 */
9789function parseVariableDefinitions(lexer) {
9790 return peek(lexer, _lexer.TokenKind.PAREN_L) ? many(lexer, _lexer.TokenKind.PAREN_L, parseVariableDefinition, _lexer.TokenKind.PAREN_R) : [];
9791}
9792
9793/**
9794 * VariableDefinition : Variable : Type DefaultValue?
9795 */
9796function parseVariableDefinition(lexer) {
9797 var start = lexer.token;
9798 return {
9799 kind: _kinds.VARIABLE_DEFINITION,
9800 variable: parseVariable(lexer),
9801 type: (expect(lexer, _lexer.TokenKind.COLON), parseTypeReference(lexer)),
9802 defaultValue: skip(lexer, _lexer.TokenKind.EQUALS) ? parseValueLiteral(lexer, true) : null,
9803 loc: loc(lexer, start)
9804 };
9805}
9806
9807/**
9808 * Variable : $ Name
9809 */
9810function parseVariable(lexer) {
9811 var start = lexer.token;
9812 expect(lexer, _lexer.TokenKind.DOLLAR);
9813 return {
9814 kind: _kinds.VARIABLE,
9815 name: parseName(lexer),
9816 loc: loc(lexer, start)
9817 };
9818}
9819
9820/**
9821 * SelectionSet : { Selection+ }
9822 */
9823function parseSelectionSet(lexer) {
9824 var start = lexer.token;
9825 return {
9826 kind: _kinds.SELECTION_SET,
9827 selections: many(lexer, _lexer.TokenKind.BRACE_L, parseSelection, _lexer.TokenKind.BRACE_R),
9828 loc: loc(lexer, start)
9829 };
9830}
9831
9832/**
9833 * Selection :
9834 * - Field
9835 * - FragmentSpread
9836 * - InlineFragment
9837 */
9838function parseSelection(lexer) {
9839 return peek(lexer, _lexer.TokenKind.SPREAD) ? parseFragment(lexer) : parseField(lexer);
9840}
9841
9842/**
9843 * Field : Alias? Name Arguments? Directives? SelectionSet?
9844 *
9845 * Alias : Name :
9846 */
9847function parseField(lexer) {
9848 var start = lexer.token;
9849
9850 var nameOrAlias = parseName(lexer);
9851 var alias = void 0;
9852 var name = void 0;
9853 if (skip(lexer, _lexer.TokenKind.COLON)) {
9854 alias = nameOrAlias;
9855 name = parseName(lexer);
9856 } else {
9857 alias = null;
9858 name = nameOrAlias;
9859 }
9860
9861 return {
9862 kind: _kinds.FIELD,
9863 alias: alias,
9864 name: name,
9865 arguments: parseArguments(lexer),
9866 directives: parseDirectives(lexer),
9867 selectionSet: peek(lexer, _lexer.TokenKind.BRACE_L) ? parseSelectionSet(lexer) : null,
9868 loc: loc(lexer, start)
9869 };
9870}
9871
9872/**
9873 * Arguments : ( Argument+ )
9874 */
9875function parseArguments(lexer) {
9876 return peek(lexer, _lexer.TokenKind.PAREN_L) ? many(lexer, _lexer.TokenKind.PAREN_L, parseArgument, _lexer.TokenKind.PAREN_R) : [];
9877}
9878
9879/**
9880 * Argument : Name : Value
9881 */
9882function parseArgument(lexer) {
9883 var start = lexer.token;
9884 return {
9885 kind: _kinds.ARGUMENT,
9886 name: parseName(lexer),
9887 value: (expect(lexer, _lexer.TokenKind.COLON), parseValueLiteral(lexer, false)),
9888 loc: loc(lexer, start)
9889 };
9890}
9891
9892// Implements the parsing rules in the Fragments section.
9893
9894/**
9895 * Corresponds to both FragmentSpread and InlineFragment in the spec.
9896 *
9897 * FragmentSpread : ... FragmentName Directives?
9898 *
9899 * InlineFragment : ... TypeCondition? Directives? SelectionSet
9900 */
9901function parseFragment(lexer) {
9902 var start = lexer.token;
9903 expect(lexer, _lexer.TokenKind.SPREAD);
9904 if (peek(lexer, _lexer.TokenKind.NAME) && lexer.token.value !== 'on') {
9905 return {
9906 kind: _kinds.FRAGMENT_SPREAD,
9907 name: parseFragmentName(lexer),
9908 directives: parseDirectives(lexer),
9909 loc: loc(lexer, start)
9910 };
9911 }
9912 var typeCondition = null;
9913 if (lexer.token.value === 'on') {
9914 lexer.advance();
9915 typeCondition = parseNamedType(lexer);
9916 }
9917 return {
9918 kind: _kinds.INLINE_FRAGMENT,
9919 typeCondition: typeCondition,
9920 directives: parseDirectives(lexer),
9921 selectionSet: parseSelectionSet(lexer),
9922 loc: loc(lexer, start)
9923 };
9924}
9925
9926/**
9927 * FragmentDefinition :
9928 * - fragment FragmentName on TypeCondition Directives? SelectionSet
9929 *
9930 * TypeCondition : NamedType
9931 */
9932function parseFragmentDefinition(lexer) {
9933 var start = lexer.token;
9934 expectKeyword(lexer, 'fragment');
9935 return {
9936 kind: _kinds.FRAGMENT_DEFINITION,
9937 name: parseFragmentName(lexer),
9938 typeCondition: (expectKeyword(lexer, 'on'), parseNamedType(lexer)),
9939 directives: parseDirectives(lexer),
9940 selectionSet: parseSelectionSet(lexer),
9941 loc: loc(lexer, start)
9942 };
9943}
9944
9945/**
9946 * FragmentName : Name but not `on`
9947 */
9948function parseFragmentName(lexer) {
9949 if (lexer.token.value === 'on') {
9950 throw unexpected(lexer);
9951 }
9952 return parseName(lexer);
9953}
9954
9955// Implements the parsing rules in the Values section.
9956
9957/**
9958 * Value[Const] :
9959 * - [~Const] Variable
9960 * - IntValue
9961 * - FloatValue
9962 * - StringValue
9963 * - BooleanValue
9964 * - NullValue
9965 * - EnumValue
9966 * - ListValue[?Const]
9967 * - ObjectValue[?Const]
9968 *
9969 * BooleanValue : one of `true` `false`
9970 *
9971 * NullValue : `null`
9972 *
9973 * EnumValue : Name but not `true`, `false` or `null`
9974 */
9975function parseValueLiteral(lexer, isConst) {
9976 var token = lexer.token;
9977 switch (token.kind) {
9978 case _lexer.TokenKind.BRACKET_L:
9979 return parseList(lexer, isConst);
9980 case _lexer.TokenKind.BRACE_L:
9981 return parseObject(lexer, isConst);
9982 case _lexer.TokenKind.INT:
9983 lexer.advance();
9984 return {
9985 kind: _kinds.INT,
9986 value: token.value,
9987 loc: loc(lexer, token)
9988 };
9989 case _lexer.TokenKind.FLOAT:
9990 lexer.advance();
9991 return {
9992 kind: _kinds.FLOAT,
9993 value: token.value,
9994 loc: loc(lexer, token)
9995 };
9996 case _lexer.TokenKind.STRING:
9997 lexer.advance();
9998 return {
9999 kind: _kinds.STRING,
10000 value: token.value,
10001 loc: loc(lexer, token)
10002 };
10003 case _lexer.TokenKind.NAME:
10004 if (token.value === 'true' || token.value === 'false') {
10005 lexer.advance();
10006 return {
10007 kind: _kinds.BOOLEAN,
10008 value: token.value === 'true',
10009 loc: loc(lexer, token)
10010 };
10011 } else if (token.value === 'null') {
10012 lexer.advance();
10013 return {
10014 kind: _kinds.NULL,
10015 loc: loc(lexer, token)
10016 };
10017 }
10018 lexer.advance();
10019 return {
10020 kind: _kinds.ENUM,
10021 value: token.value,
10022 loc: loc(lexer, token)
10023 };
10024 case _lexer.TokenKind.DOLLAR:
10025 if (!isConst) {
10026 return parseVariable(lexer);
10027 }
10028 break;
10029 }
10030 throw unexpected(lexer);
10031}
10032
10033function parseConstValue(lexer) {
10034 return parseValueLiteral(lexer, true);
10035}
10036
10037function parseValueValue(lexer) {
10038 return parseValueLiteral(lexer, false);
10039}
10040
10041/**
10042 * ListValue[Const] :
10043 * - [ ]
10044 * - [ Value[?Const]+ ]
10045 */
10046function parseList(lexer, isConst) {
10047 var start = lexer.token;
10048 var item = isConst ? parseConstValue : parseValueValue;
10049 return {
10050 kind: _kinds.LIST,
10051 values: any(lexer, _lexer.TokenKind.BRACKET_L, item, _lexer.TokenKind.BRACKET_R),
10052 loc: loc(lexer, start)
10053 };
10054}
10055
10056/**
10057 * ObjectValue[Const] :
10058 * - { }
10059 * - { ObjectField[?Const]+ }
10060 */
10061function parseObject(lexer, isConst) {
10062 var start = lexer.token;
10063 expect(lexer, _lexer.TokenKind.BRACE_L);
10064 var fields = [];
10065 while (!skip(lexer, _lexer.TokenKind.BRACE_R)) {
10066 fields.push(parseObjectField(lexer, isConst));
10067 }
10068 return {
10069 kind: _kinds.OBJECT,
10070 fields: fields,
10071 loc: loc(lexer, start)
10072 };
10073}
10074
10075/**
10076 * ObjectField[Const] : Name : Value[?Const]
10077 */
10078function parseObjectField(lexer, isConst) {
10079 var start = lexer.token;
10080 return {
10081 kind: _kinds.OBJECT_FIELD,
10082 name: parseName(lexer),
10083 value: (expect(lexer, _lexer.TokenKind.COLON), parseValueLiteral(lexer, isConst)),
10084 loc: loc(lexer, start)
10085 };
10086}
10087
10088// Implements the parsing rules in the Directives section.
10089
10090/**
10091 * Directives : Directive+
10092 */
10093function parseDirectives(lexer) {
10094 var directives = [];
10095 while (peek(lexer, _lexer.TokenKind.AT)) {
10096 directives.push(parseDirective(lexer));
10097 }
10098 return directives;
10099}
10100
10101/**
10102 * Directive : @ Name Arguments?
10103 */
10104function parseDirective(lexer) {
10105 var start = lexer.token;
10106 expect(lexer, _lexer.TokenKind.AT);
10107 return {
10108 kind: _kinds.DIRECTIVE,
10109 name: parseName(lexer),
10110 arguments: parseArguments(lexer),
10111 loc: loc(lexer, start)
10112 };
10113}
10114
10115// Implements the parsing rules in the Types section.
10116
10117/**
10118 * Type :
10119 * - NamedType
10120 * - ListType
10121 * - NonNullType
10122 */
10123function parseTypeReference(lexer) {
10124 var start = lexer.token;
10125 var type = void 0;
10126 if (skip(lexer, _lexer.TokenKind.BRACKET_L)) {
10127 type = parseTypeReference(lexer);
10128 expect(lexer, _lexer.TokenKind.BRACKET_R);
10129 type = {
10130 kind: _kinds.LIST_TYPE,
10131 type: type,
10132 loc: loc(lexer, start)
10133 };
10134 } else {
10135 type = parseNamedType(lexer);
10136 }
10137 if (skip(lexer, _lexer.TokenKind.BANG)) {
10138 return {
10139 kind: _kinds.NON_NULL_TYPE,
10140 type: type,
10141 loc: loc(lexer, start)
10142 };
10143 }
10144 return type;
10145}
10146
10147/**
10148 * NamedType : Name
10149 */
10150function parseNamedType(lexer) {
10151 var start = lexer.token;
10152 return {
10153 kind: _kinds.NAMED_TYPE,
10154 name: parseName(lexer),
10155 loc: loc(lexer, start)
10156 };
10157}
10158
10159// Implements the parsing rules in the Type Definition section.
10160
10161/**
10162 * TypeSystemDefinition :
10163 * - SchemaDefinition
10164 * - TypeDefinition
10165 * - TypeExtensionDefinition
10166 * - DirectiveDefinition
10167 *
10168 * TypeDefinition :
10169 * - ScalarTypeDefinition
10170 * - ObjectTypeDefinition
10171 * - InterfaceTypeDefinition
10172 * - UnionTypeDefinition
10173 * - EnumTypeDefinition
10174 * - InputObjectTypeDefinition
10175 */
10176function parseTypeSystemDefinition(lexer) {
10177 if (peek(lexer, _lexer.TokenKind.NAME)) {
10178 switch (lexer.token.value) {
10179 case 'schema':
10180 return parseSchemaDefinition(lexer);
10181 case 'scalar':
10182 return parseScalarTypeDefinition(lexer);
10183 case 'type':
10184 return parseObjectTypeDefinition(lexer);
10185 case 'interface':
10186 return parseInterfaceTypeDefinition(lexer);
10187 case 'union':
10188 return parseUnionTypeDefinition(lexer);
10189 case 'enum':
10190 return parseEnumTypeDefinition(lexer);
10191 case 'input':
10192 return parseInputObjectTypeDefinition(lexer);
10193 case 'extend':
10194 return parseTypeExtensionDefinition(lexer);
10195 case 'directive':
10196 return parseDirectiveDefinition(lexer);
10197 }
10198 }
10199
10200 throw unexpected(lexer);
10201}
10202
10203/**
10204 * SchemaDefinition : schema Directives? { OperationTypeDefinition+ }
10205 *
10206 * OperationTypeDefinition : OperationType : NamedType
10207 */
10208function parseSchemaDefinition(lexer) {
10209 var start = lexer.token;
10210 expectKeyword(lexer, 'schema');
10211 var directives = parseDirectives(lexer);
10212 var operationTypes = many(lexer, _lexer.TokenKind.BRACE_L, parseOperationTypeDefinition, _lexer.TokenKind.BRACE_R);
10213 return {
10214 kind: _kinds.SCHEMA_DEFINITION,
10215 directives: directives,
10216 operationTypes: operationTypes,
10217 loc: loc(lexer, start)
10218 };
10219}
10220
10221function parseOperationTypeDefinition(lexer) {
10222 var start = lexer.token;
10223 var operation = parseOperationType(lexer);
10224 expect(lexer, _lexer.TokenKind.COLON);
10225 var type = parseNamedType(lexer);
10226 return {
10227 kind: _kinds.OPERATION_TYPE_DEFINITION,
10228 operation: operation,
10229 type: type,
10230 loc: loc(lexer, start)
10231 };
10232}
10233
10234/**
10235 * ScalarTypeDefinition : scalar Name Directives?
10236 */
10237function parseScalarTypeDefinition(lexer) {
10238 var start = lexer.token;
10239 expectKeyword(lexer, 'scalar');
10240 var name = parseName(lexer);
10241 var directives = parseDirectives(lexer);
10242 return {
10243 kind: _kinds.SCALAR_TYPE_DEFINITION,
10244 name: name,
10245 directives: directives,
10246 loc: loc(lexer, start)
10247 };
10248}
10249
10250/**
10251 * ObjectTypeDefinition :
10252 * - type Name ImplementsInterfaces? Directives? { FieldDefinition+ }
10253 */
10254function parseObjectTypeDefinition(lexer) {
10255 var start = lexer.token;
10256 expectKeyword(lexer, 'type');
10257 var name = parseName(lexer);
10258 var interfaces = parseImplementsInterfaces(lexer);
10259 var directives = parseDirectives(lexer);
10260 var fields = any(lexer, _lexer.TokenKind.BRACE_L, parseFieldDefinition, _lexer.TokenKind.BRACE_R);
10261 return {
10262 kind: _kinds.OBJECT_TYPE_DEFINITION,
10263 name: name,
10264 interfaces: interfaces,
10265 directives: directives,
10266 fields: fields,
10267 loc: loc(lexer, start)
10268 };
10269}
10270
10271/**
10272 * ImplementsInterfaces : implements NamedType+
10273 */
10274function parseImplementsInterfaces(lexer) {
10275 var types = [];
10276 if (lexer.token.value === 'implements') {
10277 lexer.advance();
10278 do {
10279 types.push(parseNamedType(lexer));
10280 } while (peek(lexer, _lexer.TokenKind.NAME));
10281 }
10282 return types;
10283}
10284
10285/**
10286 * FieldDefinition : Name ArgumentsDefinition? : Type Directives?
10287 */
10288function parseFieldDefinition(lexer) {
10289 var start = lexer.token;
10290 var name = parseName(lexer);
10291 var args = parseArgumentDefs(lexer);
10292 expect(lexer, _lexer.TokenKind.COLON);
10293 var type = parseTypeReference(lexer);
10294 var directives = parseDirectives(lexer);
10295 return {
10296 kind: _kinds.FIELD_DEFINITION,
10297 name: name,
10298 arguments: args,
10299 type: type,
10300 directives: directives,
10301 loc: loc(lexer, start)
10302 };
10303}
10304
10305/**
10306 * ArgumentsDefinition : ( InputValueDefinition+ )
10307 */
10308function parseArgumentDefs(lexer) {
10309 if (!peek(lexer, _lexer.TokenKind.PAREN_L)) {
10310 return [];
10311 }
10312 return many(lexer, _lexer.TokenKind.PAREN_L, parseInputValueDef, _lexer.TokenKind.PAREN_R);
10313}
10314
10315/**
10316 * InputValueDefinition : Name : Type DefaultValue? Directives?
10317 */
10318function parseInputValueDef(lexer) {
10319 var start = lexer.token;
10320 var name = parseName(lexer);
10321 expect(lexer, _lexer.TokenKind.COLON);
10322 var type = parseTypeReference(lexer);
10323 var defaultValue = null;
10324 if (skip(lexer, _lexer.TokenKind.EQUALS)) {
10325 defaultValue = parseConstValue(lexer);
10326 }
10327 var directives = parseDirectives(lexer);
10328 return {
10329 kind: _kinds.INPUT_VALUE_DEFINITION,
10330 name: name,
10331 type: type,
10332 defaultValue: defaultValue,
10333 directives: directives,
10334 loc: loc(lexer, start)
10335 };
10336}
10337
10338/**
10339 * InterfaceTypeDefinition : interface Name Directives? { FieldDefinition+ }
10340 */
10341function parseInterfaceTypeDefinition(lexer) {
10342 var start = lexer.token;
10343 expectKeyword(lexer, 'interface');
10344 var name = parseName(lexer);
10345 var directives = parseDirectives(lexer);
10346 var fields = any(lexer, _lexer.TokenKind.BRACE_L, parseFieldDefinition, _lexer.TokenKind.BRACE_R);
10347 return {
10348 kind: _kinds.INTERFACE_TYPE_DEFINITION,
10349 name: name,
10350 directives: directives,
10351 fields: fields,
10352 loc: loc(lexer, start)
10353 };
10354}
10355
10356/**
10357 * UnionTypeDefinition : union Name Directives? = UnionMembers
10358 */
10359function parseUnionTypeDefinition(lexer) {
10360 var start = lexer.token;
10361 expectKeyword(lexer, 'union');
10362 var name = parseName(lexer);
10363 var directives = parseDirectives(lexer);
10364 expect(lexer, _lexer.TokenKind.EQUALS);
10365 var types = parseUnionMembers(lexer);
10366 return {
10367 kind: _kinds.UNION_TYPE_DEFINITION,
10368 name: name,
10369 directives: directives,
10370 types: types,
10371 loc: loc(lexer, start)
10372 };
10373}
10374
10375/**
10376 * UnionMembers :
10377 * - `|`? NamedType
10378 * - UnionMembers | NamedType
10379 */
10380function parseUnionMembers(lexer) {
10381 // Optional leading pipe
10382 skip(lexer, _lexer.TokenKind.PIPE);
10383 var members = [];
10384 do {
10385 members.push(parseNamedType(lexer));
10386 } while (skip(lexer, _lexer.TokenKind.PIPE));
10387 return members;
10388}
10389
10390/**
10391 * EnumTypeDefinition : enum Name Directives? { EnumValueDefinition+ }
10392 */
10393function parseEnumTypeDefinition(lexer) {
10394 var start = lexer.token;
10395 expectKeyword(lexer, 'enum');
10396 var name = parseName(lexer);
10397 var directives = parseDirectives(lexer);
10398 var values = many(lexer, _lexer.TokenKind.BRACE_L, parseEnumValueDefinition, _lexer.TokenKind.BRACE_R);
10399 return {
10400 kind: _kinds.ENUM_TYPE_DEFINITION,
10401 name: name,
10402 directives: directives,
10403 values: values,
10404 loc: loc(lexer, start)
10405 };
10406}
10407
10408/**
10409 * EnumValueDefinition : EnumValue Directives?
10410 *
10411 * EnumValue : Name
10412 */
10413function parseEnumValueDefinition(lexer) {
10414 var start = lexer.token;
10415 var name = parseName(lexer);
10416 var directives = parseDirectives(lexer);
10417 return {
10418 kind: _kinds.ENUM_VALUE_DEFINITION,
10419 name: name,
10420 directives: directives,
10421 loc: loc(lexer, start)
10422 };
10423}
10424
10425/**
10426 * InputObjectTypeDefinition : input Name Directives? { InputValueDefinition+ }
10427 */
10428function parseInputObjectTypeDefinition(lexer) {
10429 var start = lexer.token;
10430 expectKeyword(lexer, 'input');
10431 var name = parseName(lexer);
10432 var directives = parseDirectives(lexer);
10433 var fields = any(lexer, _lexer.TokenKind.BRACE_L, parseInputValueDef, _lexer.TokenKind.BRACE_R);
10434 return {
10435 kind: _kinds.INPUT_OBJECT_TYPE_DEFINITION,
10436 name: name,
10437 directives: directives,
10438 fields: fields,
10439 loc: loc(lexer, start)
10440 };
10441}
10442
10443/**
10444 * TypeExtensionDefinition : extend ObjectTypeDefinition
10445 */
10446function parseTypeExtensionDefinition(lexer) {
10447 var start = lexer.token;
10448 expectKeyword(lexer, 'extend');
10449 var definition = parseObjectTypeDefinition(lexer);
10450 return {
10451 kind: _kinds.TYPE_EXTENSION_DEFINITION,
10452 definition: definition,
10453 loc: loc(lexer, start)
10454 };
10455}
10456
10457/**
10458 * DirectiveDefinition :
10459 * - directive @ Name ArgumentsDefinition? on DirectiveLocations
10460 */
10461function parseDirectiveDefinition(lexer) {
10462 var start = lexer.token;
10463 expectKeyword(lexer, 'directive');
10464 expect(lexer, _lexer.TokenKind.AT);
10465 var name = parseName(lexer);
10466 var args = parseArgumentDefs(lexer);
10467 expectKeyword(lexer, 'on');
10468 var locations = parseDirectiveLocations(lexer);
10469 return {
10470 kind: _kinds.DIRECTIVE_DEFINITION,
10471 name: name,
10472 arguments: args,
10473 locations: locations,
10474 loc: loc(lexer, start)
10475 };
10476}
10477
10478/**
10479 * DirectiveLocations :
10480 * - `|`? Name
10481 * - DirectiveLocations | Name
10482 */
10483function parseDirectiveLocations(lexer) {
10484 // Optional leading pipe
10485 skip(lexer, _lexer.TokenKind.PIPE);
10486 var locations = [];
10487 do {
10488 locations.push(parseName(lexer));
10489 } while (skip(lexer, _lexer.TokenKind.PIPE));
10490 return locations;
10491}
10492
10493// Core parsing utility functions
10494
10495/**
10496 * Returns a location object, used to identify the place in
10497 * the source that created a given parsed object.
10498 */
10499function loc(lexer, startToken) {
10500 if (!lexer.options.noLocation) {
10501 return new Loc(startToken, lexer.lastToken, lexer.source);
10502 }
10503}
10504
10505function Loc(startToken, endToken, source) {
10506 this.start = startToken.start;
10507 this.end = endToken.end;
10508 this.startToken = startToken;
10509 this.endToken = endToken;
10510 this.source = source;
10511}
10512
10513// Print a simplified form when appearing in JSON/util.inspect.
10514Loc.prototype.toJSON = Loc.prototype.inspect = function toJSON() {
10515 return { start: this.start, end: this.end };
10516};
10517
10518/**
10519 * Determines if the next token is of a given kind
10520 */
10521function peek(lexer, kind) {
10522 return lexer.token.kind === kind;
10523}
10524
10525/**
10526 * If the next token is of the given kind, return true after advancing
10527 * the lexer. Otherwise, do not change the parser state and return false.
10528 */
10529function skip(lexer, kind) {
10530 var match = lexer.token.kind === kind;
10531 if (match) {
10532 lexer.advance();
10533 }
10534 return match;
10535}
10536
10537/**
10538 * If the next token is of the given kind, return that token after advancing
10539 * the lexer. Otherwise, do not change the parser state and throw an error.
10540 */
10541function expect(lexer, kind) {
10542 var token = lexer.token;
10543 if (token.kind === kind) {
10544 lexer.advance();
10545 return token;
10546 }
10547 throw (0, _error.syntaxError)(lexer.source, token.start, 'Expected ' + kind + ', found ' + (0, _lexer.getTokenDesc)(token));
10548}
10549
10550/**
10551 * If the next token is a keyword with the given value, return that token after
10552 * advancing the lexer. Otherwise, do not change the parser state and return
10553 * false.
10554 */
10555function expectKeyword(lexer, value) {
10556 var token = lexer.token;
10557 if (token.kind === _lexer.TokenKind.NAME && token.value === value) {
10558 lexer.advance();
10559 return token;
10560 }
10561 throw (0, _error.syntaxError)(lexer.source, token.start, 'Expected "' + value + '", found ' + (0, _lexer.getTokenDesc)(token));
10562}
10563
10564/**
10565 * Helper function for creating an error when an unexpected lexed token
10566 * is encountered.
10567 */
10568function unexpected(lexer, atToken) {
10569 var token = atToken || lexer.token;
10570 return (0, _error.syntaxError)(lexer.source, token.start, 'Unexpected ' + (0, _lexer.getTokenDesc)(token));
10571}
10572
10573/**
10574 * Returns a possibly empty list of parse nodes, determined by
10575 * the parseFn. This list begins with a lex token of openKind
10576 * and ends with a lex token of closeKind. Advances the parser
10577 * to the next lex token after the closing token.
10578 */
10579function any(lexer, openKind, parseFn, closeKind) {
10580 expect(lexer, openKind);
10581 var nodes = [];
10582 while (!skip(lexer, closeKind)) {
10583 nodes.push(parseFn(lexer));
10584 }
10585 return nodes;
10586}
10587
10588/**
10589 * Returns a non-empty list of parse nodes, determined by
10590 * the parseFn. This list begins with a lex token of openKind
10591 * and ends with a lex token of closeKind. Advances the parser
10592 * to the next lex token after the closing token.
10593 */
10594function many(lexer, openKind, parseFn, closeKind) {
10595 expect(lexer, openKind);
10596 var nodes = [parseFn(lexer)];
10597 while (!skip(lexer, closeKind)) {
10598 nodes.push(parseFn(lexer));
10599 }
10600 return nodes;
10601}
10602
10603/***/ }),
10604/* 116 */
10605/***/ (function(module, exports, __webpack_require__) {
10606
10607"use strict";
10608
10609
10610Object.defineProperty(exports, "__esModule", {
10611 value: true
10612});
10613exports.isEqualType = isEqualType;
10614exports.isTypeSubTypeOf = isTypeSubTypeOf;
10615exports.doTypesOverlap = doTypesOverlap;
10616
10617var _definition = __webpack_require__(6);
10618
10619/**
10620 * Provided two types, return true if the types are equal (invariant).
10621 */
10622function isEqualType(typeA, typeB) {
10623 // Equivalent types are equal.
10624 if (typeA === typeB) {
10625 return true;
10626 }
10627
10628 // If either type is non-null, the other must also be non-null.
10629 if (typeA instanceof _definition.GraphQLNonNull && typeB instanceof _definition.GraphQLNonNull) {
10630 return isEqualType(typeA.ofType, typeB.ofType);
10631 }
10632
10633 // If either type is a list, the other must also be a list.
10634 if (typeA instanceof _definition.GraphQLList && typeB instanceof _definition.GraphQLList) {
10635 return isEqualType(typeA.ofType, typeB.ofType);
10636 }
10637
10638 // Otherwise the types are not equal.
10639 return false;
10640}
10641
10642/**
10643 * Provided a type and a super type, return true if the first type is either
10644 * equal or a subset of the second super type (covariant).
10645 */
10646/**
10647 * Copyright (c) 2015-present, Facebook, Inc.
10648 *
10649 * This source code is licensed under the MIT license found in the
10650 * LICENSE file in the root directory of this source tree.
10651 *
10652 *
10653 */
10654
10655function isTypeSubTypeOf(schema, maybeSubType, superType) {
10656 // Equivalent type is a valid subtype
10657 if (maybeSubType === superType) {
10658 return true;
10659 }
10660
10661 // If superType is non-null, maybeSubType must also be non-null.
10662 if (superType instanceof _definition.GraphQLNonNull) {
10663 if (maybeSubType instanceof _definition.GraphQLNonNull) {
10664 return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
10665 }
10666 return false;
10667 } else if (maybeSubType instanceof _definition.GraphQLNonNull) {
10668 // If superType is nullable, maybeSubType may be non-null or nullable.
10669 return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
10670 }
10671
10672 // If superType type is a list, maybeSubType type must also be a list.
10673 if (superType instanceof _definition.GraphQLList) {
10674 if (maybeSubType instanceof _definition.GraphQLList) {
10675 return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
10676 }
10677 return false;
10678 } else if (maybeSubType instanceof _definition.GraphQLList) {
10679 // If superType is not a list, maybeSubType must also be not a list.
10680 return false;
10681 }
10682
10683 // If superType type is an abstract type, maybeSubType type may be a currently
10684 // possible object type.
10685 if ((0, _definition.isAbstractType)(superType) && maybeSubType instanceof _definition.GraphQLObjectType && schema.isPossibleType(superType, maybeSubType)) {
10686 return true;
10687 }
10688
10689 // Otherwise, the child type is not a valid subtype of the parent type.
10690 return false;
10691}
10692
10693/**
10694 * Provided two composite types, determine if they "overlap". Two composite
10695 * types overlap when the Sets of possible concrete types for each intersect.
10696 *
10697 * This is often used to determine if a fragment of a given type could possibly
10698 * be visited in a context of another type.
10699 *
10700 * This function is commutative.
10701 */
10702function doTypesOverlap(schema, typeA, typeB) {
10703 // So flow is aware this is constant
10704 var _typeB = typeB;
10705
10706 // Equivalent types overlap
10707 if (typeA === _typeB) {
10708 return true;
10709 }
10710
10711 if ((0, _definition.isAbstractType)(typeA)) {
10712 if ((0, _definition.isAbstractType)(_typeB)) {
10713 // If both types are abstract, then determine if there is any intersection
10714 // between possible concrete types of each.
10715 return schema.getPossibleTypes(typeA).some(function (type) {
10716 return schema.isPossibleType(_typeB, type);
10717 });
10718 }
10719 // Determine if the latter type is a possible concrete type of the former.
10720 return schema.isPossibleType(typeA, _typeB);
10721 }
10722
10723 if ((0, _definition.isAbstractType)(_typeB)) {
10724 // Determine if the former type is a possible concrete type of the latter.
10725 return schema.isPossibleType(_typeB, typeA);
10726 }
10727
10728 // Otherwise the types do not overlap.
10729 return false;
10730}
10731
10732/***/ }),
10733/* 117 */
10734/***/ (function(module, exports, __webpack_require__) {
10735
10736"use strict";
10737
10738
10739Object.defineProperty(exports, "__esModule", {
10740 value: true
10741});
10742exports.isValidLiteralValue = isValidLiteralValue;
10743
10744var _printer = __webpack_require__(28);
10745
10746var _kinds = __webpack_require__(12);
10747
10748var Kind = _interopRequireWildcard(_kinds);
10749
10750var _definition = __webpack_require__(6);
10751
10752var _invariant = __webpack_require__(11);
10753
10754var _invariant2 = _interopRequireDefault(_invariant);
10755
10756var _keyMap = __webpack_require__(77);
10757
10758var _keyMap2 = _interopRequireDefault(_keyMap);
10759
10760function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10761
10762function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
10763
10764/**
10765 * Utility for validators which determines if a value literal node is valid
10766 * given an input type.
10767 *
10768 * Note that this only validates literal values, variables are assumed to
10769 * provide values of the correct type.
10770 */
10771function isValidLiteralValue(type, valueNode) {
10772 // A value must be provided if the type is non-null.
10773 if (type instanceof _definition.GraphQLNonNull) {
10774 if (!valueNode || valueNode.kind === Kind.NULL) {
10775 return ['Expected "' + String(type) + '", found null.'];
10776 }
10777 return isValidLiteralValue(type.ofType, valueNode);
10778 }
10779
10780 if (!valueNode || valueNode.kind === Kind.NULL) {
10781 return [];
10782 }
10783
10784 // This function only tests literals, and assumes variables will provide
10785 // values of the correct type.
10786 if (valueNode.kind === Kind.VARIABLE) {
10787 return [];
10788 }
10789
10790 // Lists accept a non-list value as a list of one.
10791 if (type instanceof _definition.GraphQLList) {
10792 var itemType = type.ofType;
10793 if (valueNode.kind === Kind.LIST) {
10794 return valueNode.values.reduce(function (acc, item, index) {
10795 var errors = isValidLiteralValue(itemType, item);
10796 return acc.concat(errors.map(function (error) {
10797 return 'In element #' + index + ': ' + error;
10798 }));
10799 }, []);
10800 }
10801 return isValidLiteralValue(itemType, valueNode);
10802 }
10803
10804 // Input objects check each defined field and look for undefined fields.
10805 if (type instanceof _definition.GraphQLInputObjectType) {
10806 if (valueNode.kind !== Kind.OBJECT) {
10807 return ['Expected "' + type.name + '", found not an object.'];
10808 }
10809 var fields = type.getFields();
10810
10811 var errors = [];
10812
10813 // Ensure every provided field is defined.
10814 var fieldNodes = valueNode.fields;
10815 fieldNodes.forEach(function (providedFieldNode) {
10816 if (!fields[providedFieldNode.name.value]) {
10817 errors.push('In field "' + providedFieldNode.name.value + '": Unknown field.');
10818 }
10819 });
10820
10821 // Ensure every defined field is valid.
10822 var fieldNodeMap = (0, _keyMap2.default)(fieldNodes, function (fieldNode) {
10823 return fieldNode.name.value;
10824 });
10825 Object.keys(fields).forEach(function (fieldName) {
10826 var result = isValidLiteralValue(fields[fieldName].type, fieldNodeMap[fieldName] && fieldNodeMap[fieldName].value);
10827 errors.push.apply(errors, result.map(function (error) {
10828 return 'In field "' + fieldName + '": ' + error;
10829 }));
10830 });
10831
10832 return errors;
10833 }
10834
10835 !(type instanceof _definition.GraphQLScalarType || type instanceof _definition.GraphQLEnumType) ? (0, _invariant2.default)(0, 'Must be input type') : void 0;
10836
10837 // Scalars determine if a literal values is valid.
10838 if (!type.isValidLiteral(valueNode)) {
10839 return ['Expected type "' + type.name + '", found ' + (0, _printer.print)(valueNode) + '.'];
10840 }
10841
10842 return [];
10843} /**
10844 * Copyright (c) 2015-present, Facebook, Inc.
10845 *
10846 * This source code is licensed under the MIT license found in the
10847 * LICENSE file in the root directory of this source tree.
10848 *
10849 *
10850 */
10851
10852/***/ }),
10853/* 118 */
10854/***/ (function(module, exports, __webpack_require__) {
10855
10856"use strict";
10857
10858Object.defineProperty(exports, "__esModule", { value: true });
10859var MessageTypes = (function () {
10860 function MessageTypes() {
10861 throw new Error('Static Class');
10862 }
10863 MessageTypes.GQL_CONNECTION_INIT = 'connection_init';
10864 MessageTypes.GQL_CONNECTION_ACK = 'connection_ack';
10865 MessageTypes.GQL_CONNECTION_ERROR = 'connection_error';
10866 MessageTypes.GQL_CONNECTION_KEEP_ALIVE = 'ka';
10867 MessageTypes.GQL_CONNECTION_TERMINATE = 'connection_terminate';
10868 MessageTypes.GQL_START = 'start';
10869 MessageTypes.GQL_DATA = 'data';
10870 MessageTypes.GQL_ERROR = 'error';
10871 MessageTypes.GQL_COMPLETE = 'complete';
10872 MessageTypes.GQL_STOP = 'stop';
10873 MessageTypes.SUBSCRIPTION_START = 'subscription_start';
10874 MessageTypes.SUBSCRIPTION_DATA = 'subscription_data';
10875 MessageTypes.SUBSCRIPTION_SUCCESS = 'subscription_success';
10876 MessageTypes.SUBSCRIPTION_FAIL = 'subscription_fail';
10877 MessageTypes.SUBSCRIPTION_END = 'subscription_end';
10878 MessageTypes.INIT = 'init';
10879 MessageTypes.INIT_SUCCESS = 'init_success';
10880 MessageTypes.INIT_FAIL = 'init_fail';
10881 MessageTypes.KEEP_ALIVE = 'keepalive';
10882 return MessageTypes;
10883}());
10884exports.default = MessageTypes;
10885//# sourceMappingURL=message-types.js.map
10886
10887/***/ }),
10888/* 119 */
10889/***/ (function(module, exports, __webpack_require__) {
10890
10891"use strict";
10892
10893
10894const safeBuffer = __webpack_require__(29);
10895const Limiter = __webpack_require__(601);
10896const zlib = __webpack_require__(185);
10897
10898const bufferUtil = __webpack_require__(186);
10899
10900const Buffer = safeBuffer.Buffer;
10901
10902const TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);
10903const EMPTY_BLOCK = Buffer.from([0x00]);
10904
10905const kWriteInProgress = Symbol('write-in-progress');
10906const kPendingClose = Symbol('pending-close');
10907const kTotalLength = Symbol('total-length');
10908const kCallback = Symbol('callback');
10909const kBuffers = Symbol('buffers');
10910const kError = Symbol('error');
10911const kOwner = Symbol('owner');
10912
10913//
10914// We limit zlib concurrency, which prevents severe memory fragmentation
10915// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913
10916// and https://github.com/websockets/ws/issues/1202
10917//
10918// Intentionally global; it's the global thread pool that's an issue.
10919//
10920let zlibLimiter;
10921
10922/**
10923 * permessage-deflate implementation.
10924 */
10925class PerMessageDeflate {
10926 /**
10927 * Creates a PerMessageDeflate instance.
10928 *
10929 * @param {Object} options Configuration options
10930 * @param {Boolean} options.serverNoContextTakeover Request/accept disabling
10931 * of server context takeover
10932 * @param {Boolean} options.clientNoContextTakeover Advertise/acknowledge
10933 * disabling of client context takeover
10934 * @param {(Boolean|Number)} options.serverMaxWindowBits Request/confirm the
10935 * use of a custom server window size
10936 * @param {(Boolean|Number)} options.clientMaxWindowBits Advertise support
10937 * for, or request, a custom client window size
10938 * @param {Number} options.level The value of zlib's `level` param
10939 * @param {Number} options.memLevel The value of zlib's `memLevel` param
10940 * @param {Number} options.threshold Size (in bytes) below which messages
10941 * should not be compressed
10942 * @param {Number} options.concurrencyLimit The number of concurrent calls to
10943 * zlib
10944 * @param {Boolean} isServer Create the instance in either server or client
10945 * mode
10946 * @param {Number} maxPayload The maximum allowed message length
10947 */
10948 constructor (options, isServer, maxPayload) {
10949 this._maxPayload = maxPayload | 0;
10950 this._options = options || {};
10951 this._threshold = this._options.threshold !== undefined
10952 ? this._options.threshold
10953 : 1024;
10954 this._isServer = !!isServer;
10955 this._deflate = null;
10956 this._inflate = null;
10957
10958 this.params = null;
10959
10960 if (!zlibLimiter) {
10961 const concurrency = this._options.concurrencyLimit !== undefined
10962 ? this._options.concurrencyLimit
10963 : 10;
10964 zlibLimiter = new Limiter({ concurrency });
10965 }
10966 }
10967
10968 /**
10969 * @type {String}
10970 */
10971 static get extensionName () {
10972 return 'permessage-deflate';
10973 }
10974
10975 /**
10976 * Create extension parameters offer.
10977 *
10978 * @return {Object} Extension parameters
10979 * @public
10980 */
10981 offer () {
10982 const params = {};
10983
10984 if (this._options.serverNoContextTakeover) {
10985 params.server_no_context_takeover = true;
10986 }
10987 if (this._options.clientNoContextTakeover) {
10988 params.client_no_context_takeover = true;
10989 }
10990 if (this._options.serverMaxWindowBits) {
10991 params.server_max_window_bits = this._options.serverMaxWindowBits;
10992 }
10993 if (this._options.clientMaxWindowBits) {
10994 params.client_max_window_bits = this._options.clientMaxWindowBits;
10995 } else if (this._options.clientMaxWindowBits == null) {
10996 params.client_max_window_bits = true;
10997 }
10998
10999 return params;
11000 }
11001
11002 /**
11003 * Accept extension offer.
11004 *
11005 * @param {Array} paramsList Extension parameters
11006 * @return {Object} Accepted configuration
11007 * @public
11008 */
11009 accept (paramsList) {
11010 paramsList = this.normalizeParams(paramsList);
11011
11012 var params;
11013 if (this._isServer) {
11014 params = this.acceptAsServer(paramsList);
11015 } else {
11016 params = this.acceptAsClient(paramsList);
11017 }
11018
11019 this.params = params;
11020 return params;
11021 }
11022
11023 /**
11024 * Releases all resources used by the extension.
11025 *
11026 * @public
11027 */
11028 cleanup () {
11029 if (this._inflate) {
11030 if (this._inflate[kWriteInProgress]) {
11031 this._inflate[kPendingClose] = true;
11032 } else {
11033 this._inflate.close();
11034 this._inflate = null;
11035 }
11036 }
11037 if (this._deflate) {
11038 if (this._deflate[kWriteInProgress]) {
11039 this._deflate[kPendingClose] = true;
11040 } else {
11041 this._deflate.close();
11042 this._deflate = null;
11043 }
11044 }
11045 }
11046
11047 /**
11048 * Accept extension offer from client.
11049 *
11050 * @param {Array} paramsList Extension parameters
11051 * @return {Object} Accepted configuration
11052 * @private
11053 */
11054 acceptAsServer (paramsList) {
11055 const accepted = {};
11056 const result = paramsList.some((params) => {
11057 if (
11058 (this._options.serverNoContextTakeover === false &&
11059 params.server_no_context_takeover) ||
11060 (this._options.serverMaxWindowBits === false &&
11061 params.server_max_window_bits) ||
11062 (typeof this._options.serverMaxWindowBits === 'number' &&
11063 typeof params.server_max_window_bits === 'number' &&
11064 this._options.serverMaxWindowBits > params.server_max_window_bits) ||
11065 (typeof this._options.clientMaxWindowBits === 'number' &&
11066 !params.client_max_window_bits)
11067 ) {
11068 return;
11069 }
11070
11071 if (
11072 this._options.serverNoContextTakeover ||
11073 params.server_no_context_takeover
11074 ) {
11075 accepted.server_no_context_takeover = true;
11076 }
11077 if (
11078 this._options.clientNoContextTakeover ||
11079 (this._options.clientNoContextTakeover !== false &&
11080 params.client_no_context_takeover)
11081 ) {
11082 accepted.client_no_context_takeover = true;
11083 }
11084 if (typeof this._options.serverMaxWindowBits === 'number') {
11085 accepted.server_max_window_bits = this._options.serverMaxWindowBits;
11086 } else if (typeof params.server_max_window_bits === 'number') {
11087 accepted.server_max_window_bits = params.server_max_window_bits;
11088 }
11089 if (typeof this._options.clientMaxWindowBits === 'number') {
11090 accepted.client_max_window_bits = this._options.clientMaxWindowBits;
11091 } else if (
11092 this._options.clientMaxWindowBits !== false &&
11093 typeof params.client_max_window_bits === 'number'
11094 ) {
11095 accepted.client_max_window_bits = params.client_max_window_bits;
11096 }
11097 return true;
11098 });
11099
11100 if (!result) throw new Error("Doesn't support the offered configuration");
11101
11102 return accepted;
11103 }
11104
11105 /**
11106 * Accept extension response from server.
11107 *
11108 * @param {Array} paramsList Extension parameters
11109 * @return {Object} Accepted configuration
11110 * @private
11111 */
11112 acceptAsClient (paramsList) {
11113 const params = paramsList[0];
11114
11115 if (
11116 this._options.clientNoContextTakeover === false &&
11117 params.client_no_context_takeover
11118 ) {
11119 throw new Error('Invalid value for "client_no_context_takeover"');
11120 }
11121
11122 if (
11123 (typeof this._options.clientMaxWindowBits === 'number' &&
11124 (!params.client_max_window_bits ||
11125 params.client_max_window_bits > this._options.clientMaxWindowBits)) ||
11126 (this._options.clientMaxWindowBits === false &&
11127 params.client_max_window_bits)
11128 ) {
11129 throw new Error('Invalid value for "client_max_window_bits"');
11130 }
11131
11132 return params;
11133 }
11134
11135 /**
11136 * Normalize extensions parameters.
11137 *
11138 * @param {Array} paramsList Extension parameters
11139 * @return {Array} Normalized extensions parameters
11140 * @private
11141 */
11142 normalizeParams (paramsList) {
11143 return paramsList.map((params) => {
11144 Object.keys(params).forEach((key) => {
11145 var value = params[key];
11146 if (value.length > 1) {
11147 throw new Error(`Multiple extension parameters for ${key}`);
11148 }
11149
11150 value = value[0];
11151
11152 switch (key) {
11153 case 'server_no_context_takeover':
11154 case 'client_no_context_takeover':
11155 if (value !== true) {
11156 throw new Error(`invalid extension parameter value for ${key} (${value})`);
11157 }
11158 params[key] = true;
11159 break;
11160 case 'server_max_window_bits':
11161 case 'client_max_window_bits':
11162 if (typeof value === 'string') {
11163 value = parseInt(value, 10);
11164 if (
11165 Number.isNaN(value) ||
11166 value < zlib.Z_MIN_WINDOWBITS ||
11167 value > zlib.Z_MAX_WINDOWBITS
11168 ) {
11169 throw new Error(`invalid extension parameter value for ${key} (${value})`);
11170 }
11171 }
11172 if (!this._isServer && value === true) {
11173 throw new Error(`Missing extension parameter value for ${key}`);
11174 }
11175 params[key] = value;
11176 break;
11177 default:
11178 throw new Error(`Not defined extension parameter (${key})`);
11179 }
11180 });
11181 return params;
11182 });
11183 }
11184
11185 /**
11186 * Decompress data. Concurrency limited by async-limiter.
11187 *
11188 * @param {Buffer} data Compressed data
11189 * @param {Boolean} fin Specifies whether or not this is the last fragment
11190 * @param {Function} callback Callback
11191 * @public
11192 */
11193 decompress (data, fin, callback) {
11194 zlibLimiter.push((done) => {
11195 this._decompress(data, fin, (err, result) => {
11196 done();
11197 callback(err, result);
11198 });
11199 });
11200 }
11201
11202 /**
11203 * Compress data. Concurrency limited by async-limiter.
11204 *
11205 * @param {Buffer} data Data to compress
11206 * @param {Boolean} fin Specifies whether or not this is the last fragment
11207 * @param {Function} callback Callback
11208 * @public
11209 */
11210 compress (data, fin, callback) {
11211 zlibLimiter.push((done) => {
11212 this._compress(data, fin, (err, result) => {
11213 done();
11214 callback(err, result);
11215 });
11216 });
11217 }
11218
11219 /**
11220 * Decompress data.
11221 *
11222 * @param {Buffer} data Compressed data
11223 * @param {Boolean} fin Specifies whether or not this is the last fragment
11224 * @param {Function} callback Callback
11225 * @private
11226 */
11227 _decompress (data, fin, callback) {
11228 const endpoint = this._isServer ? 'client' : 'server';
11229
11230 if (!this._inflate) {
11231 const key = `${endpoint}_max_window_bits`;
11232 const windowBits = typeof this.params[key] !== 'number'
11233 ? zlib.Z_DEFAULT_WINDOWBITS
11234 : this.params[key];
11235
11236 this._inflate = zlib.createInflateRaw({ windowBits });
11237 this._inflate[kTotalLength] = 0;
11238 this._inflate[kBuffers] = [];
11239 this._inflate[kOwner] = this;
11240 this._inflate.on('error', inflateOnError);
11241 this._inflate.on('data', inflateOnData);
11242 }
11243
11244 this._inflate[kCallback] = callback;
11245 this._inflate[kWriteInProgress] = true;
11246
11247 this._inflate.write(data);
11248 if (fin) this._inflate.write(TRAILER);
11249
11250 this._inflate.flush(() => {
11251 const err = this._inflate[kError];
11252
11253 if (err) {
11254 this._inflate.close();
11255 this._inflate = null;
11256 callback(err);
11257 return;
11258 }
11259
11260 const data = bufferUtil.concat(
11261 this._inflate[kBuffers],
11262 this._inflate[kTotalLength]
11263 );
11264
11265 if (
11266 (fin && this.params[`${endpoint}_no_context_takeover`]) ||
11267 this._inflate[kPendingClose]
11268 ) {
11269 this._inflate.close();
11270 this._inflate = null;
11271 } else {
11272 this._inflate[kWriteInProgress] = false;
11273 this._inflate[kTotalLength] = 0;
11274 this._inflate[kBuffers] = [];
11275 }
11276
11277 callback(null, data);
11278 });
11279 }
11280
11281 /**
11282 * Compress data.
11283 *
11284 * @param {Buffer} data Data to compress
11285 * @param {Boolean} fin Specifies whether or not this is the last fragment
11286 * @param {Function} callback Callback
11287 * @private
11288 */
11289 _compress (data, fin, callback) {
11290 if (!data || data.length === 0) {
11291 process.nextTick(callback, null, EMPTY_BLOCK);
11292 return;
11293 }
11294
11295 const endpoint = this._isServer ? 'server' : 'client';
11296
11297 if (!this._deflate) {
11298 const key = `${endpoint}_max_window_bits`;
11299 const windowBits = typeof this.params[key] !== 'number'
11300 ? zlib.Z_DEFAULT_WINDOWBITS
11301 : this.params[key];
11302
11303 this._deflate = zlib.createDeflateRaw({
11304 memLevel: this._options.memLevel,
11305 level: this._options.level,
11306 flush: zlib.Z_SYNC_FLUSH,
11307 windowBits
11308 });
11309
11310 this._deflate[kTotalLength] = 0;
11311 this._deflate[kBuffers] = [];
11312
11313 //
11314 // `zlib.DeflateRaw` emits an `'error'` event only when an attempt to use
11315 // it is made after it has already been closed. This cannot happen here,
11316 // so we only add a listener for the `'data'` event.
11317 //
11318 this._deflate.on('data', deflateOnData);
11319 }
11320
11321 this._deflate[kWriteInProgress] = true;
11322
11323 this._deflate.write(data);
11324 this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {
11325 var data = bufferUtil.concat(
11326 this._deflate[kBuffers],
11327 this._deflate[kTotalLength]
11328 );
11329
11330 if (fin) data = data.slice(0, data.length - 4);
11331
11332 if (
11333 (fin && this.params[`${endpoint}_no_context_takeover`]) ||
11334 this._deflate[kPendingClose]
11335 ) {
11336 this._deflate.close();
11337 this._deflate = null;
11338 } else {
11339 this._deflate[kWriteInProgress] = false;
11340 this._deflate[kTotalLength] = 0;
11341 this._deflate[kBuffers] = [];
11342 }
11343
11344 callback(null, data);
11345 });
11346 }
11347}
11348
11349module.exports = PerMessageDeflate;
11350
11351/**
11352 * The listener of the `zlib.DeflateRaw` stream `'data'` event.
11353 *
11354 * @param {Buffer} chunk A chunk of data
11355 * @private
11356 */
11357function deflateOnData (chunk) {
11358 this[kBuffers].push(chunk);
11359 this[kTotalLength] += chunk.length;
11360}
11361
11362/**
11363 * The listener of the `zlib.InflateRaw` stream `'data'` event.
11364 *
11365 * @param {Buffer} chunk A chunk of data
11366 * @private
11367 */
11368function inflateOnData (chunk) {
11369 this[kTotalLength] += chunk.length;
11370
11371 if (
11372 this[kOwner]._maxPayload < 1 ||
11373 this[kTotalLength] <= this[kOwner]._maxPayload
11374 ) {
11375 this[kBuffers].push(chunk);
11376 return;
11377 }
11378
11379 this[kError] = new Error('max payload size exceeded');
11380 this[kError].closeCode = 1009;
11381 this.removeListener('data', inflateOnData);
11382 this.reset();
11383}
11384
11385/**
11386 * The listener of the `zlib.InflateRaw` stream `'error'` event.
11387 *
11388 * @param {Error} err The emitted error
11389 * @private
11390 */
11391function inflateOnError (err) {
11392 //
11393 // There is no need to call `Zlib#close()` as the handle is automatically
11394 // closed when an error is emitted.
11395 //
11396 this[kOwner]._inflate = null;
11397 this[kCallback](err);
11398}
11399
11400
11401/***/ }),
11402/* 120 */
11403/***/ (function(module, exports, __webpack_require__) {
11404
11405"use strict";
11406
11407
11408const safeBuffer = __webpack_require__(29);
11409
11410const Buffer = safeBuffer.Buffer;
11411
11412exports.BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];
11413exports.GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
11414exports.EMPTY_BUFFER = Buffer.alloc(0);
11415exports.NOOP = () => {};
11416
11417
11418/***/ }),
11419/* 121 */
11420/***/ (function(module, exports, __webpack_require__) {
11421
11422"use strict";
11423/*!
11424 * content-type
11425 * Copyright(c) 2015 Douglas Christopher Wilson
11426 * MIT Licensed
11427 */
11428
11429
11430
11431/**
11432 * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1
11433 *
11434 * parameter = token "=" ( token / quoted-string )
11435 * token = 1*tchar
11436 * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
11437 * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
11438 * / DIGIT / ALPHA
11439 * ; any VCHAR, except delimiters
11440 * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
11441 * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
11442 * obs-text = %x80-FF
11443 * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
11444 */
11445var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g
11446var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/
11447var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/
11448
11449/**
11450 * RegExp to match quoted-pair in RFC 7230 sec 3.2.6
11451 *
11452 * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
11453 * obs-text = %x80-FF
11454 */
11455var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g
11456
11457/**
11458 * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6
11459 */
11460var QUOTE_REGEXP = /([\\"])/g
11461
11462/**
11463 * RegExp to match type in RFC 7231 sec 3.1.1.1
11464 *
11465 * media-type = type "/" subtype
11466 * type = token
11467 * subtype = token
11468 */
11469var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/
11470
11471/**
11472 * Module exports.
11473 * @public
11474 */
11475
11476exports.format = format
11477exports.parse = parse
11478
11479/**
11480 * Format object to media type.
11481 *
11482 * @param {object} obj
11483 * @return {string}
11484 * @public
11485 */
11486
11487function format (obj) {
11488 if (!obj || typeof obj !== 'object') {
11489 throw new TypeError('argument obj is required')
11490 }
11491
11492 var parameters = obj.parameters
11493 var type = obj.type
11494
11495 if (!type || !TYPE_REGEXP.test(type)) {
11496 throw new TypeError('invalid type')
11497 }
11498
11499 var string = type
11500
11501 // append parameters
11502 if (parameters && typeof parameters === 'object') {
11503 var param
11504 var params = Object.keys(parameters).sort()
11505
11506 for (var i = 0; i < params.length; i++) {
11507 param = params[i]
11508
11509 if (!TOKEN_REGEXP.test(param)) {
11510 throw new TypeError('invalid parameter name')
11511 }
11512
11513 string += '; ' + param + '=' + qstring(parameters[param])
11514 }
11515 }
11516
11517 return string
11518}
11519
11520/**
11521 * Parse media type to object.
11522 *
11523 * @param {string|object} string
11524 * @return {Object}
11525 * @public
11526 */
11527
11528function parse (string) {
11529 if (!string) {
11530 throw new TypeError('argument string is required')
11531 }
11532
11533 // support req/res-like objects as argument
11534 var header = typeof string === 'object'
11535 ? getcontenttype(string)
11536 : string
11537
11538 if (typeof header !== 'string') {
11539 throw new TypeError('argument string is required to be a string')
11540 }
11541
11542 var index = header.indexOf(';')
11543 var type = index !== -1
11544 ? header.substr(0, index).trim()
11545 : header.trim()
11546
11547 if (!TYPE_REGEXP.test(type)) {
11548 throw new TypeError('invalid media type')
11549 }
11550
11551 var obj = new ContentType(type.toLowerCase())
11552
11553 // parse parameters
11554 if (index !== -1) {
11555 var key
11556 var match
11557 var value
11558
11559 PARAM_REGEXP.lastIndex = index
11560
11561 while ((match = PARAM_REGEXP.exec(header))) {
11562 if (match.index !== index) {
11563 throw new TypeError('invalid parameter format')
11564 }
11565
11566 index += match[0].length
11567 key = match[1].toLowerCase()
11568 value = match[2]
11569
11570 if (value[0] === '"') {
11571 // remove quotes and escapes
11572 value = value
11573 .substr(1, value.length - 2)
11574 .replace(QESC_REGEXP, '$1')
11575 }
11576
11577 obj.parameters[key] = value
11578 }
11579
11580 if (index !== header.length) {
11581 throw new TypeError('invalid parameter format')
11582 }
11583 }
11584
11585 return obj
11586}
11587
11588/**
11589 * Get content-type from req/res objects.
11590 *
11591 * @param {object}
11592 * @return {Object}
11593 * @private
11594 */
11595
11596function getcontenttype (obj) {
11597 var header
11598
11599 if (typeof obj.getHeader === 'function') {
11600 // res-like
11601 header = obj.getHeader('content-type')
11602 } else if (typeof obj.headers === 'object') {
11603 // req-like
11604 header = obj.headers && obj.headers['content-type']
11605 }
11606
11607 if (typeof header !== 'string') {
11608 throw new TypeError('content-type header is missing from object')
11609 }
11610
11611 return header
11612}
11613
11614/**
11615 * Quote a string if necessary.
11616 *
11617 * @param {string} val
11618 * @return {string}
11619 * @private
11620 */
11621
11622function qstring (val) {
11623 var str = String(val)
11624
11625 // no need to quote tokens
11626 if (TOKEN_REGEXP.test(str)) {
11627 return str
11628 }
11629
11630 if (str.length > 0 && !TEXT_REGEXP.test(str)) {
11631 throw new TypeError('invalid parameter value')
11632 }
11633
11634 return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"'
11635}
11636
11637/**
11638 * Class to represent a content type.
11639 * @private
11640 */
11641function ContentType (type) {
11642 this.parameters = Object.create(null)
11643 this.type = type
11644}
11645
11646
11647/***/ }),
11648/* 122 */
11649/***/ (function(module, exports) {
11650
11651module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties);
11652
11653function setProtoOf(obj, proto) {
11654 obj.__proto__ = proto;
11655 return obj;
11656}
11657
11658function mixinProperties(obj, proto) {
11659 for (var prop in proto) {
11660 if (!obj.hasOwnProperty(prop)) {
11661 obj[prop] = proto[prop];
11662 }
11663 }
11664 return obj;
11665}
11666
11667
11668/***/ }),
11669/* 123 */
11670/***/ (function(module, exports, __webpack_require__) {
11671
11672"use strict";
11673/*!
11674 * statuses
11675 * Copyright(c) 2014 Jonathan Ong
11676 * Copyright(c) 2016 Douglas Christopher Wilson
11677 * MIT Licensed
11678 */
11679
11680
11681
11682/**
11683 * Module dependencies.
11684 * @private
11685 */
11686
11687var codes = __webpack_require__(611)
11688
11689/**
11690 * Module exports.
11691 * @public
11692 */
11693
11694module.exports = status
11695
11696// status code to message map
11697status.STATUS_CODES = codes
11698
11699// array of status codes
11700status.codes = populateStatusesMap(status, codes)
11701
11702// status codes for redirects
11703status.redirect = {
11704 300: true,
11705 301: true,
11706 302: true,
11707 303: true,
11708 305: true,
11709 307: true,
11710 308: true
11711}
11712
11713// status codes for empty bodies
11714status.empty = {
11715 204: true,
11716 205: true,
11717 304: true
11718}
11719
11720// status codes for when you should retry the request
11721status.retry = {
11722 502: true,
11723 503: true,
11724 504: true
11725}
11726
11727/**
11728 * Populate the statuses map for given codes.
11729 * @private
11730 */
11731
11732function populateStatusesMap (statuses, codes) {
11733 var arr = []
11734
11735 Object.keys(codes).forEach(function forEachCode (code) {
11736 var message = codes[code]
11737 var status = Number(code)
11738
11739 // Populate properties
11740 statuses[status] = message
11741 statuses[message] = status
11742 statuses[message.toLowerCase()] = status
11743
11744 // Add to array
11745 arr.push(status)
11746 })
11747
11748 return arr
11749}
11750
11751/**
11752 * Get the status code.
11753 *
11754 * Given a number, this will throw if it is not a known status
11755 * code, otherwise the code will be returned. Given a string,
11756 * the string will be parsed for a number and return the code
11757 * if valid, otherwise will lookup the code assuming this is
11758 * the status message.
11759 *
11760 * @param {string|number} code
11761 * @returns {number}
11762 * @public
11763 */
11764
11765function status (code) {
11766 if (typeof code === 'number') {
11767 if (!status[code]) throw new Error('invalid status code: ' + code)
11768 return code
11769 }
11770
11771 if (typeof code !== 'string') {
11772 throw new TypeError('code must be a number or string')
11773 }
11774
11775 // '403'
11776 var n = parseInt(code, 10)
11777 if (!isNaN(n)) {
11778 if (!status[n]) throw new Error('invalid status code: ' + n)
11779 return n
11780 }
11781
11782 n = status[code.toLowerCase()]
11783 if (!n) throw new Error('invalid status message: "' + code + '"')
11784 return n
11785}
11786
11787
11788/***/ }),
11789/* 124 */
11790/***/ (function(module, exports, __webpack_require__) {
11791
11792"use strict";
11793/*!
11794 * body-parser
11795 * Copyright(c) 2014-2015 Douglas Christopher Wilson
11796 * MIT Licensed
11797 */
11798
11799
11800
11801/**
11802 * Module dependencies.
11803 * @private
11804 */
11805
11806var createError = __webpack_require__(90)
11807var getBody = __webpack_require__(617)
11808var iconv = __webpack_require__(188)
11809var onFinished = __webpack_require__(125)
11810var zlib = __webpack_require__(185)
11811
11812/**
11813 * Module exports.
11814 */
11815
11816module.exports = read
11817
11818/**
11819 * Read a request into a buffer and parse.
11820 *
11821 * @param {object} req
11822 * @param {object} res
11823 * @param {function} next
11824 * @param {function} parse
11825 * @param {function} debug
11826 * @param {object} options
11827 * @private
11828 */
11829
11830function read (req, res, next, parse, debug, options) {
11831 var length
11832 var opts = options
11833 var stream
11834
11835 // flag as parsed
11836 req._body = true
11837
11838 // read options
11839 var encoding = opts.encoding !== null
11840 ? opts.encoding
11841 : null
11842 var verify = opts.verify
11843
11844 try {
11845 // get the content stream
11846 stream = contentstream(req, debug, opts.inflate)
11847 length = stream.length
11848 stream.length = undefined
11849 } catch (err) {
11850 return next(err)
11851 }
11852
11853 // set raw-body options
11854 opts.length = length
11855 opts.encoding = verify
11856 ? null
11857 : encoding
11858
11859 // assert charset is supported
11860 if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
11861 return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
11862 charset: encoding.toLowerCase(),
11863 type: 'charset.unsupported'
11864 }))
11865 }
11866
11867 // read body
11868 debug('read body')
11869 getBody(stream, opts, function (error, body) {
11870 if (error) {
11871 var _error
11872
11873 if (error.type === 'encoding.unsupported') {
11874 // echo back charset
11875 _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
11876 charset: encoding.toLowerCase(),
11877 type: 'charset.unsupported'
11878 })
11879 } else {
11880 // set status code on error
11881 _error = createError(400, error)
11882 }
11883
11884 // read off entire request
11885 stream.resume()
11886 onFinished(req, function onfinished () {
11887 next(createError(400, _error))
11888 })
11889 return
11890 }
11891
11892 // verify
11893 if (verify) {
11894 try {
11895 debug('verify body')
11896 verify(req, res, body, encoding)
11897 } catch (err) {
11898 next(createError(403, err, {
11899 body: body,
11900 type: err.type || 'entity.verify.failed'
11901 }))
11902 return
11903 }
11904 }
11905
11906 // parse
11907 var str = body
11908 try {
11909 debug('parse body')
11910 str = typeof body !== 'string' && encoding !== null
11911 ? iconv.decode(body, encoding)
11912 : body
11913 req.body = parse(str)
11914 } catch (err) {
11915 next(createError(400, err, {
11916 body: str,
11917 type: err.type || 'entity.parse.failed'
11918 }))
11919 return
11920 }
11921
11922 next()
11923 })
11924}
11925
11926/**
11927 * Get the content stream of the request.
11928 *
11929 * @param {object} req
11930 * @param {function} debug
11931 * @param {boolean} [inflate=true]
11932 * @return {object}
11933 * @api private
11934 */
11935
11936function contentstream (req, debug, inflate) {
11937 var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase()
11938 var length = req.headers['content-length']
11939 var stream
11940
11941 debug('content-encoding "%s"', encoding)
11942
11943 if (inflate === false && encoding !== 'identity') {
11944 throw createError(415, 'content encoding unsupported', {
11945 encoding: encoding,
11946 type: 'encoding.unsupported'
11947 })
11948 }
11949
11950 switch (encoding) {
11951 case 'deflate':
11952 stream = zlib.createInflate()
11953 debug('inflate body')
11954 req.pipe(stream)
11955 break
11956 case 'gzip':
11957 stream = zlib.createGunzip()
11958 debug('gunzip body')
11959 req.pipe(stream)
11960 break
11961 case 'identity':
11962 stream = req
11963 stream.length = length
11964 break
11965 default:
11966 throw createError(415, 'unsupported content encoding "' + encoding + '"', {
11967 encoding: encoding,
11968 type: 'encoding.unsupported'
11969 })
11970 }
11971
11972 return stream
11973}
11974
11975
11976/***/ }),
11977/* 125 */
11978/***/ (function(module, exports, __webpack_require__) {
11979
11980"use strict";
11981/*!
11982 * on-finished
11983 * Copyright(c) 2013 Jonathan Ong
11984 * Copyright(c) 2014 Douglas Christopher Wilson
11985 * MIT Licensed
11986 */
11987
11988
11989
11990/**
11991 * Module exports.
11992 * @public
11993 */
11994
11995module.exports = onFinished
11996module.exports.isFinished = isFinished
11997
11998/**
11999 * Module dependencies.
12000 * @private
12001 */
12002
12003var first = __webpack_require__(636)
12004
12005/**
12006 * Variables.
12007 * @private
12008 */
12009
12010/* istanbul ignore next */
12011var defer = typeof setImmediate === 'function'
12012 ? setImmediate
12013 : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) }
12014
12015/**
12016 * Invoke callback when the response has finished, useful for
12017 * cleaning up resources afterwards.
12018 *
12019 * @param {object} msg
12020 * @param {function} listener
12021 * @return {object}
12022 * @public
12023 */
12024
12025function onFinished(msg, listener) {
12026 if (isFinished(msg) !== false) {
12027 defer(listener, null, msg)
12028 return msg
12029 }
12030
12031 // attach the listener to the message
12032 attachListener(msg, listener)
12033
12034 return msg
12035}
12036
12037/**
12038 * Determine if message is already finished.
12039 *
12040 * @param {object} msg
12041 * @return {boolean}
12042 * @public
12043 */
12044
12045function isFinished(msg) {
12046 var socket = msg.socket
12047
12048 if (typeof msg.finished === 'boolean') {
12049 // OutgoingMessage
12050 return Boolean(msg.finished || (socket && !socket.writable))
12051 }
12052
12053 if (typeof msg.complete === 'boolean') {
12054 // IncomingMessage
12055 return Boolean(msg.upgrade || !socket || !socket.readable || (msg.complete && !msg.readable))
12056 }
12057
12058 // don't know
12059 return undefined
12060}
12061
12062/**
12063 * Attach a finished listener to the message.
12064 *
12065 * @param {object} msg
12066 * @param {function} callback
12067 * @private
12068 */
12069
12070function attachFinishedListener(msg, callback) {
12071 var eeMsg
12072 var eeSocket
12073 var finished = false
12074
12075 function onFinish(error) {
12076 eeMsg.cancel()
12077 eeSocket.cancel()
12078
12079 finished = true
12080 callback(error)
12081 }
12082
12083 // finished on first message event
12084 eeMsg = eeSocket = first([[msg, 'end', 'finish']], onFinish)
12085
12086 function onSocket(socket) {
12087 // remove listener
12088 msg.removeListener('socket', onSocket)
12089
12090 if (finished) return
12091 if (eeMsg !== eeSocket) return
12092
12093 // finished on first socket event
12094 eeSocket = first([[socket, 'error', 'close']], onFinish)
12095 }
12096
12097 if (msg.socket) {
12098 // socket already assigned
12099 onSocket(msg.socket)
12100 return
12101 }
12102
12103 // wait for socket to be assigned
12104 msg.on('socket', onSocket)
12105
12106 if (msg.socket === undefined) {
12107 // node.js 0.8 patch
12108 patchAssignSocket(msg, onSocket)
12109 }
12110}
12111
12112/**
12113 * Attach the listener to the message.
12114 *
12115 * @param {object} msg
12116 * @return {function}
12117 * @private
12118 */
12119
12120function attachListener(msg, listener) {
12121 var attached = msg.__onFinished
12122
12123 // create a private single listener with queue
12124 if (!attached || !attached.queue) {
12125 attached = msg.__onFinished = createListener(msg)
12126 attachFinishedListener(msg, attached)
12127 }
12128
12129 attached.queue.push(listener)
12130}
12131
12132/**
12133 * Create listener on message.
12134 *
12135 * @param {object} msg
12136 * @return {function}
12137 * @private
12138 */
12139
12140function createListener(msg) {
12141 function listener(err) {
12142 if (msg.__onFinished === listener) msg.__onFinished = null
12143 if (!listener.queue) return
12144
12145 var queue = listener.queue
12146 listener.queue = null
12147
12148 for (var i = 0; i < queue.length; i++) {
12149 queue[i](err, msg)
12150 }
12151 }
12152
12153 listener.queue = []
12154
12155 return listener
12156}
12157
12158/**
12159 * Patch ServerResponse.prototype.assignSocket for node.js 0.8.
12160 *
12161 * @param {ServerResponse} res
12162 * @param {function} callback
12163 * @private
12164 */
12165
12166function patchAssignSocket(res, callback) {
12167 var assignSocket = res.assignSocket
12168
12169 if (typeof assignSocket !== 'function') return
12170
12171 // res.on('socket', callback) is broken in 0.8
12172 res.assignSocket = function _assignSocket(socket) {
12173 assignSocket.call(this, socket)
12174 callback(socket)
12175 }
12176}
12177
12178
12179/***/ }),
12180/* 126 */
12181/***/ (function(module, exports, __webpack_require__) {
12182
12183"use strict";
12184/*!
12185 * encodeurl
12186 * Copyright(c) 2016 Douglas Christopher Wilson
12187 * MIT Licensed
12188 */
12189
12190
12191
12192/**
12193 * Module exports.
12194 * @public
12195 */
12196
12197module.exports = encodeUrl
12198
12199/**
12200 * RegExp to match non-URL code points, *after* encoding (i.e. not including "%")
12201 * and including invalid escape sequences.
12202 * @private
12203 */
12204
12205var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g
12206
12207/**
12208 * RegExp to match unmatched surrogate pair.
12209 * @private
12210 */
12211
12212var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g
12213
12214/**
12215 * String to replace unmatched surrogate pair with.
12216 * @private
12217 */
12218
12219var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2'
12220
12221/**
12222 * Encode a URL to a percent-encoded form, excluding already-encoded sequences.
12223 *
12224 * This function will take an already-encoded URL and encode all the non-URL
12225 * code points. This function will not encode the "%" character unless it is
12226 * not part of a valid sequence (`%20` will be left as-is, but `%foo` will
12227 * be encoded as `%25foo`).
12228 *
12229 * This encode is meant to be "safe" and does not throw errors. It will try as
12230 * hard as it can to properly encode the given URL, including replacing any raw,
12231 * unpaired surrogate pairs with the Unicode replacement character prior to
12232 * encoding.
12233 *
12234 * @param {string} url
12235 * @return {string}
12236 * @public
12237 */
12238
12239function encodeUrl (url) {
12240 return String(url)
12241 .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE)
12242 .replace(ENCODE_CHARS_REGEXP, encodeURI)
12243}
12244
12245
12246/***/ }),
12247/* 127 */
12248/***/ (function(module, exports, __webpack_require__) {
12249
12250"use strict";
12251/*!
12252 * escape-html
12253 * Copyright(c) 2012-2013 TJ Holowaychuk
12254 * Copyright(c) 2015 Andreas Lubbe
12255 * Copyright(c) 2015 Tiancheng "Timothy" Gu
12256 * MIT Licensed
12257 */
12258
12259
12260
12261/**
12262 * Module variables.
12263 * @private
12264 */
12265
12266var matchHtmlRegExp = /["'&<>]/;
12267
12268/**
12269 * Module exports.
12270 * @public
12271 */
12272
12273module.exports = escapeHtml;
12274
12275/**
12276 * Escape special characters in the given string of html.
12277 *
12278 * @param {string} string The string to escape for inserting into HTML
12279 * @return {string}
12280 * @public
12281 */
12282
12283function escapeHtml(string) {
12284 var str = '' + string;
12285 var match = matchHtmlRegExp.exec(str);
12286
12287 if (!match) {
12288 return str;
12289 }
12290
12291 var escape;
12292 var html = '';
12293 var index = 0;
12294 var lastIndex = 0;
12295
12296 for (index = match.index; index < str.length; index++) {
12297 switch (str.charCodeAt(index)) {
12298 case 34: // "
12299 escape = '&quot;';
12300 break;
12301 case 38: // &
12302 escape = '&amp;';
12303 break;
12304 case 39: // '
12305 escape = '&#39;';
12306 break;
12307 case 60: // <
12308 escape = '&lt;';
12309 break;
12310 case 62: // >
12311 escape = '&gt;';
12312 break;
12313 default:
12314 continue;
12315 }
12316
12317 if (lastIndex !== index) {
12318 html += str.substring(lastIndex, index);
12319 }
12320
12321 lastIndex = index + 1;
12322 html += escape;
12323 }
12324
12325 return lastIndex !== index
12326 ? html + str.substring(lastIndex, index)
12327 : html;
12328}
12329
12330
12331/***/ }),
12332/* 128 */
12333/***/ (function(module, exports, __webpack_require__) {
12334
12335"use strict";
12336
12337
12338/**
12339 * Expose `arrayFlatten`.
12340 */
12341module.exports = arrayFlatten
12342
12343/**
12344 * Recursive flatten function with depth.
12345 *
12346 * @param {Array} array
12347 * @param {Array} result
12348 * @param {Number} depth
12349 * @return {Array}
12350 */
12351function flattenWithDepth (array, result, depth) {
12352 for (var i = 0; i < array.length; i++) {
12353 var value = array[i]
12354
12355 if (depth > 0 && Array.isArray(value)) {
12356 flattenWithDepth(value, result, depth - 1)
12357 } else {
12358 result.push(value)
12359 }
12360 }
12361
12362 return result
12363}
12364
12365/**
12366 * Recursive flatten function. Omitting depth is slightly faster.
12367 *
12368 * @param {Array} array
12369 * @param {Array} result
12370 * @return {Array}
12371 */
12372function flattenForever (array, result) {
12373 for (var i = 0; i < array.length; i++) {
12374 var value = array[i]
12375
12376 if (Array.isArray(value)) {
12377 flattenForever(value, result)
12378 } else {
12379 result.push(value)
12380 }
12381 }
12382
12383 return result
12384}
12385
12386/**
12387 * Flatten an array, with the ability to define a depth.
12388 *
12389 * @param {Array} array
12390 * @param {Number} depth
12391 * @return {Array}
12392 */
12393function arrayFlatten (array, depth) {
12394 if (depth == null) {
12395 return flattenForever(array, [])
12396 }
12397
12398 return flattenWithDepth(array, [], depth)
12399}
12400
12401
12402/***/ }),
12403/* 129 */
12404/***/ (function(module, exports) {
12405
12406/**
12407 * Merge object b with object a.
12408 *
12409 * var a = { foo: 'bar' }
12410 * , b = { bar: 'baz' };
12411 *
12412 * merge(a, b);
12413 * // => { foo: 'bar', bar: 'baz' }
12414 *
12415 * @param {Object} a
12416 * @param {Object} b
12417 * @return {Object}
12418 * @api public
12419 */
12420
12421exports = module.exports = function(a, b){
12422 if (a && b) {
12423 for (var key in b) {
12424 a[key] = b[key];
12425 }
12426 }
12427 return a;
12428};
12429
12430
12431/***/ }),
12432/* 130 */
12433/***/ (function(module, exports, __webpack_require__) {
12434
12435module.exports = __webpack_require__(673).default;
12436module.exports.default = module.exports;
12437
12438
12439/***/ }),
12440/* 131 */
12441/***/ (function(module, exports) {
12442
12443var JsonWebTokenError = function (message, error) {
12444 Error.call(this, message);
12445 if(Error.captureStackTrace) {
12446 Error.captureStackTrace(this, this.constructor);
12447 }
12448 this.name = 'JsonWebTokenError';
12449 this.message = message;
12450 if (error) this.inner = error;
12451};
12452
12453JsonWebTokenError.prototype = Object.create(Error.prototype);
12454JsonWebTokenError.prototype.constructor = JsonWebTokenError;
12455
12456module.exports = JsonWebTokenError;
12457
12458
12459/***/ }),
12460/* 132 */
12461/***/ (function(module, exports, __webpack_require__) {
12462
12463var global = __webpack_require__(31);
12464var core = __webpack_require__(79);
12465var ctx = __webpack_require__(133);
12466var hide = __webpack_require__(80);
12467var PROTOTYPE = 'prototype';
12468
12469var $export = function (type, name, source) {
12470 var IS_FORCED = type & $export.F;
12471 var IS_GLOBAL = type & $export.G;
12472 var IS_STATIC = type & $export.S;
12473 var IS_PROTO = type & $export.P;
12474 var IS_BIND = type & $export.B;
12475 var IS_WRAP = type & $export.W;
12476 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
12477 var expProto = exports[PROTOTYPE];
12478 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
12479 var key, own, out;
12480 if (IS_GLOBAL) source = name;
12481 for (key in source) {
12482 // contains in native
12483 own = !IS_FORCED && target && target[key] !== undefined;
12484 if (own && key in exports) continue;
12485 // export native or passed
12486 out = own ? target[key] : source[key];
12487 // prevent global pollution for namespaces
12488 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
12489 // bind timers to global for call from export context
12490 : IS_BIND && own ? ctx(out, global)
12491 // wrap global constructors for prevent change them in library
12492 : IS_WRAP && target[key] == out ? (function (C) {
12493 var F = function (a, b, c) {
12494 if (this instanceof C) {
12495 switch (arguments.length) {
12496 case 0: return new C();
12497 case 1: return new C(a);
12498 case 2: return new C(a, b);
12499 } return new C(a, b, c);
12500 } return C.apply(this, arguments);
12501 };
12502 F[PROTOTYPE] = C[PROTOTYPE];
12503 return F;
12504 // make static versions for prototype methods
12505 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
12506 // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
12507 if (IS_PROTO) {
12508 (exports.virtual || (exports.virtual = {}))[key] = out;
12509 // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
12510 if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
12511 }
12512 }
12513};
12514// type bitmap
12515$export.F = 1; // forced
12516$export.G = 2; // global
12517$export.S = 4; // static
12518$export.P = 8; // proto
12519$export.B = 16; // bind
12520$export.W = 32; // wrap
12521$export.U = 64; // safe
12522$export.R = 128; // real proto method for `library`
12523module.exports = $export;
12524
12525
12526/***/ }),
12527/* 133 */
12528/***/ (function(module, exports, __webpack_require__) {
12529
12530// optional / simple context binding
12531var aFunction = __webpack_require__(134);
12532module.exports = function (fn, that, length) {
12533 aFunction(fn);
12534 if (that === undefined) return fn;
12535 switch (length) {
12536 case 1: return function (a) {
12537 return fn.call(that, a);
12538 };
12539 case 2: return function (a, b) {
12540 return fn.call(that, a, b);
12541 };
12542 case 3: return function (a, b, c) {
12543 return fn.call(that, a, b, c);
12544 };
12545 }
12546 return function (/* ...args */) {
12547 return fn.apply(that, arguments);
12548 };
12549};
12550
12551
12552/***/ }),
12553/* 134 */
12554/***/ (function(module, exports) {
12555
12556module.exports = function (it) {
12557 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
12558 return it;
12559};
12560
12561
12562/***/ }),
12563/* 135 */
12564/***/ (function(module, exports, __webpack_require__) {
12565
12566var anObject = __webpack_require__(70);
12567var IE8_DOM_DEFINE = __webpack_require__(693);
12568var toPrimitive = __webpack_require__(694);
12569var dP = Object.defineProperty;
12570
12571exports.f = __webpack_require__(94) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
12572 anObject(O);
12573 P = toPrimitive(P, true);
12574 anObject(Attributes);
12575 if (IE8_DOM_DEFINE) try {
12576 return dP(O, P, Attributes);
12577 } catch (e) { /* empty */ }
12578 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
12579 if ('value' in Attributes) O[P] = Attributes.value;
12580 return O;
12581};
12582
12583
12584/***/ }),
12585/* 136 */
12586/***/ (function(module, exports) {
12587
12588var hasOwnProperty = {}.hasOwnProperty;
12589module.exports = function (it, key) {
12590 return hasOwnProperty.call(it, key);
12591};
12592
12593
12594/***/ }),
12595/* 137 */
12596/***/ (function(module, exports) {
12597
12598var toString = {}.toString;
12599
12600module.exports = function (it) {
12601 return toString.call(it).slice(8, -1);
12602};
12603
12604
12605/***/ }),
12606/* 138 */
12607/***/ (function(module, exports) {
12608
12609function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12610
12611/**
12612 * A `DataLoader` creates a public API for loading data from a particular
12613 * data back-end with unique keys such as the `id` column of a SQL table or
12614 * document name in a MongoDB database, given a batch loading function.
12615 *
12616 * Each `DataLoader` instance contains a unique memoized cache. Use caution when
12617 * used in long-lived applications or those which serve many users with
12618 * different access permissions and consider creating a new instance per
12619 * web request.
12620 */
12621
12622
12623// Optionally turn off batching or caching or provide a cache key function or a
12624// custom cache instance.
12625var DataLoader = function () {
12626 function DataLoader(batchLoadFn, options) {
12627 _classCallCheck(this, DataLoader);
12628
12629 if (typeof batchLoadFn !== 'function') {
12630 throw new TypeError('DataLoader must be constructed with a function which accepts ' + ('Array<key> and returns Promise<Array<value>>, but got: ' + batchLoadFn + '.'));
12631 }
12632 this._batchLoadFn = batchLoadFn;
12633 this._options = options;
12634 this._promiseCache = getValidCacheMap(options);
12635 this._queue = [];
12636 }
12637
12638 // Private
12639
12640
12641 /**
12642 * Loads a key, returning a `Promise` for the value represented by that key.
12643 */
12644 DataLoader.prototype.load = function load(key) {
12645 var _this = this;
12646
12647 if (key === null || key === undefined) {
12648 throw new TypeError('The loader.load() function must be called with a value,' + ('but got: ' + String(key) + '.'));
12649 }
12650
12651 // Determine options
12652 var options = this._options;
12653 var shouldBatch = !options || options.batch !== false;
12654 var shouldCache = !options || options.cache !== false;
12655 var cacheKeyFn = options && options.cacheKeyFn;
12656 var cacheKey = cacheKeyFn ? cacheKeyFn(key) : key;
12657
12658 // If caching and there is a cache-hit, return cached Promise.
12659 if (shouldCache) {
12660 var cachedPromise = this._promiseCache.get(cacheKey);
12661 if (cachedPromise) {
12662 return cachedPromise;
12663 }
12664 }
12665
12666 // Otherwise, produce a new Promise for this value.
12667 var promise = new Promise(function (resolve, reject) {
12668 // Enqueue this Promise to be dispatched.
12669 _this._queue.push({ key: key, resolve: resolve, reject: reject });
12670
12671 // Determine if a dispatch of this queue should be scheduled.
12672 // A single dispatch should be scheduled per queue at the time when the
12673 // queue changes from "empty" to "full".
12674 if (_this._queue.length === 1) {
12675 if (shouldBatch) {
12676 // If batching, schedule a task to dispatch the queue.
12677 enqueuePostPromiseJob(function () {
12678 return dispatchQueue(_this);
12679 });
12680 } else {
12681 // Otherwise dispatch the (queue of one) immediately.
12682 dispatchQueue(_this);
12683 }
12684 }
12685 });
12686
12687 // If caching, cache this promise.
12688 if (shouldCache) {
12689 this._promiseCache.set(cacheKey, promise);
12690 }
12691
12692 return promise;
12693 };
12694
12695 /**
12696 * Loads multiple keys, promising an array of values:
12697 *
12698 * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);
12699 *
12700 * This is equivalent to the more verbose:
12701 *
12702 * var [ a, b ] = await Promise.all([
12703 * myLoader.load('a'),
12704 * myLoader.load('b')
12705 * ]);
12706 *
12707 */
12708
12709
12710 DataLoader.prototype.loadMany = function loadMany(keys) {
12711 var _this2 = this;
12712
12713 if (!Array.isArray(keys)) {
12714 throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + ('but got: ' + keys + '.'));
12715 }
12716 return Promise.all(keys.map(function (key) {
12717 return _this2.load(key);
12718 }));
12719 };
12720
12721 /**
12722 * Clears the value at `key` from the cache, if it exists. Returns itself for
12723 * method chaining.
12724 */
12725
12726
12727 DataLoader.prototype.clear = function clear(key) {
12728 var cacheKeyFn = this._options && this._options.cacheKeyFn;
12729 var cacheKey = cacheKeyFn ? cacheKeyFn(key) : key;
12730 this._promiseCache.delete(cacheKey);
12731 return this;
12732 };
12733
12734 /**
12735 * Clears the entire cache. To be used when some event results in unknown
12736 * invalidations across this particular `DataLoader`. Returns itself for
12737 * method chaining.
12738 */
12739
12740
12741 DataLoader.prototype.clearAll = function clearAll() {
12742 this._promiseCache.clear();
12743 return this;
12744 };
12745
12746 /**
12747 * Adds the provided key and value to the cache. If the key already
12748 * exists, no change is made. Returns itself for method chaining.
12749 */
12750
12751
12752 DataLoader.prototype.prime = function prime(key, value) {
12753 var cacheKeyFn = this._options && this._options.cacheKeyFn;
12754 var cacheKey = cacheKeyFn ? cacheKeyFn(key) : key;
12755
12756 // Only add the key if it does not already exist.
12757 if (this._promiseCache.get(cacheKey) === undefined) {
12758 // Cache a rejected promise if the value is an Error, in order to match
12759 // the behavior of load(key).
12760 var promise = value instanceof Error ? Promise.reject(value) : Promise.resolve(value);
12761
12762 this._promiseCache.set(cacheKey, promise);
12763 }
12764
12765 return this;
12766 };
12767
12768 return DataLoader;
12769}();
12770
12771// Private: Enqueue a Job to be executed after all "PromiseJobs" Jobs.
12772//
12773// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur
12774// after the current execution context has completed:
12775// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues
12776//
12777// Node.js uses the `process.nextTick` mechanism to implement the concept of a
12778// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after
12779// the current call stack ends.
12780//
12781// When calling `then` on a Promise, it enqueues a Job on a specific
12782// "PromiseJobs" JobQueue which is flushed in Node as a single Job on the
12783// global JobQueue.
12784//
12785// DataLoader batches all loads which occur in a single frame of execution, but
12786// should include in the batch all loads which occur during the flushing of the
12787// "PromiseJobs" JobQueue after that same execution frame.
12788//
12789// In order to avoid the DataLoader dispatch Job occuring before "PromiseJobs",
12790// A Promise Job is created with the sole purpose of enqueuing a global Job,
12791// ensuring that it always occurs after "PromiseJobs" ends.
12792//
12793// Node.js's job queue is unique. Browsers do not have an equivalent mechanism
12794// for enqueuing a job to be performed after promise microtasks and before the
12795// next macrotask. For browser environments, a macrotask is used (via
12796// setImmediate or setTimeout) at a potential performance penalty.
12797
12798
12799// If a custom cache is provided, it must be of this type (a subset of ES6 Map).
12800
12801/**
12802 * Copyright (c) 2015, Facebook, Inc.
12803 * All rights reserved.
12804 *
12805 * This source code is licensed under the BSD-style license found in the
12806 * LICENSE file in the root directory of this source tree. An additional grant
12807 * of patent rights can be found in the PATENTS file in the same directory.
12808 */
12809
12810// A Function, which when given an Array of keys, returns a Promise of an Array
12811// of values or Errors.
12812
12813
12814var enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {
12815 if (!resolvedPromise) {
12816 resolvedPromise = Promise.resolve();
12817 }
12818 resolvedPromise.then(function () {
12819 return process.nextTick(fn);
12820 });
12821} : setImmediate || setTimeout;
12822
12823// Private: cached resolved Promise instance
12824var resolvedPromise;
12825
12826// Private: given the current state of a Loader instance, perform a batch load
12827// from its current queue.
12828function dispatchQueue(loader) {
12829 // Take the current loader queue, replacing it with an empty queue.
12830 var queue = loader._queue;
12831 loader._queue = [];
12832
12833 // If a maxBatchSize was provided and the queue is longer, then segment the
12834 // queue into multiple batches, otherwise treat the queue as a single batch.
12835 var maxBatchSize = loader._options && loader._options.maxBatchSize;
12836 if (maxBatchSize && maxBatchSize > 0 && maxBatchSize < queue.length) {
12837 for (var i = 0; i < queue.length / maxBatchSize; i++) {
12838 dispatchQueueBatch(loader, queue.slice(i * maxBatchSize, (i + 1) * maxBatchSize));
12839 }
12840 } else {
12841 dispatchQueueBatch(loader, queue);
12842 }
12843}
12844
12845function dispatchQueueBatch(loader, queue) {
12846 // Collect all keys to be loaded in this dispatch
12847 var keys = queue.map(function (_ref) {
12848 var key = _ref.key;
12849 return key;
12850 });
12851
12852 // Call the provided batchLoadFn for this loader with the loader queue's keys.
12853 var batchLoadFn = loader._batchLoadFn;
12854 var batchPromise = batchLoadFn(keys);
12855
12856 // Assert the expected response from batchLoadFn
12857 if (!batchPromise || typeof batchPromise.then !== 'function') {
12858 return failedDispatch(loader, queue, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + ('not return a Promise: ' + String(batchPromise) + '.')));
12859 }
12860
12861 // Await the resolution of the call to batchLoadFn.
12862 batchPromise.then(function (values) {
12863
12864 // Assert the expected resolution from batchLoadFn.
12865 if (!Array.isArray(values)) {
12866 throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + ('not return a Promise of an Array: ' + String(values) + '.'));
12867 }
12868 if (values.length !== keys.length) {
12869 throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + ('\n\nKeys:\n' + String(keys)) + ('\n\nValues:\n' + String(values)));
12870 }
12871
12872 // Step through the values, resolving or rejecting each Promise in the
12873 // loaded queue.
12874 queue.forEach(function (_ref2, index) {
12875 var resolve = _ref2.resolve,
12876 reject = _ref2.reject;
12877
12878 var value = values[index];
12879 if (value instanceof Error) {
12880 reject(value);
12881 } else {
12882 resolve(value);
12883 }
12884 });
12885 }).catch(function (error) {
12886 return failedDispatch(loader, queue, error);
12887 });
12888}
12889
12890// Private: do not cache individual loads if the entire batch dispatch fails,
12891// but still reject each request so they do not hang.
12892function failedDispatch(loader, queue, error) {
12893 queue.forEach(function (_ref3) {
12894 var key = _ref3.key,
12895 reject = _ref3.reject;
12896
12897 loader.clear(key);
12898 reject(error);
12899 });
12900}
12901
12902// Private: given the DataLoader's options, produce a CacheMap to be used.
12903function getValidCacheMap(options) {
12904 var cacheMap = options && options.cacheMap;
12905 if (!cacheMap) {
12906 return new Map();
12907 }
12908 var cacheFunctions = ['get', 'set', 'delete', 'clear'];
12909 var missingFunctions = cacheFunctions.filter(function (fnName) {
12910 return cacheMap && typeof cacheMap[fnName] !== 'function';
12911 });
12912 if (missingFunctions.length !== 0) {
12913 throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));
12914 }
12915 return cacheMap;
12916}
12917
12918// Private
12919
12920
12921module.exports = DataLoader;
12922
12923/***/ }),
12924/* 139 */
12925/***/ (function(module, exports, __webpack_require__) {
12926
12927var isFunction = __webpack_require__(344),
12928 isLength = __webpack_require__(208);
12929
12930/**
12931 * Checks if `value` is array-like. A value is considered array-like if it's
12932 * not a function and has a `value.length` that's an integer greater than or
12933 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
12934 *
12935 * @static
12936 * @memberOf _
12937 * @since 4.0.0
12938 * @category Lang
12939 * @param {*} value The value to check.
12940 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
12941 * @example
12942 *
12943 * _.isArrayLike([1, 2, 3]);
12944 * // => true
12945 *
12946 * _.isArrayLike(document.body.children);
12947 * // => true
12948 *
12949 * _.isArrayLike('abc');
12950 * // => true
12951 *
12952 * _.isArrayLike(_.noop);
12953 * // => false
12954 */
12955function isArrayLike(value) {
12956 return value != null && isLength(value.length) && !isFunction(value);
12957}
12958
12959module.exports = isArrayLike;
12960
12961
12962/***/ }),
12963/* 140 */
12964/***/ (function(module, exports) {
12965
12966/**
12967 * Checks if `value` is the
12968 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
12969 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
12970 *
12971 * @static
12972 * @memberOf _
12973 * @since 0.1.0
12974 * @category Lang
12975 * @param {*} value The value to check.
12976 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
12977 * @example
12978 *
12979 * _.isObject({});
12980 * // => true
12981 *
12982 * _.isObject([1, 2, 3]);
12983 * // => true
12984 *
12985 * _.isObject(_.noop);
12986 * // => true
12987 *
12988 * _.isObject(null);
12989 * // => false
12990 */
12991function isObject(value) {
12992 var type = typeof value;
12993 return value != null && (type == 'object' || type == 'function');
12994}
12995
12996module.exports = isObject;
12997
12998
12999/***/ }),
13000/* 141 */
13001/***/ (function(module, exports, __webpack_require__) {
13002
13003var listCacheClear = __webpack_require__(772),
13004 listCacheDelete = __webpack_require__(773),
13005 listCacheGet = __webpack_require__(774),
13006 listCacheHas = __webpack_require__(775),
13007 listCacheSet = __webpack_require__(776);
13008
13009/**
13010 * Creates an list cache object.
13011 *
13012 * @private
13013 * @constructor
13014 * @param {Array} [entries] The key-value pairs to cache.
13015 */
13016function ListCache(entries) {
13017 var index = -1,
13018 length = entries == null ? 0 : entries.length;
13019
13020 this.clear();
13021 while (++index < length) {
13022 var entry = entries[index];
13023 this.set(entry[0], entry[1]);
13024 }
13025}
13026
13027// Add methods to `ListCache`.
13028ListCache.prototype.clear = listCacheClear;
13029ListCache.prototype['delete'] = listCacheDelete;
13030ListCache.prototype.get = listCacheGet;
13031ListCache.prototype.has = listCacheHas;
13032ListCache.prototype.set = listCacheSet;
13033
13034module.exports = ListCache;
13035
13036
13037/***/ }),
13038/* 142 */
13039/***/ (function(module, exports, __webpack_require__) {
13040
13041var eq = __webpack_require__(210);
13042
13043/**
13044 * Gets the index at which the `key` is found in `array` of key-value pairs.
13045 *
13046 * @private
13047 * @param {Array} array The array to inspect.
13048 * @param {*} key The key to search for.
13049 * @returns {number} Returns the index of the matched value, else `-1`.
13050 */
13051function assocIndexOf(array, key) {
13052 var length = array.length;
13053 while (length--) {
13054 if (eq(array[length][0], key)) {
13055 return length;
13056 }
13057 }
13058 return -1;
13059}
13060
13061module.exports = assocIndexOf;
13062
13063
13064/***/ }),
13065/* 143 */
13066/***/ (function(module, exports, __webpack_require__) {
13067
13068var getNative = __webpack_require__(81);
13069
13070/* Built-in method references that are verified to be native. */
13071var nativeCreate = getNative(Object, 'create');
13072
13073module.exports = nativeCreate;
13074
13075
13076/***/ }),
13077/* 144 */
13078/***/ (function(module, exports, __webpack_require__) {
13079
13080var isKeyable = __webpack_require__(794);
13081
13082/**
13083 * Gets the data for `map`.
13084 *
13085 * @private
13086 * @param {Object} map The map to query.
13087 * @param {string} key The reference key.
13088 * @returns {*} Returns the map data.
13089 */
13090function getMapData(map, key) {
13091 var data = map.__data__;
13092 return isKeyable(key)
13093 ? data[typeof key == 'string' ? 'string' : 'hash']
13094 : data.map;
13095}
13096
13097module.exports = getMapData;
13098
13099
13100/***/ }),
13101/* 145 */
13102/***/ (function(module, exports, __webpack_require__) {
13103
13104var baseGetTag = __webpack_require__(98),
13105 isObjectLike = __webpack_require__(100);
13106
13107/** `Object#toString` result references. */
13108var symbolTag = '[object Symbol]';
13109
13110/**
13111 * Checks if `value` is classified as a `Symbol` primitive or object.
13112 *
13113 * @static
13114 * @memberOf _
13115 * @since 4.0.0
13116 * @category Lang
13117 * @param {*} value The value to check.
13118 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
13119 * @example
13120 *
13121 * _.isSymbol(Symbol.iterator);
13122 * // => true
13123 *
13124 * _.isSymbol('abc');
13125 * // => false
13126 */
13127function isSymbol(value) {
13128 return typeof value == 'symbol' ||
13129 (isObjectLike(value) && baseGetTag(value) == symbolTag);
13130}
13131
13132module.exports = isSymbol;
13133
13134
13135/***/ }),
13136/* 146 */
13137/***/ (function(module, exports, __webpack_require__) {
13138
13139var isSymbol = __webpack_require__(145);
13140
13141/** Used as references for various `Number` constants. */
13142var INFINITY = 1 / 0;
13143
13144/**
13145 * Converts `value` to a string key if it's not a string or symbol.
13146 *
13147 * @private
13148 * @param {*} value The value to inspect.
13149 * @returns {string|symbol} Returns the key.
13150 */
13151function toKey(value) {
13152 if (typeof value == 'string' || isSymbol(value)) {
13153 return value;
13154 }
13155 var result = (value + '');
13156 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
13157}
13158
13159module.exports = toKey;
13160
13161
13162/***/ }),
13163/* 147 */
13164/***/ (function(module, exports, __webpack_require__) {
13165
13166var isObject = __webpack_require__(5);
13167var document = __webpack_require__(2).document;
13168// typeof document.createElement is 'object' in old IE
13169var is = isObject(document) && isObject(document.createElement);
13170module.exports = function (it) {
13171 return is ? document.createElement(it) : {};
13172};
13173
13174
13175/***/ }),
13176/* 148 */
13177/***/ (function(module, exports, __webpack_require__) {
13178
13179var global = __webpack_require__(2);
13180var core = __webpack_require__(33);
13181var LIBRARY = __webpack_require__(57);
13182var wksExt = __webpack_require__(215);
13183var defineProperty = __webpack_require__(9).f;
13184module.exports = function (name) {
13185 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
13186 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
13187};
13188
13189
13190/***/ }),
13191/* 149 */
13192/***/ (function(module, exports, __webpack_require__) {
13193
13194var shared = __webpack_require__(101)('keys');
13195var uid = __webpack_require__(56);
13196module.exports = function (key) {
13197 return shared[key] || (shared[key] = uid(key));
13198};
13199
13200
13201/***/ }),
13202/* 150 */
13203/***/ (function(module, exports) {
13204
13205// IE 8- don't enum bug keys
13206module.exports = (
13207 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
13208).split(',');
13209
13210
13211/***/ }),
13212/* 151 */
13213/***/ (function(module, exports, __webpack_require__) {
13214
13215var document = __webpack_require__(2).document;
13216module.exports = document && document.documentElement;
13217
13218
13219/***/ }),
13220/* 152 */
13221/***/ (function(module, exports, __webpack_require__) {
13222
13223// Works with __proto__ only. Old v8 can't work with null proto objects.
13224/* eslint-disable no-proto */
13225var isObject = __webpack_require__(5);
13226var anObject = __webpack_require__(1);
13227var check = function (O, proto) {
13228 anObject(O);
13229 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
13230};
13231module.exports = {
13232 set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
13233 function (test, buggy, set) {
13234 try {
13235 set = __webpack_require__(25)(Function.call, __webpack_require__(22).f(Object.prototype, '__proto__').set, 2);
13236 set(test, []);
13237 buggy = !(test instanceof Array);
13238 } catch (e) { buggy = true; }
13239 return function setPrototypeOf(O, proto) {
13240 check(O, proto);
13241 if (buggy) O.__proto__ = proto;
13242 else set(O, proto);
13243 return O;
13244 };
13245 }({}, false) : undefined),
13246 check: check
13247};
13248
13249
13250/***/ }),
13251/* 153 */
13252/***/ (function(module, exports) {
13253
13254module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
13255 '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
13256
13257
13258/***/ }),
13259/* 154 */
13260/***/ (function(module, exports, __webpack_require__) {
13261
13262var isObject = __webpack_require__(5);
13263var setPrototypeOf = __webpack_require__(152).set;
13264module.exports = function (that, target, C) {
13265 var S = target.constructor;
13266 var P;
13267 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
13268 setPrototypeOf(that, P);
13269 } return that;
13270};
13271
13272
13273/***/ }),
13274/* 155 */
13275/***/ (function(module, exports, __webpack_require__) {
13276
13277"use strict";
13278
13279var toInteger = __webpack_require__(36);
13280var defined = __webpack_require__(35);
13281
13282module.exports = function repeat(count) {
13283 var str = String(defined(this));
13284 var res = '';
13285 var n = toInteger(count);
13286 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
13287 for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
13288 return res;
13289};
13290
13291
13292/***/ }),
13293/* 156 */
13294/***/ (function(module, exports) {
13295
13296// 20.2.2.28 Math.sign(x)
13297module.exports = Math.sign || function sign(x) {
13298 // eslint-disable-next-line no-self-compare
13299 return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
13300};
13301
13302
13303/***/ }),
13304/* 157 */
13305/***/ (function(module, exports) {
13306
13307// 20.2.2.14 Math.expm1(x)
13308var $expm1 = Math.expm1;
13309module.exports = (!$expm1
13310 // Old FF bug
13311 || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
13312 // Tor Browser bug
13313 || $expm1(-2e-17) != -2e-17
13314) ? function expm1(x) {
13315 return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
13316} : $expm1;
13317
13318
13319/***/ }),
13320/* 158 */
13321/***/ (function(module, exports, __webpack_require__) {
13322
13323var toInteger = __webpack_require__(36);
13324var defined = __webpack_require__(35);
13325// true -> String#at
13326// false -> String#codePointAt
13327module.exports = function (TO_STRING) {
13328 return function (that, pos) {
13329 var s = String(defined(that));
13330 var i = toInteger(pos);
13331 var l = s.length;
13332 var a, b;
13333 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
13334 a = s.charCodeAt(i);
13335 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
13336 ? TO_STRING ? s.charAt(i) : a
13337 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
13338 };
13339};
13340
13341
13342/***/ }),
13343/* 159 */
13344/***/ (function(module, exports, __webpack_require__) {
13345
13346"use strict";
13347
13348var LIBRARY = __webpack_require__(57);
13349var $export = __webpack_require__(0);
13350var redefine = __webpack_require__(19);
13351var hide = __webpack_require__(18);
13352var has = __webpack_require__(17);
13353var Iterators = __webpack_require__(73);
13354var $iterCreate = __webpack_require__(160);
13355var setToStringTag = __webpack_require__(71);
13356var getPrototypeOf = __webpack_require__(23);
13357var ITERATOR = __webpack_require__(7)('iterator');
13358var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
13359var FF_ITERATOR = '@@iterator';
13360var KEYS = 'keys';
13361var VALUES = 'values';
13362
13363var returnThis = function () { return this; };
13364
13365module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
13366 $iterCreate(Constructor, NAME, next);
13367 var getMethod = function (kind) {
13368 if (!BUGGY && kind in proto) return proto[kind];
13369 switch (kind) {
13370 case KEYS: return function keys() { return new Constructor(this, kind); };
13371 case VALUES: return function values() { return new Constructor(this, kind); };
13372 } return function entries() { return new Constructor(this, kind); };
13373 };
13374 var TAG = NAME + ' Iterator';
13375 var DEF_VALUES = DEFAULT == VALUES;
13376 var VALUES_BUG = false;
13377 var proto = Base.prototype;
13378 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
13379 var $default = (!BUGGY && $native) || getMethod(DEFAULT);
13380 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
13381 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
13382 var methods, key, IteratorPrototype;
13383 // Fix native
13384 if ($anyNative) {
13385 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
13386 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
13387 // Set @@toStringTag to native iterators
13388 setToStringTag(IteratorPrototype, TAG, true);
13389 // fix for some old engines
13390 if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
13391 }
13392 }
13393 // fix Array#{values, @@iterator}.name in V8 / FF
13394 if (DEF_VALUES && $native && $native.name !== VALUES) {
13395 VALUES_BUG = true;
13396 $default = function values() { return $native.call(this); };
13397 }
13398 // Define iterator
13399 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
13400 hide(proto, ITERATOR, $default);
13401 }
13402 // Plug for library
13403 Iterators[NAME] = $default;
13404 Iterators[TAG] = returnThis;
13405 if (DEFAULT) {
13406 methods = {
13407 values: DEF_VALUES ? $default : getMethod(VALUES),
13408 keys: IS_SET ? $default : getMethod(KEYS),
13409 entries: $entries
13410 };
13411 if (FORCED) for (key in methods) {
13412 if (!(key in proto)) redefine(proto, key, methods[key]);
13413 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
13414 }
13415 return methods;
13416};
13417
13418
13419/***/ }),
13420/* 160 */
13421/***/ (function(module, exports, __webpack_require__) {
13422
13423"use strict";
13424
13425var create = __webpack_require__(60);
13426var descriptor = __webpack_require__(55);
13427var setToStringTag = __webpack_require__(71);
13428var IteratorPrototype = {};
13429
13430// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
13431__webpack_require__(18)(IteratorPrototype, __webpack_require__(7)('iterator'), function () { return this; });
13432
13433module.exports = function (Constructor, NAME, next) {
13434 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
13435 setToStringTag(Constructor, NAME + ' Iterator');
13436};
13437
13438
13439/***/ }),
13440/* 161 */
13441/***/ (function(module, exports, __webpack_require__) {
13442
13443// helper for String#{startsWith, endsWith, includes}
13444var isRegExp = __webpack_require__(105);
13445var defined = __webpack_require__(35);
13446
13447module.exports = function (that, searchString, NAME) {
13448 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
13449 return String(defined(that));
13450};
13451
13452
13453/***/ }),
13454/* 162 */
13455/***/ (function(module, exports, __webpack_require__) {
13456
13457var MATCH = __webpack_require__(7)('match');
13458module.exports = function (KEY) {
13459 var re = /./;
13460 try {
13461 '/./'[KEY](re);
13462 } catch (e) {
13463 try {
13464 re[MATCH] = false;
13465 return !'/./'[KEY](re);
13466 } catch (f) { /* empty */ }
13467 } return true;
13468};
13469
13470
13471/***/ }),
13472/* 163 */
13473/***/ (function(module, exports, __webpack_require__) {
13474
13475// check on default Array iterator
13476var Iterators = __webpack_require__(73);
13477var ITERATOR = __webpack_require__(7)('iterator');
13478var ArrayProto = Array.prototype;
13479
13480module.exports = function (it) {
13481 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
13482};
13483
13484
13485/***/ }),
13486/* 164 */
13487/***/ (function(module, exports, __webpack_require__) {
13488
13489"use strict";
13490
13491var $defineProperty = __webpack_require__(9);
13492var createDesc = __webpack_require__(55);
13493
13494module.exports = function (object, index, value) {
13495 if (index in object) $defineProperty.f(object, index, createDesc(0, value));
13496 else object[index] = value;
13497};
13498
13499
13500/***/ }),
13501/* 165 */
13502/***/ (function(module, exports, __webpack_require__) {
13503
13504var classof = __webpack_require__(84);
13505var ITERATOR = __webpack_require__(7)('iterator');
13506var Iterators = __webpack_require__(73);
13507module.exports = __webpack_require__(33).getIteratorMethod = function (it) {
13508 if (it != undefined) return it[ITERATOR]
13509 || it['@@iterator']
13510 || Iterators[classof(it)];
13511};
13512
13513
13514/***/ }),
13515/* 166 */
13516/***/ (function(module, exports, __webpack_require__) {
13517
13518// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
13519var speciesConstructor = __webpack_require__(451);
13520
13521module.exports = function (original, length) {
13522 return new (speciesConstructor(original))(length);
13523};
13524
13525
13526/***/ }),
13527/* 167 */
13528/***/ (function(module, exports, __webpack_require__) {
13529
13530"use strict";
13531// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
13532
13533var toObject = __webpack_require__(13);
13534var toAbsoluteIndex = __webpack_require__(59);
13535var toLength = __webpack_require__(10);
13536module.exports = function fill(value /* , start = 0, end = @length */) {
13537 var O = toObject(this);
13538 var length = toLength(O.length);
13539 var aLen = arguments.length;
13540 var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
13541 var end = aLen > 2 ? arguments[2] : undefined;
13542 var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
13543 while (endPos > index) O[index++] = value;
13544 return O;
13545};
13546
13547
13548/***/ }),
13549/* 168 */
13550/***/ (function(module, exports, __webpack_require__) {
13551
13552"use strict";
13553
13554var addToUnscopables = __webpack_require__(51);
13555var step = __webpack_require__(231);
13556var Iterators = __webpack_require__(73);
13557var toIObject = __webpack_require__(21);
13558
13559// 22.1.3.4 Array.prototype.entries()
13560// 22.1.3.13 Array.prototype.keys()
13561// 22.1.3.29 Array.prototype.values()
13562// 22.1.3.30 Array.prototype[@@iterator]()
13563module.exports = __webpack_require__(159)(Array, 'Array', function (iterated, kind) {
13564 this._t = toIObject(iterated); // target
13565 this._i = 0; // next index
13566 this._k = kind; // kind
13567// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
13568}, function () {
13569 var O = this._t;
13570 var kind = this._k;
13571 var index = this._i++;
13572 if (!O || index >= O.length) {
13573 this._t = undefined;
13574 return step(1);
13575 }
13576 if (kind == 'keys') return step(0, index);
13577 if (kind == 'values') return step(0, O[index]);
13578 return step(0, [index, O[index]]);
13579}, 'values');
13580
13581// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
13582Iterators.Arguments = Iterators.Array;
13583
13584addToUnscopables('keys');
13585addToUnscopables('values');
13586addToUnscopables('entries');
13587
13588
13589/***/ }),
13590/* 169 */
13591/***/ (function(module, exports, __webpack_require__) {
13592
13593var ctx = __webpack_require__(25);
13594var invoke = __webpack_require__(221);
13595var html = __webpack_require__(151);
13596var cel = __webpack_require__(147);
13597var global = __webpack_require__(2);
13598var process = global.process;
13599var setTask = global.setImmediate;
13600var clearTask = global.clearImmediate;
13601var MessageChannel = global.MessageChannel;
13602var Dispatch = global.Dispatch;
13603var counter = 0;
13604var queue = {};
13605var ONREADYSTATECHANGE = 'onreadystatechange';
13606var defer, channel, port;
13607var run = function () {
13608 var id = +this;
13609 // eslint-disable-next-line no-prototype-builtins
13610 if (queue.hasOwnProperty(id)) {
13611 var fn = queue[id];
13612 delete queue[id];
13613 fn();
13614 }
13615};
13616var listener = function (event) {
13617 run.call(event.data);
13618};
13619// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
13620if (!setTask || !clearTask) {
13621 setTask = function setImmediate(fn) {
13622 var args = [];
13623 var i = 1;
13624 while (arguments.length > i) args.push(arguments[i++]);
13625 queue[++counter] = function () {
13626 // eslint-disable-next-line no-new-func
13627 invoke(typeof fn == 'function' ? fn : Function(fn), args);
13628 };
13629 defer(counter);
13630 return counter;
13631 };
13632 clearTask = function clearImmediate(id) {
13633 delete queue[id];
13634 };
13635 // Node.js 0.8-
13636 if (__webpack_require__(26)(process) == 'process') {
13637 defer = function (id) {
13638 process.nextTick(ctx(run, id, 1));
13639 };
13640 // Sphere (JS game engine) Dispatch API
13641 } else if (Dispatch && Dispatch.now) {
13642 defer = function (id) {
13643 Dispatch.now(ctx(run, id, 1));
13644 };
13645 // Browsers with MessageChannel, includes WebWorkers
13646 } else if (MessageChannel) {
13647 channel = new MessageChannel();
13648 port = channel.port2;
13649 channel.port1.onmessage = listener;
13650 defer = ctx(port.postMessage, port, 1);
13651 // Browsers with postMessage, skip WebWorkers
13652 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
13653 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
13654 defer = function (id) {
13655 global.postMessage(id + '', '*');
13656 };
13657 global.addEventListener('message', listener, false);
13658 // IE8-
13659 } else if (ONREADYSTATECHANGE in cel('script')) {
13660 defer = function (id) {
13661 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
13662 html.removeChild(this);
13663 run.call(id);
13664 };
13665 };
13666 // Rest old browsers
13667 } else {
13668 defer = function (id) {
13669 setTimeout(ctx(run, id, 1), 0);
13670 };
13671 }
13672}
13673module.exports = {
13674 set: setTask,
13675 clear: clearTask
13676};
13677
13678
13679/***/ }),
13680/* 170 */
13681/***/ (function(module, exports, __webpack_require__) {
13682
13683var global = __webpack_require__(2);
13684var macrotask = __webpack_require__(169).set;
13685var Observer = global.MutationObserver || global.WebKitMutationObserver;
13686var process = global.process;
13687var Promise = global.Promise;
13688var isNode = __webpack_require__(26)(process) == 'process';
13689
13690module.exports = function () {
13691 var head, last, notify;
13692
13693 var flush = function () {
13694 var parent, fn;
13695 if (isNode && (parent = process.domain)) parent.exit();
13696 while (head) {
13697 fn = head.fn;
13698 head = head.next;
13699 try {
13700 fn();
13701 } catch (e) {
13702 if (head) notify();
13703 else last = undefined;
13704 throw e;
13705 }
13706 } last = undefined;
13707 if (parent) parent.enter();
13708 };
13709
13710 // Node.js
13711 if (isNode) {
13712 notify = function () {
13713 process.nextTick(flush);
13714 };
13715 // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
13716 } else if (Observer && !(global.navigator && global.navigator.standalone)) {
13717 var toggle = true;
13718 var node = document.createTextNode('');
13719 new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
13720 notify = function () {
13721 node.data = toggle = !toggle;
13722 };
13723 // environments with maybe non-completely correct, but existent Promise
13724 } else if (Promise && Promise.resolve) {
13725 var promise = Promise.resolve();
13726 notify = function () {
13727 promise.then(flush);
13728 };
13729 // for other environments - macrotask based on:
13730 // - setImmediate
13731 // - MessageChannel
13732 // - window.postMessag
13733 // - onreadystatechange
13734 // - setTimeout
13735 } else {
13736 notify = function () {
13737 // strange IE + webpack dev server bug - use .call(global)
13738 macrotask.call(global, flush);
13739 };
13740 }
13741
13742 return function (fn) {
13743 var task = { fn: fn, next: undefined };
13744 if (last) last.next = task;
13745 if (!head) {
13746 head = task;
13747 notify();
13748 } last = task;
13749 };
13750};
13751
13752
13753/***/ }),
13754/* 171 */
13755/***/ (function(module, exports, __webpack_require__) {
13756
13757"use strict";
13758
13759// 25.4.1.5 NewPromiseCapability(C)
13760var aFunction = __webpack_require__(15);
13761
13762function PromiseCapability(C) {
13763 var resolve, reject;
13764 this.promise = new C(function ($$resolve, $$reject) {
13765 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
13766 resolve = $$resolve;
13767 reject = $$reject;
13768 });
13769 this.resolve = aFunction(resolve);
13770 this.reject = aFunction(reject);
13771}
13772
13773module.exports.f = function (C) {
13774 return new PromiseCapability(C);
13775};
13776
13777
13778/***/ }),
13779/* 172 */
13780/***/ (function(module, exports, __webpack_require__) {
13781
13782"use strict";
13783
13784var global = __webpack_require__(2);
13785var DESCRIPTORS = __webpack_require__(8);
13786var LIBRARY = __webpack_require__(57);
13787var $typed = __webpack_require__(111);
13788var hide = __webpack_require__(18);
13789var redefineAll = __webpack_require__(65);
13790var fails = __webpack_require__(4);
13791var anInstance = __webpack_require__(63);
13792var toInteger = __webpack_require__(36);
13793var toLength = __webpack_require__(10);
13794var toIndex = __webpack_require__(240);
13795var gOPN = __webpack_require__(61).f;
13796var dP = __webpack_require__(9).f;
13797var arrayFill = __webpack_require__(167);
13798var setToStringTag = __webpack_require__(71);
13799var ARRAY_BUFFER = 'ArrayBuffer';
13800var DATA_VIEW = 'DataView';
13801var PROTOTYPE = 'prototype';
13802var WRONG_LENGTH = 'Wrong length!';
13803var WRONG_INDEX = 'Wrong index!';
13804var $ArrayBuffer = global[ARRAY_BUFFER];
13805var $DataView = global[DATA_VIEW];
13806var Math = global.Math;
13807var RangeError = global.RangeError;
13808// eslint-disable-next-line no-shadow-restricted-names
13809var Infinity = global.Infinity;
13810var BaseBuffer = $ArrayBuffer;
13811var abs = Math.abs;
13812var pow = Math.pow;
13813var floor = Math.floor;
13814var log = Math.log;
13815var LN2 = Math.LN2;
13816var BUFFER = 'buffer';
13817var BYTE_LENGTH = 'byteLength';
13818var BYTE_OFFSET = 'byteOffset';
13819var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
13820var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
13821var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
13822
13823// IEEE754 conversions based on https://github.com/feross/ieee754
13824function packIEEE754(value, mLen, nBytes) {
13825 var buffer = new Array(nBytes);
13826 var eLen = nBytes * 8 - mLen - 1;
13827 var eMax = (1 << eLen) - 1;
13828 var eBias = eMax >> 1;
13829 var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
13830 var i = 0;
13831 var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
13832 var e, m, c;
13833 value = abs(value);
13834 // eslint-disable-next-line no-self-compare
13835 if (value != value || value === Infinity) {
13836 // eslint-disable-next-line no-self-compare
13837 m = value != value ? 1 : 0;
13838 e = eMax;
13839 } else {
13840 e = floor(log(value) / LN2);
13841 if (value * (c = pow(2, -e)) < 1) {
13842 e--;
13843 c *= 2;
13844 }
13845 if (e + eBias >= 1) {
13846 value += rt / c;
13847 } else {
13848 value += rt * pow(2, 1 - eBias);
13849 }
13850 if (value * c >= 2) {
13851 e++;
13852 c /= 2;
13853 }
13854 if (e + eBias >= eMax) {
13855 m = 0;
13856 e = eMax;
13857 } else if (e + eBias >= 1) {
13858 m = (value * c - 1) * pow(2, mLen);
13859 e = e + eBias;
13860 } else {
13861 m = value * pow(2, eBias - 1) * pow(2, mLen);
13862 e = 0;
13863 }
13864 }
13865 for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
13866 e = e << mLen | m;
13867 eLen += mLen;
13868 for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
13869 buffer[--i] |= s * 128;
13870 return buffer;
13871}
13872function unpackIEEE754(buffer, mLen, nBytes) {
13873 var eLen = nBytes * 8 - mLen - 1;
13874 var eMax = (1 << eLen) - 1;
13875 var eBias = eMax >> 1;
13876 var nBits = eLen - 7;
13877 var i = nBytes - 1;
13878 var s = buffer[i--];
13879 var e = s & 127;
13880 var m;
13881 s >>= 7;
13882 for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
13883 m = e & (1 << -nBits) - 1;
13884 e >>= -nBits;
13885 nBits += mLen;
13886 for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
13887 if (e === 0) {
13888 e = 1 - eBias;
13889 } else if (e === eMax) {
13890 return m ? NaN : s ? -Infinity : Infinity;
13891 } else {
13892 m = m + pow(2, mLen);
13893 e = e - eBias;
13894 } return (s ? -1 : 1) * m * pow(2, e - mLen);
13895}
13896
13897function unpackI32(bytes) {
13898 return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
13899}
13900function packI8(it) {
13901 return [it & 0xff];
13902}
13903function packI16(it) {
13904 return [it & 0xff, it >> 8 & 0xff];
13905}
13906function packI32(it) {
13907 return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
13908}
13909function packF64(it) {
13910 return packIEEE754(it, 52, 8);
13911}
13912function packF32(it) {
13913 return packIEEE754(it, 23, 4);
13914}
13915
13916function addGetter(C, key, internal) {
13917 dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });
13918}
13919
13920function get(view, bytes, index, isLittleEndian) {
13921 var numIndex = +index;
13922 var intIndex = toIndex(numIndex);
13923 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
13924 var store = view[$BUFFER]._b;
13925 var start = intIndex + view[$OFFSET];
13926 var pack = store.slice(start, start + bytes);
13927 return isLittleEndian ? pack : pack.reverse();
13928}
13929function set(view, bytes, index, conversion, value, isLittleEndian) {
13930 var numIndex = +index;
13931 var intIndex = toIndex(numIndex);
13932 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
13933 var store = view[$BUFFER]._b;
13934 var start = intIndex + view[$OFFSET];
13935 var pack = conversion(+value);
13936 for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
13937}
13938
13939if (!$typed.ABV) {
13940 $ArrayBuffer = function ArrayBuffer(length) {
13941 anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
13942 var byteLength = toIndex(length);
13943 this._b = arrayFill.call(new Array(byteLength), 0);
13944 this[$LENGTH] = byteLength;
13945 };
13946
13947 $DataView = function DataView(buffer, byteOffset, byteLength) {
13948 anInstance(this, $DataView, DATA_VIEW);
13949 anInstance(buffer, $ArrayBuffer, DATA_VIEW);
13950 var bufferLength = buffer[$LENGTH];
13951 var offset = toInteger(byteOffset);
13952 if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
13953 byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
13954 if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
13955 this[$BUFFER] = buffer;
13956 this[$OFFSET] = offset;
13957 this[$LENGTH] = byteLength;
13958 };
13959
13960 if (DESCRIPTORS) {
13961 addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
13962 addGetter($DataView, BUFFER, '_b');
13963 addGetter($DataView, BYTE_LENGTH, '_l');
13964 addGetter($DataView, BYTE_OFFSET, '_o');
13965 }
13966
13967 redefineAll($DataView[PROTOTYPE], {
13968 getInt8: function getInt8(byteOffset) {
13969 return get(this, 1, byteOffset)[0] << 24 >> 24;
13970 },
13971 getUint8: function getUint8(byteOffset) {
13972 return get(this, 1, byteOffset)[0];
13973 },
13974 getInt16: function getInt16(byteOffset /* , littleEndian */) {
13975 var bytes = get(this, 2, byteOffset, arguments[1]);
13976 return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
13977 },
13978 getUint16: function getUint16(byteOffset /* , littleEndian */) {
13979 var bytes = get(this, 2, byteOffset, arguments[1]);
13980 return bytes[1] << 8 | bytes[0];
13981 },
13982 getInt32: function getInt32(byteOffset /* , littleEndian */) {
13983 return unpackI32(get(this, 4, byteOffset, arguments[1]));
13984 },
13985 getUint32: function getUint32(byteOffset /* , littleEndian */) {
13986 return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
13987 },
13988 getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
13989 return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
13990 },
13991 getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
13992 return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
13993 },
13994 setInt8: function setInt8(byteOffset, value) {
13995 set(this, 1, byteOffset, packI8, value);
13996 },
13997 setUint8: function setUint8(byteOffset, value) {
13998 set(this, 1, byteOffset, packI8, value);
13999 },
14000 setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
14001 set(this, 2, byteOffset, packI16, value, arguments[2]);
14002 },
14003 setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
14004 set(this, 2, byteOffset, packI16, value, arguments[2]);
14005 },
14006 setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
14007 set(this, 4, byteOffset, packI32, value, arguments[2]);
14008 },
14009 setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
14010 set(this, 4, byteOffset, packI32, value, arguments[2]);
14011 },
14012 setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
14013 set(this, 4, byteOffset, packF32, value, arguments[2]);
14014 },
14015 setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
14016 set(this, 8, byteOffset, packF64, value, arguments[2]);
14017 }
14018 });
14019} else {
14020 if (!fails(function () {
14021 $ArrayBuffer(1);
14022 }) || !fails(function () {
14023 new $ArrayBuffer(-1); // eslint-disable-line no-new
14024 }) || fails(function () {
14025 new $ArrayBuffer(); // eslint-disable-line no-new
14026 new $ArrayBuffer(1.5); // eslint-disable-line no-new
14027 new $ArrayBuffer(NaN); // eslint-disable-line no-new
14028 return $ArrayBuffer.name != ARRAY_BUFFER;
14029 })) {
14030 $ArrayBuffer = function ArrayBuffer(length) {
14031 anInstance(this, $ArrayBuffer);
14032 return new BaseBuffer(toIndex(length));
14033 };
14034 var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
14035 for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
14036 if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
14037 }
14038 if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
14039 }
14040 // iOS Safari 7.x bug
14041 var view = new $DataView(new $ArrayBuffer(2));
14042 var $setInt8 = $DataView[PROTOTYPE].setInt8;
14043 view.setInt8(0, 2147483648);
14044 view.setInt8(1, 2147483649);
14045 if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
14046 setInt8: function setInt8(byteOffset, value) {
14047 $setInt8.call(this, byteOffset, value << 24 >> 24);
14048 },
14049 setUint8: function setUint8(byteOffset, value) {
14050 $setInt8.call(this, byteOffset, value << 24 >> 24);
14051 }
14052 }, true);
14053}
14054setToStringTag($ArrayBuffer, ARRAY_BUFFER);
14055setToStringTag($DataView, DATA_VIEW);
14056hide($DataView[PROTOTYPE], $typed.VIEW, true);
14057exports[ARRAY_BUFFER] = $ArrayBuffer;
14058exports[DATA_VIEW] = $DataView;
14059
14060
14061/***/ }),
14062/* 173 */
14063/***/ (function(module, exports, __webpack_require__) {
14064
14065var global = __webpack_require__(2);
14066var navigator = global.navigator;
14067
14068module.exports = navigator && navigator.userAgent || '';
14069
14070
14071/***/ }),
14072/* 174 */
14073/***/ (function(module, exports, __webpack_require__) {
14074
14075"use strict";
14076
14077
14078Object.defineProperty(exports, "__esModule", {
14079 value: true
14080});
14081exports.getLocation = getLocation;
14082
14083
14084/**
14085 * Takes a Source and a UTF-8 character offset, and returns the corresponding
14086 * line and column as a SourceLocation.
14087 */
14088/**
14089 * Copyright (c) 2015-present, Facebook, Inc.
14090 *
14091 * This source code is licensed under the MIT license found in the
14092 * LICENSE file in the root directory of this source tree.
14093 *
14094 *
14095 */
14096
14097function getLocation(source, position) {
14098 var lineRegexp = /\r\n|[\n\r]/g;
14099 var line = 1;
14100 var column = position + 1;
14101 var match = void 0;
14102 while ((match = lineRegexp.exec(source.body)) && match.index < position) {
14103 line += 1;
14104 column = position + 1 - (match.index + match[0].length);
14105 }
14106 return { line: line, column: column };
14107}
14108
14109/**
14110 * Represents a location in a Source.
14111 */
14112
14113/***/ }),
14114/* 175 */
14115/***/ (function(module, exports, __webpack_require__) {
14116
14117"use strict";
14118
14119
14120Object.defineProperty(exports, "__esModule", {
14121 value: true
14122});
14123exports.TokenKind = undefined;
14124exports.createLexer = createLexer;
14125exports.getTokenDesc = getTokenDesc;
14126
14127var _error = __webpack_require__(3);
14128
14129/**
14130 * Given a Source object, this returns a Lexer for that source.
14131 * A Lexer is a stateful stream generator in that every time
14132 * it is advanced, it returns the next token in the Source. Assuming the
14133 * source lexes, the final Token emitted by the lexer will be of kind
14134 * EOF, after which the lexer will repeatedly return the same EOF token
14135 * whenever called.
14136 */
14137function createLexer(source, options) {
14138 var startOfFileToken = new Tok(SOF, 0, 0, 0, 0, null);
14139 var lexer = {
14140 source: source,
14141 options: options,
14142 lastToken: startOfFileToken,
14143 token: startOfFileToken,
14144 line: 1,
14145 lineStart: 0,
14146 advance: advanceLexer
14147 };
14148 return lexer;
14149} /**
14150 * Copyright (c) 2015-present, Facebook, Inc.
14151 *
14152 * This source code is licensed under the MIT license found in the
14153 * LICENSE file in the root directory of this source tree.
14154 *
14155 *
14156 */
14157
14158function advanceLexer() {
14159 var token = this.lastToken = this.token;
14160 if (token.kind !== EOF) {
14161 do {
14162 token = token.next = readToken(this, token);
14163 } while (token.kind === COMMENT);
14164 this.token = token;
14165 }
14166 return token;
14167}
14168
14169/**
14170 * The return type of createLexer.
14171 */
14172
14173
14174// Each kind of token.
14175var SOF = '<SOF>';
14176var EOF = '<EOF>';
14177var BANG = '!';
14178var DOLLAR = '$';
14179var PAREN_L = '(';
14180var PAREN_R = ')';
14181var SPREAD = '...';
14182var COLON = ':';
14183var EQUALS = '=';
14184var AT = '@';
14185var BRACKET_L = '[';
14186var BRACKET_R = ']';
14187var BRACE_L = '{';
14188var PIPE = '|';
14189var BRACE_R = '}';
14190var NAME = 'Name';
14191var INT = 'Int';
14192var FLOAT = 'Float';
14193var STRING = 'String';
14194var COMMENT = 'Comment';
14195
14196/**
14197 * An exported enum describing the different kinds of tokens that the
14198 * lexer emits.
14199 */
14200var TokenKind = exports.TokenKind = {
14201 SOF: SOF,
14202 EOF: EOF,
14203 BANG: BANG,
14204 DOLLAR: DOLLAR,
14205 PAREN_L: PAREN_L,
14206 PAREN_R: PAREN_R,
14207 SPREAD: SPREAD,
14208 COLON: COLON,
14209 EQUALS: EQUALS,
14210 AT: AT,
14211 BRACKET_L: BRACKET_L,
14212 BRACKET_R: BRACKET_R,
14213 BRACE_L: BRACE_L,
14214 PIPE: PIPE,
14215 BRACE_R: BRACE_R,
14216 NAME: NAME,
14217 INT: INT,
14218 FLOAT: FLOAT,
14219 STRING: STRING,
14220 COMMENT: COMMENT
14221};
14222
14223/**
14224 * A helper function to describe a token as a string for debugging
14225 */
14226function getTokenDesc(token) {
14227 var value = token.value;
14228 return value ? token.kind + ' "' + value + '"' : token.kind;
14229}
14230
14231var charCodeAt = String.prototype.charCodeAt;
14232var slice = String.prototype.slice;
14233
14234/**
14235 * Helper function for constructing the Token object.
14236 */
14237function Tok(kind, start, end, line, column, prev, value) {
14238 this.kind = kind;
14239 this.start = start;
14240 this.end = end;
14241 this.line = line;
14242 this.column = column;
14243 this.value = value;
14244 this.prev = prev;
14245 this.next = null;
14246}
14247
14248// Print a simplified form when appearing in JSON/util.inspect.
14249Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() {
14250 return {
14251 kind: this.kind,
14252 value: this.value,
14253 line: this.line,
14254 column: this.column
14255 };
14256};
14257
14258function printCharCode(code) {
14259 return (
14260 // NaN/undefined represents access beyond the end of the file.
14261 isNaN(code) ? EOF :
14262 // Trust JSON for ASCII.
14263 code < 0x007F ? JSON.stringify(String.fromCharCode(code)) :
14264 // Otherwise print the escaped form.
14265 '"\\u' + ('00' + code.toString(16).toUpperCase()).slice(-4) + '"'
14266 );
14267}
14268
14269/**
14270 * Gets the next token from the source starting at the given position.
14271 *
14272 * This skips over whitespace and comments until it finds the next lexable
14273 * token, then lexes punctuators immediately or calls the appropriate helper
14274 * function for more complicated tokens.
14275 */
14276function readToken(lexer, prev) {
14277 var source = lexer.source;
14278 var body = source.body;
14279 var bodyLength = body.length;
14280
14281 var position = positionAfterWhitespace(body, prev.end, lexer);
14282 var line = lexer.line;
14283 var col = 1 + position - lexer.lineStart;
14284
14285 if (position >= bodyLength) {
14286 return new Tok(EOF, bodyLength, bodyLength, line, col, prev);
14287 }
14288
14289 var code = charCodeAt.call(body, position);
14290
14291 // SourceCharacter
14292 if (code < 0x0020 && code !== 0x0009 && code !== 0x000A && code !== 0x000D) {
14293 throw (0, _error.syntaxError)(source, position, 'Cannot contain the invalid character ' + printCharCode(code) + '.');
14294 }
14295
14296 switch (code) {
14297 // !
14298 case 33:
14299 return new Tok(BANG, position, position + 1, line, col, prev);
14300 // #
14301 case 35:
14302 return readComment(source, position, line, col, prev);
14303 // $
14304 case 36:
14305 return new Tok(DOLLAR, position, position + 1, line, col, prev);
14306 // (
14307 case 40:
14308 return new Tok(PAREN_L, position, position + 1, line, col, prev);
14309 // )
14310 case 41:
14311 return new Tok(PAREN_R, position, position + 1, line, col, prev);
14312 // .
14313 case 46:
14314 if (charCodeAt.call(body, position + 1) === 46 && charCodeAt.call(body, position + 2) === 46) {
14315 return new Tok(SPREAD, position, position + 3, line, col, prev);
14316 }
14317 break;
14318 // :
14319 case 58:
14320 return new Tok(COLON, position, position + 1, line, col, prev);
14321 // =
14322 case 61:
14323 return new Tok(EQUALS, position, position + 1, line, col, prev);
14324 // @
14325 case 64:
14326 return new Tok(AT, position, position + 1, line, col, prev);
14327 // [
14328 case 91:
14329 return new Tok(BRACKET_L, position, position + 1, line, col, prev);
14330 // ]
14331 case 93:
14332 return new Tok(BRACKET_R, position, position + 1, line, col, prev);
14333 // {
14334 case 123:
14335 return new Tok(BRACE_L, position, position + 1, line, col, prev);
14336 // |
14337 case 124:
14338 return new Tok(PIPE, position, position + 1, line, col, prev);
14339 // }
14340 case 125:
14341 return new Tok(BRACE_R, position, position + 1, line, col, prev);
14342 // A-Z _ a-z
14343 case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:
14344 case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:
14345 case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:
14346 case 89:case 90:
14347 case 95:
14348 case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:
14349 case 105:case 106:case 107:case 108:case 109:case 110:case 111:
14350 case 112:case 113:case 114:case 115:case 116:case 117:case 118:
14351 case 119:case 120:case 121:case 122:
14352 return readName(source, position, line, col, prev);
14353 // - 0-9
14354 case 45:
14355 case 48:case 49:case 50:case 51:case 52:
14356 case 53:case 54:case 55:case 56:case 57:
14357 return readNumber(source, position, code, line, col, prev);
14358 // "
14359 case 34:
14360 return readString(source, position, line, col, prev);
14361 }
14362
14363 throw (0, _error.syntaxError)(source, position, unexpectedCharacterMessage(code));
14364}
14365
14366/**
14367 * Report a message that an unexpected character was encountered.
14368 */
14369function unexpectedCharacterMessage(code) {
14370 if (code === 39) {
14371 // '
14372 return 'Unexpected single quote character (\'), did you mean to use ' + 'a double quote (")?';
14373 }
14374
14375 return 'Cannot parse the unexpected character ' + printCharCode(code) + '.';
14376}
14377
14378/**
14379 * Reads from body starting at startPosition until it finds a non-whitespace
14380 * or commented character, then returns the position of that character for
14381 * lexing.
14382 */
14383function positionAfterWhitespace(body, startPosition, lexer) {
14384 var bodyLength = body.length;
14385 var position = startPosition;
14386 while (position < bodyLength) {
14387 var code = charCodeAt.call(body, position);
14388 // tab | space | comma | BOM
14389 if (code === 9 || code === 32 || code === 44 || code === 0xFEFF) {
14390 ++position;
14391 } else if (code === 10) {
14392 // new line
14393 ++position;
14394 ++lexer.line;
14395 lexer.lineStart = position;
14396 } else if (code === 13) {
14397 // carriage return
14398 if (charCodeAt.call(body, position + 1) === 10) {
14399 position += 2;
14400 } else {
14401 ++position;
14402 }
14403 ++lexer.line;
14404 lexer.lineStart = position;
14405 } else {
14406 break;
14407 }
14408 }
14409 return position;
14410}
14411
14412/**
14413 * Reads a comment token from the source file.
14414 *
14415 * #[\u0009\u0020-\uFFFF]*
14416 */
14417function readComment(source, start, line, col, prev) {
14418 var body = source.body;
14419 var code = void 0;
14420 var position = start;
14421
14422 do {
14423 code = charCodeAt.call(body, ++position);
14424 } while (code !== null && (
14425 // SourceCharacter but not LineTerminator
14426 code > 0x001F || code === 0x0009));
14427
14428 return new Tok(COMMENT, start, position, line, col, prev, slice.call(body, start + 1, position));
14429}
14430
14431/**
14432 * Reads a number token from the source file, either a float
14433 * or an int depending on whether a decimal point appears.
14434 *
14435 * Int: -?(0|[1-9][0-9]*)
14436 * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)?
14437 */
14438function readNumber(source, start, firstCode, line, col, prev) {
14439 var body = source.body;
14440 var code = firstCode;
14441 var position = start;
14442 var isFloat = false;
14443
14444 if (code === 45) {
14445 // -
14446 code = charCodeAt.call(body, ++position);
14447 }
14448
14449 if (code === 48) {
14450 // 0
14451 code = charCodeAt.call(body, ++position);
14452 if (code >= 48 && code <= 57) {
14453 throw (0, _error.syntaxError)(source, position, 'Invalid number, unexpected digit after 0: ' + printCharCode(code) + '.');
14454 }
14455 } else {
14456 position = readDigits(source, position, code);
14457 code = charCodeAt.call(body, position);
14458 }
14459
14460 if (code === 46) {
14461 // .
14462 isFloat = true;
14463
14464 code = charCodeAt.call(body, ++position);
14465 position = readDigits(source, position, code);
14466 code = charCodeAt.call(body, position);
14467 }
14468
14469 if (code === 69 || code === 101) {
14470 // E e
14471 isFloat = true;
14472
14473 code = charCodeAt.call(body, ++position);
14474 if (code === 43 || code === 45) {
14475 // + -
14476 code = charCodeAt.call(body, ++position);
14477 }
14478 position = readDigits(source, position, code);
14479 }
14480
14481 return new Tok(isFloat ? FLOAT : INT, start, position, line, col, prev, slice.call(body, start, position));
14482}
14483
14484/**
14485 * Returns the new position in the source after reading digits.
14486 */
14487function readDigits(source, start, firstCode) {
14488 var body = source.body;
14489 var position = start;
14490 var code = firstCode;
14491 if (code >= 48 && code <= 57) {
14492 // 0 - 9
14493 do {
14494 code = charCodeAt.call(body, ++position);
14495 } while (code >= 48 && code <= 57); // 0 - 9
14496 return position;
14497 }
14498 throw (0, _error.syntaxError)(source, position, 'Invalid number, expected digit but got: ' + printCharCode(code) + '.');
14499}
14500
14501/**
14502 * Reads a string token from the source file.
14503 *
14504 * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*"
14505 */
14506function readString(source, start, line, col, prev) {
14507 var body = source.body;
14508 var position = start + 1;
14509 var chunkStart = position;
14510 var code = 0;
14511 var value = '';
14512
14513 while (position < body.length && (code = charCodeAt.call(body, position)) !== null &&
14514 // not LineTerminator
14515 code !== 0x000A && code !== 0x000D &&
14516 // not Quote (")
14517 code !== 34) {
14518 // SourceCharacter
14519 if (code < 0x0020 && code !== 0x0009) {
14520 throw (0, _error.syntaxError)(source, position, 'Invalid character within String: ' + printCharCode(code) + '.');
14521 }
14522
14523 ++position;
14524 if (code === 92) {
14525 // \
14526 value += slice.call(body, chunkStart, position - 1);
14527 code = charCodeAt.call(body, position);
14528 switch (code) {
14529 case 34:
14530 value += '"';break;
14531 case 47:
14532 value += '/';break;
14533 case 92:
14534 value += '\\';break;
14535 case 98:
14536 value += '\b';break;
14537 case 102:
14538 value += '\f';break;
14539 case 110:
14540 value += '\n';break;
14541 case 114:
14542 value += '\r';break;
14543 case 116:
14544 value += '\t';break;
14545 case 117:
14546 // u
14547 var charCode = uniCharCode(charCodeAt.call(body, position + 1), charCodeAt.call(body, position + 2), charCodeAt.call(body, position + 3), charCodeAt.call(body, position + 4));
14548 if (charCode < 0) {
14549 throw (0, _error.syntaxError)(source, position, 'Invalid character escape sequence: ' + ('\\u' + body.slice(position + 1, position + 5) + '.'));
14550 }
14551 value += String.fromCharCode(charCode);
14552 position += 4;
14553 break;
14554 default:
14555 throw (0, _error.syntaxError)(source, position, 'Invalid character escape sequence: \\' + String.fromCharCode(code) + '.');
14556 }
14557 ++position;
14558 chunkStart = position;
14559 }
14560 }
14561
14562 if (code !== 34) {
14563 // quote (")
14564 throw (0, _error.syntaxError)(source, position, 'Unterminated string.');
14565 }
14566
14567 value += slice.call(body, chunkStart, position);
14568 return new Tok(STRING, start, position + 1, line, col, prev, value);
14569}
14570
14571/**
14572 * Converts four hexidecimal chars to the integer that the
14573 * string represents. For example, uniCharCode('0','0','0','f')
14574 * will return 15, and uniCharCode('0','0','f','f') returns 255.
14575 *
14576 * Returns a negative number on error, if a char was invalid.
14577 *
14578 * This is implemented by noting that char2hex() returns -1 on error,
14579 * which means the result of ORing the char2hex() will also be negative.
14580 */
14581function uniCharCode(a, b, c, d) {
14582 return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);
14583}
14584
14585/**
14586 * Converts a hex character to its integer value.
14587 * '0' becomes 0, '9' becomes 9
14588 * 'A' becomes 10, 'F' becomes 15
14589 * 'a' becomes 10, 'f' becomes 15
14590 *
14591 * Returns -1 on error.
14592 */
14593function char2hex(a) {
14594 return a >= 48 && a <= 57 ? a - 48 : // 0-9
14595 a >= 65 && a <= 70 ? a - 55 : // A-F
14596 a >= 97 && a <= 102 ? a - 87 : // a-f
14597 -1;
14598}
14599
14600/**
14601 * Reads an alphanumeric + underscore name from the source.
14602 *
14603 * [_A-Za-z][_0-9A-Za-z]*
14604 */
14605function readName(source, position, line, col, prev) {
14606 var body = source.body;
14607 var bodyLength = body.length;
14608 var end = position + 1;
14609 var code = 0;
14610 while (end !== bodyLength && (code = charCodeAt.call(body, end)) !== null && (code === 95 || // _
14611 code >= 48 && code <= 57 || // 0-9
14612 code >= 65 && code <= 90 || // A-Z
14613 code >= 97 && code <= 122 // a-z
14614 )) {
14615 ++end;
14616 }
14617 return new Tok(NAME, position, end, line, col, prev, slice.call(body, position, end));
14618}
14619
14620/***/ }),
14621/* 176 */
14622/***/ (function(module, exports, __webpack_require__) {
14623
14624"use strict";
14625
14626
14627Object.defineProperty(exports, "__esModule", {
14628 value: true
14629});
14630exports.assertValidName = assertValidName;
14631exports.formatWarning = formatWarning;
14632/**
14633 * Copyright (c) 2015-present, Facebook, Inc.
14634 *
14635 * This source code is licensed under the MIT license found in the
14636 * LICENSE file in the root directory of this source tree.
14637 *
14638 *
14639 */
14640
14641var NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
14642var ERROR_PREFIX_RX = /^Error: /;
14643
14644// Silences warnings if an environment flag is enabled
14645var noNameWarning = Boolean(process && process.env && process.env.GRAPHQL_NO_NAME_WARNING);
14646
14647// Ensures console warnings are only issued once.
14648var hasWarnedAboutDunder = false;
14649
14650/**
14651 * Upholds the spec rules about naming.
14652 */
14653function assertValidName(name, isIntrospection) {
14654 if (!name || typeof name !== 'string') {
14655 throw new Error('Must be named. Unexpected name: ' + name + '.');
14656 }
14657 if (!isIntrospection && !hasWarnedAboutDunder && !noNameWarning && name.slice(0, 2) === '__') {
14658 hasWarnedAboutDunder = true;
14659 /* eslint-disable no-console */
14660 if (console && console.warn) {
14661 var error = new Error('Name "' + name + '" must not begin with "__", which is reserved by ' + 'GraphQL introspection. In a future release of graphql this will ' + 'become a hard error.');
14662 console.warn(formatWarning(error));
14663 }
14664 /* eslint-enable no-console */
14665 }
14666 if (!NAME_RX.test(name)) {
14667 throw new Error('Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "' + name + '" does not.');
14668 }
14669}
14670
14671/**
14672 * Returns a human-readable warning based an the supplied Error object,
14673 * including stack trace information if available.
14674 */
14675function formatWarning(error) {
14676 var formatted = '';
14677 var errorString = String(error).replace(ERROR_PREFIX_RX, '');
14678 var stack = error.stack;
14679 if (stack) {
14680 formatted = stack.replace(ERROR_PREFIX_RX, '');
14681 }
14682 if (formatted.indexOf(errorString) === -1) {
14683 formatted = errorString + '\n' + formatted;
14684 }
14685 return formatted.trim();
14686}
14687
14688/***/ }),
14689/* 177 */
14690/***/ (function(module, exports, __webpack_require__) {
14691
14692"use strict";
14693
14694
14695Object.defineProperty(exports, "__esModule", {
14696 value: true
14697});
14698
14699var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
14700 * Copyright (c) 2015-present, Facebook, Inc.
14701 *
14702 * This source code is licensed under the MIT license found in the
14703 * LICENSE file in the root directory of this source tree.
14704 *
14705 *
14706 */
14707
14708exports.astFromValue = astFromValue;
14709
14710var _iterall = __webpack_require__(39);
14711
14712var _invariant = __webpack_require__(11);
14713
14714var _invariant2 = _interopRequireDefault(_invariant);
14715
14716var _isNullish = __webpack_require__(66);
14717
14718var _isNullish2 = _interopRequireDefault(_isNullish);
14719
14720var _isInvalid = __webpack_require__(86);
14721
14722var _isInvalid2 = _interopRequireDefault(_isInvalid);
14723
14724var _kinds = __webpack_require__(12);
14725
14726var Kind = _interopRequireWildcard(_kinds);
14727
14728var _definition = __webpack_require__(6);
14729
14730var _scalars = __webpack_require__(52);
14731
14732function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
14733
14734function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14735
14736/**
14737 * Produces a GraphQL Value AST given a JavaScript value.
14738 *
14739 * A GraphQL type must be provided, which will be used to interpret different
14740 * JavaScript values.
14741 *
14742 * | JSON Value | GraphQL Value |
14743 * | ------------- | -------------------- |
14744 * | Object | Input Object |
14745 * | Array | List |
14746 * | Boolean | Boolean |
14747 * | String | String / Enum Value |
14748 * | Number | Int / Float |
14749 * | Mixed | Enum Value |
14750 * | null | NullValue |
14751 *
14752 */
14753function astFromValue(value, type) {
14754 // Ensure flow knows that we treat function params as const.
14755 var _value = value;
14756
14757 if (type instanceof _definition.GraphQLNonNull) {
14758 var astValue = astFromValue(_value, type.ofType);
14759 if (astValue && astValue.kind === Kind.NULL) {
14760 return null;
14761 }
14762 return astValue;
14763 }
14764
14765 // only explicit null, not undefined, NaN
14766 if (_value === null) {
14767 return { kind: Kind.NULL };
14768 }
14769
14770 // undefined, NaN
14771 if ((0, _isInvalid2.default)(_value)) {
14772 return null;
14773 }
14774
14775 // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
14776 // the value is not an array, convert the value using the list's item type.
14777 if (type instanceof _definition.GraphQLList) {
14778 var itemType = type.ofType;
14779 if ((0, _iterall.isCollection)(_value)) {
14780 var valuesNodes = [];
14781 (0, _iterall.forEach)(_value, function (item) {
14782 var itemNode = astFromValue(item, itemType);
14783 if (itemNode) {
14784 valuesNodes.push(itemNode);
14785 }
14786 });
14787 return { kind: Kind.LIST, values: valuesNodes };
14788 }
14789 return astFromValue(_value, itemType);
14790 }
14791
14792 // Populate the fields of the input object by creating ASTs from each value
14793 // in the JavaScript object according to the fields in the input type.
14794 if (type instanceof _definition.GraphQLInputObjectType) {
14795 if (_value === null || (typeof _value === 'undefined' ? 'undefined' : _typeof(_value)) !== 'object') {
14796 return null;
14797 }
14798 var fields = type.getFields();
14799 var fieldNodes = [];
14800 Object.keys(fields).forEach(function (fieldName) {
14801 var fieldType = fields[fieldName].type;
14802 var fieldValue = astFromValue(_value[fieldName], fieldType);
14803 if (fieldValue) {
14804 fieldNodes.push({
14805 kind: Kind.OBJECT_FIELD,
14806 name: { kind: Kind.NAME, value: fieldName },
14807 value: fieldValue
14808 });
14809 }
14810 });
14811 return { kind: Kind.OBJECT, fields: fieldNodes };
14812 }
14813
14814 !(type instanceof _definition.GraphQLScalarType || type instanceof _definition.GraphQLEnumType) ? (0, _invariant2.default)(0, 'Must provide Input Type, cannot use: ' + String(type)) : void 0;
14815
14816 // Since value is an internally represented value, it must be serialized
14817 // to an externally represented value before converting into an AST.
14818 var serialized = type.serialize(_value);
14819 if ((0, _isNullish2.default)(serialized)) {
14820 return null;
14821 }
14822
14823 // Others serialize based on their corresponding JavaScript scalar types.
14824 if (typeof serialized === 'boolean') {
14825 return { kind: Kind.BOOLEAN, value: serialized };
14826 }
14827
14828 // JavaScript numbers can be Int or Float values.
14829 if (typeof serialized === 'number') {
14830 var stringNum = String(serialized);
14831 return (/^[0-9]+$/.test(stringNum) ? { kind: Kind.INT, value: stringNum } : { kind: Kind.FLOAT, value: stringNum }
14832 );
14833 }
14834
14835 if (typeof serialized === 'string') {
14836 // Enum types use Enum literals.
14837 if (type instanceof _definition.GraphQLEnumType) {
14838 return { kind: Kind.ENUM, value: serialized };
14839 }
14840
14841 // ID types can use Int literals.
14842 if (type === _scalars.GraphQLID && /^[0-9]+$/.test(serialized)) {
14843 return { kind: Kind.INT, value: serialized };
14844 }
14845
14846 // Use JSON stringify, which uses the same string encoding as GraphQL,
14847 // then remove the quotes.
14848 return {
14849 kind: Kind.STRING,
14850 value: JSON.stringify(serialized).slice(1, -1)
14851 };
14852 }
14853
14854 throw new TypeError('Cannot convert value to AST: ' + String(serialized));
14855}
14856
14857/***/ }),
14858/* 178 */
14859/***/ (function(module, exports, __webpack_require__) {
14860
14861"use strict";
14862
14863
14864Object.defineProperty(exports, "__esModule", {
14865 value: true
14866});
14867exports.TypeInfo = undefined;
14868
14869var _kinds = __webpack_require__(12);
14870
14871var Kind = _interopRequireWildcard(_kinds);
14872
14873var _definition = __webpack_require__(6);
14874
14875var _introspection = __webpack_require__(67);
14876
14877var _typeFromAST = __webpack_require__(46);
14878
14879var _find = __webpack_require__(76);
14880
14881var _find2 = _interopRequireDefault(_find);
14882
14883function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14884
14885function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
14886
14887function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
14888 * Copyright (c) 2015-present, Facebook, Inc.
14889 *
14890 * This source code is licensed under the MIT license found in the
14891 * LICENSE file in the root directory of this source tree.
14892 *
14893 *
14894 */
14895
14896/**
14897 * TypeInfo is a utility class which, given a GraphQL schema, can keep track
14898 * of the current field and type definitions at any point in a GraphQL document
14899 * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
14900 */
14901var TypeInfo = exports.TypeInfo = function () {
14902 function TypeInfo(schema,
14903 // NOTE: this experimental optional second parameter is only needed in order
14904 // to support non-spec-compliant codebases. You should never need to use it.
14905 getFieldDefFn) {
14906 _classCallCheck(this, TypeInfo);
14907
14908 this._schema = schema;
14909 this._typeStack = [];
14910 this._parentTypeStack = [];
14911 this._inputTypeStack = [];
14912 this._fieldDefStack = [];
14913 this._directive = null;
14914 this._argument = null;
14915 this._enumValue = null;
14916 this._getFieldDef = getFieldDefFn || getFieldDef;
14917 }
14918
14919 TypeInfo.prototype.getType = function getType() {
14920 if (this._typeStack.length > 0) {
14921 return this._typeStack[this._typeStack.length - 1];
14922 }
14923 };
14924
14925 TypeInfo.prototype.getParentType = function getParentType() {
14926 if (this._parentTypeStack.length > 0) {
14927 return this._parentTypeStack[this._parentTypeStack.length - 1];
14928 }
14929 };
14930
14931 TypeInfo.prototype.getInputType = function getInputType() {
14932 if (this._inputTypeStack.length > 0) {
14933 return this._inputTypeStack[this._inputTypeStack.length - 1];
14934 }
14935 };
14936
14937 TypeInfo.prototype.getFieldDef = function getFieldDef() {
14938 if (this._fieldDefStack.length > 0) {
14939 return this._fieldDefStack[this._fieldDefStack.length - 1];
14940 }
14941 };
14942
14943 TypeInfo.prototype.getDirective = function getDirective() {
14944 return this._directive;
14945 };
14946
14947 TypeInfo.prototype.getArgument = function getArgument() {
14948 return this._argument;
14949 };
14950
14951 TypeInfo.prototype.getEnumValue = function getEnumValue() {
14952 return this._enumValue;
14953 };
14954
14955 // Flow does not yet handle this case.
14956
14957
14958 TypeInfo.prototype.enter = function enter(node /* ASTNode */) {
14959 var schema = this._schema;
14960 switch (node.kind) {
14961 case Kind.SELECTION_SET:
14962 var namedType = (0, _definition.getNamedType)(this.getType());
14963 this._parentTypeStack.push((0, _definition.isCompositeType)(namedType) ? namedType : undefined);
14964 break;
14965 case Kind.FIELD:
14966 var parentType = this.getParentType();
14967 var fieldDef = void 0;
14968 if (parentType) {
14969 fieldDef = this._getFieldDef(schema, parentType, node);
14970 }
14971 this._fieldDefStack.push(fieldDef);
14972 this._typeStack.push(fieldDef && fieldDef.type);
14973 break;
14974 case Kind.DIRECTIVE:
14975 this._directive = schema.getDirective(node.name.value);
14976 break;
14977 case Kind.OPERATION_DEFINITION:
14978 var type = void 0;
14979 if (node.operation === 'query') {
14980 type = schema.getQueryType();
14981 } else if (node.operation === 'mutation') {
14982 type = schema.getMutationType();
14983 } else if (node.operation === 'subscription') {
14984 type = schema.getSubscriptionType();
14985 }
14986 this._typeStack.push(type);
14987 break;
14988 case Kind.INLINE_FRAGMENT:
14989 case Kind.FRAGMENT_DEFINITION:
14990 var typeConditionAST = node.typeCondition;
14991 var outputType = typeConditionAST ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) : this.getType();
14992 this._typeStack.push((0, _definition.isOutputType)(outputType) ? outputType : undefined);
14993 break;
14994 case Kind.VARIABLE_DEFINITION:
14995 var inputType = (0, _typeFromAST.typeFromAST)(schema, node.type);
14996 this._inputTypeStack.push((0, _definition.isInputType)(inputType) ? inputType : undefined);
14997 break;
14998 case Kind.ARGUMENT:
14999 var argDef = void 0;
15000 var argType = void 0;
15001 var fieldOrDirective = this.getDirective() || this.getFieldDef();
15002 if (fieldOrDirective) {
15003 argDef = (0, _find2.default)(fieldOrDirective.args, function (arg) {
15004 return arg.name === node.name.value;
15005 });
15006 if (argDef) {
15007 argType = argDef.type;
15008 }
15009 }
15010 this._argument = argDef;
15011 this._inputTypeStack.push(argType);
15012 break;
15013 case Kind.LIST:
15014 var listType = (0, _definition.getNullableType)(this.getInputType());
15015 this._inputTypeStack.push(listType instanceof _definition.GraphQLList ? listType.ofType : undefined);
15016 break;
15017 case Kind.OBJECT_FIELD:
15018 var objectType = (0, _definition.getNamedType)(this.getInputType());
15019 var fieldType = void 0;
15020 if (objectType instanceof _definition.GraphQLInputObjectType) {
15021 var inputField = objectType.getFields()[node.name.value];
15022 fieldType = inputField ? inputField.type : undefined;
15023 }
15024 this._inputTypeStack.push(fieldType);
15025 break;
15026 case Kind.ENUM:
15027 var enumType = (0, _definition.getNamedType)(this.getInputType());
15028 var enumValue = void 0;
15029 if (enumType instanceof _definition.GraphQLEnumType) {
15030 enumValue = enumType.getValue(node.value);
15031 }
15032 this._enumValue = enumValue;
15033 break;
15034 }
15035 };
15036
15037 TypeInfo.prototype.leave = function leave(node) {
15038 switch (node.kind) {
15039 case Kind.SELECTION_SET:
15040 this._parentTypeStack.pop();
15041 break;
15042 case Kind.FIELD:
15043 this._fieldDefStack.pop();
15044 this._typeStack.pop();
15045 break;
15046 case Kind.DIRECTIVE:
15047 this._directive = null;
15048 break;
15049 case Kind.OPERATION_DEFINITION:
15050 case Kind.INLINE_FRAGMENT:
15051 case Kind.FRAGMENT_DEFINITION:
15052 this._typeStack.pop();
15053 break;
15054 case Kind.VARIABLE_DEFINITION:
15055 this._inputTypeStack.pop();
15056 break;
15057 case Kind.ARGUMENT:
15058 this._argument = null;
15059 this._inputTypeStack.pop();
15060 break;
15061 case Kind.LIST:
15062 case Kind.OBJECT_FIELD:
15063 this._inputTypeStack.pop();
15064 break;
15065 case Kind.ENUM:
15066 this._enumValue = null;
15067 break;
15068 }
15069 };
15070
15071 return TypeInfo;
15072}();
15073
15074/**
15075 * Not exactly the same as the executor's definition of getFieldDef, in this
15076 * statically evaluated environment we do not always have an Object type,
15077 * and need to handle Interface and Union types.
15078 */
15079
15080
15081function getFieldDef(schema, parentType, fieldNode) {
15082 var name = fieldNode.name.value;
15083 if (name === _introspection.SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
15084 return _introspection.SchemaMetaFieldDef;
15085 }
15086 if (name === _introspection.TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
15087 return _introspection.TypeMetaFieldDef;
15088 }
15089 if (name === _introspection.TypeNameMetaFieldDef.name && (0, _definition.isCompositeType)(parentType)) {
15090 return _introspection.TypeNameMetaFieldDef;
15091 }
15092 if (parentType instanceof _definition.GraphQLObjectType || parentType instanceof _definition.GraphQLInterfaceType) {
15093 return parentType.getFields()[name];
15094 }
15095}
15096
15097/***/ }),
15098/* 179 */
15099/***/ (function(module, exports, __webpack_require__) {
15100
15101"use strict";
15102
15103
15104Object.defineProperty(exports, "__esModule", {
15105 value: true
15106});
15107exports.default = suggestionList;
15108/**
15109 * Copyright (c) 2015-present, Facebook, Inc.
15110 *
15111 * This source code is licensed under the MIT license found in the
15112 * LICENSE file in the root directory of this source tree.
15113 *
15114 *
15115 */
15116
15117/**
15118 * Given an invalid input string and a list of valid options, returns a filtered
15119 * list of valid options sorted based on their similarity with the input.
15120 */
15121function suggestionList(input, options) {
15122 var optionsByDistance = Object.create(null);
15123 var oLength = options.length;
15124 var inputThreshold = input.length / 2;
15125 for (var i = 0; i < oLength; i++) {
15126 var distance = lexicalDistance(input, options[i]);
15127 var threshold = Math.max(inputThreshold, options[i].length / 2, 1);
15128 if (distance <= threshold) {
15129 optionsByDistance[options[i]] = distance;
15130 }
15131 }
15132 return Object.keys(optionsByDistance).sort(function (a, b) {
15133 return optionsByDistance[a] - optionsByDistance[b];
15134 });
15135}
15136
15137/**
15138 * Computes the lexical distance between strings A and B.
15139 *
15140 * The "distance" between two strings is given by counting the minimum number
15141 * of edits needed to transform string A into string B. An edit can be an
15142 * insertion, deletion, or substitution of a single character, or a swap of two
15143 * adjacent characters.
15144 *
15145 * This distance can be useful for detecting typos in input or sorting
15146 *
15147 * @param {string} a
15148 * @param {string} b
15149 * @return {int} distance in number of edits
15150 */
15151function lexicalDistance(a, b) {
15152 var i = void 0;
15153 var j = void 0;
15154 var d = [];
15155 var aLength = a.length;
15156 var bLength = b.length;
15157
15158 for (i = 0; i <= aLength; i++) {
15159 d[i] = [i];
15160 }
15161
15162 for (j = 1; j <= bLength; j++) {
15163 d[0][j] = j;
15164 }
15165
15166 for (i = 1; i <= aLength; i++) {
15167 for (j = 1; j <= bLength; j++) {
15168 var cost = a[i - 1] === b[j - 1] ? 0 : 1;
15169
15170 d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
15171
15172 if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
15173 d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);
15174 }
15175 }
15176 }
15177
15178 return d[aLength][bLength];
15179}
15180
15181/***/ }),
15182/* 180 */
15183/***/ (function(module, exports, __webpack_require__) {
15184
15185"use strict";
15186
15187
15188Object.defineProperty(exports, "__esModule", {
15189 value: true
15190});
15191exports.default = quotedOrList;
15192/**
15193 * Copyright (c) 2015-present, Facebook, Inc.
15194 *
15195 * This source code is licensed under the MIT license found in the
15196 * LICENSE file in the root directory of this source tree.
15197 *
15198 *
15199 */
15200
15201var MAX_LENGTH = 5;
15202
15203/**
15204 * Given [ A, B, C ] return '"A", "B", or "C"'.
15205 */
15206function quotedOrList(items) {
15207 var selected = items.slice(0, MAX_LENGTH);
15208 return selected.map(function (item) {
15209 return '"' + item + '"';
15210 }).reduce(function (list, quoted, index) {
15211 return list + (selected.length > 2 ? ', ' : ' ') + (index === selected.length - 1 ? 'or ' : '') + quoted;
15212 });
15213}
15214
15215/***/ }),
15216/* 181 */
15217/***/ (function(module, exports, __webpack_require__) {
15218
15219"use strict";
15220
15221
15222Object.defineProperty(exports, "__esModule", {
15223 value: true
15224});
15225exports.defaultFieldResolver = undefined;
15226
15227var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
15228 * Copyright (c) 2015-present, Facebook, Inc.
15229 *
15230 * This source code is licensed under the MIT license found in the
15231 * LICENSE file in the root directory of this source tree.
15232 *
15233 *
15234 */
15235
15236exports.execute = execute;
15237exports.responsePathAsArray = responsePathAsArray;
15238exports.addPath = addPath;
15239exports.assertValidExecutionArguments = assertValidExecutionArguments;
15240exports.buildExecutionContext = buildExecutionContext;
15241exports.getOperationRootType = getOperationRootType;
15242exports.collectFields = collectFields;
15243exports.buildResolveInfo = buildResolveInfo;
15244exports.resolveFieldValueOrError = resolveFieldValueOrError;
15245exports.getFieldDef = getFieldDef;
15246
15247var _iterall = __webpack_require__(39);
15248
15249var _error = __webpack_require__(3);
15250
15251var _invariant = __webpack_require__(11);
15252
15253var _invariant2 = _interopRequireDefault(_invariant);
15254
15255var _isNullish = __webpack_require__(66);
15256
15257var _isNullish2 = _interopRequireDefault(_isNullish);
15258
15259var _typeFromAST = __webpack_require__(46);
15260
15261var _kinds = __webpack_require__(12);
15262
15263var Kind = _interopRequireWildcard(_kinds);
15264
15265var _values = __webpack_require__(182);
15266
15267var _definition = __webpack_require__(6);
15268
15269var _schema = __webpack_require__(44);
15270
15271var _introspection = __webpack_require__(67);
15272
15273var _directives = __webpack_require__(45);
15274
15275function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15276
15277function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15278
15279/**
15280 * Terminology
15281 *
15282 * "Definitions" are the generic name for top-level statements in the document.
15283 * Examples of this include:
15284 * 1) Operations (such as a query)
15285 * 2) Fragments
15286 *
15287 * "Operations" are a generic name for requests in the document.
15288 * Examples of this include:
15289 * 1) query,
15290 * 2) mutation
15291 *
15292 * "Selections" are the definitions that can appear legally and at
15293 * single level of the query. These include:
15294 * 1) field references e.g "a"
15295 * 2) fragment "spreads" e.g. "...c"
15296 * 3) inline fragment "spreads" e.g. "...on Type { a }"
15297 */
15298
15299/**
15300 * Data that must be available at all points during query execution.
15301 *
15302 * Namely, schema of the type system that is currently executing,
15303 * and the fragments defined in the query document
15304 */
15305
15306
15307/**
15308 * The result of GraphQL execution.
15309 *
15310 * - `errors` is included when any errors occurred as a non-empty array.
15311 * - `data` is the result of a successful execution of the query.
15312 */
15313
15314
15315/**
15316 * Implements the "Evaluating requests" section of the GraphQL specification.
15317 *
15318 * Returns a Promise that will eventually be resolved and never rejected.
15319 *
15320 * If the arguments to this function do not result in a legal execution context,
15321 * a GraphQLError will be thrown immediately explaining the invalid input.
15322 *
15323 * Accepts either an object with named arguments, or individual arguments.
15324 */
15325
15326/* eslint-disable no-redeclare */
15327function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
15328 // Extract arguments from object args if provided.
15329 return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
15330}
15331
15332function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
15333 // If arguments are missing or incorrect, throw an error.
15334 assertValidExecutionArguments(schema, document, variableValues);
15335
15336 // If a valid context cannot be created due to incorrect arguments,
15337 // a "Response" with only errors is returned.
15338 var context = void 0;
15339 try {
15340 context = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
15341 } catch (error) {
15342 return Promise.resolve({ errors: [error] });
15343 }
15344
15345 // Return a Promise that will eventually resolve to the data described by
15346 // The "Response" section of the GraphQL specification.
15347 //
15348 // If errors are encountered while executing a GraphQL field, only that
15349 // field and its descendants will be omitted, and sibling fields will still
15350 // be executed. An execution which encounters errors will still result in a
15351 // resolved Promise.
15352 return Promise.resolve(executeOperation(context, context.operation, rootValue)).then(function (data) {
15353 return context.errors.length === 0 ? { data: data } : { errors: context.errors, data: data };
15354 });
15355}
15356
15357/**
15358 * Given a ResponsePath (found in the `path` entry in the information provided
15359 * as the last argument to a field resolver), return an Array of the path keys.
15360 */
15361function responsePathAsArray(path) {
15362 var flattened = [];
15363 var curr = path;
15364 while (curr) {
15365 flattened.push(curr.key);
15366 curr = curr.prev;
15367 }
15368 return flattened.reverse();
15369}
15370
15371/**
15372 * Given a ResponsePath and a key, return a new ResponsePath containing the
15373 * new key.
15374 */
15375function addPath(prev, key) {
15376 return { prev: prev, key: key };
15377}
15378
15379/**
15380 * Essential assertions before executing to provide developer feedback for
15381 * improper use of the GraphQL library.
15382 */
15383function assertValidExecutionArguments(schema, document, rawVariableValues) {
15384 !schema ? (0, _invariant2.default)(0, 'Must provide schema') : void 0;
15385 !document ? (0, _invariant2.default)(0, 'Must provide document') : void 0;
15386 !(schema instanceof _schema.GraphQLSchema) ? (0, _invariant2.default)(0, 'Schema must be an instance of GraphQLSchema. Also ensure that there are ' + 'not multiple versions of GraphQL installed in your node_modules directory.') : void 0;
15387
15388 // Variables, if provided, must be an object.
15389 !(!rawVariableValues || (typeof rawVariableValues === 'undefined' ? 'undefined' : _typeof(rawVariableValues)) === 'object') ? (0, _invariant2.default)(0, 'Variables must be provided as an Object where each property is a ' + 'variable value. Perhaps look to see if an unparsed JSON string ' + 'was provided.') : void 0;
15390}
15391
15392/**
15393 * Constructs a ExecutionContext object from the arguments passed to
15394 * execute, which we will pass throughout the other execution methods.
15395 *
15396 * Throws a GraphQLError if a valid execution context cannot be created.
15397 */
15398function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver) {
15399 var errors = [];
15400 var operation = void 0;
15401 var fragments = Object.create(null);
15402 document.definitions.forEach(function (definition) {
15403 switch (definition.kind) {
15404 case Kind.OPERATION_DEFINITION:
15405 if (!operationName && operation) {
15406 throw new _error.GraphQLError('Must provide operation name if query contains multiple operations.');
15407 }
15408 if (!operationName || definition.name && definition.name.value === operationName) {
15409 operation = definition;
15410 }
15411 break;
15412 case Kind.FRAGMENT_DEFINITION:
15413 fragments[definition.name.value] = definition;
15414 break;
15415 default:
15416 throw new _error.GraphQLError('GraphQL cannot execute a request containing a ' + definition.kind + '.', [definition]);
15417 }
15418 });
15419 if (!operation) {
15420 if (operationName) {
15421 throw new _error.GraphQLError('Unknown operation named "' + operationName + '".');
15422 } else {
15423 throw new _error.GraphQLError('Must provide an operation.');
15424 }
15425 }
15426 var variableValues = (0, _values.getVariableValues)(schema, operation.variableDefinitions || [], rawVariableValues || {});
15427
15428 return {
15429 schema: schema,
15430 fragments: fragments,
15431 rootValue: rootValue,
15432 contextValue: contextValue,
15433 operation: operation,
15434 variableValues: variableValues,
15435 fieldResolver: fieldResolver || defaultFieldResolver,
15436 errors: errors
15437 };
15438}
15439
15440/**
15441 * Implements the "Evaluating operations" section of the spec.
15442 */
15443function executeOperation(exeContext, operation, rootValue) {
15444 var type = getOperationRootType(exeContext.schema, operation);
15445 var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
15446
15447 var path = undefined;
15448
15449 // Errors from sub-fields of a NonNull type may propagate to the top level,
15450 // at which point we still log the error and null the parent field, which
15451 // in this case is the entire response.
15452 //
15453 // Similar to completeValueCatchingError.
15454 try {
15455 var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);
15456 var promise = getPromise(result);
15457 if (promise) {
15458 return promise.then(undefined, function (error) {
15459 exeContext.errors.push(error);
15460 return Promise.resolve(null);
15461 });
15462 }
15463 return result;
15464 } catch (error) {
15465 exeContext.errors.push(error);
15466 return null;
15467 }
15468}
15469
15470/**
15471 * Extracts the root type of the operation from the schema.
15472 */
15473function getOperationRootType(schema, operation) {
15474 switch (operation.operation) {
15475 case 'query':
15476 return schema.getQueryType();
15477 case 'mutation':
15478 var mutationType = schema.getMutationType();
15479 if (!mutationType) {
15480 throw new _error.GraphQLError('Schema is not configured for mutations', [operation]);
15481 }
15482 return mutationType;
15483 case 'subscription':
15484 var subscriptionType = schema.getSubscriptionType();
15485 if (!subscriptionType) {
15486 throw new _error.GraphQLError('Schema is not configured for subscriptions', [operation]);
15487 }
15488 return subscriptionType;
15489 default:
15490 throw new _error.GraphQLError('Can only execute queries, mutations and subscriptions', [operation]);
15491 }
15492}
15493
15494/**
15495 * Implements the "Evaluating selection sets" section of the spec
15496 * for "write" mode.
15497 */
15498function executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {
15499 return Object.keys(fields).reduce(function (prevPromise, responseName) {
15500 return prevPromise.then(function (results) {
15501 var fieldNodes = fields[responseName];
15502 var fieldPath = addPath(path, responseName);
15503 var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
15504 if (result === undefined) {
15505 return results;
15506 }
15507 var promise = getPromise(result);
15508 if (promise) {
15509 return promise.then(function (resolvedResult) {
15510 results[responseName] = resolvedResult;
15511 return results;
15512 });
15513 }
15514 results[responseName] = result;
15515 return results;
15516 });
15517 }, Promise.resolve({}));
15518}
15519
15520/**
15521 * Implements the "Evaluating selection sets" section of the spec
15522 * for "read" mode.
15523 */
15524function executeFields(exeContext, parentType, sourceValue, path, fields) {
15525 var containsPromise = false;
15526
15527 var finalResults = Object.keys(fields).reduce(function (results, responseName) {
15528 var fieldNodes = fields[responseName];
15529 var fieldPath = addPath(path, responseName);
15530 var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
15531 if (result === undefined) {
15532 return results;
15533 }
15534 results[responseName] = result;
15535 if (getPromise(result)) {
15536 containsPromise = true;
15537 }
15538 return results;
15539 }, Object.create(null));
15540
15541 // If there are no promises, we can just return the object
15542 if (!containsPromise) {
15543 return finalResults;
15544 }
15545
15546 // Otherwise, results is a map from field name to the result
15547 // of resolving that field, which is possibly a promise. Return
15548 // a promise that will return this same map, but with any
15549 // promises replaced with the values they resolved to.
15550 return promiseForObject(finalResults);
15551}
15552
15553/**
15554 * Given a selectionSet, adds all of the fields in that selection to
15555 * the passed in map of fields, and returns it at the end.
15556 *
15557 * CollectFields requires the "runtime type" of an object. For a field which
15558 * returns an Interface or Union type, the "runtime type" will be the actual
15559 * Object type returned by that field.
15560 */
15561function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {
15562 for (var i = 0; i < selectionSet.selections.length; i++) {
15563 var selection = selectionSet.selections[i];
15564 switch (selection.kind) {
15565 case Kind.FIELD:
15566 if (!shouldIncludeNode(exeContext, selection)) {
15567 continue;
15568 }
15569 var name = getFieldEntryKey(selection);
15570 if (!fields[name]) {
15571 fields[name] = [];
15572 }
15573 fields[name].push(selection);
15574 break;
15575 case Kind.INLINE_FRAGMENT:
15576 if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
15577 continue;
15578 }
15579 collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
15580 break;
15581 case Kind.FRAGMENT_SPREAD:
15582 var fragName = selection.name.value;
15583 if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
15584 continue;
15585 }
15586 visitedFragmentNames[fragName] = true;
15587 var fragment = exeContext.fragments[fragName];
15588 if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
15589 continue;
15590 }
15591 collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
15592 break;
15593 }
15594 }
15595 return fields;
15596}
15597
15598/**
15599 * Determines if a field should be included based on the @include and @skip
15600 * directives, where @skip has higher precidence than @include.
15601 */
15602function shouldIncludeNode(exeContext, node) {
15603 var skip = (0, _values.getDirectiveValues)(_directives.GraphQLSkipDirective, node, exeContext.variableValues);
15604 if (skip && skip.if === true) {
15605 return false;
15606 }
15607
15608 var include = (0, _values.getDirectiveValues)(_directives.GraphQLIncludeDirective, node, exeContext.variableValues);
15609 if (include && include.if === false) {
15610 return false;
15611 }
15612 return true;
15613}
15614
15615/**
15616 * Determines if a fragment is applicable to the given type.
15617 */
15618function doesFragmentConditionMatch(exeContext, fragment, type) {
15619 var typeConditionNode = fragment.typeCondition;
15620 if (!typeConditionNode) {
15621 return true;
15622 }
15623 var conditionalType = (0, _typeFromAST.typeFromAST)(exeContext.schema, typeConditionNode);
15624 if (conditionalType === type) {
15625 return true;
15626 }
15627 if ((0, _definition.isAbstractType)(conditionalType)) {
15628 return exeContext.schema.isPossibleType(conditionalType, type);
15629 }
15630 return false;
15631}
15632
15633/**
15634 * This function transforms a JS object `ObjMap<Promise<T>>` into
15635 * a `Promise<ObjMap<T>>`
15636 *
15637 * This is akin to bluebird's `Promise.props`, but implemented only using
15638 * `Promise.all` so it will work with any implementation of ES6 promises.
15639 */
15640function promiseForObject(object) {
15641 var keys = Object.keys(object);
15642 var valuesAndPromises = keys.map(function (name) {
15643 return object[name];
15644 });
15645 return Promise.all(valuesAndPromises).then(function (values) {
15646 return values.reduce(function (resolvedObject, value, i) {
15647 resolvedObject[keys[i]] = value;
15648 return resolvedObject;
15649 }, Object.create(null));
15650 });
15651}
15652
15653/**
15654 * Implements the logic to compute the key of a given field's entry
15655 */
15656function getFieldEntryKey(node) {
15657 return node.alias ? node.alias.value : node.name.value;
15658}
15659
15660/**
15661 * Resolves the field on the given source object. In particular, this
15662 * figures out the value that the field returns by calling its resolve function,
15663 * then calls completeValue to complete promises, serialize scalars, or execute
15664 * the sub-selection-set for objects.
15665 */
15666function resolveField(exeContext, parentType, source, fieldNodes, path) {
15667 var fieldNode = fieldNodes[0];
15668 var fieldName = fieldNode.name.value;
15669
15670 var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);
15671 if (!fieldDef) {
15672 return;
15673 }
15674
15675 var resolveFn = fieldDef.resolve || exeContext.fieldResolver;
15676
15677 var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path);
15678
15679 // Get the resolve function, regardless of if its result is normal
15680 // or abrupt (error).
15681 var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info);
15682
15683 return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result);
15684}
15685
15686function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
15687 // The resolve function's optional fourth argument is a collection of
15688 // information about the current execution state.
15689 return {
15690 fieldName: fieldNodes[0].name.value,
15691 fieldNodes: fieldNodes,
15692 returnType: fieldDef.type,
15693 parentType: parentType,
15694 path: path,
15695 schema: exeContext.schema,
15696 fragments: exeContext.fragments,
15697 rootValue: exeContext.rootValue,
15698 operation: exeContext.operation,
15699 variableValues: exeContext.variableValues
15700 };
15701}
15702
15703// Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
15704// function. Returns the result of resolveFn or the abrupt-return Error object.
15705function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) {
15706 try {
15707 // Build a JS object of arguments from the field.arguments AST, using the
15708 // variables scope to fulfill any variable references.
15709 // TODO: find a way to memoize, in case this field is within a List type.
15710 var args = (0, _values.getArgumentValues)(fieldDef, fieldNodes[0], exeContext.variableValues);
15711
15712 // The resolve function's optional third argument is a context value that
15713 // is provided to every resolve function within an execution. It is commonly
15714 // used to represent an authenticated user, or request-specific caches.
15715 var context = exeContext.contextValue;
15716
15717 return resolveFn(source, args, context, info);
15718 } catch (error) {
15719 // Sometimes a non-error is thrown, wrap it as an Error for a
15720 // consistent interface.
15721 return error instanceof Error ? error : new Error(error);
15722 }
15723}
15724
15725// This is a small wrapper around completeValue which detects and logs errors
15726// in the execution context.
15727function completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) {
15728 // If the field type is non-nullable, then it is resolved without any
15729 // protection from errors, however it still properly locates the error.
15730 if (returnType instanceof _definition.GraphQLNonNull) {
15731 return completeValueWithLocatedError(exeContext, returnType, fieldNodes, info, path, result);
15732 }
15733
15734 // Otherwise, error protection is applied, logging the error and resolving
15735 // a null value for this field if one is encountered.
15736 try {
15737 var completed = completeValueWithLocatedError(exeContext, returnType, fieldNodes, info, path, result);
15738 var promise = getPromise(completed);
15739 if (promise) {
15740 // If `completeValueWithLocatedError` returned a rejected promise, log
15741 // the rejection error and resolve to null.
15742 // Note: we don't rely on a `catch` method, but we do expect "thenable"
15743 // to take a second callback for the error case.
15744 return promise.then(undefined, function (error) {
15745 exeContext.errors.push(error);
15746 return Promise.resolve(null);
15747 });
15748 }
15749 return completed;
15750 } catch (error) {
15751 // If `completeValueWithLocatedError` returned abruptly (threw an error),
15752 // log the error and return null.
15753 exeContext.errors.push(error);
15754 return null;
15755 }
15756}
15757
15758// This is a small wrapper around completeValue which annotates errors with
15759// location information.
15760function completeValueWithLocatedError(exeContext, returnType, fieldNodes, info, path, result) {
15761 try {
15762 var completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);
15763 var promise = getPromise(completed);
15764 if (promise) {
15765 return promise.then(undefined, function (error) {
15766 return Promise.reject((0, _error.locatedError)(error, fieldNodes, responsePathAsArray(path)));
15767 });
15768 }
15769 return completed;
15770 } catch (error) {
15771 throw (0, _error.locatedError)(error, fieldNodes, responsePathAsArray(path));
15772 }
15773}
15774
15775/**
15776 * Implements the instructions for completeValue as defined in the
15777 * "Field entries" section of the spec.
15778 *
15779 * If the field type is Non-Null, then this recursively completes the value
15780 * for the inner type. It throws a field error if that completion returns null,
15781 * as per the "Nullability" section of the spec.
15782 *
15783 * If the field type is a List, then this recursively completes the value
15784 * for the inner type on each item in the list.
15785 *
15786 * If the field type is a Scalar or Enum, ensures the completed value is a legal
15787 * value of the type by calling the `serialize` method of GraphQL type
15788 * definition.
15789 *
15790 * If the field is an abstract type, determine the runtime type of the value
15791 * and then complete based on that type
15792 *
15793 * Otherwise, the field type expects a sub-selection set, and will complete the
15794 * value by evaluating all sub-selections.
15795 */
15796function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
15797 // If result is a Promise, apply-lift over completeValue.
15798 var promise = getPromise(result);
15799 if (promise) {
15800 return promise.then(function (resolved) {
15801 return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);
15802 });
15803 }
15804
15805 // If result is an Error, throw a located error.
15806 if (result instanceof Error) {
15807 throw result;
15808 }
15809
15810 // If field type is NonNull, complete for inner type, and throw field error
15811 // if result is null.
15812 if (returnType instanceof _definition.GraphQLNonNull) {
15813 var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);
15814 if (completed === null) {
15815 throw new Error('Cannot return null for non-nullable field ' + info.parentType.name + '.' + info.fieldName + '.');
15816 }
15817 return completed;
15818 }
15819
15820 // If result value is null-ish (null, undefined, or NaN) then return null.
15821 if ((0, _isNullish2.default)(result)) {
15822 return null;
15823 }
15824
15825 // If field type is List, complete each item in the list with the inner type
15826 if (returnType instanceof _definition.GraphQLList) {
15827 return completeListValue(exeContext, returnType, fieldNodes, info, path, result);
15828 }
15829
15830 // If field type is a leaf type, Scalar or Enum, serialize to a valid value,
15831 // returning null if serialization is not possible.
15832 if ((0, _definition.isLeafType)(returnType)) {
15833 return completeLeafValue(returnType, result);
15834 }
15835
15836 // If field type is an abstract type, Interface or Union, determine the
15837 // runtime Object type and complete for that type.
15838 if ((0, _definition.isAbstractType)(returnType)) {
15839 return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);
15840 }
15841
15842 // If field type is Object, execute and complete all sub-selections.
15843 if (returnType instanceof _definition.GraphQLObjectType) {
15844 return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);
15845 }
15846
15847 // Not reachable. All possible output types have been considered.
15848 throw new Error('Cannot complete value of unexpected type "' + String(returnType) + '".');
15849}
15850
15851/**
15852 * Complete a list value by completing each item in the list with the
15853 * inner type
15854 */
15855function completeListValue(exeContext, returnType, fieldNodes, info, path, result) {
15856 !(0, _iterall.isCollection)(result) ? (0, _invariant2.default)(0, 'Expected Iterable, but did not find one for field ' + info.parentType.name + '.' + info.fieldName + '.') : void 0;
15857
15858 // This is specified as a simple map, however we're optimizing the path
15859 // where the list contains no Promises by avoiding creating another Promise.
15860 var itemType = returnType.ofType;
15861 var containsPromise = false;
15862 var completedResults = [];
15863 (0, _iterall.forEach)(result, function (item, index) {
15864 // No need to modify the info object containing the path,
15865 // since from here on it is not ever accessed by resolver functions.
15866 var fieldPath = addPath(path, index);
15867 var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item);
15868
15869 if (!containsPromise && getPromise(completedItem)) {
15870 containsPromise = true;
15871 }
15872 completedResults.push(completedItem);
15873 });
15874
15875 return containsPromise ? Promise.all(completedResults) : completedResults;
15876}
15877
15878/**
15879 * Complete a Scalar or Enum by serializing to a valid value, returning
15880 * null if serialization is not possible.
15881 */
15882function completeLeafValue(returnType, result) {
15883 !returnType.serialize ? (0, _invariant2.default)(0, 'Missing serialize method on type') : void 0;
15884 var serializedResult = returnType.serialize(result);
15885 if ((0, _isNullish2.default)(serializedResult)) {
15886 throw new Error('Expected a value of type "' + String(returnType) + '" but ' + ('received: ' + String(result)));
15887 }
15888 return serializedResult;
15889}
15890
15891/**
15892 * Complete a value of an abstract type by determining the runtime object type
15893 * of that value, then complete the value for that type.
15894 */
15895function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {
15896 var runtimeType = returnType.resolveType ? returnType.resolveType(result, exeContext.contextValue, info) : defaultResolveTypeFn(result, exeContext.contextValue, info, returnType);
15897
15898 var promise = getPromise(runtimeType);
15899 if (promise) {
15900 return promise.then(function (resolvedRuntimeType) {
15901 return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
15902 });
15903 }
15904
15905 return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
15906}
15907
15908function ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {
15909 var runtimeType = typeof runtimeTypeOrName === 'string' ? exeContext.schema.getType(runtimeTypeOrName) : runtimeTypeOrName;
15910
15911 if (!(runtimeType instanceof _definition.GraphQLObjectType)) {
15912 throw new _error.GraphQLError('Abstract type ' + returnType.name + ' must resolve to an Object type at ' + ('runtime for field ' + info.parentType.name + '.' + info.fieldName + ' with ') + ('value "' + String(result) + '", received "' + String(runtimeType) + '".'), fieldNodes);
15913 }
15914
15915 if (!exeContext.schema.isPossibleType(returnType, runtimeType)) {
15916 throw new _error.GraphQLError('Runtime Object type "' + runtimeType.name + '" is not a possible type ' + ('for "' + returnType.name + '".'), fieldNodes);
15917 }
15918
15919 return runtimeType;
15920}
15921
15922/**
15923 * Complete an Object value by executing all sub-selections.
15924 */
15925function completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {
15926 // If there is an isTypeOf predicate function, call it with the
15927 // current result. If isTypeOf returns false, then raise an error rather
15928 // than continuing execution.
15929 if (returnType.isTypeOf) {
15930 var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);
15931
15932 var promise = getPromise(isTypeOf);
15933 if (promise) {
15934 return promise.then(function (isTypeOfResult) {
15935 if (!isTypeOfResult) {
15936 throw invalidReturnTypeError(returnType, result, fieldNodes);
15937 }
15938 return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, info, path, result);
15939 });
15940 }
15941
15942 if (!isTypeOf) {
15943 throw invalidReturnTypeError(returnType, result, fieldNodes);
15944 }
15945 }
15946
15947 return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, info, path, result);
15948}
15949
15950function invalidReturnTypeError(returnType, result, fieldNodes) {
15951 return new _error.GraphQLError('Expected value of type "' + returnType.name + '" but got: ' + String(result) + '.', fieldNodes);
15952}
15953
15954function collectAndExecuteSubfields(exeContext, returnType, fieldNodes, info, path, result) {
15955 // Collect sub-fields to execute to complete this value.
15956 var subFieldNodes = Object.create(null);
15957 var visitedFragmentNames = Object.create(null);
15958 for (var i = 0; i < fieldNodes.length; i++) {
15959 var selectionSet = fieldNodes[i].selectionSet;
15960 if (selectionSet) {
15961 subFieldNodes = collectFields(exeContext, returnType, selectionSet, subFieldNodes, visitedFragmentNames);
15962 }
15963 }
15964
15965 return executeFields(exeContext, returnType, result, path, subFieldNodes);
15966}
15967
15968/**
15969 * If a resolveType function is not given, then a default resolve behavior is
15970 * used which tests each possible type for the abstract type by calling
15971 * isTypeOf for the object being coerced, returning the first type that matches.
15972 */
15973function defaultResolveTypeFn(value, context, info, abstractType) {
15974 var possibleTypes = info.schema.getPossibleTypes(abstractType);
15975 var promisedIsTypeOfResults = [];
15976
15977 for (var i = 0; i < possibleTypes.length; i++) {
15978 var type = possibleTypes[i];
15979
15980 if (type.isTypeOf) {
15981 var isTypeOfResult = type.isTypeOf(value, context, info);
15982
15983 var promise = getPromise(isTypeOfResult);
15984 if (promise) {
15985 promisedIsTypeOfResults[i] = promise;
15986 } else if (isTypeOfResult) {
15987 return type;
15988 }
15989 }
15990 }
15991
15992 if (promisedIsTypeOfResults.length) {
15993 return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {
15994 for (var _i = 0; _i < isTypeOfResults.length; _i++) {
15995 if (isTypeOfResults[_i]) {
15996 return possibleTypes[_i];
15997 }
15998 }
15999 });
16000 }
16001}
16002
16003/**
16004 * If a resolve function is not given, then a default resolve behavior is used
16005 * which takes the property of the source object of the same name as the field
16006 * and returns it as the result, or if it's a function, returns the result
16007 * of calling that function while passing along args and context.
16008 */
16009var defaultFieldResolver = exports.defaultFieldResolver = function defaultFieldResolver(source, args, context, info) {
16010 // ensure source is a value for which property access is acceptable.
16011 if ((typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' || typeof source === 'function') {
16012 var property = source[info.fieldName];
16013 if (typeof property === 'function') {
16014 return source[info.fieldName](args, context, info);
16015 }
16016 return property;
16017 }
16018};
16019
16020/**
16021 * Only returns the value if it acts like a Promise, i.e. has a "then" function,
16022 * otherwise returns void.
16023 */
16024function getPromise(value) {
16025 if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value !== null && typeof value.then === 'function') {
16026 return value;
16027 }
16028}
16029
16030/**
16031 * This method looks up the field on the given type defintion.
16032 * It has special casing for the two introspection fields, __schema
16033 * and __typename. __typename is special because it can always be
16034 * queried as a field, even in situations where no other fields
16035 * are allowed, like on a Union. __schema could get automatically
16036 * added to the query type, but that would require mutating type
16037 * definitions, which would cause issues.
16038 */
16039function getFieldDef(schema, parentType, fieldName) {
16040 if (fieldName === _introspection.SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
16041 return _introspection.SchemaMetaFieldDef;
16042 } else if (fieldName === _introspection.TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
16043 return _introspection.TypeMetaFieldDef;
16044 } else if (fieldName === _introspection.TypeNameMetaFieldDef.name) {
16045 return _introspection.TypeNameMetaFieldDef;
16046 }
16047 return parentType.getFields()[fieldName];
16048}
16049
16050/***/ }),
16051/* 182 */
16052/***/ (function(module, exports, __webpack_require__) {
16053
16054"use strict";
16055
16056
16057Object.defineProperty(exports, "__esModule", {
16058 value: true
16059});
16060
16061var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
16062 * Copyright (c) 2015-present, Facebook, Inc.
16063 *
16064 * This source code is licensed under the MIT license found in the
16065 * LICENSE file in the root directory of this source tree.
16066 *
16067 *
16068 */
16069
16070exports.getVariableValues = getVariableValues;
16071exports.getArgumentValues = getArgumentValues;
16072exports.getDirectiveValues = getDirectiveValues;
16073exports.coerceValue = coerceValue;
16074
16075var _iterall = __webpack_require__(39);
16076
16077var _error = __webpack_require__(3);
16078
16079var _find = __webpack_require__(76);
16080
16081var _find2 = _interopRequireDefault(_find);
16082
16083var _invariant = __webpack_require__(11);
16084
16085var _invariant2 = _interopRequireDefault(_invariant);
16086
16087var _isNullish = __webpack_require__(66);
16088
16089var _isNullish2 = _interopRequireDefault(_isNullish);
16090
16091var _isInvalid = __webpack_require__(86);
16092
16093var _isInvalid2 = _interopRequireDefault(_isInvalid);
16094
16095var _keyMap = __webpack_require__(77);
16096
16097var _keyMap2 = _interopRequireDefault(_keyMap);
16098
16099var _typeFromAST = __webpack_require__(46);
16100
16101var _valueFromAST = __webpack_require__(87);
16102
16103var _isValidJSValue = __webpack_require__(278);
16104
16105var _isValidLiteralValue = __webpack_require__(117);
16106
16107var _kinds = __webpack_require__(12);
16108
16109var Kind = _interopRequireWildcard(_kinds);
16110
16111var _printer = __webpack_require__(28);
16112
16113var _definition = __webpack_require__(6);
16114
16115function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
16116
16117function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16118
16119/**
16120 * Prepares an object map of variableValues of the correct type based on the
16121 * provided variable definitions and arbitrary input. If the input cannot be
16122 * parsed to match the variable definitions, a GraphQLError will be thrown.
16123 *
16124 * Note: The returned value is a plain Object with a prototype, since it is
16125 * exposed to user code. Care should be taken to not pull values from the
16126 * Object prototype.
16127 */
16128function getVariableValues(schema, varDefNodes, inputs) {
16129 var coercedValues = {};
16130 for (var i = 0; i < varDefNodes.length; i++) {
16131 var varDefNode = varDefNodes[i];
16132 var varName = varDefNode.variable.name.value;
16133 var varType = (0, _typeFromAST.typeFromAST)(schema, varDefNode.type);
16134 if (!(0, _definition.isInputType)(varType)) {
16135 throw new _error.GraphQLError('Variable "$' + varName + '" expected value of type ' + ('"' + (0, _printer.print)(varDefNode.type) + '" which cannot be used as an input type.'), [varDefNode.type]);
16136 }
16137
16138 var value = inputs[varName];
16139 if ((0, _isInvalid2.default)(value)) {
16140 var defaultValue = varDefNode.defaultValue;
16141 if (defaultValue) {
16142 coercedValues[varName] = (0, _valueFromAST.valueFromAST)(defaultValue, varType);
16143 }
16144 if (varType instanceof _definition.GraphQLNonNull) {
16145 throw new _error.GraphQLError('Variable "$' + varName + '" of required type ' + ('"' + String(varType) + '" was not provided.'), [varDefNode]);
16146 }
16147 } else {
16148 var errors = (0, _isValidJSValue.isValidJSValue)(value, varType);
16149 if (errors.length) {
16150 var message = errors ? '\n' + errors.join('\n') : '';
16151 throw new _error.GraphQLError('Variable "$' + varName + '" got invalid value ' + (JSON.stringify(value) + '.' + message), [varDefNode]);
16152 }
16153
16154 var coercedValue = coerceValue(varType, value);
16155 !!(0, _isInvalid2.default)(coercedValue) ? (0, _invariant2.default)(0, 'Should have reported error.') : void 0;
16156 coercedValues[varName] = coercedValue;
16157 }
16158 }
16159 return coercedValues;
16160}
16161
16162/**
16163 * Prepares an object map of argument values given a list of argument
16164 * definitions and list of argument AST nodes.
16165 *
16166 * Note: The returned value is a plain Object with a prototype, since it is
16167 * exposed to user code. Care should be taken to not pull values from the
16168 * Object prototype.
16169 */
16170function getArgumentValues(def, node, variableValues) {
16171 var coercedValues = {};
16172 var argDefs = def.args;
16173 var argNodes = node.arguments;
16174 if (!argDefs || !argNodes) {
16175 return coercedValues;
16176 }
16177 var argNodeMap = (0, _keyMap2.default)(argNodes, function (arg) {
16178 return arg.name.value;
16179 });
16180 for (var i = 0; i < argDefs.length; i++) {
16181 var argDef = argDefs[i];
16182 var name = argDef.name;
16183 var argType = argDef.type;
16184 var argumentNode = argNodeMap[name];
16185 var defaultValue = argDef.defaultValue;
16186 if (!argumentNode) {
16187 if (!(0, _isInvalid2.default)(defaultValue)) {
16188 coercedValues[name] = defaultValue;
16189 } else if (argType instanceof _definition.GraphQLNonNull) {
16190 throw new _error.GraphQLError('Argument "' + name + '" of required type ' + ('"' + String(argType) + '" was not provided.'), [node]);
16191 }
16192 } else if (argumentNode.value.kind === Kind.VARIABLE) {
16193 var variableName = argumentNode.value.name.value;
16194 if (variableValues && Object.prototype.hasOwnProperty.call(variableValues, variableName) && !(0, _isInvalid2.default)(variableValues[variableName])) {
16195 // Note: this does not check that this variable value is correct.
16196 // This assumes that this query has been validated and the variable
16197 // usage here is of the correct type.
16198 coercedValues[name] = variableValues[variableName];
16199 } else if (!(0, _isInvalid2.default)(defaultValue)) {
16200 coercedValues[name] = defaultValue;
16201 } else if (argType instanceof _definition.GraphQLNonNull) {
16202 throw new _error.GraphQLError('Argument "' + name + '" of required type "' + String(argType) + '" was ' + ('provided the variable "$' + variableName + '" which was not provided ') + 'a runtime value.', [argumentNode.value]);
16203 }
16204 } else {
16205 var valueNode = argumentNode.value;
16206 var coercedValue = (0, _valueFromAST.valueFromAST)(valueNode, argType, variableValues);
16207 if ((0, _isInvalid2.default)(coercedValue)) {
16208 var errors = (0, _isValidLiteralValue.isValidLiteralValue)(argType, valueNode);
16209 var message = errors ? '\n' + errors.join('\n') : '';
16210 throw new _error.GraphQLError('Argument "' + name + '" got invalid value ' + (0, _printer.print)(valueNode) + '.' + message, [argumentNode.value]);
16211 }
16212 coercedValues[name] = coercedValue;
16213 }
16214 }
16215 return coercedValues;
16216}
16217
16218/**
16219 * Prepares an object map of argument values given a directive definition
16220 * and a AST node which may contain directives. Optionally also accepts a map
16221 * of variable values.
16222 *
16223 * If the directive does not exist on the node, returns undefined.
16224 *
16225 * Note: The returned value is a plain Object with a prototype, since it is
16226 * exposed to user code. Care should be taken to not pull values from the
16227 * Object prototype.
16228 */
16229function getDirectiveValues(directiveDef, node, variableValues) {
16230 var directiveNode = node.directives && (0, _find2.default)(node.directives, function (directive) {
16231 return directive.name.value === directiveDef.name;
16232 });
16233
16234 if (directiveNode) {
16235 return getArgumentValues(directiveDef, directiveNode, variableValues);
16236 }
16237}
16238
16239/**
16240 * Given a type and any value, return a runtime value coerced to match the type.
16241 */
16242function coerceValue(type, value) {
16243 // Ensure flow knows that we treat function params as const.
16244 var _value = value;
16245
16246 if ((0, _isInvalid2.default)(_value)) {
16247 return; // Intentionally return no value.
16248 }
16249
16250 if (type instanceof _definition.GraphQLNonNull) {
16251 if (_value === null) {
16252 return; // Intentionally return no value.
16253 }
16254 return coerceValue(type.ofType, _value);
16255 }
16256
16257 if (_value === null) {
16258 // Intentionally return the value null.
16259 return null;
16260 }
16261
16262 if (type instanceof _definition.GraphQLList) {
16263 var itemType = type.ofType;
16264 if ((0, _iterall.isCollection)(_value)) {
16265 var coercedValues = [];
16266 var valueIter = (0, _iterall.createIterator)(_value);
16267 if (!valueIter) {
16268 return; // Intentionally return no value.
16269 }
16270 var step = void 0;
16271 while (!(step = valueIter.next()).done) {
16272 var itemValue = coerceValue(itemType, step.value);
16273 if ((0, _isInvalid2.default)(itemValue)) {
16274 return; // Intentionally return no value.
16275 }
16276 coercedValues.push(itemValue);
16277 }
16278 return coercedValues;
16279 }
16280 var coercedValue = coerceValue(itemType, _value);
16281 if ((0, _isInvalid2.default)(coercedValue)) {
16282 return; // Intentionally return no value.
16283 }
16284 return [coerceValue(itemType, _value)];
16285 }
16286
16287 if (type instanceof _definition.GraphQLInputObjectType) {
16288 if ((typeof _value === 'undefined' ? 'undefined' : _typeof(_value)) !== 'object') {
16289 return; // Intentionally return no value.
16290 }
16291 var coercedObj = Object.create(null);
16292 var fields = type.getFields();
16293 var fieldNames = Object.keys(fields);
16294 for (var i = 0; i < fieldNames.length; i++) {
16295 var fieldName = fieldNames[i];
16296 var field = fields[fieldName];
16297 if ((0, _isInvalid2.default)(_value[fieldName])) {
16298 if (!(0, _isInvalid2.default)(field.defaultValue)) {
16299 coercedObj[fieldName] = field.defaultValue;
16300 } else if (field.type instanceof _definition.GraphQLNonNull) {
16301 return; // Intentionally return no value.
16302 }
16303 continue;
16304 }
16305 var fieldValue = coerceValue(field.type, _value[fieldName]);
16306 if ((0, _isInvalid2.default)(fieldValue)) {
16307 return; // Intentionally return no value.
16308 }
16309 coercedObj[fieldName] = fieldValue;
16310 }
16311 return coercedObj;
16312 }
16313
16314 !(type instanceof _definition.GraphQLScalarType || type instanceof _definition.GraphQLEnumType) ? (0, _invariant2.default)(0, 'Must be input type') : void 0;
16315
16316 var parsed = type.parseValue(_value);
16317 if ((0, _isNullish2.default)(parsed)) {
16318 // null or invalid values represent a failure to parse correctly,
16319 // in which case no value is returned.
16320 return;
16321 }
16322
16323 return parsed;
16324}
16325
16326/***/ }),
16327/* 183 */
16328/***/ (function(module, exports, __webpack_require__) {
16329
16330"use strict";
16331
16332
16333Object.defineProperty(exports, "__esModule", {
16334 value: true
16335});
16336exports.default = keyValMap;
16337
16338
16339/**
16340 * Creates a keyed JS object from an array, given a function to produce the keys
16341 * and a function to produce the values from each item in the array.
16342 *
16343 * const phoneBook = [
16344 * { name: 'Jon', num: '555-1234' },
16345 * { name: 'Jenny', num: '867-5309' }
16346 * ]
16347 *
16348 * // { Jon: '555-1234', Jenny: '867-5309' }
16349 * const phonesByName = keyValMap(
16350 * phoneBook,
16351 * entry => entry.name,
16352 * entry => entry.num
16353 * )
16354 *
16355 */
16356function keyValMap(list, keyFn, valFn) {
16357 return list.reduce(function (map, item) {
16358 return map[keyFn(item)] = valFn(item), map;
16359 }, Object.create(null));
16360} /**
16361 * Copyright (c) 2015-present, Facebook, Inc.
16362 *
16363 * This source code is licensed under the MIT license found in the
16364 * LICENSE file in the root directory of this source tree.
16365 *
16366 *
16367 */
16368
16369/***/ }),
16370/* 184 */
16371/***/ (function(module, exports, __webpack_require__) {
16372
16373"use strict";
16374
16375Object.defineProperty(exports, "__esModule", { value: true });
16376var GRAPHQL_WS = 'graphql-ws';
16377exports.GRAPHQL_WS = GRAPHQL_WS;
16378var GRAPHQL_SUBSCRIPTIONS = 'graphql-subscriptions';
16379exports.GRAPHQL_SUBSCRIPTIONS = GRAPHQL_SUBSCRIPTIONS;
16380//# sourceMappingURL=protocol.js.map
16381
16382/***/ }),
16383/* 185 */
16384/***/ (function(module, exports) {
16385
16386module.exports = require("zlib");
16387
16388/***/ }),
16389/* 186 */
16390/***/ (function(module, exports, __webpack_require__) {
16391
16392"use strict";
16393/*!
16394 * ws: a node.js websocket client
16395 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
16396 * MIT Licensed
16397 */
16398
16399
16400
16401const safeBuffer = __webpack_require__(29);
16402
16403const Buffer = safeBuffer.Buffer;
16404
16405/**
16406 * Merges an array of buffers into a new buffer.
16407 *
16408 * @param {Buffer[]} list The array of buffers to concat
16409 * @param {Number} totalLength The total length of buffers in the list
16410 * @return {Buffer} The resulting buffer
16411 * @public
16412 */
16413const concat = (list, totalLength) => {
16414 const target = Buffer.allocUnsafe(totalLength);
16415 var offset = 0;
16416
16417 for (var i = 0; i < list.length; i++) {
16418 const buf = list[i];
16419 buf.copy(target, offset);
16420 offset += buf.length;
16421 }
16422
16423 return target;
16424};
16425
16426try {
16427 const bufferUtil = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"bufferutil\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
16428
16429 module.exports = Object.assign({ concat }, bufferUtil.BufferUtil || bufferUtil);
16430} catch (e) /* istanbul ignore next */ {
16431 /**
16432 * Masks a buffer using the given mask.
16433 *
16434 * @param {Buffer} source The buffer to mask
16435 * @param {Buffer} mask The mask to use
16436 * @param {Buffer} output The buffer where to store the result
16437 * @param {Number} offset The offset at which to start writing
16438 * @param {Number} length The number of bytes to mask.
16439 * @public
16440 */
16441 const mask = (source, mask, output, offset, length) => {
16442 for (var i = 0; i < length; i++) {
16443 output[offset + i] = source[i] ^ mask[i & 3];
16444 }
16445 };
16446
16447 /**
16448 * Unmasks a buffer using the given mask.
16449 *
16450 * @param {Buffer} buffer The buffer to unmask
16451 * @param {Buffer} mask The mask to use
16452 * @public
16453 */
16454 const unmask = (buffer, mask) => {
16455 // Required until https://github.com/nodejs/node/issues/9006 is resolved.
16456 const length = buffer.length;
16457 for (var i = 0; i < length; i++) {
16458 buffer[i] ^= mask[i & 3];
16459 }
16460 };
16461
16462 module.exports = { concat, mask, unmask };
16463}
16464
16465
16466/***/ }),
16467/* 187 */
16468/***/ (function(module, exports) {
16469
16470/**
16471 * Helpers.
16472 */
16473
16474var s = 1000;
16475var m = s * 60;
16476var h = m * 60;
16477var d = h * 24;
16478var y = d * 365.25;
16479
16480/**
16481 * Parse or format the given `val`.
16482 *
16483 * Options:
16484 *
16485 * - `long` verbose formatting [false]
16486 *
16487 * @param {String|Number} val
16488 * @param {Object} [options]
16489 * @throws {Error} throw an error if val is not a non-empty string or a number
16490 * @return {String|Number}
16491 * @api public
16492 */
16493
16494module.exports = function(val, options) {
16495 options = options || {};
16496 var type = typeof val;
16497 if (type === 'string' && val.length > 0) {
16498 return parse(val);
16499 } else if (type === 'number' && isNaN(val) === false) {
16500 return options.long ? fmtLong(val) : fmtShort(val);
16501 }
16502 throw new Error(
16503 'val is not a non-empty string or a valid number. val=' +
16504 JSON.stringify(val)
16505 );
16506};
16507
16508/**
16509 * Parse the given `str` and return milliseconds.
16510 *
16511 * @param {String} str
16512 * @return {Number}
16513 * @api private
16514 */
16515
16516function parse(str) {
16517 str = String(str);
16518 if (str.length > 100) {
16519 return;
16520 }
16521 var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
16522 str
16523 );
16524 if (!match) {
16525 return;
16526 }
16527 var n = parseFloat(match[1]);
16528 var type = (match[2] || 'ms').toLowerCase();
16529 switch (type) {
16530 case 'years':
16531 case 'year':
16532 case 'yrs':
16533 case 'yr':
16534 case 'y':
16535 return n * y;
16536 case 'days':
16537 case 'day':
16538 case 'd':
16539 return n * d;
16540 case 'hours':
16541 case 'hour':
16542 case 'hrs':
16543 case 'hr':
16544 case 'h':
16545 return n * h;
16546 case 'minutes':
16547 case 'minute':
16548 case 'mins':
16549 case 'min':
16550 case 'm':
16551 return n * m;
16552 case 'seconds':
16553 case 'second':
16554 case 'secs':
16555 case 'sec':
16556 case 's':
16557 return n * s;
16558 case 'milliseconds':
16559 case 'millisecond':
16560 case 'msecs':
16561 case 'msec':
16562 case 'ms':
16563 return n;
16564 default:
16565 return undefined;
16566 }
16567}
16568
16569/**
16570 * Short format for `ms`.
16571 *
16572 * @param {Number} ms
16573 * @return {String}
16574 * @api private
16575 */
16576
16577function fmtShort(ms) {
16578 if (ms >= d) {
16579 return Math.round(ms / d) + 'd';
16580 }
16581 if (ms >= h) {
16582 return Math.round(ms / h) + 'h';
16583 }
16584 if (ms >= m) {
16585 return Math.round(ms / m) + 'm';
16586 }
16587 if (ms >= s) {
16588 return Math.round(ms / s) + 's';
16589 }
16590 return ms + 'ms';
16591}
16592
16593/**
16594 * Long format for `ms`.
16595 *
16596 * @param {Number} ms
16597 * @return {String}
16598 * @api private
16599 */
16600
16601function fmtLong(ms) {
16602 return plural(ms, d, 'day') ||
16603 plural(ms, h, 'hour') ||
16604 plural(ms, m, 'minute') ||
16605 plural(ms, s, 'second') ||
16606 ms + ' ms';
16607}
16608
16609/**
16610 * Pluralization helper.
16611 */
16612
16613function plural(ms, n, name) {
16614 if (ms < n) {
16615 return;
16616 }
16617 if (ms < n * 1.5) {
16618 return Math.floor(ms / n) + ' ' + name;
16619 }
16620 return Math.ceil(ms / n) + ' ' + name + 's';
16621}
16622
16623
16624/***/ }),
16625/* 188 */
16626/***/ (function(module, exports, __webpack_require__) {
16627
16628"use strict";
16629
16630
16631// Some environments don't have global Buffer (e.g. React Native).
16632// Solution would be installing npm modules "buffer" and "stream" explicitly.
16633var Buffer = __webpack_require__(16).Buffer;
16634
16635var bomHandling = __webpack_require__(618),
16636 iconv = module.exports;
16637
16638// All codecs and aliases are kept here, keyed by encoding name/alias.
16639// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
16640iconv.encodings = null;
16641
16642// Characters emitted in case of error.
16643iconv.defaultCharUnicode = '�';
16644iconv.defaultCharSingleByte = '?';
16645
16646// Public API.
16647iconv.encode = function encode(str, encoding, options) {
16648 str = "" + (str || ""); // Ensure string.
16649
16650 var encoder = iconv.getEncoder(encoding, options);
16651
16652 var res = encoder.write(str);
16653 var trail = encoder.end();
16654
16655 return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
16656}
16657
16658iconv.decode = function decode(buf, encoding, options) {
16659 if (typeof buf === 'string') {
16660 if (!iconv.skipDecodeWarning) {
16661 console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
16662 iconv.skipDecodeWarning = true;
16663 }
16664
16665 buf = new Buffer("" + (buf || ""), "binary"); // Ensure buffer.
16666 }
16667
16668 var decoder = iconv.getDecoder(encoding, options);
16669
16670 var res = decoder.write(buf);
16671 var trail = decoder.end();
16672
16673 return trail ? (res + trail) : res;
16674}
16675
16676iconv.encodingExists = function encodingExists(enc) {
16677 try {
16678 iconv.getCodec(enc);
16679 return true;
16680 } catch (e) {
16681 return false;
16682 }
16683}
16684
16685// Legacy aliases to convert functions
16686iconv.toEncoding = iconv.encode;
16687iconv.fromEncoding = iconv.decode;
16688
16689// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
16690iconv._codecDataCache = {};
16691iconv.getCodec = function getCodec(encoding) {
16692 if (!iconv.encodings)
16693 iconv.encodings = __webpack_require__(619); // Lazy load all encoding definitions.
16694
16695 // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
16696 var enc = (''+encoding).toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, "");
16697
16698 // Traverse iconv.encodings to find actual codec.
16699 var codecOptions = {};
16700 while (true) {
16701 var codec = iconv._codecDataCache[enc];
16702 if (codec)
16703 return codec;
16704
16705 var codecDef = iconv.encodings[enc];
16706
16707 switch (typeof codecDef) {
16708 case "string": // Direct alias to other encoding.
16709 enc = codecDef;
16710 break;
16711
16712 case "object": // Alias with options. Can be layered.
16713 for (var key in codecDef)
16714 codecOptions[key] = codecDef[key];
16715
16716 if (!codecOptions.encodingName)
16717 codecOptions.encodingName = enc;
16718
16719 enc = codecDef.type;
16720 break;
16721
16722 case "function": // Codec itself.
16723 if (!codecOptions.encodingName)
16724 codecOptions.encodingName = enc;
16725
16726 // The codec function must load all tables and return object with .encoder and .decoder methods.
16727 // It'll be called only once (for each different options object).
16728 codec = new codecDef(codecOptions, iconv);
16729
16730 iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
16731 return codec;
16732
16733 default:
16734 throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
16735 }
16736 }
16737}
16738
16739iconv.getEncoder = function getEncoder(encoding, options) {
16740 var codec = iconv.getCodec(encoding),
16741 encoder = new codec.encoder(options, codec);
16742
16743 if (codec.bomAware && options && options.addBOM)
16744 encoder = new bomHandling.PrependBOM(encoder, options);
16745
16746 return encoder;
16747}
16748
16749iconv.getDecoder = function getDecoder(encoding, options) {
16750 var codec = iconv.getCodec(encoding),
16751 decoder = new codec.decoder(options, codec);
16752
16753 if (codec.bomAware && !(options && options.stripBOM === false))
16754 decoder = new bomHandling.StripBOM(decoder, options);
16755
16756 return decoder;
16757}
16758
16759
16760// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
16761var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
16762if (nodeVer) {
16763
16764 // Load streaming support in Node v0.10+
16765 var nodeVerArr = nodeVer.split(".").map(Number);
16766 if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
16767 __webpack_require__(634)(iconv);
16768 }
16769
16770 // Load Node primitive extensions.
16771 __webpack_require__(635)(iconv);
16772}
16773
16774if (false) {
16775 console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
16776}
16777
16778
16779/***/ }),
16780/* 189 */
16781/***/ (function(module, exports) {
16782
16783module.exports = [["0","\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]
16784
16785/***/ }),
16786/* 190 */
16787/***/ (function(module, exports, __webpack_require__) {
16788
16789"use strict";
16790
16791
16792var stringify = __webpack_require__(643);
16793var parse = __webpack_require__(644);
16794var formats = __webpack_require__(303);
16795
16796module.exports = {
16797 formats: formats,
16798 parse: parse,
16799 stringify: stringify
16800};
16801
16802
16803/***/ }),
16804/* 191 */
16805/***/ (function(module, exports, __webpack_require__) {
16806
16807"use strict";
16808/*!
16809 * methods
16810 * Copyright(c) 2013-2014 TJ Holowaychuk
16811 * Copyright(c) 2015-2016 Douglas Christopher Wilson
16812 * MIT Licensed
16813 */
16814
16815
16816
16817/**
16818 * Module dependencies.
16819 * @private
16820 */
16821
16822var http = __webpack_require__(43);
16823
16824/**
16825 * Module exports.
16826 * @public
16827 */
16828
16829module.exports = getCurrentNodeMethods() || getBasicNodeMethods();
16830
16831/**
16832 * Get the current Node.js methods.
16833 * @private
16834 */
16835
16836function getCurrentNodeMethods() {
16837 return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) {
16838 return method.toLowerCase();
16839 });
16840}
16841
16842/**
16843 * Get the "basic" Node.js methods, a snapshot from Node.js 0.10.
16844 * @private
16845 */
16846
16847function getBasicNodeMethods() {
16848 return [
16849 'get',
16850 'post',
16851 'put',
16852 'head',
16853 'delete',
16854 'options',
16855 'trace',
16856 'copy',
16857 'lock',
16858 'mkcol',
16859 'move',
16860 'purge',
16861 'propfind',
16862 'proppatch',
16863 'unlock',
16864 'report',
16865 'mkactivity',
16866 'checkout',
16867 'merge',
16868 'm-search',
16869 'notify',
16870 'subscribe',
16871 'unsubscribe',
16872 'patch',
16873 'search',
16874 'connect'
16875 ];
16876}
16877
16878
16879/***/ }),
16880/* 192 */
16881/***/ (function(module, exports, __webpack_require__) {
16882
16883"use strict";
16884/*!
16885 * send
16886 * Copyright(c) 2012 TJ Holowaychuk
16887 * Copyright(c) 2014-2016 Douglas Christopher Wilson
16888 * MIT Licensed
16889 */
16890
16891
16892
16893/**
16894 * Module dependencies.
16895 * @private
16896 */
16897
16898var createError = __webpack_require__(90)
16899var debug = __webpack_require__(30)('send')
16900var deprecate = __webpack_require__(47)('send')
16901var destroy = __webpack_require__(654)
16902var encodeUrl = __webpack_require__(126)
16903var escapeHtml = __webpack_require__(127)
16904var etag = __webpack_require__(310)
16905var fresh = __webpack_require__(311)
16906var fs = __webpack_require__(68)
16907var mime = __webpack_require__(655)
16908var ms = __webpack_require__(187)
16909var onFinished = __webpack_require__(125)
16910var parseRange = __webpack_require__(312)
16911var path = __webpack_require__(48)
16912var statuses = __webpack_require__(123)
16913var Stream = __webpack_require__(40)
16914var util = __webpack_require__(54)
16915
16916/**
16917 * Path function references.
16918 * @private
16919 */
16920
16921var extname = path.extname
16922var join = path.join
16923var normalize = path.normalize
16924var resolve = path.resolve
16925var sep = path.sep
16926
16927/**
16928 * Regular expression for identifying a bytes Range header.
16929 * @private
16930 */
16931
16932var BYTES_RANGE_REGEXP = /^ *bytes=/
16933
16934/**
16935 * Maximum value allowed for the max age.
16936 * @private
16937 */
16938
16939var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year
16940
16941/**
16942 * Regular expression to match a path with a directory up component.
16943 * @private
16944 */
16945
16946var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/
16947
16948/**
16949 * Module exports.
16950 * @public
16951 */
16952
16953module.exports = send
16954module.exports.mime = mime
16955
16956/**
16957 * Return a `SendStream` for `req` and `path`.
16958 *
16959 * @param {object} req
16960 * @param {string} path
16961 * @param {object} [options]
16962 * @return {SendStream}
16963 * @public
16964 */
16965
16966function send (req, path, options) {
16967 return new SendStream(req, path, options)
16968}
16969
16970/**
16971 * Initialize a `SendStream` with the given `path`.
16972 *
16973 * @param {Request} req
16974 * @param {String} path
16975 * @param {object} [options]
16976 * @private
16977 */
16978
16979function SendStream (req, path, options) {
16980 Stream.call(this)
16981
16982 var opts = options || {}
16983
16984 this.options = opts
16985 this.path = path
16986 this.req = req
16987
16988 this._acceptRanges = opts.acceptRanges !== undefined
16989 ? Boolean(opts.acceptRanges)
16990 : true
16991
16992 this._cacheControl = opts.cacheControl !== undefined
16993 ? Boolean(opts.cacheControl)
16994 : true
16995
16996 this._etag = opts.etag !== undefined
16997 ? Boolean(opts.etag)
16998 : true
16999
17000 this._dotfiles = opts.dotfiles !== undefined
17001 ? opts.dotfiles
17002 : 'ignore'
17003
17004 if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') {
17005 throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"')
17006 }
17007
17008 this._hidden = Boolean(opts.hidden)
17009
17010 if (opts.hidden !== undefined) {
17011 deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead')
17012 }
17013
17014 // legacy support
17015 if (opts.dotfiles === undefined) {
17016 this._dotfiles = undefined
17017 }
17018
17019 this._extensions = opts.extensions !== undefined
17020 ? normalizeList(opts.extensions, 'extensions option')
17021 : []
17022
17023 this._immutable = opts.immutable !== undefined
17024 ? Boolean(opts.immutable)
17025 : false
17026
17027 this._index = opts.index !== undefined
17028 ? normalizeList(opts.index, 'index option')
17029 : ['index.html']
17030
17031 this._lastModified = opts.lastModified !== undefined
17032 ? Boolean(opts.lastModified)
17033 : true
17034
17035 this._maxage = opts.maxAge || opts.maxage
17036 this._maxage = typeof this._maxage === 'string'
17037 ? ms(this._maxage)
17038 : Number(this._maxage)
17039 this._maxage = !isNaN(this._maxage)
17040 ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
17041 : 0
17042
17043 this._root = opts.root
17044 ? resolve(opts.root)
17045 : null
17046
17047 if (!this._root && opts.from) {
17048 this.from(opts.from)
17049 }
17050}
17051
17052/**
17053 * Inherits from `Stream`.
17054 */
17055
17056util.inherits(SendStream, Stream)
17057
17058/**
17059 * Enable or disable etag generation.
17060 *
17061 * @param {Boolean} val
17062 * @return {SendStream}
17063 * @api public
17064 */
17065
17066SendStream.prototype.etag = deprecate.function(function etag (val) {
17067 this._etag = Boolean(val)
17068 debug('etag %s', this._etag)
17069 return this
17070}, 'send.etag: pass etag as option')
17071
17072/**
17073 * Enable or disable "hidden" (dot) files.
17074 *
17075 * @param {Boolean} path
17076 * @return {SendStream}
17077 * @api public
17078 */
17079
17080SendStream.prototype.hidden = deprecate.function(function hidden (val) {
17081 this._hidden = Boolean(val)
17082 this._dotfiles = undefined
17083 debug('hidden %s', this._hidden)
17084 return this
17085}, 'send.hidden: use dotfiles option')
17086
17087/**
17088 * Set index `paths`, set to a falsy
17089 * value to disable index support.
17090 *
17091 * @param {String|Boolean|Array} paths
17092 * @return {SendStream}
17093 * @api public
17094 */
17095
17096SendStream.prototype.index = deprecate.function(function index (paths) {
17097 var index = !paths ? [] : normalizeList(paths, 'paths argument')
17098 debug('index %o', paths)
17099 this._index = index
17100 return this
17101}, 'send.index: pass index as option')
17102
17103/**
17104 * Set root `path`.
17105 *
17106 * @param {String} path
17107 * @return {SendStream}
17108 * @api public
17109 */
17110
17111SendStream.prototype.root = function root (path) {
17112 this._root = resolve(String(path))
17113 debug('root %s', this._root)
17114 return this
17115}
17116
17117SendStream.prototype.from = deprecate.function(SendStream.prototype.root,
17118 'send.from: pass root as option')
17119
17120SendStream.prototype.root = deprecate.function(SendStream.prototype.root,
17121 'send.root: pass root as option')
17122
17123/**
17124 * Set max-age to `maxAge`.
17125 *
17126 * @param {Number} maxAge
17127 * @return {SendStream}
17128 * @api public
17129 */
17130
17131SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) {
17132 this._maxage = typeof maxAge === 'string'
17133 ? ms(maxAge)
17134 : Number(maxAge)
17135 this._maxage = !isNaN(this._maxage)
17136 ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE)
17137 : 0
17138 debug('max-age %d', this._maxage)
17139 return this
17140}, 'send.maxage: pass maxAge as option')
17141
17142/**
17143 * Emit error with `status`.
17144 *
17145 * @param {number} status
17146 * @param {Error} [err]
17147 * @private
17148 */
17149
17150SendStream.prototype.error = function error (status, err) {
17151 // emit if listeners instead of responding
17152 if (hasListeners(this, 'error')) {
17153 return this.emit('error', createError(status, err, {
17154 expose: false
17155 }))
17156 }
17157
17158 var res = this.res
17159 var msg = statuses[status] || String(status)
17160 var doc = createHtmlDocument('Error', escapeHtml(msg))
17161
17162 // clear existing headers
17163 clearHeaders(res)
17164
17165 // add error headers
17166 if (err && err.headers) {
17167 setHeaders(res, err.headers)
17168 }
17169
17170 // send basic response
17171 res.statusCode = status
17172 res.setHeader('Content-Type', 'text/html; charset=UTF-8')
17173 res.setHeader('Content-Length', Buffer.byteLength(doc))
17174 res.setHeader('Content-Security-Policy', "default-src 'self'")
17175 res.setHeader('X-Content-Type-Options', 'nosniff')
17176 res.end(doc)
17177}
17178
17179/**
17180 * Check if the pathname ends with "/".
17181 *
17182 * @return {boolean}
17183 * @private
17184 */
17185
17186SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () {
17187 return this.path[this.path.length - 1] === '/'
17188}
17189
17190/**
17191 * Check if this is a conditional GET request.
17192 *
17193 * @return {Boolean}
17194 * @api private
17195 */
17196
17197SendStream.prototype.isConditionalGET = function isConditionalGET () {
17198 return this.req.headers['if-match'] ||
17199 this.req.headers['if-unmodified-since'] ||
17200 this.req.headers['if-none-match'] ||
17201 this.req.headers['if-modified-since']
17202}
17203
17204/**
17205 * Check if the request preconditions failed.
17206 *
17207 * @return {boolean}
17208 * @private
17209 */
17210
17211SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () {
17212 var req = this.req
17213 var res = this.res
17214
17215 // if-match
17216 var match = req.headers['if-match']
17217 if (match) {
17218 var etag = res.getHeader('ETag')
17219 return !etag || (match !== '*' && parseTokenList(match).every(function (match) {
17220 return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag
17221 }))
17222 }
17223
17224 // if-unmodified-since
17225 var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since'])
17226 if (!isNaN(unmodifiedSince)) {
17227 var lastModified = parseHttpDate(res.getHeader('Last-Modified'))
17228 return isNaN(lastModified) || lastModified > unmodifiedSince
17229 }
17230
17231 return false
17232}
17233
17234/**
17235 * Strip content-* header fields.
17236 *
17237 * @private
17238 */
17239
17240SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () {
17241 var res = this.res
17242 var headers = getHeaderNames(res)
17243
17244 for (var i = 0; i < headers.length; i++) {
17245 var header = headers[i]
17246 if (header.substr(0, 8) === 'content-' && header !== 'content-location') {
17247 res.removeHeader(header)
17248 }
17249 }
17250}
17251
17252/**
17253 * Respond with 304 not modified.
17254 *
17255 * @api private
17256 */
17257
17258SendStream.prototype.notModified = function notModified () {
17259 var res = this.res
17260 debug('not modified')
17261 this.removeContentHeaderFields()
17262 res.statusCode = 304
17263 res.end()
17264}
17265
17266/**
17267 * Raise error that headers already sent.
17268 *
17269 * @api private
17270 */
17271
17272SendStream.prototype.headersAlreadySent = function headersAlreadySent () {
17273 var err = new Error('Can\'t set headers after they are sent.')
17274 debug('headers already sent')
17275 this.error(500, err)
17276}
17277
17278/**
17279 * Check if the request is cacheable, aka
17280 * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}).
17281 *
17282 * @return {Boolean}
17283 * @api private
17284 */
17285
17286SendStream.prototype.isCachable = function isCachable () {
17287 var statusCode = this.res.statusCode
17288 return (statusCode >= 200 && statusCode < 300) ||
17289 statusCode === 304
17290}
17291
17292/**
17293 * Handle stat() error.
17294 *
17295 * @param {Error} error
17296 * @private
17297 */
17298
17299SendStream.prototype.onStatError = function onStatError (error) {
17300 switch (error.code) {
17301 case 'ENAMETOOLONG':
17302 case 'ENOENT':
17303 case 'ENOTDIR':
17304 this.error(404, error)
17305 break
17306 default:
17307 this.error(500, error)
17308 break
17309 }
17310}
17311
17312/**
17313 * Check if the cache is fresh.
17314 *
17315 * @return {Boolean}
17316 * @api private
17317 */
17318
17319SendStream.prototype.isFresh = function isFresh () {
17320 return fresh(this.req.headers, {
17321 'etag': this.res.getHeader('ETag'),
17322 'last-modified': this.res.getHeader('Last-Modified')
17323 })
17324}
17325
17326/**
17327 * Check if the range is fresh.
17328 *
17329 * @return {Boolean}
17330 * @api private
17331 */
17332
17333SendStream.prototype.isRangeFresh = function isRangeFresh () {
17334 var ifRange = this.req.headers['if-range']
17335
17336 if (!ifRange) {
17337 return true
17338 }
17339
17340 // if-range as etag
17341 if (ifRange.indexOf('"') !== -1) {
17342 var etag = this.res.getHeader('ETag')
17343 return Boolean(etag && ifRange.indexOf(etag) !== -1)
17344 }
17345
17346 // if-range as modified date
17347 var lastModified = this.res.getHeader('Last-Modified')
17348 return parseHttpDate(lastModified) <= parseHttpDate(ifRange)
17349}
17350
17351/**
17352 * Redirect to path.
17353 *
17354 * @param {string} path
17355 * @private
17356 */
17357
17358SendStream.prototype.redirect = function redirect (path) {
17359 var res = this.res
17360
17361 if (hasListeners(this, 'directory')) {
17362 this.emit('directory', res, path)
17363 return
17364 }
17365
17366 if (this.hasTrailingSlash()) {
17367 this.error(403)
17368 return
17369 }
17370
17371 var loc = encodeUrl(collapseLeadingSlashes(this.path + '/'))
17372 var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
17373 escapeHtml(loc) + '</a>')
17374
17375 // redirect
17376 res.statusCode = 301
17377 res.setHeader('Content-Type', 'text/html; charset=UTF-8')
17378 res.setHeader('Content-Length', Buffer.byteLength(doc))
17379 res.setHeader('Content-Security-Policy', "default-src 'self'")
17380 res.setHeader('X-Content-Type-Options', 'nosniff')
17381 res.setHeader('Location', loc)
17382 res.end(doc)
17383}
17384
17385/**
17386 * Pipe to `res.
17387 *
17388 * @param {Stream} res
17389 * @return {Stream} res
17390 * @api public
17391 */
17392
17393SendStream.prototype.pipe = function pipe (res) {
17394 // root path
17395 var root = this._root
17396
17397 // references
17398 this.res = res
17399
17400 // decode the path
17401 var path = decode(this.path)
17402 if (path === -1) {
17403 this.error(400)
17404 return res
17405 }
17406
17407 // null byte(s)
17408 if (~path.indexOf('\0')) {
17409 this.error(400)
17410 return res
17411 }
17412
17413 var parts
17414 if (root !== null) {
17415 // normalize
17416 if (path) {
17417 path = normalize('.' + sep + path)
17418 }
17419
17420 // malicious path
17421 if (UP_PATH_REGEXP.test(path)) {
17422 debug('malicious path "%s"', path)
17423 this.error(403)
17424 return res
17425 }
17426
17427 // explode path parts
17428 parts = path.split(sep)
17429
17430 // join / normalize from optional root dir
17431 path = normalize(join(root, path))
17432 root = normalize(root + sep)
17433 } else {
17434 // ".." is malicious without "root"
17435 if (UP_PATH_REGEXP.test(path)) {
17436 debug('malicious path "%s"', path)
17437 this.error(403)
17438 return res
17439 }
17440
17441 // explode path parts
17442 parts = normalize(path).split(sep)
17443
17444 // resolve the path
17445 path = resolve(path)
17446 }
17447
17448 // dotfile handling
17449 if (containsDotFile(parts)) {
17450 var access = this._dotfiles
17451
17452 // legacy support
17453 if (access === undefined) {
17454 access = parts[parts.length - 1][0] === '.'
17455 ? (this._hidden ? 'allow' : 'ignore')
17456 : 'allow'
17457 }
17458
17459 debug('%s dotfile "%s"', access, path)
17460 switch (access) {
17461 case 'allow':
17462 break
17463 case 'deny':
17464 this.error(403)
17465 return res
17466 case 'ignore':
17467 default:
17468 this.error(404)
17469 return res
17470 }
17471 }
17472
17473 // index file support
17474 if (this._index.length && this.hasTrailingSlash()) {
17475 this.sendIndex(path)
17476 return res
17477 }
17478
17479 this.sendFile(path)
17480 return res
17481}
17482
17483/**
17484 * Transfer `path`.
17485 *
17486 * @param {String} path
17487 * @api public
17488 */
17489
17490SendStream.prototype.send = function send (path, stat) {
17491 var len = stat.size
17492 var options = this.options
17493 var opts = {}
17494 var res = this.res
17495 var req = this.req
17496 var ranges = req.headers.range
17497 var offset = options.start || 0
17498
17499 if (headersSent(res)) {
17500 // impossible to send now
17501 this.headersAlreadySent()
17502 return
17503 }
17504
17505 debug('pipe "%s"', path)
17506
17507 // set header fields
17508 this.setHeader(path, stat)
17509
17510 // set content-type
17511 this.type(path)
17512
17513 // conditional GET support
17514 if (this.isConditionalGET()) {
17515 if (this.isPreconditionFailure()) {
17516 this.error(412)
17517 return
17518 }
17519
17520 if (this.isCachable() && this.isFresh()) {
17521 this.notModified()
17522 return
17523 }
17524 }
17525
17526 // adjust len to start/end options
17527 len = Math.max(0, len - offset)
17528 if (options.end !== undefined) {
17529 var bytes = options.end - offset + 1
17530 if (len > bytes) len = bytes
17531 }
17532
17533 // Range support
17534 if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
17535 // parse
17536 ranges = parseRange(len, ranges, {
17537 combine: true
17538 })
17539
17540 // If-Range support
17541 if (!this.isRangeFresh()) {
17542 debug('range stale')
17543 ranges = -2
17544 }
17545
17546 // unsatisfiable
17547 if (ranges === -1) {
17548 debug('range unsatisfiable')
17549
17550 // Content-Range
17551 res.setHeader('Content-Range', contentRange('bytes', len))
17552
17553 // 416 Requested Range Not Satisfiable
17554 return this.error(416, {
17555 headers: {'Content-Range': res.getHeader('Content-Range')}
17556 })
17557 }
17558
17559 // valid (syntactically invalid/multiple ranges are treated as a regular response)
17560 if (ranges !== -2 && ranges.length === 1) {
17561 debug('range %j', ranges)
17562
17563 // Content-Range
17564 res.statusCode = 206
17565 res.setHeader('Content-Range', contentRange('bytes', len, ranges[0]))
17566
17567 // adjust for requested range
17568 offset += ranges[0].start
17569 len = ranges[0].end - ranges[0].start + 1
17570 }
17571 }
17572
17573 // clone options
17574 for (var prop in options) {
17575 opts[prop] = options[prop]
17576 }
17577
17578 // set read options
17579 opts.start = offset
17580 opts.end = Math.max(offset, offset + len - 1)
17581
17582 // content-length
17583 res.setHeader('Content-Length', len)
17584
17585 // HEAD support
17586 if (req.method === 'HEAD') {
17587 res.end()
17588 return
17589 }
17590
17591 this.stream(path, opts)
17592}
17593
17594/**
17595 * Transfer file for `path`.
17596 *
17597 * @param {String} path
17598 * @api private
17599 */
17600SendStream.prototype.sendFile = function sendFile (path) {
17601 var i = 0
17602 var self = this
17603
17604 debug('stat "%s"', path)
17605 fs.stat(path, function onstat (err, stat) {
17606 if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {
17607 // not found, check extensions
17608 return next(err)
17609 }
17610 if (err) return self.onStatError(err)
17611 if (stat.isDirectory()) return self.redirect(path)
17612 self.emit('file', path, stat)
17613 self.send(path, stat)
17614 })
17615
17616 function next (err) {
17617 if (self._extensions.length <= i) {
17618 return err
17619 ? self.onStatError(err)
17620 : self.error(404)
17621 }
17622
17623 var p = path + '.' + self._extensions[i++]
17624
17625 debug('stat "%s"', p)
17626 fs.stat(p, function (err, stat) {
17627 if (err) return next(err)
17628 if (stat.isDirectory()) return next()
17629 self.emit('file', p, stat)
17630 self.send(p, stat)
17631 })
17632 }
17633}
17634
17635/**
17636 * Transfer index for `path`.
17637 *
17638 * @param {String} path
17639 * @api private
17640 */
17641SendStream.prototype.sendIndex = function sendIndex (path) {
17642 var i = -1
17643 var self = this
17644
17645 function next (err) {
17646 if (++i >= self._index.length) {
17647 if (err) return self.onStatError(err)
17648 return self.error(404)
17649 }
17650
17651 var p = join(path, self._index[i])
17652
17653 debug('stat "%s"', p)
17654 fs.stat(p, function (err, stat) {
17655 if (err) return next(err)
17656 if (stat.isDirectory()) return next()
17657 self.emit('file', p, stat)
17658 self.send(p, stat)
17659 })
17660 }
17661
17662 next()
17663}
17664
17665/**
17666 * Stream `path` to the response.
17667 *
17668 * @param {String} path
17669 * @param {Object} options
17670 * @api private
17671 */
17672
17673SendStream.prototype.stream = function stream (path, options) {
17674 // TODO: this is all lame, refactor meeee
17675 var finished = false
17676 var self = this
17677 var res = this.res
17678
17679 // pipe
17680 var stream = fs.createReadStream(path, options)
17681 this.emit('stream', stream)
17682 stream.pipe(res)
17683
17684 // response finished, done with the fd
17685 onFinished(res, function onfinished () {
17686 finished = true
17687 destroy(stream)
17688 })
17689
17690 // error handling code-smell
17691 stream.on('error', function onerror (err) {
17692 // request already finished
17693 if (finished) return
17694
17695 // clean up stream
17696 finished = true
17697 destroy(stream)
17698
17699 // error
17700 self.onStatError(err)
17701 })
17702
17703 // end
17704 stream.on('end', function onend () {
17705 self.emit('end')
17706 })
17707}
17708
17709/**
17710 * Set content-type based on `path`
17711 * if it hasn't been explicitly set.
17712 *
17713 * @param {String} path
17714 * @api private
17715 */
17716
17717SendStream.prototype.type = function type (path) {
17718 var res = this.res
17719
17720 if (res.getHeader('Content-Type')) return
17721
17722 var type = mime.lookup(path)
17723
17724 if (!type) {
17725 debug('no content-type')
17726 return
17727 }
17728
17729 var charset = mime.charsets.lookup(type)
17730
17731 debug('content-type %s', type)
17732 res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''))
17733}
17734
17735/**
17736 * Set response header fields, most
17737 * fields may be pre-defined.
17738 *
17739 * @param {String} path
17740 * @param {Object} stat
17741 * @api private
17742 */
17743
17744SendStream.prototype.setHeader = function setHeader (path, stat) {
17745 var res = this.res
17746
17747 this.emit('headers', res, path, stat)
17748
17749 if (this._acceptRanges && !res.getHeader('Accept-Ranges')) {
17750 debug('accept ranges')
17751 res.setHeader('Accept-Ranges', 'bytes')
17752 }
17753
17754 if (this._cacheControl && !res.getHeader('Cache-Control')) {
17755 var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000)
17756
17757 if (this._immutable) {
17758 cacheControl += ', immutable'
17759 }
17760
17761 debug('cache-control %s', cacheControl)
17762 res.setHeader('Cache-Control', cacheControl)
17763 }
17764
17765 if (this._lastModified && !res.getHeader('Last-Modified')) {
17766 var modified = stat.mtime.toUTCString()
17767 debug('modified %s', modified)
17768 res.setHeader('Last-Modified', modified)
17769 }
17770
17771 if (this._etag && !res.getHeader('ETag')) {
17772 var val = etag(stat)
17773 debug('etag %s', val)
17774 res.setHeader('ETag', val)
17775 }
17776}
17777
17778/**
17779 * Clear all headers from a response.
17780 *
17781 * @param {object} res
17782 * @private
17783 */
17784
17785function clearHeaders (res) {
17786 var headers = getHeaderNames(res)
17787
17788 for (var i = 0; i < headers.length; i++) {
17789 res.removeHeader(headers[i])
17790 }
17791}
17792
17793/**
17794 * Collapse all leading slashes into a single slash
17795 *
17796 * @param {string} str
17797 * @private
17798 */
17799function collapseLeadingSlashes (str) {
17800 for (var i = 0; i < str.length; i++) {
17801 if (str[i] !== '/') {
17802 break
17803 }
17804 }
17805
17806 return i > 1
17807 ? '/' + str.substr(i)
17808 : str
17809}
17810
17811/**
17812 * Determine if path parts contain a dotfile.
17813 *
17814 * @api private
17815 */
17816
17817function containsDotFile (parts) {
17818 for (var i = 0; i < parts.length; i++) {
17819 var part = parts[i]
17820 if (part.length > 1 && part[0] === '.') {
17821 return true
17822 }
17823 }
17824
17825 return false
17826}
17827
17828/**
17829 * Create a Content-Range header.
17830 *
17831 * @param {string} type
17832 * @param {number} size
17833 * @param {array} [range]
17834 */
17835
17836function contentRange (type, size, range) {
17837 return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size
17838}
17839
17840/**
17841 * Create a minimal HTML document.
17842 *
17843 * @param {string} title
17844 * @param {string} body
17845 * @private
17846 */
17847
17848function createHtmlDocument (title, body) {
17849 return '<!DOCTYPE html>\n' +
17850 '<html lang="en">\n' +
17851 '<head>\n' +
17852 '<meta charset="utf-8">\n' +
17853 '<title>' + title + '</title>\n' +
17854 '</head>\n' +
17855 '<body>\n' +
17856 '<pre>' + body + '</pre>\n' +
17857 '</body>\n' +
17858 '<html>\n'
17859}
17860
17861/**
17862 * decodeURIComponent.
17863 *
17864 * Allows V8 to only deoptimize this fn instead of all
17865 * of send().
17866 *
17867 * @param {String} path
17868 * @api private
17869 */
17870
17871function decode (path) {
17872 try {
17873 return decodeURIComponent(path)
17874 } catch (err) {
17875 return -1
17876 }
17877}
17878
17879/**
17880 * Get the header names on a respnse.
17881 *
17882 * @param {object} res
17883 * @returns {array[string]}
17884 * @private
17885 */
17886
17887function getHeaderNames (res) {
17888 return typeof res.getHeaderNames !== 'function'
17889 ? Object.keys(res._headers || {})
17890 : res.getHeaderNames()
17891}
17892
17893/**
17894 * Determine if emitter has listeners of a given type.
17895 *
17896 * The way to do this check is done three different ways in Node.js >= 0.8
17897 * so this consolidates them into a minimal set using instance methods.
17898 *
17899 * @param {EventEmitter} emitter
17900 * @param {string} type
17901 * @returns {boolean}
17902 * @private
17903 */
17904
17905function hasListeners (emitter, type) {
17906 var count = typeof emitter.listenerCount !== 'function'
17907 ? emitter.listeners(type).length
17908 : emitter.listenerCount(type)
17909
17910 return count > 0
17911}
17912
17913/**
17914 * Determine if the response headers have been sent.
17915 *
17916 * @param {object} res
17917 * @returns {boolean}
17918 * @private
17919 */
17920
17921function headersSent (res) {
17922 return typeof res.headersSent !== 'boolean'
17923 ? Boolean(res._header)
17924 : res.headersSent
17925}
17926
17927/**
17928 * Normalize the index option into an array.
17929 *
17930 * @param {boolean|string|array} val
17931 * @param {string} name
17932 * @private
17933 */
17934
17935function normalizeList (val, name) {
17936 var list = [].concat(val || [])
17937
17938 for (var i = 0; i < list.length; i++) {
17939 if (typeof list[i] !== 'string') {
17940 throw new TypeError(name + ' must be array of strings or false')
17941 }
17942 }
17943
17944 return list
17945}
17946
17947/**
17948 * Parse an HTTP Date into a number.
17949 *
17950 * @param {string} date
17951 * @private
17952 */
17953
17954function parseHttpDate (date) {
17955 var timestamp = date && Date.parse(date)
17956
17957 return typeof timestamp === 'number'
17958 ? timestamp
17959 : NaN
17960}
17961
17962/**
17963 * Parse a HTTP token list.
17964 *
17965 * @param {string} str
17966 * @private
17967 */
17968
17969function parseTokenList (str) {
17970 var end = 0
17971 var list = []
17972 var start = 0
17973
17974 // gather tokens
17975 for (var i = 0, len = str.length; i < len; i++) {
17976 switch (str.charCodeAt(i)) {
17977 case 0x20: /* */
17978 if (start === end) {
17979 start = end = i + 1
17980 }
17981 break
17982 case 0x2c: /* , */
17983 list.push(str.substring(start, end))
17984 start = end = i + 1
17985 break
17986 default:
17987 end = i + 1
17988 break
17989 }
17990 }
17991
17992 // final token
17993 list.push(str.substring(start, end))
17994
17995 return list
17996}
17997
17998/**
17999 * Set an object of headers on a response.
18000 *
18001 * @param {object} res
18002 * @param {object} headers
18003 * @private
18004 */
18005
18006function setHeaders (res, headers) {
18007 var keys = Object.keys(headers)
18008
18009 for (var i = 0; i < keys.length; i++) {
18010 var key = keys[i]
18011 res.setHeader(key, headers[key])
18012 }
18013}
18014
18015
18016/***/ }),
18017/* 193 */
18018/***/ (function(module, exports) {
18019
18020module.exports = function(module) {
18021 if(!module.webpackPolyfill) {
18022 module.deprecate = function() {};
18023 module.paths = [];
18024 // module.parent = undefined by default
18025 if(!module.children) module.children = [];
18026 Object.defineProperty(module, "loaded", {
18027 enumerable: true,
18028 get: function() {
18029 return module.l;
18030 }
18031 });
18032 Object.defineProperty(module, "id", {
18033 enumerable: true,
18034 get: function() {
18035 return module.i;
18036 }
18037 });
18038 module.webpackPolyfill = 1;
18039 }
18040 return module;
18041};
18042
18043
18044/***/ }),
18045/* 194 */
18046/***/ (function(module, exports, __webpack_require__) {
18047
18048/*global exports*/
18049var SignStream = __webpack_require__(672);
18050var VerifyStream = __webpack_require__(678);
18051
18052var ALGORITHMS = [
18053 'HS256', 'HS384', 'HS512',
18054 'RS256', 'RS384', 'RS512',
18055 'ES256', 'ES384', 'ES512'
18056];
18057
18058exports.ALGORITHMS = ALGORITHMS;
18059exports.sign = SignStream.sign;
18060exports.verify = VerifyStream.verify;
18061exports.decode = VerifyStream.decode;
18062exports.isValid = VerifyStream.isValid;
18063exports.createSign = function createSign(opts) {
18064 return new SignStream(opts);
18065};
18066exports.createVerify = function createVerify(opts) {
18067 return new VerifyStream(opts);
18068};
18069
18070
18071/***/ }),
18072/* 195 */
18073/***/ (function(module, exports) {
18074
18075// 7.1.4 ToInteger
18076var ceil = Math.ceil;
18077var floor = Math.floor;
18078module.exports = function (it) {
18079 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
18080};
18081
18082
18083/***/ }),
18084/* 196 */
18085/***/ (function(module, exports) {
18086
18087// 7.2.1 RequireObjectCoercible(argument)
18088module.exports = function (it) {
18089 if (it == undefined) throw TypeError("Can't call method on " + it);
18090 return it;
18091};
18092
18093
18094/***/ }),
18095/* 197 */
18096/***/ (function(module, exports, __webpack_require__) {
18097
18098var isObject = __webpack_require__(93);
18099var document = __webpack_require__(31).document;
18100// typeof document.createElement is 'object' in old IE
18101var is = isObject(document) && isObject(document.createElement);
18102module.exports = function (it) {
18103 return is ? document.createElement(it) : {};
18104};
18105
18106
18107/***/ }),
18108/* 198 */
18109/***/ (function(module, exports, __webpack_require__) {
18110
18111// to indexed object, toObject with fallback for non-array-like ES3 strings
18112var IObject = __webpack_require__(701);
18113var defined = __webpack_require__(196);
18114module.exports = function (it) {
18115 return IObject(defined(it));
18116};
18117
18118
18119/***/ }),
18120/* 199 */
18121/***/ (function(module, exports, __webpack_require__) {
18122
18123var shared = __webpack_require__(328)('keys');
18124var uid = __webpack_require__(329);
18125module.exports = function (key) {
18126 return shared[key] || (shared[key] = uid(key));
18127};
18128
18129
18130/***/ }),
18131/* 200 */
18132/***/ (function(module, exports, __webpack_require__) {
18133
18134var def = __webpack_require__(135).f;
18135var has = __webpack_require__(136);
18136var TAG = __webpack_require__(32)('toStringTag');
18137
18138module.exports = function (it, tag, stat) {
18139 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
18140};
18141
18142
18143/***/ }),
18144/* 201 */
18145/***/ (function(module, exports, __webpack_require__) {
18146
18147"use strict";
18148
18149// 25.4.1.5 NewPromiseCapability(C)
18150var aFunction = __webpack_require__(134);
18151
18152function PromiseCapability(C) {
18153 var resolve, reject;
18154 this.promise = new C(function ($$resolve, $$reject) {
18155 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
18156 resolve = $$resolve;
18157 reject = $$reject;
18158 });
18159 this.resolve = aFunction(resolve);
18160 this.reject = aFunction(reject);
18161}
18162
18163module.exports.f = function (C) {
18164 return new PromiseCapability(C);
18165};
18166
18167
18168/***/ }),
18169/* 202 */
18170/***/ (function(module, exports, __webpack_require__) {
18171
18172
18173/**
18174 * body.js
18175 *
18176 * Body interface provides common methods for Request and Response
18177 */
18178
18179var convert = __webpack_require__(739).convert;
18180var bodyStream = __webpack_require__(742);
18181var PassThrough = __webpack_require__(40).PassThrough;
18182var FetchError = __webpack_require__(340);
18183
18184module.exports = Body;
18185
18186/**
18187 * Body class
18188 *
18189 * @param Stream body Readable stream
18190 * @param Object opts Response options
18191 * @return Void
18192 */
18193function Body(body, opts) {
18194
18195 opts = opts || {};
18196
18197 this.body = body;
18198 this.bodyUsed = false;
18199 this.size = opts.size || 0;
18200 this.timeout = opts.timeout || 0;
18201 this._raw = [];
18202 this._abort = false;
18203
18204}
18205
18206/**
18207 * Decode response as json
18208 *
18209 * @return Promise
18210 */
18211Body.prototype.json = function() {
18212
18213 var self = this;
18214
18215 return this._decode().then(function(buffer) {
18216 try {
18217 return JSON.parse(buffer.toString());
18218 } catch (err) {
18219 return Body.Promise.reject(new FetchError('invalid json response body at ' + self.url + ' reason: ' + err.message, 'invalid-json'));
18220 }
18221 });
18222
18223};
18224
18225/**
18226 * Decode response as text
18227 *
18228 * @return Promise
18229 */
18230Body.prototype.text = function() {
18231
18232 return this._decode().then(function(buffer) {
18233 return buffer.toString();
18234 });
18235
18236};
18237
18238/**
18239 * Decode response as buffer (non-spec api)
18240 *
18241 * @return Promise
18242 */
18243Body.prototype.buffer = function() {
18244
18245 return this._decode();
18246
18247};
18248
18249/**
18250 * Decode buffers into utf-8 string
18251 *
18252 * @return Promise
18253 */
18254Body.prototype._decode = function() {
18255
18256 var self = this;
18257
18258 if (this.bodyUsed) {
18259 return Body.Promise.reject(new Error('body used already for: ' + this.url));
18260 }
18261
18262 this.bodyUsed = true;
18263 this._bytes = 0;
18264 this._abort = false;
18265 this._raw = [];
18266
18267 return new Body.Promise(function(resolve, reject) {
18268 var resTimeout;
18269
18270 // body is string
18271 if (typeof self.body === 'string') {
18272 self._bytes = self.body.length;
18273 self._raw = [new Buffer(self.body)];
18274 return resolve(self._convert());
18275 }
18276
18277 // body is buffer
18278 if (self.body instanceof Buffer) {
18279 self._bytes = self.body.length;
18280 self._raw = [self.body];
18281 return resolve(self._convert());
18282 }
18283
18284 // allow timeout on slow response body
18285 if (self.timeout) {
18286 resTimeout = setTimeout(function() {
18287 self._abort = true;
18288 reject(new FetchError('response timeout at ' + self.url + ' over limit: ' + self.timeout, 'body-timeout'));
18289 }, self.timeout);
18290 }
18291
18292 // handle stream error, such as incorrect content-encoding
18293 self.body.on('error', function(err) {
18294 reject(new FetchError('invalid response body at: ' + self.url + ' reason: ' + err.message, 'system', err));
18295 });
18296
18297 // body is stream
18298 self.body.on('data', function(chunk) {
18299 if (self._abort || chunk === null) {
18300 return;
18301 }
18302
18303 if (self.size && self._bytes + chunk.length > self.size) {
18304 self._abort = true;
18305 reject(new FetchError('content size at ' + self.url + ' over limit: ' + self.size, 'max-size'));
18306 return;
18307 }
18308
18309 self._bytes += chunk.length;
18310 self._raw.push(chunk);
18311 });
18312
18313 self.body.on('end', function() {
18314 if (self._abort) {
18315 return;
18316 }
18317
18318 clearTimeout(resTimeout);
18319 resolve(self._convert());
18320 });
18321 });
18322
18323};
18324
18325/**
18326 * Detect buffer encoding and convert to target encoding
18327 * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
18328 *
18329 * @param String encoding Target encoding
18330 * @return String
18331 */
18332Body.prototype._convert = function(encoding) {
18333
18334 encoding = encoding || 'utf-8';
18335
18336 var ct = this.headers.get('content-type');
18337 var charset = 'utf-8';
18338 var res, str;
18339
18340 // header
18341 if (ct) {
18342 // skip encoding detection altogether if not html/xml/plain text
18343 if (!/text\/html|text\/plain|\+xml|\/xml/i.test(ct)) {
18344 return Buffer.concat(this._raw);
18345 }
18346
18347 res = /charset=([^;]*)/i.exec(ct);
18348 }
18349
18350 // no charset in content type, peek at response body for at most 1024 bytes
18351 if (!res && this._raw.length > 0) {
18352 for (var i = 0; i < this._raw.length; i++) {
18353 str += this._raw[i].toString()
18354 if (str.length > 1024) {
18355 break;
18356 }
18357 }
18358 str = str.substr(0, 1024);
18359 }
18360
18361 // html5
18362 if (!res && str) {
18363 res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str);
18364 }
18365
18366 // html4
18367 if (!res && str) {
18368 res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
18369
18370 if (res) {
18371 res = /charset=(.*)/i.exec(res.pop());
18372 }
18373 }
18374
18375 // xml
18376 if (!res && str) {
18377 res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str);
18378 }
18379
18380 // found charset
18381 if (res) {
18382 charset = res.pop();
18383
18384 // prevent decode issues when sites use incorrect encoding
18385 // ref: https://hsivonen.fi/encoding-menu/
18386 if (charset === 'gb2312' || charset === 'gbk') {
18387 charset = 'gb18030';
18388 }
18389 }
18390
18391 // turn raw buffers into a single utf-8 buffer
18392 return convert(
18393 Buffer.concat(this._raw)
18394 , encoding
18395 , charset
18396 );
18397
18398};
18399
18400/**
18401 * Clone body given Res/Req instance
18402 *
18403 * @param Mixed instance Response or Request instance
18404 * @return Mixed
18405 */
18406Body.prototype._clone = function(instance) {
18407 var p1, p2;
18408 var body = instance.body;
18409
18410 // don't allow cloning a used body
18411 if (instance.bodyUsed) {
18412 throw new Error('cannot clone body after it is used');
18413 }
18414
18415 // check that body is a stream and not form-data object
18416 // note: we can't clone the form-data object without having it as a dependency
18417 if (bodyStream(body) && typeof body.getBoundary !== 'function') {
18418 // tee instance body
18419 p1 = new PassThrough();
18420 p2 = new PassThrough();
18421 body.pipe(p1);
18422 body.pipe(p2);
18423 // set instance body to teed body and return the other teed body
18424 instance.body = p1;
18425 body = p2;
18426 }
18427
18428 return body;
18429}
18430
18431// expose Promise
18432Body.Promise = global.Promise;
18433
18434
18435/***/ }),
18436/* 203 */
18437/***/ (function(module, exports) {
18438
18439
18440/**
18441 * headers.js
18442 *
18443 * Headers class offers convenient helpers
18444 */
18445
18446module.exports = Headers;
18447
18448/**
18449 * Headers class
18450 *
18451 * @param Object headers Response headers
18452 * @return Void
18453 */
18454function Headers(headers) {
18455
18456 var self = this;
18457 this._headers = {};
18458
18459 // Headers
18460 if (headers instanceof Headers) {
18461 headers = headers.raw();
18462 }
18463
18464 // plain object
18465 for (var prop in headers) {
18466 if (!headers.hasOwnProperty(prop)) {
18467 continue;
18468 }
18469
18470 if (typeof headers[prop] === 'string') {
18471 this.set(prop, headers[prop]);
18472
18473 } else if (typeof headers[prop] === 'number' && !isNaN(headers[prop])) {
18474 this.set(prop, headers[prop].toString());
18475
18476 } else if (Array.isArray(headers[prop])) {
18477 headers[prop].forEach(function(item) {
18478 self.append(prop, item.toString());
18479 });
18480 }
18481 }
18482
18483}
18484
18485/**
18486 * Return first header value given name
18487 *
18488 * @param String name Header name
18489 * @return Mixed
18490 */
18491Headers.prototype.get = function(name) {
18492 var list = this._headers[name.toLowerCase()];
18493 return list ? list[0] : null;
18494};
18495
18496/**
18497 * Return all header values given name
18498 *
18499 * @param String name Header name
18500 * @return Array
18501 */
18502Headers.prototype.getAll = function(name) {
18503 if (!this.has(name)) {
18504 return [];
18505 }
18506
18507 return this._headers[name.toLowerCase()];
18508};
18509
18510/**
18511 * Iterate over all headers
18512 *
18513 * @param Function callback Executed for each item with parameters (value, name, thisArg)
18514 * @param Boolean thisArg `this` context for callback function
18515 * @return Void
18516 */
18517Headers.prototype.forEach = function(callback, thisArg) {
18518 Object.getOwnPropertyNames(this._headers).forEach(function(name) {
18519 this._headers[name].forEach(function(value) {
18520 callback.call(thisArg, value, name, this)
18521 }, this)
18522 }, this)
18523}
18524
18525/**
18526 * Overwrite header values given name
18527 *
18528 * @param String name Header name
18529 * @param String value Header value
18530 * @return Void
18531 */
18532Headers.prototype.set = function(name, value) {
18533 this._headers[name.toLowerCase()] = [value];
18534};
18535
18536/**
18537 * Append a value onto existing header
18538 *
18539 * @param String name Header name
18540 * @param String value Header value
18541 * @return Void
18542 */
18543Headers.prototype.append = function(name, value) {
18544 if (!this.has(name)) {
18545 this.set(name, value);
18546 return;
18547 }
18548
18549 this._headers[name.toLowerCase()].push(value);
18550};
18551
18552/**
18553 * Check for header name existence
18554 *
18555 * @param String name Header name
18556 * @return Boolean
18557 */
18558Headers.prototype.has = function(name) {
18559 return this._headers.hasOwnProperty(name.toLowerCase());
18560};
18561
18562/**
18563 * Delete all header values given name
18564 *
18565 * @param String name Header name
18566 * @return Void
18567 */
18568Headers.prototype['delete'] = function(name) {
18569 delete this._headers[name.toLowerCase()];
18570};
18571
18572/**
18573 * Return raw headers (non-spec api)
18574 *
18575 * @return Object
18576 */
18577Headers.prototype.raw = function() {
18578 return this._headers;
18579};
18580
18581
18582/***/ }),
18583/* 204 */
18584/***/ (function(module, exports, __webpack_require__) {
18585
18586var baseForOwn = __webpack_require__(751),
18587 createBaseEach = __webpack_require__(767);
18588
18589/**
18590 * The base implementation of `_.forEach` without support for iteratee shorthands.
18591 *
18592 * @private
18593 * @param {Array|Object} collection The collection to iterate over.
18594 * @param {Function} iteratee The function invoked per iteration.
18595 * @returns {Array|Object} Returns `collection`.
18596 */
18597var baseEach = createBaseEach(baseForOwn);
18598
18599module.exports = baseEach;
18600
18601
18602/***/ }),
18603/* 205 */
18604/***/ (function(module, exports, __webpack_require__) {
18605
18606var arrayLikeKeys = __webpack_require__(754),
18607 baseKeys = __webpack_require__(763),
18608 isArrayLike = __webpack_require__(139);
18609
18610/**
18611 * Creates an array of the own enumerable property names of `object`.
18612 *
18613 * **Note:** Non-object values are coerced to objects. See the
18614 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
18615 * for more details.
18616 *
18617 * @static
18618 * @since 0.1.0
18619 * @memberOf _
18620 * @category Object
18621 * @param {Object} object The object to query.
18622 * @returns {Array} Returns the array of property names.
18623 * @example
18624 *
18625 * function Foo() {
18626 * this.a = 1;
18627 * this.b = 2;
18628 * }
18629 *
18630 * Foo.prototype.c = 3;
18631 *
18632 * _.keys(new Foo);
18633 * // => ['a', 'b'] (iteration order is not guaranteed)
18634 *
18635 * _.keys('hi');
18636 * // => ['0', '1']
18637 */
18638function keys(object) {
18639 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
18640}
18641
18642module.exports = keys;
18643
18644
18645/***/ }),
18646/* 206 */
18647/***/ (function(module, exports, __webpack_require__) {
18648
18649var baseIsArguments = __webpack_require__(756),
18650 isObjectLike = __webpack_require__(100);
18651
18652/** Used for built-in method references. */
18653var objectProto = Object.prototype;
18654
18655/** Used to check objects for own properties. */
18656var hasOwnProperty = objectProto.hasOwnProperty;
18657
18658/** Built-in value references. */
18659var propertyIsEnumerable = objectProto.propertyIsEnumerable;
18660
18661/**
18662 * Checks if `value` is likely an `arguments` object.
18663 *
18664 * @static
18665 * @memberOf _
18666 * @since 0.1.0
18667 * @category Lang
18668 * @param {*} value The value to check.
18669 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
18670 * else `false`.
18671 * @example
18672 *
18673 * _.isArguments(function() { return arguments; }());
18674 * // => true
18675 *
18676 * _.isArguments([1, 2, 3]);
18677 * // => false
18678 */
18679var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
18680 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
18681 !propertyIsEnumerable.call(value, 'callee');
18682};
18683
18684module.exports = isArguments;
18685
18686
18687/***/ }),
18688/* 207 */
18689/***/ (function(module, exports) {
18690
18691/** Used as references for various `Number` constants. */
18692var MAX_SAFE_INTEGER = 9007199254740991;
18693
18694/** Used to detect unsigned integer values. */
18695var reIsUint = /^(?:0|[1-9]\d*)$/;
18696
18697/**
18698 * Checks if `value` is a valid array-like index.
18699 *
18700 * @private
18701 * @param {*} value The value to check.
18702 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
18703 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
18704 */
18705function isIndex(value, length) {
18706 var type = typeof value;
18707 length = length == null ? MAX_SAFE_INTEGER : length;
18708
18709 return !!length &&
18710 (type == 'number' ||
18711 (type != 'symbol' && reIsUint.test(value))) &&
18712 (value > -1 && value % 1 == 0 && value < length);
18713}
18714
18715module.exports = isIndex;
18716
18717
18718/***/ }),
18719/* 208 */
18720/***/ (function(module, exports) {
18721
18722/** Used as references for various `Number` constants. */
18723var MAX_SAFE_INTEGER = 9007199254740991;
18724
18725/**
18726 * Checks if `value` is a valid array-like length.
18727 *
18728 * **Note:** This method is loosely based on
18729 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
18730 *
18731 * @static
18732 * @memberOf _
18733 * @since 4.0.0
18734 * @category Lang
18735 * @param {*} value The value to check.
18736 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
18737 * @example
18738 *
18739 * _.isLength(3);
18740 * // => true
18741 *
18742 * _.isLength(Number.MIN_VALUE);
18743 * // => false
18744 *
18745 * _.isLength(Infinity);
18746 * // => false
18747 *
18748 * _.isLength('3');
18749 * // => false
18750 */
18751function isLength(value) {
18752 return typeof value == 'number' &&
18753 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
18754}
18755
18756module.exports = isLength;
18757
18758
18759/***/ }),
18760/* 209 */
18761/***/ (function(module, exports, __webpack_require__) {
18762
18763var baseMatches = __webpack_require__(770),
18764 baseMatchesProperty = __webpack_require__(820),
18765 identity = __webpack_require__(345),
18766 isArray = __webpack_require__(24),
18767 property = __webpack_require__(830);
18768
18769/**
18770 * The base implementation of `_.iteratee`.
18771 *
18772 * @private
18773 * @param {*} [value=_.identity] The value to convert to an iteratee.
18774 * @returns {Function} Returns the iteratee.
18775 */
18776function baseIteratee(value) {
18777 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
18778 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
18779 if (typeof value == 'function') {
18780 return value;
18781 }
18782 if (value == null) {
18783 return identity;
18784 }
18785 if (typeof value == 'object') {
18786 return isArray(value)
18787 ? baseMatchesProperty(value[0], value[1])
18788 : baseMatches(value);
18789 }
18790 return property(value);
18791}
18792
18793module.exports = baseIteratee;
18794
18795
18796/***/ }),
18797/* 210 */
18798/***/ (function(module, exports) {
18799
18800/**
18801 * Performs a
18802 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
18803 * comparison between two values to determine if they are equivalent.
18804 *
18805 * @static
18806 * @memberOf _
18807 * @since 4.0.0
18808 * @category Lang
18809 * @param {*} value The value to compare.
18810 * @param {*} other The other value to compare.
18811 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
18812 * @example
18813 *
18814 * var object = { 'a': 1 };
18815 * var other = { 'a': 1 };
18816 *
18817 * _.eq(object, object);
18818 * // => true
18819 *
18820 * _.eq(object, other);
18821 * // => false
18822 *
18823 * _.eq('a', 'a');
18824 * // => true
18825 *
18826 * _.eq('a', Object('a'));
18827 * // => false
18828 *
18829 * _.eq(NaN, NaN);
18830 * // => true
18831 */
18832function eq(value, other) {
18833 return value === other || (value !== value && other !== other);
18834}
18835
18836module.exports = eq;
18837
18838
18839/***/ }),
18840/* 211 */
18841/***/ (function(module, exports, __webpack_require__) {
18842
18843var getNative = __webpack_require__(81),
18844 root = __webpack_require__(49);
18845
18846/* Built-in method references that are verified to be native. */
18847var Map = getNative(root, 'Map');
18848
18849module.exports = Map;
18850
18851
18852/***/ }),
18853/* 212 */
18854/***/ (function(module, exports, __webpack_require__) {
18855
18856var mapCacheClear = __webpack_require__(786),
18857 mapCacheDelete = __webpack_require__(793),
18858 mapCacheGet = __webpack_require__(795),
18859 mapCacheHas = __webpack_require__(796),
18860 mapCacheSet = __webpack_require__(797);
18861
18862/**
18863 * Creates a map cache object to store key-value pairs.
18864 *
18865 * @private
18866 * @constructor
18867 * @param {Array} [entries] The key-value pairs to cache.
18868 */
18869function MapCache(entries) {
18870 var index = -1,
18871 length = entries == null ? 0 : entries.length;
18872
18873 this.clear();
18874 while (++index < length) {
18875 var entry = entries[index];
18876 this.set(entry[0], entry[1]);
18877 }
18878}
18879
18880// Add methods to `MapCache`.
18881MapCache.prototype.clear = mapCacheClear;
18882MapCache.prototype['delete'] = mapCacheDelete;
18883MapCache.prototype.get = mapCacheGet;
18884MapCache.prototype.has = mapCacheHas;
18885MapCache.prototype.set = mapCacheSet;
18886
18887module.exports = MapCache;
18888
18889
18890/***/ }),
18891/* 213 */
18892/***/ (function(module, exports, __webpack_require__) {
18893
18894var isArray = __webpack_require__(24),
18895 isSymbol = __webpack_require__(145);
18896
18897/** Used to match property names within property paths. */
18898var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
18899 reIsPlainProp = /^\w*$/;
18900
18901/**
18902 * Checks if `value` is a property name and not a property path.
18903 *
18904 * @private
18905 * @param {*} value The value to check.
18906 * @param {Object} [object] The object to query keys on.
18907 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
18908 */
18909function isKey(value, object) {
18910 if (isArray(value)) {
18911 return false;
18912 }
18913 var type = typeof value;
18914 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
18915 value == null || isSymbol(value)) {
18916 return true;
18917 }
18918 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
18919 (object != null && value in Object(object));
18920}
18921
18922module.exports = isKey;
18923
18924
18925/***/ }),
18926/* 214 */
18927/***/ (function(module, exports, __webpack_require__) {
18928
18929module.exports = !__webpack_require__(8) && !__webpack_require__(4)(function () {
18930 return Object.defineProperty(__webpack_require__(147)('div'), 'a', { get: function () { return 7; } }).a != 7;
18931});
18932
18933
18934/***/ }),
18935/* 215 */
18936/***/ (function(module, exports, __webpack_require__) {
18937
18938exports.f = __webpack_require__(7);
18939
18940
18941/***/ }),
18942/* 216 */
18943/***/ (function(module, exports, __webpack_require__) {
18944
18945var has = __webpack_require__(17);
18946var toIObject = __webpack_require__(21);
18947var arrayIndexOf = __webpack_require__(102)(false);
18948var IE_PROTO = __webpack_require__(149)('IE_PROTO');
18949
18950module.exports = function (object, names) {
18951 var O = toIObject(object);
18952 var i = 0;
18953 var result = [];
18954 var key;
18955 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
18956 // Don't enum bug & hidden keys
18957 while (names.length > i) if (has(O, key = names[i++])) {
18958 ~arrayIndexOf(result, key) || result.push(key);
18959 }
18960 return result;
18961};
18962
18963
18964/***/ }),
18965/* 217 */
18966/***/ (function(module, exports, __webpack_require__) {
18967
18968var dP = __webpack_require__(9);
18969var anObject = __webpack_require__(1);
18970var getKeys = __webpack_require__(58);
18971
18972module.exports = __webpack_require__(8) ? Object.defineProperties : function defineProperties(O, Properties) {
18973 anObject(O);
18974 var keys = getKeys(Properties);
18975 var length = keys.length;
18976 var i = 0;
18977 var P;
18978 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
18979 return O;
18980};
18981
18982
18983/***/ }),
18984/* 218 */
18985/***/ (function(module, exports, __webpack_require__) {
18986
18987// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
18988var toIObject = __webpack_require__(21);
18989var gOPN = __webpack_require__(61).f;
18990var toString = {}.toString;
18991
18992var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
18993 ? Object.getOwnPropertyNames(window) : [];
18994
18995var getWindowNames = function (it) {
18996 try {
18997 return gOPN(it);
18998 } catch (e) {
18999 return windowNames.slice();
19000 }
19001};
19002
19003module.exports.f = function getOwnPropertyNames(it) {
19004 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
19005};
19006
19007
19008/***/ }),
19009/* 219 */
19010/***/ (function(module, exports, __webpack_require__) {
19011
19012"use strict";
19013
19014// 19.1.2.1 Object.assign(target, source, ...)
19015var getKeys = __webpack_require__(58);
19016var gOPS = __webpack_require__(103);
19017var pIE = __webpack_require__(83);
19018var toObject = __webpack_require__(13);
19019var IObject = __webpack_require__(82);
19020var $assign = Object.assign;
19021
19022// should work with symbols and should have deterministic property order (V8 bug)
19023module.exports = !$assign || __webpack_require__(4)(function () {
19024 var A = {};
19025 var B = {};
19026 // eslint-disable-next-line no-undef
19027 var S = Symbol();
19028 var K = 'abcdefghijklmnopqrst';
19029 A[S] = 7;
19030 K.split('').forEach(function (k) { B[k] = k; });
19031 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
19032}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
19033 var T = toObject(target);
19034 var aLen = arguments.length;
19035 var index = 1;
19036 var getSymbols = gOPS.f;
19037 var isEnum = pIE.f;
19038 while (aLen > index) {
19039 var S = IObject(arguments[index++]);
19040 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
19041 var length = keys.length;
19042 var j = 0;
19043 var key;
19044 while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
19045 } return T;
19046} : $assign;
19047
19048
19049/***/ }),
19050/* 220 */
19051/***/ (function(module, exports, __webpack_require__) {
19052
19053"use strict";
19054
19055var aFunction = __webpack_require__(15);
19056var isObject = __webpack_require__(5);
19057var invoke = __webpack_require__(221);
19058var arraySlice = [].slice;
19059var factories = {};
19060
19061var construct = function (F, len, args) {
19062 if (!(len in factories)) {
19063 for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
19064 // eslint-disable-next-line no-new-func
19065 factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
19066 } return factories[len](F, args);
19067};
19068
19069module.exports = Function.bind || function bind(that /* , ...args */) {
19070 var fn = aFunction(this);
19071 var partArgs = arraySlice.call(arguments, 1);
19072 var bound = function (/* args... */) {
19073 var args = partArgs.concat(arraySlice.call(arguments));
19074 return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
19075 };
19076 if (isObject(fn.prototype)) bound.prototype = fn.prototype;
19077 return bound;
19078};
19079
19080
19081/***/ }),
19082/* 221 */
19083/***/ (function(module, exports) {
19084
19085// fast apply, http://jsperf.lnkit.com/fast-apply/5
19086module.exports = function (fn, args, that) {
19087 var un = that === undefined;
19088 switch (args.length) {
19089 case 0: return un ? fn()
19090 : fn.call(that);
19091 case 1: return un ? fn(args[0])
19092 : fn.call(that, args[0]);
19093 case 2: return un ? fn(args[0], args[1])
19094 : fn.call(that, args[0], args[1]);
19095 case 3: return un ? fn(args[0], args[1], args[2])
19096 : fn.call(that, args[0], args[1], args[2]);
19097 case 4: return un ? fn(args[0], args[1], args[2], args[3])
19098 : fn.call(that, args[0], args[1], args[2], args[3]);
19099 } return fn.apply(that, args);
19100};
19101
19102
19103/***/ }),
19104/* 222 */
19105/***/ (function(module, exports, __webpack_require__) {
19106
19107var $parseInt = __webpack_require__(2).parseInt;
19108var $trim = __webpack_require__(72).trim;
19109var ws = __webpack_require__(153);
19110var hex = /^[-+]?0[xX]/;
19111
19112module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
19113 var string = $trim(String(str), 3);
19114 return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
19115} : $parseInt;
19116
19117
19118/***/ }),
19119/* 223 */
19120/***/ (function(module, exports, __webpack_require__) {
19121
19122var $parseFloat = __webpack_require__(2).parseFloat;
19123var $trim = __webpack_require__(72).trim;
19124
19125module.exports = 1 / $parseFloat(__webpack_require__(153) + '-0') !== -Infinity ? function parseFloat(str) {
19126 var string = $trim(String(str), 3);
19127 var result = $parseFloat(string);
19128 return result === 0 && string.charAt(0) == '-' ? -0 : result;
19129} : $parseFloat;
19130
19131
19132/***/ }),
19133/* 224 */
19134/***/ (function(module, exports, __webpack_require__) {
19135
19136var cof = __webpack_require__(26);
19137module.exports = function (it, msg) {
19138 if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);
19139 return +it;
19140};
19141
19142
19143/***/ }),
19144/* 225 */
19145/***/ (function(module, exports, __webpack_require__) {
19146
19147// 20.1.2.3 Number.isInteger(number)
19148var isObject = __webpack_require__(5);
19149var floor = Math.floor;
19150module.exports = function isInteger(it) {
19151 return !isObject(it) && isFinite(it) && floor(it) === it;
19152};
19153
19154
19155/***/ }),
19156/* 226 */
19157/***/ (function(module, exports) {
19158
19159// 20.2.2.20 Math.log1p(x)
19160module.exports = Math.log1p || function log1p(x) {
19161 return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
19162};
19163
19164
19165/***/ }),
19166/* 227 */
19167/***/ (function(module, exports, __webpack_require__) {
19168
19169// 20.2.2.16 Math.fround(x)
19170var sign = __webpack_require__(156);
19171var pow = Math.pow;
19172var EPSILON = pow(2, -52);
19173var EPSILON32 = pow(2, -23);
19174var MAX32 = pow(2, 127) * (2 - EPSILON32);
19175var MIN32 = pow(2, -126);
19176
19177var roundTiesToEven = function (n) {
19178 return n + 1 / EPSILON - 1 / EPSILON;
19179};
19180
19181module.exports = Math.fround || function fround(x) {
19182 var $abs = Math.abs(x);
19183 var $sign = sign(x);
19184 var a, result;
19185 if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
19186 a = (1 + EPSILON32 / EPSILON) * $abs;
19187 result = a - (a - $abs);
19188 // eslint-disable-next-line no-self-compare
19189 if (result > MAX32 || result != result) return $sign * Infinity;
19190 return $sign * result;
19191};
19192
19193
19194/***/ }),
19195/* 228 */
19196/***/ (function(module, exports, __webpack_require__) {
19197
19198// call something on iterator step with safe closing on error
19199var anObject = __webpack_require__(1);
19200module.exports = function (iterator, fn, value, entries) {
19201 try {
19202 return entries ? fn(anObject(value)[0], value[1]) : fn(value);
19203 // 7.4.6 IteratorClose(iterator, completion)
19204 } catch (e) {
19205 var ret = iterator['return'];
19206 if (ret !== undefined) anObject(ret.call(iterator));
19207 throw e;
19208 }
19209};
19210
19211
19212/***/ }),
19213/* 229 */
19214/***/ (function(module, exports, __webpack_require__) {
19215
19216var aFunction = __webpack_require__(15);
19217var toObject = __webpack_require__(13);
19218var IObject = __webpack_require__(82);
19219var toLength = __webpack_require__(10);
19220
19221module.exports = function (that, callbackfn, aLen, memo, isRight) {
19222 aFunction(callbackfn);
19223 var O = toObject(that);
19224 var self = IObject(O);
19225 var length = toLength(O.length);
19226 var index = isRight ? length - 1 : 0;
19227 var i = isRight ? -1 : 1;
19228 if (aLen < 2) for (;;) {
19229 if (index in self) {
19230 memo = self[index];
19231 index += i;
19232 break;
19233 }
19234 index += i;
19235 if (isRight ? index < 0 : length <= index) {
19236 throw TypeError('Reduce of empty array with no initial value');
19237 }
19238 }
19239 for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
19240 memo = callbackfn(memo, self[index], index, O);
19241 }
19242 return memo;
19243};
19244
19245
19246/***/ }),
19247/* 230 */
19248/***/ (function(module, exports, __webpack_require__) {
19249
19250"use strict";
19251// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
19252
19253var toObject = __webpack_require__(13);
19254var toAbsoluteIndex = __webpack_require__(59);
19255var toLength = __webpack_require__(10);
19256
19257module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
19258 var O = toObject(this);
19259 var len = toLength(O.length);
19260 var to = toAbsoluteIndex(target, len);
19261 var from = toAbsoluteIndex(start, len);
19262 var end = arguments.length > 2 ? arguments[2] : undefined;
19263 var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
19264 var inc = 1;
19265 if (from < to && to < from + count) {
19266 inc = -1;
19267 from += count - 1;
19268 to += count - 1;
19269 }
19270 while (count-- > 0) {
19271 if (from in O) O[to] = O[from];
19272 else delete O[to];
19273 to += inc;
19274 from += inc;
19275 } return O;
19276};
19277
19278
19279/***/ }),
19280/* 231 */
19281/***/ (function(module, exports) {
19282
19283module.exports = function (done, value) {
19284 return { value: value, done: !!done };
19285};
19286
19287
19288/***/ }),
19289/* 232 */
19290/***/ (function(module, exports, __webpack_require__) {
19291
19292// 21.2.5.3 get RegExp.prototype.flags()
19293if (__webpack_require__(8) && /./g.flags != 'g') __webpack_require__(9).f(RegExp.prototype, 'flags', {
19294 configurable: true,
19295 get: __webpack_require__(107)
19296});
19297
19298
19299/***/ }),
19300/* 233 */
19301/***/ (function(module, exports) {
19302
19303module.exports = function (exec) {
19304 try {
19305 return { e: false, v: exec() };
19306 } catch (e) {
19307 return { e: true, v: e };
19308 }
19309};
19310
19311
19312/***/ }),
19313/* 234 */
19314/***/ (function(module, exports, __webpack_require__) {
19315
19316var anObject = __webpack_require__(1);
19317var isObject = __webpack_require__(5);
19318var newPromiseCapability = __webpack_require__(171);
19319
19320module.exports = function (C, x) {
19321 anObject(C);
19322 if (isObject(x) && x.constructor === C) return x;
19323 var promiseCapability = newPromiseCapability.f(C);
19324 var resolve = promiseCapability.resolve;
19325 resolve(x);
19326 return promiseCapability.promise;
19327};
19328
19329
19330/***/ }),
19331/* 235 */
19332/***/ (function(module, exports, __webpack_require__) {
19333
19334"use strict";
19335
19336var strong = __webpack_require__(236);
19337var validate = __webpack_require__(74);
19338var MAP = 'Map';
19339
19340// 23.1 Map Objects
19341module.exports = __webpack_require__(110)(MAP, function (get) {
19342 return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
19343}, {
19344 // 23.1.3.6 Map.prototype.get(key)
19345 get: function get(key) {
19346 var entry = strong.getEntry(validate(this, MAP), key);
19347 return entry && entry.v;
19348 },
19349 // 23.1.3.9 Map.prototype.set(key, value)
19350 set: function set(key, value) {
19351 return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
19352 }
19353}, strong, true);
19354
19355
19356/***/ }),
19357/* 236 */
19358/***/ (function(module, exports, __webpack_require__) {
19359
19360"use strict";
19361
19362var dP = __webpack_require__(9).f;
19363var create = __webpack_require__(60);
19364var redefineAll = __webpack_require__(65);
19365var ctx = __webpack_require__(25);
19366var anInstance = __webpack_require__(63);
19367var forOf = __webpack_require__(64);
19368var $iterDefine = __webpack_require__(159);
19369var step = __webpack_require__(231);
19370var setSpecies = __webpack_require__(62);
19371var DESCRIPTORS = __webpack_require__(8);
19372var fastKey = __webpack_require__(50).fastKey;
19373var validate = __webpack_require__(74);
19374var SIZE = DESCRIPTORS ? '_s' : 'size';
19375
19376var getEntry = function (that, key) {
19377 // fast case
19378 var index = fastKey(key);
19379 var entry;
19380 if (index !== 'F') return that._i[index];
19381 // frozen object case
19382 for (entry = that._f; entry; entry = entry.n) {
19383 if (entry.k == key) return entry;
19384 }
19385};
19386
19387module.exports = {
19388 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
19389 var C = wrapper(function (that, iterable) {
19390 anInstance(that, C, NAME, '_i');
19391 that._t = NAME; // collection type
19392 that._i = create(null); // index
19393 that._f = undefined; // first entry
19394 that._l = undefined; // last entry
19395 that[SIZE] = 0; // size
19396 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
19397 });
19398 redefineAll(C.prototype, {
19399 // 23.1.3.1 Map.prototype.clear()
19400 // 23.2.3.2 Set.prototype.clear()
19401 clear: function clear() {
19402 for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
19403 entry.r = true;
19404 if (entry.p) entry.p = entry.p.n = undefined;
19405 delete data[entry.i];
19406 }
19407 that._f = that._l = undefined;
19408 that[SIZE] = 0;
19409 },
19410 // 23.1.3.3 Map.prototype.delete(key)
19411 // 23.2.3.4 Set.prototype.delete(value)
19412 'delete': function (key) {
19413 var that = validate(this, NAME);
19414 var entry = getEntry(that, key);
19415 if (entry) {
19416 var next = entry.n;
19417 var prev = entry.p;
19418 delete that._i[entry.i];
19419 entry.r = true;
19420 if (prev) prev.n = next;
19421 if (next) next.p = prev;
19422 if (that._f == entry) that._f = next;
19423 if (that._l == entry) that._l = prev;
19424 that[SIZE]--;
19425 } return !!entry;
19426 },
19427 // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
19428 // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
19429 forEach: function forEach(callbackfn /* , that = undefined */) {
19430 validate(this, NAME);
19431 var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
19432 var entry;
19433 while (entry = entry ? entry.n : this._f) {
19434 f(entry.v, entry.k, this);
19435 // revert to the last existing entry
19436 while (entry && entry.r) entry = entry.p;
19437 }
19438 },
19439 // 23.1.3.7 Map.prototype.has(key)
19440 // 23.2.3.7 Set.prototype.has(value)
19441 has: function has(key) {
19442 return !!getEntry(validate(this, NAME), key);
19443 }
19444 });
19445 if (DESCRIPTORS) dP(C.prototype, 'size', {
19446 get: function () {
19447 return validate(this, NAME)[SIZE];
19448 }
19449 });
19450 return C;
19451 },
19452 def: function (that, key, value) {
19453 var entry = getEntry(that, key);
19454 var prev, index;
19455 // change existing entry
19456 if (entry) {
19457 entry.v = value;
19458 // create new entry
19459 } else {
19460 that._l = entry = {
19461 i: index = fastKey(key, true), // <- index
19462 k: key, // <- key
19463 v: value, // <- value
19464 p: prev = that._l, // <- previous entry
19465 n: undefined, // <- next entry
19466 r: false // <- removed
19467 };
19468 if (!that._f) that._f = entry;
19469 if (prev) prev.n = entry;
19470 that[SIZE]++;
19471 // add to index
19472 if (index !== 'F') that._i[index] = entry;
19473 } return that;
19474 },
19475 getEntry: getEntry,
19476 setStrong: function (C, NAME, IS_MAP) {
19477 // add .keys, .values, .entries, [@@iterator]
19478 // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
19479 $iterDefine(C, NAME, function (iterated, kind) {
19480 this._t = validate(iterated, NAME); // target
19481 this._k = kind; // kind
19482 this._l = undefined; // previous
19483 }, function () {
19484 var that = this;
19485 var kind = that._k;
19486 var entry = that._l;
19487 // revert to the last existing entry
19488 while (entry && entry.r) entry = entry.p;
19489 // get next entry
19490 if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
19491 // or finish the iteration
19492 that._t = undefined;
19493 return step(1);
19494 }
19495 // return step by kind
19496 if (kind == 'keys') return step(0, entry.k);
19497 if (kind == 'values') return step(0, entry.v);
19498 return step(0, [entry.k, entry.v]);
19499 }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
19500
19501 // add [@@species], 23.1.2.2, 23.2.2.2
19502 setSpecies(NAME);
19503 }
19504};
19505
19506
19507/***/ }),
19508/* 237 */
19509/***/ (function(module, exports, __webpack_require__) {
19510
19511"use strict";
19512
19513var strong = __webpack_require__(236);
19514var validate = __webpack_require__(74);
19515var SET = 'Set';
19516
19517// 23.2 Set Objects
19518module.exports = __webpack_require__(110)(SET, function (get) {
19519 return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
19520}, {
19521 // 23.2.3.1 Set.prototype.add(value)
19522 add: function add(value) {
19523 return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
19524 }
19525}, strong);
19526
19527
19528/***/ }),
19529/* 238 */
19530/***/ (function(module, exports, __webpack_require__) {
19531
19532"use strict";
19533
19534var each = __webpack_require__(38)(0);
19535var redefine = __webpack_require__(19);
19536var meta = __webpack_require__(50);
19537var assign = __webpack_require__(219);
19538var weak = __webpack_require__(239);
19539var isObject = __webpack_require__(5);
19540var fails = __webpack_require__(4);
19541var validate = __webpack_require__(74);
19542var WEAK_MAP = 'WeakMap';
19543var getWeak = meta.getWeak;
19544var isExtensible = Object.isExtensible;
19545var uncaughtFrozenStore = weak.ufstore;
19546var tmp = {};
19547var InternalMap;
19548
19549var wrapper = function (get) {
19550 return function WeakMap() {
19551 return get(this, arguments.length > 0 ? arguments[0] : undefined);
19552 };
19553};
19554
19555var methods = {
19556 // 23.3.3.3 WeakMap.prototype.get(key)
19557 get: function get(key) {
19558 if (isObject(key)) {
19559 var data = getWeak(key);
19560 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
19561 return data ? data[this._i] : undefined;
19562 }
19563 },
19564 // 23.3.3.5 WeakMap.prototype.set(key, value)
19565 set: function set(key, value) {
19566 return weak.def(validate(this, WEAK_MAP), key, value);
19567 }
19568};
19569
19570// 23.3 WeakMap Objects
19571var $WeakMap = module.exports = __webpack_require__(110)(WEAK_MAP, wrapper, methods, weak, true, true);
19572
19573// IE11 WeakMap frozen keys fix
19574if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
19575 InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
19576 assign(InternalMap.prototype, methods);
19577 meta.NEED = true;
19578 each(['delete', 'has', 'get', 'set'], function (key) {
19579 var proto = $WeakMap.prototype;
19580 var method = proto[key];
19581 redefine(proto, key, function (a, b) {
19582 // store frozen objects on internal weakmap shim
19583 if (isObject(a) && !isExtensible(a)) {
19584 if (!this._f) this._f = new InternalMap();
19585 var result = this._f[key](a, b);
19586 return key == 'set' ? this : result;
19587 // store all the rest on native weakmap
19588 } return method.call(this, a, b);
19589 });
19590 });
19591}
19592
19593
19594/***/ }),
19595/* 239 */
19596/***/ (function(module, exports, __webpack_require__) {
19597
19598"use strict";
19599
19600var redefineAll = __webpack_require__(65);
19601var getWeak = __webpack_require__(50).getWeak;
19602var anObject = __webpack_require__(1);
19603var isObject = __webpack_require__(5);
19604var anInstance = __webpack_require__(63);
19605var forOf = __webpack_require__(64);
19606var createArrayMethod = __webpack_require__(38);
19607var $has = __webpack_require__(17);
19608var validate = __webpack_require__(74);
19609var arrayFind = createArrayMethod(5);
19610var arrayFindIndex = createArrayMethod(6);
19611var id = 0;
19612
19613// fallback for uncaught frozen keys
19614var uncaughtFrozenStore = function (that) {
19615 return that._l || (that._l = new UncaughtFrozenStore());
19616};
19617var UncaughtFrozenStore = function () {
19618 this.a = [];
19619};
19620var findUncaughtFrozen = function (store, key) {
19621 return arrayFind(store.a, function (it) {
19622 return it[0] === key;
19623 });
19624};
19625UncaughtFrozenStore.prototype = {
19626 get: function (key) {
19627 var entry = findUncaughtFrozen(this, key);
19628 if (entry) return entry[1];
19629 },
19630 has: function (key) {
19631 return !!findUncaughtFrozen(this, key);
19632 },
19633 set: function (key, value) {
19634 var entry = findUncaughtFrozen(this, key);
19635 if (entry) entry[1] = value;
19636 else this.a.push([key, value]);
19637 },
19638 'delete': function (key) {
19639 var index = arrayFindIndex(this.a, function (it) {
19640 return it[0] === key;
19641 });
19642 if (~index) this.a.splice(index, 1);
19643 return !!~index;
19644 }
19645};
19646
19647module.exports = {
19648 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
19649 var C = wrapper(function (that, iterable) {
19650 anInstance(that, C, NAME, '_i');
19651 that._t = NAME; // collection type
19652 that._i = id++; // collection id
19653 that._l = undefined; // leak store for uncaught frozen objects
19654 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
19655 });
19656 redefineAll(C.prototype, {
19657 // 23.3.3.2 WeakMap.prototype.delete(key)
19658 // 23.4.3.3 WeakSet.prototype.delete(value)
19659 'delete': function (key) {
19660 if (!isObject(key)) return false;
19661 var data = getWeak(key);
19662 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
19663 return data && $has(data, this._i) && delete data[this._i];
19664 },
19665 // 23.3.3.4 WeakMap.prototype.has(key)
19666 // 23.4.3.4 WeakSet.prototype.has(value)
19667 has: function has(key) {
19668 if (!isObject(key)) return false;
19669 var data = getWeak(key);
19670 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
19671 return data && $has(data, this._i);
19672 }
19673 });
19674 return C;
19675 },
19676 def: function (that, key, value) {
19677 var data = getWeak(anObject(key), true);
19678 if (data === true) uncaughtFrozenStore(that).set(key, value);
19679 else data[that._i] = value;
19680 return that;
19681 },
19682 ufstore: uncaughtFrozenStore
19683};
19684
19685
19686/***/ }),
19687/* 240 */
19688/***/ (function(module, exports, __webpack_require__) {
19689
19690// https://tc39.github.io/ecma262/#sec-toindex
19691var toInteger = __webpack_require__(36);
19692var toLength = __webpack_require__(10);
19693module.exports = function (it) {
19694 if (it === undefined) return 0;
19695 var number = toInteger(it);
19696 var length = toLength(number);
19697 if (number !== length) throw RangeError('Wrong length!');
19698 return length;
19699};
19700
19701
19702/***/ }),
19703/* 241 */
19704/***/ (function(module, exports, __webpack_require__) {
19705
19706// all object keys, includes non-enumerable and symbols
19707var gOPN = __webpack_require__(61);
19708var gOPS = __webpack_require__(103);
19709var anObject = __webpack_require__(1);
19710var Reflect = __webpack_require__(2).Reflect;
19711module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
19712 var keys = gOPN.f(anObject(it));
19713 var getSymbols = gOPS.f;
19714 return getSymbols ? keys.concat(getSymbols(it)) : keys;
19715};
19716
19717
19718/***/ }),
19719/* 242 */
19720/***/ (function(module, exports, __webpack_require__) {
19721
19722"use strict";
19723
19724// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
19725var isArray = __webpack_require__(104);
19726var isObject = __webpack_require__(5);
19727var toLength = __webpack_require__(10);
19728var ctx = __webpack_require__(25);
19729var IS_CONCAT_SPREADABLE = __webpack_require__(7)('isConcatSpreadable');
19730
19731function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
19732 var targetIndex = start;
19733 var sourceIndex = 0;
19734 var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;
19735 var element, spreadable;
19736
19737 while (sourceIndex < sourceLen) {
19738 if (sourceIndex in source) {
19739 element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
19740
19741 spreadable = false;
19742 if (isObject(element)) {
19743 spreadable = element[IS_CONCAT_SPREADABLE];
19744 spreadable = spreadable !== undefined ? !!spreadable : isArray(element);
19745 }
19746
19747 if (spreadable && depth > 0) {
19748 targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
19749 } else {
19750 if (targetIndex >= 0x1fffffffffffff) throw TypeError();
19751 target[targetIndex] = element;
19752 }
19753
19754 targetIndex++;
19755 }
19756 sourceIndex++;
19757 }
19758 return targetIndex;
19759}
19760
19761module.exports = flattenIntoArray;
19762
19763
19764/***/ }),
19765/* 243 */
19766/***/ (function(module, exports, __webpack_require__) {
19767
19768// https://github.com/tc39/proposal-string-pad-start-end
19769var toLength = __webpack_require__(10);
19770var repeat = __webpack_require__(155);
19771var defined = __webpack_require__(35);
19772
19773module.exports = function (that, maxLength, fillString, left) {
19774 var S = String(defined(that));
19775 var stringLength = S.length;
19776 var fillStr = fillString === undefined ? ' ' : String(fillString);
19777 var intMaxLength = toLength(maxLength);
19778 if (intMaxLength <= stringLength || fillStr == '') return S;
19779 var fillLen = intMaxLength - stringLength;
19780 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
19781 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
19782 return left ? stringFiller + S : S + stringFiller;
19783};
19784
19785
19786/***/ }),
19787/* 244 */
19788/***/ (function(module, exports, __webpack_require__) {
19789
19790var getKeys = __webpack_require__(58);
19791var toIObject = __webpack_require__(21);
19792var isEnum = __webpack_require__(83).f;
19793module.exports = function (isEntries) {
19794 return function (it) {
19795 var O = toIObject(it);
19796 var keys = getKeys(O);
19797 var length = keys.length;
19798 var i = 0;
19799 var result = [];
19800 var key;
19801 while (length > i) if (isEnum.call(O, key = keys[i++])) {
19802 result.push(isEntries ? [key, O[key]] : O[key]);
19803 } return result;
19804 };
19805};
19806
19807
19808/***/ }),
19809/* 245 */
19810/***/ (function(module, exports, __webpack_require__) {
19811
19812// https://github.com/DavidBruant/Map-Set.prototype.toJSON
19813var classof = __webpack_require__(84);
19814var from = __webpack_require__(246);
19815module.exports = function (NAME) {
19816 return function toJSON() {
19817 if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
19818 return from(this);
19819 };
19820};
19821
19822
19823/***/ }),
19824/* 246 */
19825/***/ (function(module, exports, __webpack_require__) {
19826
19827var forOf = __webpack_require__(64);
19828
19829module.exports = function (iter, ITERATOR) {
19830 var result = [];
19831 forOf(iter, false, result.push, result, ITERATOR);
19832 return result;
19833};
19834
19835
19836/***/ }),
19837/* 247 */
19838/***/ (function(module, exports) {
19839
19840// https://rwaldron.github.io/proposal-math-extensions/
19841module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
19842 if (
19843 arguments.length === 0
19844 // eslint-disable-next-line no-self-compare
19845 || x != x
19846 // eslint-disable-next-line no-self-compare
19847 || inLow != inLow
19848 // eslint-disable-next-line no-self-compare
19849 || inHigh != inHigh
19850 // eslint-disable-next-line no-self-compare
19851 || outLow != outLow
19852 // eslint-disable-next-line no-self-compare
19853 || outHigh != outHigh
19854 ) return NaN;
19855 if (x === Infinity || x === -Infinity) return x;
19856 return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
19857};
19858
19859
19860/***/ }),
19861/* 248 */
19862/***/ (function(module, exports, __webpack_require__) {
19863
19864"use strict";
19865
19866
19867Object.defineProperty(exports, "__esModule", {
19868 value: true
19869});
19870exports.Source = undefined;
19871
19872var _invariant = __webpack_require__(11);
19873
19874var _invariant2 = _interopRequireDefault(_invariant);
19875
19876function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19877
19878function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
19879 * Copyright (c) 2015-present, Facebook, Inc.
19880 *
19881 * This source code is licensed under the MIT license found in the
19882 * LICENSE file in the root directory of this source tree.
19883 *
19884 *
19885 */
19886
19887/**
19888 * A representation of source input to GraphQL.
19889 * `name` and `locationOffset` are optional. They are useful for clients who
19890 * store GraphQL documents in source files; for example, if the GraphQL input
19891 * starts at line 40 in a file named Foo.graphql, it might be useful for name to
19892 * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`.
19893 * line and column in locationOffset are 1-indexed
19894 */
19895var Source = exports.Source = function Source(body, name, locationOffset) {
19896 _classCallCheck(this, Source);
19897
19898 this.body = body;
19899 this.name = name || 'GraphQL request';
19900 this.locationOffset = locationOffset || { line: 1, column: 1 };
19901 !(this.locationOffset.line > 0) ? (0, _invariant2.default)(0, 'line in locationOffset is 1-indexed and must be positive') : void 0;
19902 !(this.locationOffset.column > 0) ? (0, _invariant2.default)(0, 'column in locationOffset is 1-indexed and must be positive') : void 0;
19903};
19904
19905/***/ }),
19906/* 249 */
19907/***/ (function(module, exports, __webpack_require__) {
19908
19909"use strict";
19910
19911
19912Object.defineProperty(exports, "__esModule", {
19913 value: true
19914});
19915exports.locatedError = locatedError;
19916
19917var _GraphQLError = __webpack_require__(75);
19918
19919/**
19920 * Given an arbitrary Error, presumably thrown while attempting to execute a
19921 * GraphQL operation, produce a new GraphQLError aware of the location in the
19922 * document responsible for the original Error.
19923 */
19924function locatedError(originalError, nodes, path) {
19925 // Note: this uses a brand-check to support GraphQL errors originating from
19926 // other contexts.
19927 if (originalError && originalError.path) {
19928 return originalError;
19929 }
19930
19931 var message = originalError ? originalError.message || String(originalError) : 'An unknown error occurred.';
19932 return new _GraphQLError.GraphQLError(message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);
19933} /**
19934 * Copyright (c) 2015-present, Facebook, Inc.
19935 *
19936 * This source code is licensed under the MIT license found in the
19937 * LICENSE file in the root directory of this source tree.
19938 *
19939 *
19940 */
19941
19942/***/ }),
19943/* 250 */
19944/***/ (function(module, exports, __webpack_require__) {
19945
19946"use strict";
19947
19948
19949Object.defineProperty(exports, "__esModule", {
19950 value: true
19951});
19952exports.ValidationContext = undefined;
19953exports.validate = validate;
19954
19955var _invariant = __webpack_require__(11);
19956
19957var _invariant2 = _interopRequireDefault(_invariant);
19958
19959var _error = __webpack_require__(3);
19960
19961var _visitor = __webpack_require__(85);
19962
19963var _kinds = __webpack_require__(12);
19964
19965var Kind = _interopRequireWildcard(_kinds);
19966
19967var _schema = __webpack_require__(44);
19968
19969var _TypeInfo = __webpack_require__(178);
19970
19971var _specifiedRules = __webpack_require__(251);
19972
19973function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
19974
19975function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19976
19977function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
19978 * Copyright (c) 2015-present, Facebook, Inc.
19979 *
19980 * This source code is licensed under the MIT license found in the
19981 * LICENSE file in the root directory of this source tree.
19982 *
19983 *
19984 */
19985
19986/**
19987 * Implements the "Validation" section of the spec.
19988 *
19989 * Validation runs synchronously, returning an array of encountered errors, or
19990 * an empty array if no errors were encountered and the document is valid.
19991 *
19992 * A list of specific validation rules may be provided. If not provided, the
19993 * default list of rules defined by the GraphQL specification will be used.
19994 *
19995 * Each validation rules is a function which returns a visitor
19996 * (see the language/visitor API). Visitor methods are expected to return
19997 * GraphQLErrors, or Arrays of GraphQLErrors when invalid.
19998 *
19999 * Optionally a custom TypeInfo instance may be provided. If not provided, one
20000 * will be created from the provided schema.
20001 */
20002function validate(schema, ast, rules, typeInfo) {
20003 !schema ? (0, _invariant2.default)(0, 'Must provide schema') : void 0;
20004 !ast ? (0, _invariant2.default)(0, 'Must provide document') : void 0;
20005 !(schema instanceof _schema.GraphQLSchema) ? (0, _invariant2.default)(0, 'Schema must be an instance of GraphQLSchema. Also ensure that there are ' + 'not multiple versions of GraphQL installed in your node_modules directory.') : void 0;
20006 return visitUsingRules(schema, typeInfo || new _TypeInfo.TypeInfo(schema), ast, rules || _specifiedRules.specifiedRules);
20007}
20008
20009/**
20010 * This uses a specialized visitor which runs multiple visitors in parallel,
20011 * while maintaining the visitor skip and break API.
20012 *
20013 * @internal
20014 */
20015function visitUsingRules(schema, typeInfo, documentAST, rules) {
20016 var context = new ValidationContext(schema, documentAST, typeInfo);
20017 var visitors = rules.map(function (rule) {
20018 return rule(context);
20019 });
20020 // Visit the whole document with each instance of all provided rules.
20021 (0, _visitor.visit)(documentAST, (0, _visitor.visitWithTypeInfo)(typeInfo, (0, _visitor.visitInParallel)(visitors)));
20022 return context.getErrors();
20023}
20024
20025/**
20026 * An instance of this class is passed as the "this" context to all validators,
20027 * allowing access to commonly useful contextual information from within a
20028 * validation rule.
20029 */
20030var ValidationContext = exports.ValidationContext = function () {
20031 function ValidationContext(schema, ast, typeInfo) {
20032 _classCallCheck(this, ValidationContext);
20033
20034 this._schema = schema;
20035 this._ast = ast;
20036 this._typeInfo = typeInfo;
20037 this._errors = [];
20038 this._fragmentSpreads = new Map();
20039 this._recursivelyReferencedFragments = new Map();
20040 this._variableUsages = new Map();
20041 this._recursiveVariableUsages = new Map();
20042 }
20043
20044 ValidationContext.prototype.reportError = function reportError(error) {
20045 this._errors.push(error);
20046 };
20047
20048 ValidationContext.prototype.getErrors = function getErrors() {
20049 return this._errors;
20050 };
20051
20052 ValidationContext.prototype.getSchema = function getSchema() {
20053 return this._schema;
20054 };
20055
20056 ValidationContext.prototype.getDocument = function getDocument() {
20057 return this._ast;
20058 };
20059
20060 ValidationContext.prototype.getFragment = function getFragment(name) {
20061 var fragments = this._fragments;
20062 if (!fragments) {
20063 this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {
20064 if (statement.kind === Kind.FRAGMENT_DEFINITION) {
20065 frags[statement.name.value] = statement;
20066 }
20067 return frags;
20068 }, Object.create(null));
20069 }
20070 return fragments[name];
20071 };
20072
20073 ValidationContext.prototype.getFragmentSpreads = function getFragmentSpreads(node) {
20074 var spreads = this._fragmentSpreads.get(node);
20075 if (!spreads) {
20076 spreads = [];
20077 var setsToVisit = [node];
20078 while (setsToVisit.length !== 0) {
20079 var set = setsToVisit.pop();
20080 for (var i = 0; i < set.selections.length; i++) {
20081 var selection = set.selections[i];
20082 if (selection.kind === Kind.FRAGMENT_SPREAD) {
20083 spreads.push(selection);
20084 } else if (selection.selectionSet) {
20085 setsToVisit.push(selection.selectionSet);
20086 }
20087 }
20088 }
20089 this._fragmentSpreads.set(node, spreads);
20090 }
20091 return spreads;
20092 };
20093
20094 ValidationContext.prototype.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
20095 var fragments = this._recursivelyReferencedFragments.get(operation);
20096 if (!fragments) {
20097 fragments = [];
20098 var collectedNames = Object.create(null);
20099 var nodesToVisit = [operation.selectionSet];
20100 while (nodesToVisit.length !== 0) {
20101 var _node = nodesToVisit.pop();
20102 var spreads = this.getFragmentSpreads(_node);
20103 for (var i = 0; i < spreads.length; i++) {
20104 var fragName = spreads[i].name.value;
20105 if (collectedNames[fragName] !== true) {
20106 collectedNames[fragName] = true;
20107 var fragment = this.getFragment(fragName);
20108 if (fragment) {
20109 fragments.push(fragment);
20110 nodesToVisit.push(fragment.selectionSet);
20111 }
20112 }
20113 }
20114 }
20115 this._recursivelyReferencedFragments.set(operation, fragments);
20116 }
20117 return fragments;
20118 };
20119
20120 ValidationContext.prototype.getVariableUsages = function getVariableUsages(node) {
20121 var usages = this._variableUsages.get(node);
20122 if (!usages) {
20123 var newUsages = [];
20124 var typeInfo = new _TypeInfo.TypeInfo(this._schema);
20125 (0, _visitor.visit)(node, (0, _visitor.visitWithTypeInfo)(typeInfo, {
20126 VariableDefinition: function VariableDefinition() {
20127 return false;
20128 },
20129 Variable: function Variable(variable) {
20130 newUsages.push({ node: variable, type: typeInfo.getInputType() });
20131 }
20132 }));
20133 usages = newUsages;
20134 this._variableUsages.set(node, usages);
20135 }
20136 return usages;
20137 };
20138
20139 ValidationContext.prototype.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {
20140 var usages = this._recursiveVariableUsages.get(operation);
20141 if (!usages) {
20142 usages = this.getVariableUsages(operation);
20143 var fragments = this.getRecursivelyReferencedFragments(operation);
20144 for (var i = 0; i < fragments.length; i++) {
20145 Array.prototype.push.apply(usages, this.getVariableUsages(fragments[i]));
20146 }
20147 this._recursiveVariableUsages.set(operation, usages);
20148 }
20149 return usages;
20150 };
20151
20152 ValidationContext.prototype.getType = function getType() {
20153 return this._typeInfo.getType();
20154 };
20155
20156 ValidationContext.prototype.getParentType = function getParentType() {
20157 return this._typeInfo.getParentType();
20158 };
20159
20160 ValidationContext.prototype.getInputType = function getInputType() {
20161 return this._typeInfo.getInputType();
20162 };
20163
20164 ValidationContext.prototype.getFieldDef = function getFieldDef() {
20165 return this._typeInfo.getFieldDef();
20166 };
20167
20168 ValidationContext.prototype.getDirective = function getDirective() {
20169 return this._typeInfo.getDirective();
20170 };
20171
20172 ValidationContext.prototype.getArgument = function getArgument() {
20173 return this._typeInfo.getArgument();
20174 };
20175
20176 return ValidationContext;
20177}();
20178
20179/***/ }),
20180/* 251 */
20181/***/ (function(module, exports, __webpack_require__) {
20182
20183"use strict";
20184
20185
20186Object.defineProperty(exports, "__esModule", {
20187 value: true
20188});
20189exports.specifiedRules = undefined;
20190
20191var _UniqueOperationNames = __webpack_require__(252);
20192
20193var _LoneAnonymousOperation = __webpack_require__(253);
20194
20195var _SingleFieldSubscriptions = __webpack_require__(254);
20196
20197var _KnownTypeNames = __webpack_require__(255);
20198
20199var _FragmentsOnCompositeTypes = __webpack_require__(256);
20200
20201var _VariablesAreInputTypes = __webpack_require__(257);
20202
20203var _ScalarLeafs = __webpack_require__(258);
20204
20205var _FieldsOnCorrectType = __webpack_require__(259);
20206
20207var _UniqueFragmentNames = __webpack_require__(260);
20208
20209var _KnownFragmentNames = __webpack_require__(261);
20210
20211var _NoUnusedFragments = __webpack_require__(262);
20212
20213var _PossibleFragmentSpreads = __webpack_require__(263);
20214
20215var _NoFragmentCycles = __webpack_require__(264);
20216
20217var _UniqueVariableNames = __webpack_require__(265);
20218
20219var _NoUndefinedVariables = __webpack_require__(266);
20220
20221var _NoUnusedVariables = __webpack_require__(267);
20222
20223var _KnownDirectives = __webpack_require__(268);
20224
20225var _UniqueDirectivesPerLocation = __webpack_require__(269);
20226
20227var _KnownArgumentNames = __webpack_require__(270);
20228
20229var _UniqueArgumentNames = __webpack_require__(271);
20230
20231var _ArgumentsOfCorrectType = __webpack_require__(272);
20232
20233var _ProvidedNonNullArguments = __webpack_require__(273);
20234
20235var _DefaultValuesOfCorrectType = __webpack_require__(274);
20236
20237var _VariablesInAllowedPosition = __webpack_require__(275);
20238
20239var _OverlappingFieldsCanBeMerged = __webpack_require__(276);
20240
20241var _UniqueInputFieldNames = __webpack_require__(277);
20242
20243/**
20244 * This set includes all validation rules defined by the GraphQL spec.
20245 *
20246 * The order of the rules in this list has been adjusted to lead to the
20247 * most clear output when encountering multiple validation errors.
20248 */
20249
20250
20251// Spec Section: "Field Selection Merging"
20252
20253
20254// Spec Section: "Variable Default Values Are Correctly Typed"
20255
20256
20257// Spec Section: "Argument Values Type Correctness"
20258
20259
20260// Spec Section: "Argument Names"
20261
20262
20263// Spec Section: "Directives Are Defined"
20264
20265
20266// Spec Section: "All Variable Used Defined"
20267
20268
20269// Spec Section: "Fragments must not form cycles"
20270
20271
20272// Spec Section: "Fragments must be used"
20273
20274
20275// Spec Section: "Fragment Name Uniqueness"
20276
20277
20278// Spec Section: "Leaf Field Selections"
20279
20280
20281// Spec Section: "Fragments on Composite Types"
20282
20283
20284// Spec Section: "Subscriptions with Single Root Field"
20285/**
20286 * Copyright (c) 2015-present, Facebook, Inc.
20287 *
20288 * This source code is licensed under the MIT license found in the
20289 * LICENSE file in the root directory of this source tree.
20290 *
20291 *
20292 */
20293
20294// Spec Section: "Operation Name Uniqueness"
20295var specifiedRules = exports.specifiedRules = [_UniqueOperationNames.UniqueOperationNames, _LoneAnonymousOperation.LoneAnonymousOperation, _SingleFieldSubscriptions.SingleFieldSubscriptions, _KnownTypeNames.KnownTypeNames, _FragmentsOnCompositeTypes.FragmentsOnCompositeTypes, _VariablesAreInputTypes.VariablesAreInputTypes, _ScalarLeafs.ScalarLeafs, _FieldsOnCorrectType.FieldsOnCorrectType, _UniqueFragmentNames.UniqueFragmentNames, _KnownFragmentNames.KnownFragmentNames, _NoUnusedFragments.NoUnusedFragments, _PossibleFragmentSpreads.PossibleFragmentSpreads, _NoFragmentCycles.NoFragmentCycles, _UniqueVariableNames.UniqueVariableNames, _NoUndefinedVariables.NoUndefinedVariables, _NoUnusedVariables.NoUnusedVariables, _KnownDirectives.KnownDirectives, _UniqueDirectivesPerLocation.UniqueDirectivesPerLocation, _KnownArgumentNames.KnownArgumentNames, _UniqueArgumentNames.UniqueArgumentNames, _ArgumentsOfCorrectType.ArgumentsOfCorrectType, _ProvidedNonNullArguments.ProvidedNonNullArguments, _DefaultValuesOfCorrectType.DefaultValuesOfCorrectType, _VariablesInAllowedPosition.VariablesInAllowedPosition, _OverlappingFieldsCanBeMerged.OverlappingFieldsCanBeMerged, _UniqueInputFieldNames.UniqueInputFieldNames];
20296
20297// Spec Section: "Input Object Field Uniqueness"
20298
20299
20300// Spec Section: "All Variable Usages Are Allowed"
20301
20302
20303// Spec Section: "Argument Optionality"
20304
20305
20306// Spec Section: "Argument Uniqueness"
20307
20308
20309// Spec Section: "Directives Are Unique Per Location"
20310
20311
20312// Spec Section: "All Variables Used"
20313
20314
20315// Spec Section: "Variable Uniqueness"
20316
20317
20318// Spec Section: "Fragment spread is possible"
20319
20320
20321// Spec Section: "Fragment spread target defined"
20322
20323
20324// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
20325
20326
20327// Spec Section: "Variables are Input Types"
20328
20329
20330// Spec Section: "Fragment Spread Type Existence"
20331
20332
20333// Spec Section: "Lone Anonymous Operation"
20334
20335/***/ }),
20336/* 252 */
20337/***/ (function(module, exports, __webpack_require__) {
20338
20339"use strict";
20340
20341
20342Object.defineProperty(exports, "__esModule", {
20343 value: true
20344});
20345exports.duplicateOperationNameMessage = duplicateOperationNameMessage;
20346exports.UniqueOperationNames = UniqueOperationNames;
20347
20348var _error = __webpack_require__(3);
20349
20350/**
20351 * Copyright (c) 2015-present, Facebook, Inc.
20352 *
20353 * This source code is licensed under the MIT license found in the
20354 * LICENSE file in the root directory of this source tree.
20355 *
20356 *
20357 */
20358
20359function duplicateOperationNameMessage(operationName) {
20360 return 'There can be only one operation named "' + operationName + '".';
20361}
20362
20363/**
20364 * Unique operation names
20365 *
20366 * A GraphQL document is only valid if all defined operations have unique names.
20367 */
20368function UniqueOperationNames(context) {
20369 var knownOperationNames = Object.create(null);
20370 return {
20371 OperationDefinition: function OperationDefinition(node) {
20372 var operationName = node.name;
20373 if (operationName) {
20374 if (knownOperationNames[operationName.value]) {
20375 context.reportError(new _error.GraphQLError(duplicateOperationNameMessage(operationName.value), [knownOperationNames[operationName.value], operationName]));
20376 } else {
20377 knownOperationNames[operationName.value] = operationName;
20378 }
20379 }
20380 return false;
20381 },
20382
20383 FragmentDefinition: function FragmentDefinition() {
20384 return false;
20385 }
20386 };
20387}
20388
20389/***/ }),
20390/* 253 */
20391/***/ (function(module, exports, __webpack_require__) {
20392
20393"use strict";
20394
20395
20396Object.defineProperty(exports, "__esModule", {
20397 value: true
20398});
20399exports.anonOperationNotAloneMessage = anonOperationNotAloneMessage;
20400exports.LoneAnonymousOperation = LoneAnonymousOperation;
20401
20402var _error = __webpack_require__(3);
20403
20404var _kinds = __webpack_require__(12);
20405
20406function anonOperationNotAloneMessage() {
20407 return 'This anonymous operation must be the only defined operation.';
20408}
20409
20410/**
20411 * Lone anonymous operation
20412 *
20413 * A GraphQL document is only valid if when it contains an anonymous operation
20414 * (the query short-hand) that it contains only that one operation definition.
20415 */
20416/**
20417 * Copyright (c) 2015-present, Facebook, Inc.
20418 *
20419 * This source code is licensed under the MIT license found in the
20420 * LICENSE file in the root directory of this source tree.
20421 *
20422 *
20423 */
20424
20425function LoneAnonymousOperation(context) {
20426 var operationCount = 0;
20427 return {
20428 Document: function Document(node) {
20429 operationCount = node.definitions.filter(function (definition) {
20430 return definition.kind === _kinds.OPERATION_DEFINITION;
20431 }).length;
20432 },
20433 OperationDefinition: function OperationDefinition(node) {
20434 if (!node.name && operationCount > 1) {
20435 context.reportError(new _error.GraphQLError(anonOperationNotAloneMessage(), [node]));
20436 }
20437 }
20438 };
20439}
20440
20441/***/ }),
20442/* 254 */
20443/***/ (function(module, exports, __webpack_require__) {
20444
20445"use strict";
20446
20447
20448Object.defineProperty(exports, "__esModule", {
20449 value: true
20450});
20451exports.singleFieldOnlyMessage = singleFieldOnlyMessage;
20452exports.SingleFieldSubscriptions = SingleFieldSubscriptions;
20453
20454var _error = __webpack_require__(3);
20455
20456/**
20457 * Copyright (c) 2015-present, Facebook, Inc.
20458 *
20459 * This source code is licensed under the MIT license found in the
20460 * LICENSE file in the root directory of this source tree.
20461 *
20462 *
20463 */
20464
20465function singleFieldOnlyMessage(name) {
20466 return (name ? 'Subscription "' + name + '" ' : 'Anonymous Subscription ') + 'must select only one top level field.';
20467}
20468
20469/**
20470 * Subscriptions must only include one field.
20471 *
20472 * A GraphQL subscription is valid only if it contains a single root field.
20473 */
20474function SingleFieldSubscriptions(context) {
20475 return {
20476 OperationDefinition: function OperationDefinition(node) {
20477 if (node.operation === 'subscription') {
20478 if (node.selectionSet.selections.length !== 1) {
20479 context.reportError(new _error.GraphQLError(singleFieldOnlyMessage(node.name && node.name.value), node.selectionSet.selections.slice(1)));
20480 }
20481 }
20482 }
20483 };
20484}
20485
20486/***/ }),
20487/* 255 */
20488/***/ (function(module, exports, __webpack_require__) {
20489
20490"use strict";
20491
20492
20493Object.defineProperty(exports, "__esModule", {
20494 value: true
20495});
20496exports.unknownTypeMessage = unknownTypeMessage;
20497exports.KnownTypeNames = KnownTypeNames;
20498
20499var _error = __webpack_require__(3);
20500
20501var _suggestionList = __webpack_require__(179);
20502
20503var _suggestionList2 = _interopRequireDefault(_suggestionList);
20504
20505var _quotedOrList = __webpack_require__(180);
20506
20507var _quotedOrList2 = _interopRequireDefault(_quotedOrList);
20508
20509function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20510
20511/**
20512 * Copyright (c) 2015-present, Facebook, Inc.
20513 *
20514 * This source code is licensed under the MIT license found in the
20515 * LICENSE file in the root directory of this source tree.
20516 *
20517 *
20518 */
20519
20520function unknownTypeMessage(type, suggestedTypes) {
20521 var message = 'Unknown type "' + String(type) + '".';
20522 if (suggestedTypes.length) {
20523 message += ' Did you mean ' + (0, _quotedOrList2.default)(suggestedTypes) + '?';
20524 }
20525 return message;
20526}
20527
20528/**
20529 * Known type names
20530 *
20531 * A GraphQL document is only valid if referenced types (specifically
20532 * variable definitions and fragment conditions) are defined by the type schema.
20533 */
20534function KnownTypeNames(context) {
20535 return {
20536 // TODO: when validating IDL, re-enable these. Experimental version does not
20537 // add unreferenced types, resulting in false-positive errors. Squelched
20538 // errors for now.
20539 ObjectTypeDefinition: function ObjectTypeDefinition() {
20540 return false;
20541 },
20542 InterfaceTypeDefinition: function InterfaceTypeDefinition() {
20543 return false;
20544 },
20545 UnionTypeDefinition: function UnionTypeDefinition() {
20546 return false;
20547 },
20548 InputObjectTypeDefinition: function InputObjectTypeDefinition() {
20549 return false;
20550 },
20551 NamedType: function NamedType(node) {
20552 var schema = context.getSchema();
20553 var typeName = node.name.value;
20554 var type = schema.getType(typeName);
20555 if (!type) {
20556 context.reportError(new _error.GraphQLError(unknownTypeMessage(typeName, (0, _suggestionList2.default)(typeName, Object.keys(schema.getTypeMap()))), [node]));
20557 }
20558 }
20559 };
20560}
20561
20562/***/ }),
20563/* 256 */
20564/***/ (function(module, exports, __webpack_require__) {
20565
20566"use strict";
20567
20568
20569Object.defineProperty(exports, "__esModule", {
20570 value: true
20571});
20572exports.inlineFragmentOnNonCompositeErrorMessage = inlineFragmentOnNonCompositeErrorMessage;
20573exports.fragmentOnNonCompositeErrorMessage = fragmentOnNonCompositeErrorMessage;
20574exports.FragmentsOnCompositeTypes = FragmentsOnCompositeTypes;
20575
20576var _error = __webpack_require__(3);
20577
20578var _printer = __webpack_require__(28);
20579
20580var _definition = __webpack_require__(6);
20581
20582var _typeFromAST = __webpack_require__(46);
20583
20584function inlineFragmentOnNonCompositeErrorMessage(type) {
20585 return 'Fragment cannot condition on non composite type "' + String(type) + '".';
20586} /**
20587 * Copyright (c) 2015-present, Facebook, Inc.
20588 *
20589 * This source code is licensed under the MIT license found in the
20590 * LICENSE file in the root directory of this source tree.
20591 *
20592 *
20593 */
20594
20595function fragmentOnNonCompositeErrorMessage(fragName, type) {
20596 return 'Fragment "' + fragName + '" cannot condition on non composite ' + ('type "' + String(type) + '".');
20597}
20598
20599/**
20600 * Fragments on composite type
20601 *
20602 * Fragments use a type condition to determine if they apply, since fragments
20603 * can only be spread into a composite type (object, interface, or union), the
20604 * type condition must also be a composite type.
20605 */
20606function FragmentsOnCompositeTypes(context) {
20607 return {
20608 InlineFragment: function InlineFragment(node) {
20609 if (node.typeCondition) {
20610 var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), node.typeCondition);
20611 if (type && !(0, _definition.isCompositeType)(type)) {
20612 context.reportError(new _error.GraphQLError(inlineFragmentOnNonCompositeErrorMessage((0, _printer.print)(node.typeCondition)), [node.typeCondition]));
20613 }
20614 }
20615 },
20616 FragmentDefinition: function FragmentDefinition(node) {
20617 var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), node.typeCondition);
20618 if (type && !(0, _definition.isCompositeType)(type)) {
20619 context.reportError(new _error.GraphQLError(fragmentOnNonCompositeErrorMessage(node.name.value, (0, _printer.print)(node.typeCondition)), [node.typeCondition]));
20620 }
20621 }
20622 };
20623}
20624
20625/***/ }),
20626/* 257 */
20627/***/ (function(module, exports, __webpack_require__) {
20628
20629"use strict";
20630
20631
20632Object.defineProperty(exports, "__esModule", {
20633 value: true
20634});
20635exports.nonInputTypeOnVarMessage = nonInputTypeOnVarMessage;
20636exports.VariablesAreInputTypes = VariablesAreInputTypes;
20637
20638var _error = __webpack_require__(3);
20639
20640var _printer = __webpack_require__(28);
20641
20642var _definition = __webpack_require__(6);
20643
20644var _typeFromAST = __webpack_require__(46);
20645
20646function nonInputTypeOnVarMessage(variableName, typeName) {
20647 return 'Variable "$' + variableName + '" cannot be non-input type "' + typeName + '".';
20648}
20649
20650/**
20651 * Variables are input types
20652 *
20653 * A GraphQL operation is only valid if all the variables it defines are of
20654 * input types (scalar, enum, or input object).
20655 */
20656/**
20657 * Copyright (c) 2015-present, Facebook, Inc.
20658 *
20659 * This source code is licensed under the MIT license found in the
20660 * LICENSE file in the root directory of this source tree.
20661 *
20662 *
20663 */
20664
20665function VariablesAreInputTypes(context) {
20666 return {
20667 VariableDefinition: function VariableDefinition(node) {
20668 var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), node.type);
20669
20670 // If the variable type is not an input type, return an error.
20671 if (type && !(0, _definition.isInputType)(type)) {
20672 var variableName = node.variable.name.value;
20673 context.reportError(new _error.GraphQLError(nonInputTypeOnVarMessage(variableName, (0, _printer.print)(node.type)), [node.type]));
20674 }
20675 }
20676 };
20677}
20678
20679/***/ }),
20680/* 258 */
20681/***/ (function(module, exports, __webpack_require__) {
20682
20683"use strict";
20684
20685
20686Object.defineProperty(exports, "__esModule", {
20687 value: true
20688});
20689exports.noSubselectionAllowedMessage = noSubselectionAllowedMessage;
20690exports.requiredSubselectionMessage = requiredSubselectionMessage;
20691exports.ScalarLeafs = ScalarLeafs;
20692
20693var _error = __webpack_require__(3);
20694
20695var _definition = __webpack_require__(6);
20696
20697function noSubselectionAllowedMessage(fieldName, type) {
20698 return 'Field "' + fieldName + '" must not have a selection since ' + ('type "' + String(type) + '" has no subfields.');
20699} /**
20700 * Copyright (c) 2015-present, Facebook, Inc.
20701 *
20702 * This source code is licensed under the MIT license found in the
20703 * LICENSE file in the root directory of this source tree.
20704 *
20705 *
20706 */
20707
20708function requiredSubselectionMessage(fieldName, type) {
20709 return 'Field "' + fieldName + '" of type "' + String(type) + '" must have a ' + ('selection of subfields. Did you mean "' + fieldName + ' { ... }"?');
20710}
20711
20712/**
20713 * Scalar leafs
20714 *
20715 * A GraphQL document is valid only if all leaf fields (fields without
20716 * sub selections) are of scalar or enum types.
20717 */
20718function ScalarLeafs(context) {
20719 return {
20720 Field: function Field(node) {
20721 var type = context.getType();
20722 if (type) {
20723 if ((0, _definition.isLeafType)((0, _definition.getNamedType)(type))) {
20724 if (node.selectionSet) {
20725 context.reportError(new _error.GraphQLError(noSubselectionAllowedMessage(node.name.value, type), [node.selectionSet]));
20726 }
20727 } else if (!node.selectionSet) {
20728 context.reportError(new _error.GraphQLError(requiredSubselectionMessage(node.name.value, type), [node]));
20729 }
20730 }
20731 }
20732 };
20733}
20734
20735/***/ }),
20736/* 259 */
20737/***/ (function(module, exports, __webpack_require__) {
20738
20739"use strict";
20740
20741
20742Object.defineProperty(exports, "__esModule", {
20743 value: true
20744});
20745exports.undefinedFieldMessage = undefinedFieldMessage;
20746exports.FieldsOnCorrectType = FieldsOnCorrectType;
20747
20748var _error = __webpack_require__(3);
20749
20750var _suggestionList = __webpack_require__(179);
20751
20752var _suggestionList2 = _interopRequireDefault(_suggestionList);
20753
20754var _quotedOrList = __webpack_require__(180);
20755
20756var _quotedOrList2 = _interopRequireDefault(_quotedOrList);
20757
20758var _definition = __webpack_require__(6);
20759
20760function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20761
20762function undefinedFieldMessage(fieldName, type, suggestedTypeNames, suggestedFieldNames) {
20763 var message = 'Cannot query field "' + fieldName + '" on type "' + type + '".';
20764 if (suggestedTypeNames.length !== 0) {
20765 var suggestions = (0, _quotedOrList2.default)(suggestedTypeNames);
20766 message += ' Did you mean to use an inline fragment on ' + suggestions + '?';
20767 } else if (suggestedFieldNames.length !== 0) {
20768 message += ' Did you mean ' + (0, _quotedOrList2.default)(suggestedFieldNames) + '?';
20769 }
20770 return message;
20771}
20772
20773/**
20774 * Fields on correct type
20775 *
20776 * A GraphQL document is only valid if all fields selected are defined by the
20777 * parent type, or are an allowed meta field such as __typename.
20778 */
20779/**
20780 * Copyright (c) 2015-present, Facebook, Inc.
20781 *
20782 * This source code is licensed under the MIT license found in the
20783 * LICENSE file in the root directory of this source tree.
20784 *
20785 *
20786 */
20787
20788function FieldsOnCorrectType(context) {
20789 return {
20790 Field: function Field(node) {
20791 var type = context.getParentType();
20792 if (type) {
20793 var fieldDef = context.getFieldDef();
20794 if (!fieldDef) {
20795 // This field doesn't exist, lets look for suggestions.
20796 var schema = context.getSchema();
20797 var fieldName = node.name.value;
20798 // First determine if there are any suggested types to condition on.
20799 var suggestedTypeNames = getSuggestedTypeNames(schema, type, fieldName);
20800 // If there are no suggested types, then perhaps this was a typo?
20801 var suggestedFieldNames = suggestedTypeNames.length !== 0 ? [] : getSuggestedFieldNames(schema, type, fieldName);
20802
20803 // Report an error, including helpful suggestions.
20804 context.reportError(new _error.GraphQLError(undefinedFieldMessage(fieldName, type.name, suggestedTypeNames, suggestedFieldNames), [node]));
20805 }
20806 }
20807 }
20808 };
20809}
20810
20811/**
20812 * Go through all of the implementations of type, as well as the interfaces
20813 * that they implement. If any of those types include the provided field,
20814 * suggest them, sorted by how often the type is referenced, starting
20815 * with Interfaces.
20816 */
20817function getSuggestedTypeNames(schema, type, fieldName) {
20818 if ((0, _definition.isAbstractType)(type)) {
20819 var suggestedObjectTypes = [];
20820 var interfaceUsageCount = Object.create(null);
20821 schema.getPossibleTypes(type).forEach(function (possibleType) {
20822 if (!possibleType.getFields()[fieldName]) {
20823 return;
20824 }
20825 // This object type defines this field.
20826 suggestedObjectTypes.push(possibleType.name);
20827 possibleType.getInterfaces().forEach(function (possibleInterface) {
20828 if (!possibleInterface.getFields()[fieldName]) {
20829 return;
20830 }
20831 // This interface type defines this field.
20832 interfaceUsageCount[possibleInterface.name] = (interfaceUsageCount[possibleInterface.name] || 0) + 1;
20833 });
20834 });
20835
20836 // Suggest interface types based on how common they are.
20837 var suggestedInterfaceTypes = Object.keys(interfaceUsageCount).sort(function (a, b) {
20838 return interfaceUsageCount[b] - interfaceUsageCount[a];
20839 });
20840
20841 // Suggest both interface and object types.
20842 return suggestedInterfaceTypes.concat(suggestedObjectTypes);
20843 }
20844
20845 // Otherwise, must be an Object type, which does not have possible fields.
20846 return [];
20847}
20848
20849/**
20850 * For the field name provided, determine if there are any similar field names
20851 * that may be the result of a typo.
20852 */
20853function getSuggestedFieldNames(schema, type, fieldName) {
20854 if (type instanceof _definition.GraphQLObjectType || type instanceof _definition.GraphQLInterfaceType) {
20855 var possibleFieldNames = Object.keys(type.getFields());
20856 return (0, _suggestionList2.default)(fieldName, possibleFieldNames);
20857 }
20858 // Otherwise, must be a Union type, which does not define fields.
20859 return [];
20860}
20861
20862/***/ }),
20863/* 260 */
20864/***/ (function(module, exports, __webpack_require__) {
20865
20866"use strict";
20867
20868
20869Object.defineProperty(exports, "__esModule", {
20870 value: true
20871});
20872exports.duplicateFragmentNameMessage = duplicateFragmentNameMessage;
20873exports.UniqueFragmentNames = UniqueFragmentNames;
20874
20875var _error = __webpack_require__(3);
20876
20877/**
20878 * Copyright (c) 2015-present, Facebook, Inc.
20879 *
20880 * This source code is licensed under the MIT license found in the
20881 * LICENSE file in the root directory of this source tree.
20882 *
20883 *
20884 */
20885
20886function duplicateFragmentNameMessage(fragName) {
20887 return 'There can be only one fragment named "' + fragName + '".';
20888}
20889
20890/**
20891 * Unique fragment names
20892 *
20893 * A GraphQL document is only valid if all defined fragments have unique names.
20894 */
20895function UniqueFragmentNames(context) {
20896 var knownFragmentNames = Object.create(null);
20897 return {
20898 OperationDefinition: function OperationDefinition() {
20899 return false;
20900 },
20901 FragmentDefinition: function FragmentDefinition(node) {
20902 var fragmentName = node.name.value;
20903 if (knownFragmentNames[fragmentName]) {
20904 context.reportError(new _error.GraphQLError(duplicateFragmentNameMessage(fragmentName), [knownFragmentNames[fragmentName], node.name]));
20905 } else {
20906 knownFragmentNames[fragmentName] = node.name;
20907 }
20908 return false;
20909 }
20910 };
20911}
20912
20913/***/ }),
20914/* 261 */
20915/***/ (function(module, exports, __webpack_require__) {
20916
20917"use strict";
20918
20919
20920Object.defineProperty(exports, "__esModule", {
20921 value: true
20922});
20923exports.unknownFragmentMessage = unknownFragmentMessage;
20924exports.KnownFragmentNames = KnownFragmentNames;
20925
20926var _error = __webpack_require__(3);
20927
20928/**
20929 * Copyright (c) 2015-present, Facebook, Inc.
20930 *
20931 * This source code is licensed under the MIT license found in the
20932 * LICENSE file in the root directory of this source tree.
20933 *
20934 *
20935 */
20936
20937function unknownFragmentMessage(fragName) {
20938 return 'Unknown fragment "' + fragName + '".';
20939}
20940
20941/**
20942 * Known fragment names
20943 *
20944 * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
20945 * to fragments defined in the same document.
20946 */
20947function KnownFragmentNames(context) {
20948 return {
20949 FragmentSpread: function FragmentSpread(node) {
20950 var fragmentName = node.name.value;
20951 var fragment = context.getFragment(fragmentName);
20952 if (!fragment) {
20953 context.reportError(new _error.GraphQLError(unknownFragmentMessage(fragmentName), [node.name]));
20954 }
20955 }
20956 };
20957}
20958
20959/***/ }),
20960/* 262 */
20961/***/ (function(module, exports, __webpack_require__) {
20962
20963"use strict";
20964
20965
20966Object.defineProperty(exports, "__esModule", {
20967 value: true
20968});
20969exports.unusedFragMessage = unusedFragMessage;
20970exports.NoUnusedFragments = NoUnusedFragments;
20971
20972var _error = __webpack_require__(3);
20973
20974/**
20975 * Copyright (c) 2015-present, Facebook, Inc.
20976 *
20977 * This source code is licensed under the MIT license found in the
20978 * LICENSE file in the root directory of this source tree.
20979 *
20980 *
20981 */
20982
20983function unusedFragMessage(fragName) {
20984 return 'Fragment "' + fragName + '" is never used.';
20985}
20986
20987/**
20988 * No unused fragments
20989 *
20990 * A GraphQL document is only valid if all fragment definitions are spread
20991 * within operations, or spread within other fragments spread within operations.
20992 */
20993function NoUnusedFragments(context) {
20994 var operationDefs = [];
20995 var fragmentDefs = [];
20996
20997 return {
20998 OperationDefinition: function OperationDefinition(node) {
20999 operationDefs.push(node);
21000 return false;
21001 },
21002 FragmentDefinition: function FragmentDefinition(node) {
21003 fragmentDefs.push(node);
21004 return false;
21005 },
21006
21007 Document: {
21008 leave: function leave() {
21009 var fragmentNameUsed = Object.create(null);
21010 operationDefs.forEach(function (operation) {
21011 context.getRecursivelyReferencedFragments(operation).forEach(function (fragment) {
21012 fragmentNameUsed[fragment.name.value] = true;
21013 });
21014 });
21015
21016 fragmentDefs.forEach(function (fragmentDef) {
21017 var fragName = fragmentDef.name.value;
21018 if (fragmentNameUsed[fragName] !== true) {
21019 context.reportError(new _error.GraphQLError(unusedFragMessage(fragName), [fragmentDef]));
21020 }
21021 });
21022 }
21023 }
21024 };
21025}
21026
21027/***/ }),
21028/* 263 */
21029/***/ (function(module, exports, __webpack_require__) {
21030
21031"use strict";
21032
21033
21034Object.defineProperty(exports, "__esModule", {
21035 value: true
21036});
21037exports.typeIncompatibleSpreadMessage = typeIncompatibleSpreadMessage;
21038exports.typeIncompatibleAnonSpreadMessage = typeIncompatibleAnonSpreadMessage;
21039exports.PossibleFragmentSpreads = PossibleFragmentSpreads;
21040
21041var _error = __webpack_require__(3);
21042
21043var _typeComparators = __webpack_require__(116);
21044
21045var _typeFromAST = __webpack_require__(46);
21046
21047var _definition = __webpack_require__(6);
21048
21049function typeIncompatibleSpreadMessage(fragName, parentType, fragType) {
21050 return 'Fragment "' + fragName + '" cannot be spread here as objects of ' + ('type "' + String(parentType) + '" can never be of type "' + String(fragType) + '".');
21051} /**
21052 * Copyright (c) 2015-present, Facebook, Inc.
21053 *
21054 * This source code is licensed under the MIT license found in the
21055 * LICENSE file in the root directory of this source tree.
21056 *
21057 *
21058 */
21059
21060function typeIncompatibleAnonSpreadMessage(parentType, fragType) {
21061 return 'Fragment cannot be spread here as objects of ' + ('type "' + String(parentType) + '" can never be of type "' + String(fragType) + '".');
21062}
21063
21064/**
21065 * Possible fragment spread
21066 *
21067 * A fragment spread is only valid if the type condition could ever possibly
21068 * be true: if there is a non-empty intersection of the possible parent types,
21069 * and possible types which pass the type condition.
21070 */
21071function PossibleFragmentSpreads(context) {
21072 return {
21073 InlineFragment: function InlineFragment(node) {
21074 var fragType = context.getType();
21075 var parentType = context.getParentType();
21076 if ((0, _definition.isCompositeType)(fragType) && (0, _definition.isCompositeType)(parentType) && !(0, _typeComparators.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
21077 context.reportError(new _error.GraphQLError(typeIncompatibleAnonSpreadMessage(parentType, fragType), [node]));
21078 }
21079 },
21080 FragmentSpread: function FragmentSpread(node) {
21081 var fragName = node.name.value;
21082 var fragType = getFragmentType(context, fragName);
21083 var parentType = context.getParentType();
21084 if (fragType && parentType && !(0, _typeComparators.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
21085 context.reportError(new _error.GraphQLError(typeIncompatibleSpreadMessage(fragName, parentType, fragType), [node]));
21086 }
21087 }
21088 };
21089}
21090
21091function getFragmentType(context, name) {
21092 var frag = context.getFragment(name);
21093 return frag && (0, _typeFromAST.typeFromAST)(context.getSchema(), frag.typeCondition);
21094}
21095
21096/***/ }),
21097/* 264 */
21098/***/ (function(module, exports, __webpack_require__) {
21099
21100"use strict";
21101
21102
21103Object.defineProperty(exports, "__esModule", {
21104 value: true
21105});
21106exports.cycleErrorMessage = cycleErrorMessage;
21107exports.NoFragmentCycles = NoFragmentCycles;
21108
21109var _error = __webpack_require__(3);
21110
21111/**
21112 * Copyright (c) 2015-present, Facebook, Inc.
21113 *
21114 * This source code is licensed under the MIT license found in the
21115 * LICENSE file in the root directory of this source tree.
21116 *
21117 *
21118 */
21119
21120function cycleErrorMessage(fragName, spreadNames) {
21121 var via = spreadNames.length ? ' via ' + spreadNames.join(', ') : '';
21122 return 'Cannot spread fragment "' + fragName + '" within itself' + via + '.';
21123}
21124
21125function NoFragmentCycles(context) {
21126 // Tracks already visited fragments to maintain O(N) and to ensure that cycles
21127 // are not redundantly reported.
21128 var visitedFrags = Object.create(null);
21129
21130 // Array of AST nodes used to produce meaningful errors
21131 var spreadPath = [];
21132
21133 // Position in the spread path
21134 var spreadPathIndexByName = Object.create(null);
21135
21136 return {
21137 OperationDefinition: function OperationDefinition() {
21138 return false;
21139 },
21140 FragmentDefinition: function FragmentDefinition(node) {
21141 if (!visitedFrags[node.name.value]) {
21142 detectCycleRecursive(node);
21143 }
21144 return false;
21145 }
21146 };
21147
21148 // This does a straight-forward DFS to find cycles.
21149 // It does not terminate when a cycle was found but continues to explore
21150 // the graph to find all possible cycles.
21151 function detectCycleRecursive(fragment) {
21152 var fragmentName = fragment.name.value;
21153 visitedFrags[fragmentName] = true;
21154
21155 var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
21156 if (spreadNodes.length === 0) {
21157 return;
21158 }
21159
21160 spreadPathIndexByName[fragmentName] = spreadPath.length;
21161
21162 for (var i = 0; i < spreadNodes.length; i++) {
21163 var spreadNode = spreadNodes[i];
21164 var spreadName = spreadNode.name.value;
21165 var cycleIndex = spreadPathIndexByName[spreadName];
21166
21167 if (cycleIndex === undefined) {
21168 spreadPath.push(spreadNode);
21169 if (!visitedFrags[spreadName]) {
21170 var spreadFragment = context.getFragment(spreadName);
21171 if (spreadFragment) {
21172 detectCycleRecursive(spreadFragment);
21173 }
21174 }
21175 spreadPath.pop();
21176 } else {
21177 var cyclePath = spreadPath.slice(cycleIndex);
21178 context.reportError(new _error.GraphQLError(cycleErrorMessage(spreadName, cyclePath.map(function (s) {
21179 return s.name.value;
21180 })), cyclePath.concat(spreadNode)));
21181 }
21182 }
21183
21184 spreadPathIndexByName[fragmentName] = undefined;
21185 }
21186}
21187
21188/***/ }),
21189/* 265 */
21190/***/ (function(module, exports, __webpack_require__) {
21191
21192"use strict";
21193
21194
21195Object.defineProperty(exports, "__esModule", {
21196 value: true
21197});
21198exports.duplicateVariableMessage = duplicateVariableMessage;
21199exports.UniqueVariableNames = UniqueVariableNames;
21200
21201var _error = __webpack_require__(3);
21202
21203function duplicateVariableMessage(variableName) {
21204 return 'There can be only one variable named "' + variableName + '".';
21205}
21206
21207/**
21208 * Unique variable names
21209 *
21210 * A GraphQL operation is only valid if all its variables are uniquely named.
21211 */
21212/**
21213 * Copyright (c) 2015-present, Facebook, Inc.
21214 *
21215 * This source code is licensed under the MIT license found in the
21216 * LICENSE file in the root directory of this source tree.
21217 *
21218 *
21219 */
21220
21221function UniqueVariableNames(context) {
21222 var knownVariableNames = Object.create(null);
21223 return {
21224 OperationDefinition: function OperationDefinition() {
21225 knownVariableNames = Object.create(null);
21226 },
21227 VariableDefinition: function VariableDefinition(node) {
21228 var variableName = node.variable.name.value;
21229 if (knownVariableNames[variableName]) {
21230 context.reportError(new _error.GraphQLError(duplicateVariableMessage(variableName), [knownVariableNames[variableName], node.variable.name]));
21231 } else {
21232 knownVariableNames[variableName] = node.variable.name;
21233 }
21234 }
21235 };
21236}
21237
21238/***/ }),
21239/* 266 */
21240/***/ (function(module, exports, __webpack_require__) {
21241
21242"use strict";
21243
21244
21245Object.defineProperty(exports, "__esModule", {
21246 value: true
21247});
21248exports.undefinedVarMessage = undefinedVarMessage;
21249exports.NoUndefinedVariables = NoUndefinedVariables;
21250
21251var _error = __webpack_require__(3);
21252
21253/**
21254 * Copyright (c) 2015-present, Facebook, Inc.
21255 *
21256 * This source code is licensed under the MIT license found in the
21257 * LICENSE file in the root directory of this source tree.
21258 *
21259 *
21260 */
21261
21262function undefinedVarMessage(varName, opName) {
21263 return opName ? 'Variable "$' + varName + '" is not defined by operation "' + opName + '".' : 'Variable "$' + varName + '" is not defined.';
21264}
21265
21266/**
21267 * No undefined variables
21268 *
21269 * A GraphQL operation is only valid if all variables encountered, both directly
21270 * and via fragment spreads, are defined by that operation.
21271 */
21272function NoUndefinedVariables(context) {
21273 var variableNameDefined = Object.create(null);
21274
21275 return {
21276 OperationDefinition: {
21277 enter: function enter() {
21278 variableNameDefined = Object.create(null);
21279 },
21280 leave: function leave(operation) {
21281 var usages = context.getRecursiveVariableUsages(operation);
21282
21283 usages.forEach(function (_ref) {
21284 var node = _ref.node;
21285
21286 var varName = node.name.value;
21287 if (variableNameDefined[varName] !== true) {
21288 context.reportError(new _error.GraphQLError(undefinedVarMessage(varName, operation.name && operation.name.value), [node, operation]));
21289 }
21290 });
21291 }
21292 },
21293 VariableDefinition: function VariableDefinition(node) {
21294 variableNameDefined[node.variable.name.value] = true;
21295 }
21296 };
21297}
21298
21299/***/ }),
21300/* 267 */
21301/***/ (function(module, exports, __webpack_require__) {
21302
21303"use strict";
21304
21305
21306Object.defineProperty(exports, "__esModule", {
21307 value: true
21308});
21309exports.unusedVariableMessage = unusedVariableMessage;
21310exports.NoUnusedVariables = NoUnusedVariables;
21311
21312var _error = __webpack_require__(3);
21313
21314/**
21315 * Copyright (c) 2015-present, Facebook, Inc.
21316 *
21317 * This source code is licensed under the MIT license found in the
21318 * LICENSE file in the root directory of this source tree.
21319 *
21320 *
21321 */
21322
21323function unusedVariableMessage(varName, opName) {
21324 return opName ? 'Variable "$' + varName + '" is never used in operation "' + opName + '".' : 'Variable "$' + varName + '" is never used.';
21325}
21326
21327/**
21328 * No unused variables
21329 *
21330 * A GraphQL operation is only valid if all variables defined by an operation
21331 * are used, either directly or within a spread fragment.
21332 */
21333function NoUnusedVariables(context) {
21334 var variableDefs = [];
21335
21336 return {
21337 OperationDefinition: {
21338 enter: function enter() {
21339 variableDefs = [];
21340 },
21341 leave: function leave(operation) {
21342 var variableNameUsed = Object.create(null);
21343 var usages = context.getRecursiveVariableUsages(operation);
21344 var opName = operation.name ? operation.name.value : null;
21345
21346 usages.forEach(function (_ref) {
21347 var node = _ref.node;
21348
21349 variableNameUsed[node.name.value] = true;
21350 });
21351
21352 variableDefs.forEach(function (variableDef) {
21353 var variableName = variableDef.variable.name.value;
21354 if (variableNameUsed[variableName] !== true) {
21355 context.reportError(new _error.GraphQLError(unusedVariableMessage(variableName, opName), [variableDef]));
21356 }
21357 });
21358 }
21359 },
21360 VariableDefinition: function VariableDefinition(def) {
21361 variableDefs.push(def);
21362 }
21363 };
21364}
21365
21366/***/ }),
21367/* 268 */
21368/***/ (function(module, exports, __webpack_require__) {
21369
21370"use strict";
21371
21372
21373Object.defineProperty(exports, "__esModule", {
21374 value: true
21375});
21376exports.unknownDirectiveMessage = unknownDirectiveMessage;
21377exports.misplacedDirectiveMessage = misplacedDirectiveMessage;
21378exports.KnownDirectives = KnownDirectives;
21379
21380var _error = __webpack_require__(3);
21381
21382var _find = __webpack_require__(76);
21383
21384var _find2 = _interopRequireDefault(_find);
21385
21386var _kinds = __webpack_require__(12);
21387
21388var Kind = _interopRequireWildcard(_kinds);
21389
21390var _directives = __webpack_require__(45);
21391
21392function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
21393
21394function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21395
21396function unknownDirectiveMessage(directiveName) {
21397 return 'Unknown directive "' + directiveName + '".';
21398} /**
21399 * Copyright (c) 2015-present, Facebook, Inc.
21400 *
21401 * This source code is licensed under the MIT license found in the
21402 * LICENSE file in the root directory of this source tree.
21403 *
21404 *
21405 */
21406
21407function misplacedDirectiveMessage(directiveName, location) {
21408 return 'Directive "' + directiveName + '" may not be used on ' + location + '.';
21409}
21410
21411/**
21412 * Known directives
21413 *
21414 * A GraphQL document is only valid if all `@directives` are known by the
21415 * schema and legally positioned.
21416 */
21417function KnownDirectives(context) {
21418 return {
21419 Directive: function Directive(node, key, parent, path, ancestors) {
21420 var directiveDef = (0, _find2.default)(context.getSchema().getDirectives(), function (def) {
21421 return def.name === node.name.value;
21422 });
21423 if (!directiveDef) {
21424 context.reportError(new _error.GraphQLError(unknownDirectiveMessage(node.name.value), [node]));
21425 return;
21426 }
21427 var candidateLocation = getDirectiveLocationForASTPath(ancestors);
21428 if (!candidateLocation) {
21429 context.reportError(new _error.GraphQLError(misplacedDirectiveMessage(node.name.value, node.type), [node]));
21430 } else if (directiveDef.locations.indexOf(candidateLocation) === -1) {
21431 context.reportError(new _error.GraphQLError(misplacedDirectiveMessage(node.name.value, candidateLocation), [node]));
21432 }
21433 }
21434 };
21435}
21436
21437function getDirectiveLocationForASTPath(ancestors) {
21438 var appliedTo = ancestors[ancestors.length - 1];
21439 switch (appliedTo.kind) {
21440 case Kind.OPERATION_DEFINITION:
21441 switch (appliedTo.operation) {
21442 case 'query':
21443 return _directives.DirectiveLocation.QUERY;
21444 case 'mutation':
21445 return _directives.DirectiveLocation.MUTATION;
21446 case 'subscription':
21447 return _directives.DirectiveLocation.SUBSCRIPTION;
21448 }
21449 break;
21450 case Kind.FIELD:
21451 return _directives.DirectiveLocation.FIELD;
21452 case Kind.FRAGMENT_SPREAD:
21453 return _directives.DirectiveLocation.FRAGMENT_SPREAD;
21454 case Kind.INLINE_FRAGMENT:
21455 return _directives.DirectiveLocation.INLINE_FRAGMENT;
21456 case Kind.FRAGMENT_DEFINITION:
21457 return _directives.DirectiveLocation.FRAGMENT_DEFINITION;
21458 case Kind.SCHEMA_DEFINITION:
21459 return _directives.DirectiveLocation.SCHEMA;
21460 case Kind.SCALAR_TYPE_DEFINITION:
21461 return _directives.DirectiveLocation.SCALAR;
21462 case Kind.OBJECT_TYPE_DEFINITION:
21463 return _directives.DirectiveLocation.OBJECT;
21464 case Kind.FIELD_DEFINITION:
21465 return _directives.DirectiveLocation.FIELD_DEFINITION;
21466 case Kind.INTERFACE_TYPE_DEFINITION:
21467 return _directives.DirectiveLocation.INTERFACE;
21468 case Kind.UNION_TYPE_DEFINITION:
21469 return _directives.DirectiveLocation.UNION;
21470 case Kind.ENUM_TYPE_DEFINITION:
21471 return _directives.DirectiveLocation.ENUM;
21472 case Kind.ENUM_VALUE_DEFINITION:
21473 return _directives.DirectiveLocation.ENUM_VALUE;
21474 case Kind.INPUT_OBJECT_TYPE_DEFINITION:
21475 return _directives.DirectiveLocation.INPUT_OBJECT;
21476 case Kind.INPUT_VALUE_DEFINITION:
21477 var parentNode = ancestors[ancestors.length - 3];
21478 return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? _directives.DirectiveLocation.INPUT_FIELD_DEFINITION : _directives.DirectiveLocation.ARGUMENT_DEFINITION;
21479 }
21480}
21481
21482/***/ }),
21483/* 269 */
21484/***/ (function(module, exports, __webpack_require__) {
21485
21486"use strict";
21487
21488
21489Object.defineProperty(exports, "__esModule", {
21490 value: true
21491});
21492exports.duplicateDirectiveMessage = duplicateDirectiveMessage;
21493exports.UniqueDirectivesPerLocation = UniqueDirectivesPerLocation;
21494
21495var _error = __webpack_require__(3);
21496
21497/**
21498 * Copyright (c) 2015-present, Facebook, Inc.
21499 *
21500 * This source code is licensed under the MIT license found in the
21501 * LICENSE file in the root directory of this source tree.
21502 *
21503 *
21504 */
21505
21506function duplicateDirectiveMessage(directiveName) {
21507 return 'The directive "' + directiveName + '" can only be used once at ' + 'this location.';
21508}
21509
21510/**
21511 * Unique directive names per location
21512 *
21513 * A GraphQL document is only valid if all directives at a given location
21514 * are uniquely named.
21515 */
21516function UniqueDirectivesPerLocation(context) {
21517 return {
21518 // Many different AST nodes may contain directives. Rather than listing
21519 // them all, just listen for entering any node, and check to see if it
21520 // defines any directives.
21521 enter: function enter(node) {
21522 if (node.directives) {
21523 var knownDirectives = Object.create(null);
21524 node.directives.forEach(function (directive) {
21525 var directiveName = directive.name.value;
21526 if (knownDirectives[directiveName]) {
21527 context.reportError(new _error.GraphQLError(duplicateDirectiveMessage(directiveName), [knownDirectives[directiveName], directive]));
21528 } else {
21529 knownDirectives[directiveName] = directive;
21530 }
21531 });
21532 }
21533 }
21534 };
21535}
21536
21537/***/ }),
21538/* 270 */
21539/***/ (function(module, exports, __webpack_require__) {
21540
21541"use strict";
21542
21543
21544Object.defineProperty(exports, "__esModule", {
21545 value: true
21546});
21547exports.unknownArgMessage = unknownArgMessage;
21548exports.unknownDirectiveArgMessage = unknownDirectiveArgMessage;
21549exports.KnownArgumentNames = KnownArgumentNames;
21550
21551var _error = __webpack_require__(3);
21552
21553var _find = __webpack_require__(76);
21554
21555var _find2 = _interopRequireDefault(_find);
21556
21557var _invariant = __webpack_require__(11);
21558
21559var _invariant2 = _interopRequireDefault(_invariant);
21560
21561var _suggestionList = __webpack_require__(179);
21562
21563var _suggestionList2 = _interopRequireDefault(_suggestionList);
21564
21565var _quotedOrList = __webpack_require__(180);
21566
21567var _quotedOrList2 = _interopRequireDefault(_quotedOrList);
21568
21569var _kinds = __webpack_require__(12);
21570
21571var Kind = _interopRequireWildcard(_kinds);
21572
21573function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
21574
21575function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21576
21577function unknownArgMessage(argName, fieldName, typeName, suggestedArgs) {
21578 var message = 'Unknown argument "' + argName + '" on field "' + fieldName + '" of ' + ('type "' + typeName + '".');
21579 if (suggestedArgs.length) {
21580 message += ' Did you mean ' + (0, _quotedOrList2.default)(suggestedArgs) + '?';
21581 }
21582 return message;
21583} /**
21584 * Copyright (c) 2015-present, Facebook, Inc.
21585 *
21586 * This source code is licensed under the MIT license found in the
21587 * LICENSE file in the root directory of this source tree.
21588 *
21589 *
21590 */
21591
21592function unknownDirectiveArgMessage(argName, directiveName, suggestedArgs) {
21593 var message = 'Unknown argument "' + argName + '" on directive "@' + directiveName + '".';
21594 if (suggestedArgs.length) {
21595 message += ' Did you mean ' + (0, _quotedOrList2.default)(suggestedArgs) + '?';
21596 }
21597 return message;
21598}
21599
21600/**
21601 * Known argument names
21602 *
21603 * A GraphQL field is only valid if all supplied arguments are defined by
21604 * that field.
21605 */
21606function KnownArgumentNames(context) {
21607 return {
21608 Argument: function Argument(node, key, parent, path, ancestors) {
21609 var argumentOf = ancestors[ancestors.length - 1];
21610 if (argumentOf.kind === Kind.FIELD) {
21611 var fieldDef = context.getFieldDef();
21612 if (fieldDef) {
21613 var fieldArgDef = (0, _find2.default)(fieldDef.args, function (arg) {
21614 return arg.name === node.name.value;
21615 });
21616 if (!fieldArgDef) {
21617 var parentType = context.getParentType();
21618 !parentType ? (0, _invariant2.default)(0) : void 0;
21619 context.reportError(new _error.GraphQLError(unknownArgMessage(node.name.value, fieldDef.name, parentType.name, (0, _suggestionList2.default)(node.name.value, fieldDef.args.map(function (arg) {
21620 return arg.name;
21621 }))), [node]));
21622 }
21623 }
21624 } else if (argumentOf.kind === Kind.DIRECTIVE) {
21625 var directive = context.getDirective();
21626 if (directive) {
21627 var directiveArgDef = (0, _find2.default)(directive.args, function (arg) {
21628 return arg.name === node.name.value;
21629 });
21630 if (!directiveArgDef) {
21631 context.reportError(new _error.GraphQLError(unknownDirectiveArgMessage(node.name.value, directive.name, (0, _suggestionList2.default)(node.name.value, directive.args.map(function (arg) {
21632 return arg.name;
21633 }))), [node]));
21634 }
21635 }
21636 }
21637 }
21638 };
21639}
21640
21641/***/ }),
21642/* 271 */
21643/***/ (function(module, exports, __webpack_require__) {
21644
21645"use strict";
21646
21647
21648Object.defineProperty(exports, "__esModule", {
21649 value: true
21650});
21651exports.duplicateArgMessage = duplicateArgMessage;
21652exports.UniqueArgumentNames = UniqueArgumentNames;
21653
21654var _error = __webpack_require__(3);
21655
21656/**
21657 * Copyright (c) 2015-present, Facebook, Inc.
21658 *
21659 * This source code is licensed under the MIT license found in the
21660 * LICENSE file in the root directory of this source tree.
21661 *
21662 *
21663 */
21664
21665function duplicateArgMessage(argName) {
21666 return 'There can be only one argument named "' + argName + '".';
21667}
21668
21669/**
21670 * Unique argument names
21671 *
21672 * A GraphQL field or directive is only valid if all supplied arguments are
21673 * uniquely named.
21674 */
21675function UniqueArgumentNames(context) {
21676 var knownArgNames = Object.create(null);
21677 return {
21678 Field: function Field() {
21679 knownArgNames = Object.create(null);
21680 },
21681 Directive: function Directive() {
21682 knownArgNames = Object.create(null);
21683 },
21684 Argument: function Argument(node) {
21685 var argName = node.name.value;
21686 if (knownArgNames[argName]) {
21687 context.reportError(new _error.GraphQLError(duplicateArgMessage(argName), [knownArgNames[argName], node.name]));
21688 } else {
21689 knownArgNames[argName] = node.name;
21690 }
21691 return false;
21692 }
21693 };
21694}
21695
21696/***/ }),
21697/* 272 */
21698/***/ (function(module, exports, __webpack_require__) {
21699
21700"use strict";
21701
21702
21703Object.defineProperty(exports, "__esModule", {
21704 value: true
21705});
21706exports.badValueMessage = badValueMessage;
21707exports.ArgumentsOfCorrectType = ArgumentsOfCorrectType;
21708
21709var _error = __webpack_require__(3);
21710
21711var _printer = __webpack_require__(28);
21712
21713var _isValidLiteralValue = __webpack_require__(117);
21714
21715/**
21716 * Copyright (c) 2015-present, Facebook, Inc.
21717 *
21718 * This source code is licensed under the MIT license found in the
21719 * LICENSE file in the root directory of this source tree.
21720 *
21721 *
21722 */
21723
21724function badValueMessage(argName, type, value, verboseErrors) {
21725 var message = verboseErrors ? '\n' + verboseErrors.join('\n') : '';
21726 return 'Argument "' + argName + '" has invalid value ' + value + '.' + message;
21727}
21728
21729/**
21730 * Argument values of correct type
21731 *
21732 * A GraphQL document is only valid if all field argument literal values are
21733 * of the type expected by their position.
21734 */
21735function ArgumentsOfCorrectType(context) {
21736 return {
21737 Argument: function Argument(node) {
21738 var argDef = context.getArgument();
21739 if (argDef) {
21740 var errors = (0, _isValidLiteralValue.isValidLiteralValue)(argDef.type, node.value);
21741 if (errors && errors.length > 0) {
21742 context.reportError(new _error.GraphQLError(badValueMessage(node.name.value, argDef.type, (0, _printer.print)(node.value), errors), [node.value]));
21743 }
21744 }
21745 return false;
21746 }
21747 };
21748}
21749
21750/***/ }),
21751/* 273 */
21752/***/ (function(module, exports, __webpack_require__) {
21753
21754"use strict";
21755
21756
21757Object.defineProperty(exports, "__esModule", {
21758 value: true
21759});
21760exports.missingFieldArgMessage = missingFieldArgMessage;
21761exports.missingDirectiveArgMessage = missingDirectiveArgMessage;
21762exports.ProvidedNonNullArguments = ProvidedNonNullArguments;
21763
21764var _error = __webpack_require__(3);
21765
21766var _keyMap = __webpack_require__(77);
21767
21768var _keyMap2 = _interopRequireDefault(_keyMap);
21769
21770var _definition = __webpack_require__(6);
21771
21772function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21773
21774/**
21775 * Copyright (c) 2015-present, Facebook, Inc.
21776 *
21777 * This source code is licensed under the MIT license found in the
21778 * LICENSE file in the root directory of this source tree.
21779 *
21780 *
21781 */
21782
21783function missingFieldArgMessage(fieldName, argName, type) {
21784 return 'Field "' + fieldName + '" argument "' + argName + '" of type ' + ('"' + String(type) + '" is required but not provided.');
21785}
21786
21787function missingDirectiveArgMessage(directiveName, argName, type) {
21788 return 'Directive "@' + directiveName + '" argument "' + argName + '" of type ' + ('"' + String(type) + '" is required but not provided.');
21789}
21790
21791/**
21792 * Provided required arguments
21793 *
21794 * A field or directive is only valid if all required (non-null) field arguments
21795 * have been provided.
21796 */
21797function ProvidedNonNullArguments(context) {
21798 return {
21799 Field: {
21800 // Validate on leave to allow for deeper errors to appear first.
21801 leave: function leave(node) {
21802 var fieldDef = context.getFieldDef();
21803 if (!fieldDef) {
21804 return false;
21805 }
21806 var argNodes = node.arguments || [];
21807
21808 var argNodeMap = (0, _keyMap2.default)(argNodes, function (arg) {
21809 return arg.name.value;
21810 });
21811 fieldDef.args.forEach(function (argDef) {
21812 var argNode = argNodeMap[argDef.name];
21813 if (!argNode && argDef.type instanceof _definition.GraphQLNonNull) {
21814 context.reportError(new _error.GraphQLError(missingFieldArgMessage(node.name.value, argDef.name, argDef.type), [node]));
21815 }
21816 });
21817 }
21818 },
21819
21820 Directive: {
21821 // Validate on leave to allow for deeper errors to appear first.
21822 leave: function leave(node) {
21823 var directiveDef = context.getDirective();
21824 if (!directiveDef) {
21825 return false;
21826 }
21827 var argNodes = node.arguments || [];
21828
21829 var argNodeMap = (0, _keyMap2.default)(argNodes, function (arg) {
21830 return arg.name.value;
21831 });
21832 directiveDef.args.forEach(function (argDef) {
21833 var argNode = argNodeMap[argDef.name];
21834 if (!argNode && argDef.type instanceof _definition.GraphQLNonNull) {
21835 context.reportError(new _error.GraphQLError(missingDirectiveArgMessage(node.name.value, argDef.name, argDef.type), [node]));
21836 }
21837 });
21838 }
21839 }
21840 };
21841}
21842
21843/***/ }),
21844/* 274 */
21845/***/ (function(module, exports, __webpack_require__) {
21846
21847"use strict";
21848
21849
21850Object.defineProperty(exports, "__esModule", {
21851 value: true
21852});
21853exports.defaultForNonNullArgMessage = defaultForNonNullArgMessage;
21854exports.badValueForDefaultArgMessage = badValueForDefaultArgMessage;
21855exports.DefaultValuesOfCorrectType = DefaultValuesOfCorrectType;
21856
21857var _error = __webpack_require__(3);
21858
21859var _printer = __webpack_require__(28);
21860
21861var _definition = __webpack_require__(6);
21862
21863var _isValidLiteralValue = __webpack_require__(117);
21864
21865function defaultForNonNullArgMessage(varName, type, guessType) {
21866 return 'Variable "$' + varName + '" of type "' + String(type) + '" is required and ' + 'will not use the default value. ' + ('Perhaps you meant to use type "' + String(guessType) + '".');
21867} /**
21868 * Copyright (c) 2015-present, Facebook, Inc.
21869 *
21870 * This source code is licensed under the MIT license found in the
21871 * LICENSE file in the root directory of this source tree.
21872 *
21873 *
21874 */
21875
21876function badValueForDefaultArgMessage(varName, type, value, verboseErrors) {
21877 var message = verboseErrors ? '\n' + verboseErrors.join('\n') : '';
21878 return 'Variable "$' + varName + '" of type "' + String(type) + '" has invalid ' + ('default value ' + value + '.' + message);
21879}
21880
21881/**
21882 * Variable default values of correct type
21883 *
21884 * A GraphQL document is only valid if all variable default values are of the
21885 * type expected by their definition.
21886 */
21887function DefaultValuesOfCorrectType(context) {
21888 return {
21889 VariableDefinition: function VariableDefinition(node) {
21890 var name = node.variable.name.value;
21891 var defaultValue = node.defaultValue;
21892 var type = context.getInputType();
21893 if (type instanceof _definition.GraphQLNonNull && defaultValue) {
21894 context.reportError(new _error.GraphQLError(defaultForNonNullArgMessage(name, type, type.ofType), [defaultValue]));
21895 }
21896 if (type && defaultValue) {
21897 var errors = (0, _isValidLiteralValue.isValidLiteralValue)(type, defaultValue);
21898 if (errors && errors.length > 0) {
21899 context.reportError(new _error.GraphQLError(badValueForDefaultArgMessage(name, type, (0, _printer.print)(defaultValue), errors), [defaultValue]));
21900 }
21901 }
21902 return false;
21903 },
21904
21905 SelectionSet: function SelectionSet() {
21906 return false;
21907 },
21908 FragmentDefinition: function FragmentDefinition() {
21909 return false;
21910 }
21911 };
21912}
21913
21914/***/ }),
21915/* 275 */
21916/***/ (function(module, exports, __webpack_require__) {
21917
21918"use strict";
21919
21920
21921Object.defineProperty(exports, "__esModule", {
21922 value: true
21923});
21924exports.badVarPosMessage = badVarPosMessage;
21925exports.VariablesInAllowedPosition = VariablesInAllowedPosition;
21926
21927var _error = __webpack_require__(3);
21928
21929var _definition = __webpack_require__(6);
21930
21931var _typeComparators = __webpack_require__(116);
21932
21933var _typeFromAST = __webpack_require__(46);
21934
21935function badVarPosMessage(varName, varType, expectedType) {
21936 return 'Variable "$' + varName + '" of type "' + String(varType) + '" used in ' + ('position expecting type "' + String(expectedType) + '".');
21937}
21938
21939/**
21940 * Variables passed to field arguments conform to type
21941 */
21942/**
21943 * Copyright (c) 2015-present, Facebook, Inc.
21944 *
21945 * This source code is licensed under the MIT license found in the
21946 * LICENSE file in the root directory of this source tree.
21947 *
21948 *
21949 */
21950
21951function VariablesInAllowedPosition(context) {
21952 var varDefMap = Object.create(null);
21953
21954 return {
21955 OperationDefinition: {
21956 enter: function enter() {
21957 varDefMap = Object.create(null);
21958 },
21959 leave: function leave(operation) {
21960 var usages = context.getRecursiveVariableUsages(operation);
21961
21962 usages.forEach(function (_ref) {
21963 var node = _ref.node,
21964 type = _ref.type;
21965
21966 var varName = node.name.value;
21967 var varDef = varDefMap[varName];
21968 if (varDef && type) {
21969 // A var type is allowed if it is the same or more strict (e.g. is
21970 // a subtype of) than the expected type. It can be more strict if
21971 // the variable type is non-null when the expected type is nullable.
21972 // If both are list types, the variable item type can be more strict
21973 // than the expected item type (contravariant).
21974 var schema = context.getSchema();
21975 var varType = (0, _typeFromAST.typeFromAST)(schema, varDef.type);
21976 if (varType && !(0, _typeComparators.isTypeSubTypeOf)(schema, effectiveType(varType, varDef), type)) {
21977 context.reportError(new _error.GraphQLError(badVarPosMessage(varName, varType, type), [varDef, node]));
21978 }
21979 }
21980 });
21981 }
21982 },
21983 VariableDefinition: function VariableDefinition(node) {
21984 varDefMap[node.variable.name.value] = node;
21985 }
21986 };
21987}
21988
21989// If a variable definition has a default value, it's effectively non-null.
21990function effectiveType(varType, varDef) {
21991 return !varDef.defaultValue || varType instanceof _definition.GraphQLNonNull ? varType : new _definition.GraphQLNonNull(varType);
21992}
21993
21994/***/ }),
21995/* 276 */
21996/***/ (function(module, exports, __webpack_require__) {
21997
21998"use strict";
21999
22000
22001Object.defineProperty(exports, "__esModule", {
22002 value: true
22003});
22004exports.fieldsConflictMessage = fieldsConflictMessage;
22005exports.OverlappingFieldsCanBeMerged = OverlappingFieldsCanBeMerged;
22006
22007var _error = __webpack_require__(3);
22008
22009var _find = __webpack_require__(76);
22010
22011var _find2 = _interopRequireDefault(_find);
22012
22013var _kinds = __webpack_require__(12);
22014
22015var Kind = _interopRequireWildcard(_kinds);
22016
22017var _printer = __webpack_require__(28);
22018
22019var _definition = __webpack_require__(6);
22020
22021var _typeFromAST = __webpack_require__(46);
22022
22023function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
22024
22025function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22026
22027function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /**
22028 * Copyright (c) 2015-present, Facebook, Inc.
22029 *
22030 * This source code is licensed under the MIT license found in the
22031 * LICENSE file in the root directory of this source tree.
22032 *
22033 *
22034 */
22035
22036function fieldsConflictMessage(responseName, reason) {
22037 return 'Fields "' + responseName + '" conflict because ' + reasonMessage(reason) + '. Use different aliases on the fields to fetch both if this was ' + 'intentional.';
22038}
22039
22040function reasonMessage(reason) {
22041 if (Array.isArray(reason)) {
22042 return reason.map(function (_ref) {
22043 var responseName = _ref[0],
22044 subreason = _ref[1];
22045 return 'subfields "' + responseName + '" conflict because ' + reasonMessage(subreason);
22046 }).join(' and ');
22047 }
22048 return reason;
22049}
22050
22051/**
22052 * Overlapping fields can be merged
22053 *
22054 * A selection set is only valid if all fields (including spreading any
22055 * fragments) either correspond to distinct response names or can be merged
22056 * without ambiguity.
22057 */
22058function OverlappingFieldsCanBeMerged(context) {
22059 // A memoization for when two fragments are compared "between" each other for
22060 // conflicts. Two fragments may be compared many times, so memoizing this can
22061 // dramatically improve the performance of this validator.
22062 var comparedFragments = new PairSet();
22063
22064 // A cache for the "field map" and list of fragment names found in any given
22065 // selection set. Selection sets may be asked for this information multiple
22066 // times, so this improves the performance of this validator.
22067 var cachedFieldsAndFragmentNames = new Map();
22068
22069 return {
22070 SelectionSet: function SelectionSet(selectionSet) {
22071 var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragments, context.getParentType(), selectionSet);
22072 conflicts.forEach(function (_ref2) {
22073 var _ref2$ = _ref2[0],
22074 responseName = _ref2$[0],
22075 reason = _ref2$[1],
22076 fields1 = _ref2[1],
22077 fields2 = _ref2[2];
22078 return context.reportError(new _error.GraphQLError(fieldsConflictMessage(responseName, reason), fields1.concat(fields2)));
22079 });
22080 }
22081 };
22082}
22083// Field name and reason.
22084
22085// Reason is a string, or a nested list of conflicts.
22086
22087// Tuple defining a field node in a context.
22088
22089// Map of array of those.
22090
22091
22092/**
22093 * Algorithm:
22094 *
22095 * Conflicts occur when two fields exist in a query which will produce the same
22096 * response name, but represent differing values, thus creating a conflict.
22097 * The algorithm below finds all conflicts via making a series of comparisons
22098 * between fields. In order to compare as few fields as possible, this makes
22099 * a series of comparisons "within" sets of fields and "between" sets of fields.
22100 *
22101 * Given any selection set, a collection produces both a set of fields by
22102 * also including all inline fragments, as well as a list of fragments
22103 * referenced by fragment spreads.
22104 *
22105 * A) Each selection set represented in the document first compares "within" its
22106 * collected set of fields, finding any conflicts between every pair of
22107 * overlapping fields.
22108 * Note: This is the *only time* that a the fields "within" a set are compared
22109 * to each other. After this only fields "between" sets are compared.
22110 *
22111 * B) Also, if any fragment is referenced in a selection set, then a
22112 * comparison is made "between" the original set of fields and the
22113 * referenced fragment.
22114 *
22115 * C) Also, if multiple fragments are referenced, then comparisons
22116 * are made "between" each referenced fragment.
22117 *
22118 * D) When comparing "between" a set of fields and a referenced fragment, first
22119 * a comparison is made between each field in the original set of fields and
22120 * each field in the the referenced set of fields.
22121 *
22122 * E) Also, if any fragment is referenced in the referenced selection set,
22123 * then a comparison is made "between" the original set of fields and the
22124 * referenced fragment (recursively referring to step D).
22125 *
22126 * F) When comparing "between" two fragments, first a comparison is made between
22127 * each field in the first referenced set of fields and each field in the the
22128 * second referenced set of fields.
22129 *
22130 * G) Also, any fragments referenced by the first must be compared to the
22131 * second, and any fragments referenced by the second must be compared to the
22132 * first (recursively referring to step F).
22133 *
22134 * H) When comparing two fields, if both have selection sets, then a comparison
22135 * is made "between" both selection sets, first comparing the set of fields in
22136 * the first selection set with the set of fields in the second.
22137 *
22138 * I) Also, if any fragment is referenced in either selection set, then a
22139 * comparison is made "between" the other set of fields and the
22140 * referenced fragment.
22141 *
22142 * J) Also, if two fragments are referenced in both selection sets, then a
22143 * comparison is made "between" the two fragments.
22144 *
22145 */
22146
22147// Find all conflicts found "within" a selection set, including those found
22148// via spreading in fragments. Called when visiting each SelectionSet in the
22149// GraphQL Document.
22150function findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragments, parentType, selectionSet) {
22151 var conflicts = [];
22152
22153 var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),
22154 fieldMap = _getFieldsAndFragment[0],
22155 fragmentNames = _getFieldsAndFragment[1];
22156
22157 // (A) Find find all conflicts "within" the fields of this selection set.
22158 // Note: this is the *only place* `collectConflictsWithin` is called.
22159
22160
22161 collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, fieldMap);
22162
22163 // (B) Then collect conflicts between these fields and those represented by
22164 // each spread fragment name found.
22165 for (var i = 0; i < fragmentNames.length; i++) {
22166 collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, false, fieldMap, fragmentNames[i]);
22167 // (C) Then compare this fragment with all other fragments found in this
22168 // selection set to collect conflicts between fragments spread together.
22169 // This compares each item in the list of fragment names to every other item
22170 // in that same list (except for itself).
22171 for (var j = i + 1; j < fragmentNames.length; j++) {
22172 collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, false, fragmentNames[i], fragmentNames[j]);
22173 }
22174 }
22175 return conflicts;
22176}
22177
22178// Collect all conflicts found between a set of fields and a fragment reference
22179// including via spreading in any nested fragments.
22180function collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap, fragmentName) {
22181 var fragment = context.getFragment(fragmentName);
22182 if (!fragment) {
22183 return;
22184 }
22185
22186 var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),
22187 fieldMap2 = _getReferencedFieldsA[0],
22188 fragmentNames2 = _getReferencedFieldsA[1];
22189
22190 // (D) First collect any conflicts between the provided collection of fields
22191 // and the collection of fields represented by the given fragment.
22192
22193
22194 collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap, fieldMap2);
22195
22196 // (E) Then collect any conflicts between the provided collection of fields
22197 // and any fragment names found in the given fragment.
22198 for (var i = 0; i < fragmentNames2.length; i++) {
22199 collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap, fragmentNames2[i]);
22200 }
22201}
22202
22203// Collect all conflicts found between two fragments, including via spreading in
22204// any nested fragments.
22205function collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fragmentName1, fragmentName2) {
22206 var fragment1 = context.getFragment(fragmentName1);
22207 var fragment2 = context.getFragment(fragmentName2);
22208 if (!fragment1 || !fragment2) {
22209 return;
22210 }
22211
22212 // No need to compare a fragment to itself.
22213 if (fragment1 === fragment2) {
22214 return;
22215 }
22216
22217 // Memoize so two fragments are not compared for conflicts more than once.
22218 if (comparedFragments.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {
22219 return;
22220 }
22221 comparedFragments.add(fragmentName1, fragmentName2, areMutuallyExclusive);
22222
22223 var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),
22224 fieldMap1 = _getReferencedFieldsA2[0],
22225 fragmentNames1 = _getReferencedFieldsA2[1];
22226
22227 var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),
22228 fieldMap2 = _getReferencedFieldsA3[0],
22229 fragmentNames2 = _getReferencedFieldsA3[1];
22230
22231 // (F) First, collect all conflicts between these two collections of fields
22232 // (not including any nested fragments).
22233
22234
22235 collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap1, fieldMap2);
22236
22237 // (G) Then collect conflicts between the first fragment and any nested
22238 // fragments spread in the second fragment.
22239 for (var j = 0; j < fragmentNames2.length; j++) {
22240 collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);
22241 }
22242
22243 // (G) Then collect conflicts between the second fragment and any nested
22244 // fragments spread in the first fragment.
22245 for (var i = 0; i < fragmentNames1.length; i++) {
22246 collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fragmentNames1[i], fragmentName2);
22247 }
22248}
22249
22250// Find all conflicts found between two selection sets, including those found
22251// via spreading in fragments. Called when determining if conflicts exist
22252// between the sub-fields of two overlapping fields.
22253function findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {
22254 var conflicts = [];
22255
22256 var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),
22257 fieldMap1 = _getFieldsAndFragment2[0],
22258 fragmentNames1 = _getFieldsAndFragment2[1];
22259
22260 var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),
22261 fieldMap2 = _getFieldsAndFragment3[0],
22262 fragmentNames2 = _getFieldsAndFragment3[1];
22263
22264 // (H) First, collect all conflicts between these two collections of field.
22265
22266
22267 collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap1, fieldMap2);
22268
22269 // (I) Then collect conflicts between the first collection of fields and
22270 // those referenced by each fragment name associated with the second.
22271 for (var j = 0; j < fragmentNames2.length; j++) {
22272 collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);
22273 }
22274
22275 // (I) Then collect conflicts between the second collection of fields and
22276 // those referenced by each fragment name associated with the first.
22277 for (var i = 0; i < fragmentNames1.length; i++) {
22278 collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);
22279 }
22280
22281 // (J) Also collect conflicts between any fragment names by the first and
22282 // fragment names by the second. This compares each item in the first set of
22283 // names to each item in the second set of names.
22284 for (var _i = 0; _i < fragmentNames1.length; _i++) {
22285 for (var _j = 0; _j < fragmentNames2.length; _j++) {
22286 collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, fragmentNames1[_i], fragmentNames2[_j]);
22287 }
22288 }
22289 return conflicts;
22290}
22291
22292// Collect all Conflicts "within" one collection of fields.
22293function collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, fieldMap) {
22294 // A field map is a keyed collection, where each key represents a response
22295 // name and the value at that key is a list of all fields which provide that
22296 // response name. For every response name, if there are multiple fields, they
22297 // must be compared to find a potential conflict.
22298 Object.keys(fieldMap).forEach(function (responseName) {
22299 var fields = fieldMap[responseName];
22300 // This compares every field in the list to every other field in this list
22301 // (except to itself). If the list only has one item, nothing needs to
22302 // be compared.
22303 if (fields.length > 1) {
22304 for (var i = 0; i < fields.length; i++) {
22305 for (var j = i + 1; j < fields.length; j++) {
22306 var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragments, false, // within one collection is never mutually exclusive
22307 responseName, fields[i], fields[j]);
22308 if (conflict) {
22309 conflicts.push(conflict);
22310 }
22311 }
22312 }
22313 }
22314 });
22315}
22316
22317// Collect all Conflicts between two collections of fields. This is similar to,
22318// but different from the `collectConflictsWithin` function above. This check
22319// assumes that `collectConflictsWithin` has already been called on each
22320// provided collection of fields. This is true because this validator traverses
22321// each individual selection set.
22322function collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragments, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {
22323 // A field map is a keyed collection, where each key represents a response
22324 // name and the value at that key is a list of all fields which provide that
22325 // response name. For any response name which appears in both provided field
22326 // maps, each field from the first field map must be compared to every field
22327 // in the second field map to find potential conflicts.
22328 Object.keys(fieldMap1).forEach(function (responseName) {
22329 var fields2 = fieldMap2[responseName];
22330 if (fields2) {
22331 var fields1 = fieldMap1[responseName];
22332 for (var i = 0; i < fields1.length; i++) {
22333 for (var j = 0; j < fields2.length; j++) {
22334 var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragments, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);
22335 if (conflict) {
22336 conflicts.push(conflict);
22337 }
22338 }
22339 }
22340 }
22341 });
22342}
22343
22344// Determines if there is a conflict between two particular fields, including
22345// comparing their sub-fields.
22346function findConflict(context, cachedFieldsAndFragmentNames, comparedFragments, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {
22347 var parentType1 = field1[0],
22348 node1 = field1[1],
22349 def1 = field1[2];
22350 var parentType2 = field2[0],
22351 node2 = field2[1],
22352 def2 = field2[2];
22353
22354 // If it is known that two fields could not possibly apply at the same
22355 // time, due to the parent types, then it is safe to permit them to diverge
22356 // in aliased field or arguments used as they will not present any ambiguity
22357 // by differing.
22358 // It is known that two parent types could never overlap if they are
22359 // different Object types. Interface or Union types might overlap - if not
22360 // in the current state of the schema, then perhaps in some future version,
22361 // thus may not safely diverge.
22362
22363 var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && parentType1 instanceof _definition.GraphQLObjectType && parentType2 instanceof _definition.GraphQLObjectType;
22364
22365 // The return type for each field.
22366 var type1 = def1 && def1.type;
22367 var type2 = def2 && def2.type;
22368
22369 if (!areMutuallyExclusive) {
22370 // Two aliases must refer to the same field.
22371 var name1 = node1.name.value;
22372 var name2 = node2.name.value;
22373 if (name1 !== name2) {
22374 return [[responseName, name1 + ' and ' + name2 + ' are different fields'], [node1], [node2]];
22375 }
22376
22377 // Two field calls must have the same arguments.
22378 if (!sameArguments(node1.arguments || [], node2.arguments || [])) {
22379 return [[responseName, 'they have differing arguments'], [node1], [node2]];
22380 }
22381 }
22382
22383 if (type1 && type2 && doTypesConflict(type1, type2)) {
22384 return [[responseName, 'they return conflicting types ' + String(type1) + ' and ' + String(type2)], [node1], [node2]];
22385 }
22386
22387 // Collect and compare sub-fields. Use the same "visited fragment names" list
22388 // for both collections so fields in a fragment reference are never
22389 // compared to themselves.
22390 var selectionSet1 = node1.selectionSet;
22391 var selectionSet2 = node2.selectionSet;
22392 if (selectionSet1 && selectionSet2) {
22393 var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragments, areMutuallyExclusive, (0, _definition.getNamedType)(type1), selectionSet1, (0, _definition.getNamedType)(type2), selectionSet2);
22394 return subfieldConflicts(conflicts, responseName, node1, node2);
22395 }
22396}
22397
22398function sameArguments(arguments1, arguments2) {
22399 if (arguments1.length !== arguments2.length) {
22400 return false;
22401 }
22402 return arguments1.every(function (argument1) {
22403 var argument2 = (0, _find2.default)(arguments2, function (argument) {
22404 return argument.name.value === argument1.name.value;
22405 });
22406 if (!argument2) {
22407 return false;
22408 }
22409 return sameValue(argument1.value, argument2.value);
22410 });
22411}
22412
22413function sameValue(value1, value2) {
22414 return !value1 && !value2 || (0, _printer.print)(value1) === (0, _printer.print)(value2);
22415}
22416
22417// Two types conflict if both types could not apply to a value simultaneously.
22418// Composite types are ignored as their individual field types will be compared
22419// later recursively. However List and Non-Null types must match.
22420function doTypesConflict(type1, type2) {
22421 if (type1 instanceof _definition.GraphQLList) {
22422 return type2 instanceof _definition.GraphQLList ? doTypesConflict(type1.ofType, type2.ofType) : true;
22423 }
22424 if (type2 instanceof _definition.GraphQLList) {
22425 return type1 instanceof _definition.GraphQLList ? doTypesConflict(type1.ofType, type2.ofType) : true;
22426 }
22427 if (type1 instanceof _definition.GraphQLNonNull) {
22428 return type2 instanceof _definition.GraphQLNonNull ? doTypesConflict(type1.ofType, type2.ofType) : true;
22429 }
22430 if (type2 instanceof _definition.GraphQLNonNull) {
22431 return type1 instanceof _definition.GraphQLNonNull ? doTypesConflict(type1.ofType, type2.ofType) : true;
22432 }
22433 if ((0, _definition.isLeafType)(type1) || (0, _definition.isLeafType)(type2)) {
22434 return type1 !== type2;
22435 }
22436 return false;
22437}
22438
22439// Given a selection set, return the collection of fields (a mapping of response
22440// name to field nodes and definitions) as well as a list of fragment names
22441// referenced via fragment spreads.
22442function getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {
22443 var cached = cachedFieldsAndFragmentNames.get(selectionSet);
22444 if (!cached) {
22445 var nodeAndDefs = Object.create(null);
22446 var fragmentNames = Object.create(null);
22447 _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);
22448 cached = [nodeAndDefs, Object.keys(fragmentNames)];
22449 cachedFieldsAndFragmentNames.set(selectionSet, cached);
22450 }
22451 return cached;
22452}
22453
22454// Given a reference to a fragment, return the represented collection of fields
22455// as well as a list of nested fragment names referenced via fragment spreads.
22456function getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {
22457 // Short-circuit building a type from the node if possible.
22458 var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);
22459 if (cached) {
22460 return cached;
22461 }
22462
22463 var fragmentType = (0, _typeFromAST.typeFromAST)(context.getSchema(), fragment.typeCondition);
22464 return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);
22465}
22466
22467function _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {
22468 for (var i = 0; i < selectionSet.selections.length; i++) {
22469 var selection = selectionSet.selections[i];
22470 switch (selection.kind) {
22471 case Kind.FIELD:
22472 var fieldName = selection.name.value;
22473 var fieldDef = void 0;
22474 if (parentType instanceof _definition.GraphQLObjectType || parentType instanceof _definition.GraphQLInterfaceType) {
22475 fieldDef = parentType.getFields()[fieldName];
22476 }
22477 var responseName = selection.alias ? selection.alias.value : fieldName;
22478 if (!nodeAndDefs[responseName]) {
22479 nodeAndDefs[responseName] = [];
22480 }
22481 nodeAndDefs[responseName].push([parentType, selection, fieldDef]);
22482 break;
22483 case Kind.FRAGMENT_SPREAD:
22484 fragmentNames[selection.name.value] = true;
22485 break;
22486 case Kind.INLINE_FRAGMENT:
22487 var typeCondition = selection.typeCondition;
22488 var inlineFragmentType = typeCondition ? (0, _typeFromAST.typeFromAST)(context.getSchema(), typeCondition) : parentType;
22489 _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);
22490 break;
22491 }
22492 }
22493}
22494
22495// Given a series of Conflicts which occurred between two sub-fields, generate
22496// a single Conflict.
22497function subfieldConflicts(conflicts, responseName, node1, node2) {
22498 if (conflicts.length > 0) {
22499 return [[responseName, conflicts.map(function (_ref3) {
22500 var reason = _ref3[0];
22501 return reason;
22502 })], conflicts.reduce(function (allFields, _ref4) {
22503 var fields1 = _ref4[1];
22504 return allFields.concat(fields1);
22505 }, [node1]), conflicts.reduce(function (allFields, _ref5) {
22506 var fields2 = _ref5[2];
22507 return allFields.concat(fields2);
22508 }, [node2])];
22509 }
22510}
22511
22512/**
22513 * A way to keep track of pairs of things when the ordering of the pair does
22514 * not matter. We do this by maintaining a sort of double adjacency sets.
22515 */
22516
22517var PairSet = function () {
22518 function PairSet() {
22519 _classCallCheck(this, PairSet);
22520
22521 this._data = Object.create(null);
22522 }
22523
22524 PairSet.prototype.has = function has(a, b, areMutuallyExclusive) {
22525 var first = this._data[a];
22526 var result = first && first[b];
22527 if (result === undefined) {
22528 return false;
22529 }
22530 // areMutuallyExclusive being false is a superset of being true,
22531 // hence if we want to know if this PairSet "has" these two with no
22532 // exclusivity, we have to ensure it was added as such.
22533 if (areMutuallyExclusive === false) {
22534 return result === false;
22535 }
22536 return true;
22537 };
22538
22539 PairSet.prototype.add = function add(a, b, areMutuallyExclusive) {
22540 _pairSetAdd(this._data, a, b, areMutuallyExclusive);
22541 _pairSetAdd(this._data, b, a, areMutuallyExclusive);
22542 };
22543
22544 return PairSet;
22545}();
22546
22547function _pairSetAdd(data, a, b, areMutuallyExclusive) {
22548 var map = data[a];
22549 if (!map) {
22550 map = Object.create(null);
22551 data[a] = map;
22552 }
22553 map[b] = areMutuallyExclusive;
22554}
22555
22556/***/ }),
22557/* 277 */
22558/***/ (function(module, exports, __webpack_require__) {
22559
22560"use strict";
22561
22562
22563Object.defineProperty(exports, "__esModule", {
22564 value: true
22565});
22566exports.duplicateInputFieldMessage = duplicateInputFieldMessage;
22567exports.UniqueInputFieldNames = UniqueInputFieldNames;
22568
22569var _error = __webpack_require__(3);
22570
22571/**
22572 * Copyright (c) 2015-present, Facebook, Inc.
22573 *
22574 * This source code is licensed under the MIT license found in the
22575 * LICENSE file in the root directory of this source tree.
22576 *
22577 *
22578 */
22579
22580function duplicateInputFieldMessage(fieldName) {
22581 return 'There can be only one input field named "' + fieldName + '".';
22582}
22583
22584/**
22585 * Unique input field names
22586 *
22587 * A GraphQL input object value is only valid if all supplied fields are
22588 * uniquely named.
22589 */
22590function UniqueInputFieldNames(context) {
22591 var knownNameStack = [];
22592 var knownNames = Object.create(null);
22593
22594 return {
22595 ObjectValue: {
22596 enter: function enter() {
22597 knownNameStack.push(knownNames);
22598 knownNames = Object.create(null);
22599 },
22600 leave: function leave() {
22601 knownNames = knownNameStack.pop();
22602 }
22603 },
22604 ObjectField: function ObjectField(node) {
22605 var fieldName = node.name.value;
22606 if (knownNames[fieldName]) {
22607 context.reportError(new _error.GraphQLError(duplicateInputFieldMessage(fieldName), [knownNames[fieldName], node.name]));
22608 } else {
22609 knownNames[fieldName] = node.name;
22610 }
22611 return false;
22612 }
22613 };
22614}
22615
22616/***/ }),
22617/* 278 */
22618/***/ (function(module, exports, __webpack_require__) {
22619
22620"use strict";
22621
22622
22623Object.defineProperty(exports, "__esModule", {
22624 value: true
22625});
22626
22627var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
22628 * Copyright (c) 2015-present, Facebook, Inc.
22629 *
22630 * This source code is licensed under the MIT license found in the
22631 * LICENSE file in the root directory of this source tree.
22632 *
22633 *
22634 */
22635
22636exports.isValidJSValue = isValidJSValue;
22637
22638var _iterall = __webpack_require__(39);
22639
22640var _invariant = __webpack_require__(11);
22641
22642var _invariant2 = _interopRequireDefault(_invariant);
22643
22644var _isNullish = __webpack_require__(66);
22645
22646var _isNullish2 = _interopRequireDefault(_isNullish);
22647
22648var _definition = __webpack_require__(6);
22649
22650function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22651
22652/**
22653 * Given a JavaScript value and a GraphQL type, determine if the value will be
22654 * accepted for that type. This is primarily useful for validating the
22655 * runtime values of query variables.
22656 */
22657function isValidJSValue(value, type) {
22658 // A value must be provided if the type is non-null.
22659 if (type instanceof _definition.GraphQLNonNull) {
22660 if ((0, _isNullish2.default)(value)) {
22661 return ['Expected "' + String(type) + '", found null.'];
22662 }
22663 return isValidJSValue(value, type.ofType);
22664 }
22665
22666 if ((0, _isNullish2.default)(value)) {
22667 return [];
22668 }
22669
22670 // Lists accept a non-list value as a list of one.
22671 if (type instanceof _definition.GraphQLList) {
22672 var itemType = type.ofType;
22673 if ((0, _iterall.isCollection)(value)) {
22674 var errors = [];
22675 (0, _iterall.forEach)(value, function (item, index) {
22676 errors.push.apply(errors, isValidJSValue(item, itemType).map(function (error) {
22677 return 'In element #' + index + ': ' + error;
22678 }));
22679 });
22680 return errors;
22681 }
22682 return isValidJSValue(value, itemType);
22683 }
22684
22685 // Input objects check each defined field.
22686 if (type instanceof _definition.GraphQLInputObjectType) {
22687 if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) {
22688 return ['Expected "' + type.name + '", found not an object.'];
22689 }
22690 var fields = type.getFields();
22691
22692 var _errors = [];
22693
22694 // Ensure every provided field is defined.
22695 Object.keys(value).forEach(function (providedField) {
22696 if (!fields[providedField]) {
22697 _errors.push('In field "' + providedField + '": Unknown field.');
22698 }
22699 });
22700
22701 // Ensure every defined field is valid.
22702 Object.keys(fields).forEach(function (fieldName) {
22703 var newErrors = isValidJSValue(value[fieldName], fields[fieldName].type);
22704 _errors.push.apply(_errors, newErrors.map(function (error) {
22705 return 'In field "' + fieldName + '": ' + error;
22706 }));
22707 });
22708
22709 return _errors;
22710 }
22711
22712 !(type instanceof _definition.GraphQLScalarType || type instanceof _definition.GraphQLEnumType) ? (0, _invariant2.default)(0, 'Must be input type') : void 0;
22713
22714 // Scalar/Enum input checks to ensure the type can parse the value to
22715 // a non-null value.
22716 try {
22717 var parseResult = type.parseValue(value);
22718 if ((0, _isNullish2.default)(parseResult) && !type.isValidValue(value)) {
22719 return ['Expected type "' + type.name + '", found ' + JSON.stringify(value) + '.'];
22720 }
22721 } catch (error) {
22722 return ['Expected type "' + type.name + '", found ' + JSON.stringify(value) + ': ' + error.message];
22723 }
22724
22725 return [];
22726}
22727
22728/***/ }),
22729/* 279 */
22730/***/ (function(module, exports, __webpack_require__) {
22731
22732"use strict";
22733
22734
22735Object.defineProperty(exports, "__esModule", {
22736 value: true
22737});
22738exports.getOperationAST = getOperationAST;
22739
22740var _kinds = __webpack_require__(12);
22741
22742/**
22743 * Returns an operation AST given a document AST and optionally an operation
22744 * name. If a name is not provided, an operation is only returned if only one is
22745 * provided in the document.
22746 */
22747function getOperationAST(documentAST, operationName) {
22748 var operation = null;
22749 for (var i = 0; i < documentAST.definitions.length; i++) {
22750 var definition = documentAST.definitions[i];
22751 if (definition.kind === _kinds.OPERATION_DEFINITION) {
22752 if (!operationName) {
22753 // If no operation name was provided, only return an Operation if there
22754 // is one defined in the document. Upon encountering the second, return
22755 // null.
22756 if (operation) {
22757 return null;
22758 }
22759 operation = definition;
22760 } else if (definition.name && definition.name.value === operationName) {
22761 return definition;
22762 }
22763 }
22764 }
22765 return operation;
22766} /**
22767 * Copyright (c) 2015-present, Facebook, Inc.
22768 *
22769 * This source code is licensed under the MIT license found in the
22770 * LICENSE file in the root directory of this source tree.
22771 *
22772 *
22773 */
22774
22775/***/ }),
22776/* 280 */
22777/***/ (function(module, exports, __webpack_require__) {
22778
22779"use strict";
22780
22781
22782Object.defineProperty(exports, "__esModule", {
22783 value: true
22784});
22785exports.buildASTSchema = buildASTSchema;
22786exports.getDeprecationReason = getDeprecationReason;
22787exports.getDescription = getDescription;
22788exports.buildSchema = buildSchema;
22789
22790var _invariant = __webpack_require__(11);
22791
22792var _invariant2 = _interopRequireDefault(_invariant);
22793
22794var _keyValMap = __webpack_require__(183);
22795
22796var _keyValMap2 = _interopRequireDefault(_keyValMap);
22797
22798var _valueFromAST = __webpack_require__(87);
22799
22800var _lexer = __webpack_require__(175);
22801
22802var _parser = __webpack_require__(115);
22803
22804var _values = __webpack_require__(182);
22805
22806var _kinds = __webpack_require__(12);
22807
22808var Kind = _interopRequireWildcard(_kinds);
22809
22810var _schema = __webpack_require__(44);
22811
22812var _scalars = __webpack_require__(52);
22813
22814var _definition = __webpack_require__(6);
22815
22816var _directives = __webpack_require__(45);
22817
22818var _introspection = __webpack_require__(67);
22819
22820function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
22821
22822function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22823
22824/**
22825 * Copyright (c) 2015-present, Facebook, Inc.
22826 *
22827 * This source code is licensed under the MIT license found in the
22828 * LICENSE file in the root directory of this source tree.
22829 *
22830 *
22831 */
22832
22833function buildWrappedType(innerType, inputTypeNode) {
22834 if (inputTypeNode.kind === Kind.LIST_TYPE) {
22835 return new _definition.GraphQLList(buildWrappedType(innerType, inputTypeNode.type));
22836 }
22837 if (inputTypeNode.kind === Kind.NON_NULL_TYPE) {
22838 var wrappedType = buildWrappedType(innerType, inputTypeNode.type);
22839 !!(wrappedType instanceof _definition.GraphQLNonNull) ? (0, _invariant2.default)(0, 'No nesting nonnull.') : void 0;
22840 return new _definition.GraphQLNonNull(wrappedType);
22841 }
22842 return innerType;
22843}
22844
22845function getNamedTypeNode(typeNode) {
22846 var namedType = typeNode;
22847 while (namedType.kind === Kind.LIST_TYPE || namedType.kind === Kind.NON_NULL_TYPE) {
22848 namedType = namedType.type;
22849 }
22850 return namedType;
22851}
22852
22853/**
22854 * This takes the ast of a schema document produced by the parse function in
22855 * src/language/parser.js.
22856 *
22857 * If no schema definition is provided, then it will look for types named Query
22858 * and Mutation.
22859 *
22860 * Given that AST it constructs a GraphQLSchema. The resulting schema
22861 * has no resolve methods, so execution will use default resolvers.
22862 */
22863function buildASTSchema(ast) {
22864 if (!ast || ast.kind !== Kind.DOCUMENT) {
22865 throw new Error('Must provide a document ast.');
22866 }
22867
22868 var schemaDef = void 0;
22869
22870 var typeDefs = [];
22871 var nodeMap = Object.create(null);
22872 var directiveDefs = [];
22873 for (var i = 0; i < ast.definitions.length; i++) {
22874 var d = ast.definitions[i];
22875 switch (d.kind) {
22876 case Kind.SCHEMA_DEFINITION:
22877 if (schemaDef) {
22878 throw new Error('Must provide only one schema definition.');
22879 }
22880 schemaDef = d;
22881 break;
22882 case Kind.SCALAR_TYPE_DEFINITION:
22883 case Kind.OBJECT_TYPE_DEFINITION:
22884 case Kind.INTERFACE_TYPE_DEFINITION:
22885 case Kind.ENUM_TYPE_DEFINITION:
22886 case Kind.UNION_TYPE_DEFINITION:
22887 case Kind.INPUT_OBJECT_TYPE_DEFINITION:
22888 var typeName = d.name.value;
22889 if (nodeMap[typeName]) {
22890 throw new Error('Type "' + typeName + '" was defined more than once.');
22891 }
22892 typeDefs.push(d);
22893 nodeMap[typeName] = d;
22894 break;
22895 case Kind.DIRECTIVE_DEFINITION:
22896 directiveDefs.push(d);
22897 break;
22898 }
22899 }
22900
22901 var queryTypeName = void 0;
22902 var mutationTypeName = void 0;
22903 var subscriptionTypeName = void 0;
22904 if (schemaDef) {
22905 schemaDef.operationTypes.forEach(function (operationType) {
22906 var typeName = operationType.type.name.value;
22907 if (operationType.operation === 'query') {
22908 if (queryTypeName) {
22909 throw new Error('Must provide only one query type in schema.');
22910 }
22911 if (!nodeMap[typeName]) {
22912 throw new Error('Specified query type "' + typeName + '" not found in document.');
22913 }
22914 queryTypeName = typeName;
22915 } else if (operationType.operation === 'mutation') {
22916 if (mutationTypeName) {
22917 throw new Error('Must provide only one mutation type in schema.');
22918 }
22919 if (!nodeMap[typeName]) {
22920 throw new Error('Specified mutation type "' + typeName + '" not found in document.');
22921 }
22922 mutationTypeName = typeName;
22923 } else if (operationType.operation === 'subscription') {
22924 if (subscriptionTypeName) {
22925 throw new Error('Must provide only one subscription type in schema.');
22926 }
22927 if (!nodeMap[typeName]) {
22928 throw new Error('Specified subscription type "' + typeName + '" not found in document.');
22929 }
22930 subscriptionTypeName = typeName;
22931 }
22932 });
22933 } else {
22934 if (nodeMap.Query) {
22935 queryTypeName = 'Query';
22936 }
22937 if (nodeMap.Mutation) {
22938 mutationTypeName = 'Mutation';
22939 }
22940 if (nodeMap.Subscription) {
22941 subscriptionTypeName = 'Subscription';
22942 }
22943 }
22944
22945 if (!queryTypeName) {
22946 throw new Error('Must provide schema definition with query type or a type named Query.');
22947 }
22948
22949 var innerTypeMap = {
22950 String: _scalars.GraphQLString,
22951 Int: _scalars.GraphQLInt,
22952 Float: _scalars.GraphQLFloat,
22953 Boolean: _scalars.GraphQLBoolean,
22954 ID: _scalars.GraphQLID,
22955 __Schema: _introspection.__Schema,
22956 __Directive: _introspection.__Directive,
22957 __DirectiveLocation: _introspection.__DirectiveLocation,
22958 __Type: _introspection.__Type,
22959 __Field: _introspection.__Field,
22960 __InputValue: _introspection.__InputValue,
22961 __EnumValue: _introspection.__EnumValue,
22962 __TypeKind: _introspection.__TypeKind
22963 };
22964
22965 var types = typeDefs.map(function (def) {
22966 return typeDefNamed(def.name.value);
22967 });
22968
22969 var directives = directiveDefs.map(getDirective);
22970
22971 // If specified directives were not explicitly declared, add them.
22972 if (!directives.some(function (directive) {
22973 return directive.name === 'skip';
22974 })) {
22975 directives.push(_directives.GraphQLSkipDirective);
22976 }
22977
22978 if (!directives.some(function (directive) {
22979 return directive.name === 'include';
22980 })) {
22981 directives.push(_directives.GraphQLIncludeDirective);
22982 }
22983
22984 if (!directives.some(function (directive) {
22985 return directive.name === 'deprecated';
22986 })) {
22987 directives.push(_directives.GraphQLDeprecatedDirective);
22988 }
22989
22990 return new _schema.GraphQLSchema({
22991 query: getObjectType(nodeMap[queryTypeName]),
22992 mutation: mutationTypeName ? getObjectType(nodeMap[mutationTypeName]) : null,
22993 subscription: subscriptionTypeName ? getObjectType(nodeMap[subscriptionTypeName]) : null,
22994 types: types,
22995 directives: directives,
22996 astNode: schemaDef
22997 });
22998
22999 function getDirective(directiveNode) {
23000 return new _directives.GraphQLDirective({
23001 name: directiveNode.name.value,
23002 description: getDescription(directiveNode),
23003 locations: directiveNode.locations.map(function (node) {
23004 return node.value;
23005 }),
23006 args: directiveNode.arguments && makeInputValues(directiveNode.arguments),
23007 astNode: directiveNode
23008 });
23009 }
23010
23011 function getObjectType(typeNode) {
23012 var type = typeDefNamed(typeNode.name.value);
23013 !(type instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'AST must provide object type.') : void 0;
23014 return type;
23015 }
23016
23017 function produceType(typeNode) {
23018 var typeName = getNamedTypeNode(typeNode).name.value;
23019 var typeDef = typeDefNamed(typeName);
23020 return buildWrappedType(typeDef, typeNode);
23021 }
23022
23023 function produceInputType(typeNode) {
23024 return (0, _definition.assertInputType)(produceType(typeNode));
23025 }
23026
23027 function produceOutputType(typeNode) {
23028 return (0, _definition.assertOutputType)(produceType(typeNode));
23029 }
23030
23031 function produceObjectType(typeNode) {
23032 var type = produceType(typeNode);
23033 !(type instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Expected Object type.') : void 0;
23034 return type;
23035 }
23036
23037 function produceInterfaceType(typeNode) {
23038 var type = produceType(typeNode);
23039 !(type instanceof _definition.GraphQLInterfaceType) ? (0, _invariant2.default)(0, 'Expected Interface type.') : void 0;
23040 return type;
23041 }
23042
23043 function typeDefNamed(typeName) {
23044 if (!innerTypeMap[typeName]) {
23045 if (!nodeMap[typeName]) {
23046 throw new Error('Type "' + typeName + '" not found in document.');
23047 }
23048 innerTypeMap[typeName] = makeSchemaDef(nodeMap[typeName]);
23049 }
23050 return innerTypeMap[typeName];
23051 }
23052
23053 function makeSchemaDef(def) {
23054 switch (def.kind) {
23055 case Kind.OBJECT_TYPE_DEFINITION:
23056 return makeTypeDef(def);
23057 case Kind.INTERFACE_TYPE_DEFINITION:
23058 return makeInterfaceDef(def);
23059 case Kind.ENUM_TYPE_DEFINITION:
23060 return makeEnumDef(def);
23061 case Kind.UNION_TYPE_DEFINITION:
23062 return makeUnionDef(def);
23063 case Kind.SCALAR_TYPE_DEFINITION:
23064 return makeScalarDef(def);
23065 case Kind.INPUT_OBJECT_TYPE_DEFINITION:
23066 return makeInputObjectDef(def);
23067 default:
23068 throw new Error('Type kind "' + def.kind + '" not supported.');
23069 }
23070 }
23071
23072 function makeTypeDef(def) {
23073 var typeName = def.name.value;
23074 return new _definition.GraphQLObjectType({
23075 name: typeName,
23076 description: getDescription(def),
23077 fields: function fields() {
23078 return makeFieldDefMap(def);
23079 },
23080 interfaces: function interfaces() {
23081 return makeImplementedInterfaces(def);
23082 },
23083 astNode: def
23084 });
23085 }
23086
23087 function makeFieldDefMap(def) {
23088 return (0, _keyValMap2.default)(def.fields, function (field) {
23089 return field.name.value;
23090 }, function (field) {
23091 return {
23092 type: produceOutputType(field.type),
23093 description: getDescription(field),
23094 args: makeInputValues(field.arguments),
23095 deprecationReason: getDeprecationReason(field),
23096 astNode: field
23097 };
23098 });
23099 }
23100
23101 function makeImplementedInterfaces(def) {
23102 return def.interfaces && def.interfaces.map(function (iface) {
23103 return produceInterfaceType(iface);
23104 });
23105 }
23106
23107 function makeInputValues(values) {
23108 return (0, _keyValMap2.default)(values, function (value) {
23109 return value.name.value;
23110 }, function (value) {
23111 var type = produceInputType(value.type);
23112 return {
23113 type: type,
23114 description: getDescription(value),
23115 defaultValue: (0, _valueFromAST.valueFromAST)(value.defaultValue, type),
23116 astNode: value
23117 };
23118 });
23119 }
23120
23121 function makeInterfaceDef(def) {
23122 return new _definition.GraphQLInterfaceType({
23123 name: def.name.value,
23124 description: getDescription(def),
23125 fields: function fields() {
23126 return makeFieldDefMap(def);
23127 },
23128 astNode: def,
23129 resolveType: cannotExecuteSchema
23130 });
23131 }
23132
23133 function makeEnumDef(def) {
23134 return new _definition.GraphQLEnumType({
23135 name: def.name.value,
23136 description: getDescription(def),
23137 values: (0, _keyValMap2.default)(def.values, function (enumValue) {
23138 return enumValue.name.value;
23139 }, function (enumValue) {
23140 return {
23141 description: getDescription(enumValue),
23142 deprecationReason: getDeprecationReason(enumValue),
23143 astNode: enumValue
23144 };
23145 }),
23146 astNode: def
23147 });
23148 }
23149
23150 function makeUnionDef(def) {
23151 return new _definition.GraphQLUnionType({
23152 name: def.name.value,
23153 description: getDescription(def),
23154 types: def.types.map(function (t) {
23155 return produceObjectType(t);
23156 }),
23157 resolveType: cannotExecuteSchema,
23158 astNode: def
23159 });
23160 }
23161
23162 function makeScalarDef(def) {
23163 return new _definition.GraphQLScalarType({
23164 name: def.name.value,
23165 description: getDescription(def),
23166 astNode: def,
23167 serialize: function serialize() {
23168 return null;
23169 },
23170 // Note: validation calls the parse functions to determine if a
23171 // literal value is correct. Returning null would cause use of custom
23172 // scalars to always fail validation. Returning false causes them to
23173 // always pass validation.
23174 parseValue: function parseValue() {
23175 return false;
23176 },
23177 parseLiteral: function parseLiteral() {
23178 return false;
23179 }
23180 });
23181 }
23182
23183 function makeInputObjectDef(def) {
23184 return new _definition.GraphQLInputObjectType({
23185 name: def.name.value,
23186 description: getDescription(def),
23187 fields: function fields() {
23188 return makeInputValues(def.fields);
23189 },
23190 astNode: def
23191 });
23192 }
23193}
23194
23195/**
23196 * Given a field or enum value node, returns the string value for the
23197 * deprecation reason.
23198 */
23199function getDeprecationReason(node) {
23200 var deprecated = (0, _values.getDirectiveValues)(_directives.GraphQLDeprecatedDirective, node);
23201 return deprecated && deprecated.reason;
23202}
23203
23204/**
23205 * Given an ast node, returns its string description based on a contiguous
23206 * block full-line of comments preceding it.
23207 */
23208function getDescription(node) {
23209 var loc = node.loc;
23210 if (!loc) {
23211 return;
23212 }
23213 var comments = [];
23214 var minSpaces = void 0;
23215 var token = loc.startToken.prev;
23216 while (token && token.kind === _lexer.TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {
23217 var value = String(token.value);
23218 var spaces = leadingSpaces(value);
23219 if (minSpaces === undefined || spaces < minSpaces) {
23220 minSpaces = spaces;
23221 }
23222 comments.push(value);
23223 token = token.prev;
23224 }
23225 return comments.reverse().map(function (comment) {
23226 return comment.slice(minSpaces);
23227 }).join('\n');
23228}
23229
23230/**
23231 * A helper function to build a GraphQLSchema directly from a source
23232 * document.
23233 */
23234function buildSchema(source) {
23235 return buildASTSchema((0, _parser.parse)(source));
23236}
23237
23238// Count the number of spaces on the starting side of a string.
23239function leadingSpaces(str) {
23240 var i = 0;
23241 for (; i < str.length; i++) {
23242 if (str[i] !== ' ') {
23243 break;
23244 }
23245 }
23246 return i;
23247}
23248
23249function cannotExecuteSchema() {
23250 throw new Error('Generated Schema cannot use Interface or Union types for execution.');
23251}
23252
23253/***/ }),
23254/* 281 */
23255/***/ (function(module, exports, __webpack_require__) {
23256
23257"use strict";
23258
23259Object.defineProperty(exports, "__esModule", { value: true });
23260var url = __webpack_require__(53);
23261var apollo_server_core_1 = __webpack_require__(583);
23262var GraphiQL = __webpack_require__(588);
23263function graphqlExpress(options) {
23264 if (!options) {
23265 throw new Error('Apollo Server requires options.');
23266 }
23267 if (arguments.length > 1) {
23268 throw new Error("Apollo Server expects exactly one argument, got " + arguments.length);
23269 }
23270 return function (req, res, next) {
23271 apollo_server_core_1.runHttpQuery([req, res], {
23272 method: req.method,
23273 options: options,
23274 query: req.method === 'POST' ? req.body : req.query,
23275 }).then(function (gqlResponse) {
23276 res.setHeader('Content-Type', 'application/json');
23277 res.setHeader('Content-Length', Buffer.byteLength(gqlResponse, 'utf8'));
23278 res.write(gqlResponse);
23279 res.end();
23280 }, function (error) {
23281 if ('HttpQueryError' !== error.name) {
23282 return next(error);
23283 }
23284 if (error.headers) {
23285 Object.keys(error.headers).forEach(function (header) {
23286 res.setHeader(header, error.headers[header]);
23287 });
23288 }
23289 res.statusCode = error.statusCode;
23290 res.write(error.message);
23291 res.end();
23292 });
23293 };
23294}
23295exports.graphqlExpress = graphqlExpress;
23296function graphiqlExpress(options) {
23297 return function (req, res, next) {
23298 var query = req.url && url.parse(req.url, true).query;
23299 GraphiQL.resolveGraphiQLString(query, options, req).then(function (graphiqlString) {
23300 res.setHeader('Content-Type', 'text/html');
23301 res.write(graphiqlString);
23302 res.end();
23303 }, function (error) { return next(error); });
23304 };
23305}
23306exports.graphiqlExpress = graphiqlExpress;
23307//# sourceMappingURL=expressApollo.js.map
23308
23309/***/ }),
23310/* 282 */
23311/***/ (function(module, exports, __webpack_require__) {
23312
23313"use strict";
23314
23315Object.defineProperty(exports, "__esModule", { value: true });
23316var graphql_1 = __webpack_require__(14);
23317var graphql_extensions_1 = __webpack_require__(584);
23318var apollo_tracing_1 = __webpack_require__(585);
23319var apollo_cache_control_1 = __webpack_require__(586);
23320var LogAction;
23321(function (LogAction) {
23322 LogAction[LogAction["request"] = 0] = "request";
23323 LogAction[LogAction["parse"] = 1] = "parse";
23324 LogAction[LogAction["validation"] = 2] = "validation";
23325 LogAction[LogAction["execute"] = 3] = "execute";
23326})(LogAction = exports.LogAction || (exports.LogAction = {}));
23327var LogStep;
23328(function (LogStep) {
23329 LogStep[LogStep["start"] = 0] = "start";
23330 LogStep[LogStep["end"] = 1] = "end";
23331 LogStep[LogStep["status"] = 2] = "status";
23332})(LogStep = exports.LogStep || (exports.LogStep = {}));
23333var resolvedPromise = Promise.resolve();
23334function runQuery(options) {
23335 return resolvedPromise.then(function () { return doRunQuery(options); });
23336}
23337exports.runQuery = runQuery;
23338function doRunQuery(options) {
23339 var documentAST;
23340 var logFunction = options.logFunction || function () { return null; };
23341 var debugDefault = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';
23342 var debug = typeof options.debug !== 'undefined' ? options.debug : debugDefault;
23343 logFunction({ action: LogAction.request, step: LogStep.start });
23344 var context = options.context || {};
23345 var extensions = [];
23346 if (options.tracing) {
23347 extensions.push(apollo_tracing_1.TracingExtension);
23348 }
23349 if (options.cacheControl) {
23350 extensions.push(apollo_cache_control_1.CacheControlExtension);
23351 }
23352 var extensionStack = extensions.length > 0 && new graphql_extensions_1.GraphQLExtensionStack(extensions);
23353 if (extensionStack) {
23354 context._extensionStack = extensionStack;
23355 graphql_extensions_1.enableGraphQLExtensions(options.schema);
23356 extensionStack.requestDidStart();
23357 }
23358 function format(errors) {
23359 return errors.map(function (error) {
23360 if (options.formatError) {
23361 try {
23362 return options.formatError(error);
23363 }
23364 catch (err) {
23365 console.error('Error in formatError function:', err);
23366 var newError = new Error('Internal server error');
23367 return graphql_1.formatError(newError);
23368 }
23369 }
23370 else {
23371 return graphql_1.formatError(error);
23372 }
23373 });
23374 }
23375 function printStackTrace(error) {
23376 console.error(error.stack);
23377 }
23378 var qry = typeof options.query === 'string' ? options.query : graphql_1.print(options.query);
23379 logFunction({ action: LogAction.request, step: LogStep.status, key: 'query', data: qry });
23380 logFunction({ action: LogAction.request, step: LogStep.status, key: 'variables', data: options.variables });
23381 logFunction({ action: LogAction.request, step: LogStep.status, key: 'operationName', data: options.operationName });
23382 if (typeof options.query === 'string') {
23383 try {
23384 logFunction({ action: LogAction.parse, step: LogStep.start });
23385 documentAST = graphql_1.parse(options.query);
23386 logFunction({ action: LogAction.parse, step: LogStep.end });
23387 }
23388 catch (syntaxError) {
23389 logFunction({ action: LogAction.parse, step: LogStep.end });
23390 return Promise.resolve({ errors: format([syntaxError]) });
23391 }
23392 }
23393 else {
23394 documentAST = options.query;
23395 }
23396 var rules = graphql_1.specifiedRules;
23397 if (options.validationRules) {
23398 rules = rules.concat(options.validationRules);
23399 }
23400 logFunction({ action: LogAction.validation, step: LogStep.start });
23401 var validationErrors = graphql_1.validate(options.schema, documentAST, rules);
23402 logFunction({ action: LogAction.validation, step: LogStep.end });
23403 if (validationErrors.length) {
23404 return Promise.resolve({ errors: format(validationErrors) });
23405 }
23406 if (extensionStack) {
23407 extensionStack.executionDidStart();
23408 }
23409 try {
23410 logFunction({ action: LogAction.execute, step: LogStep.start });
23411 return Promise.resolve(graphql_1.execute(options.schema, documentAST, options.rootValue, context, options.variables, options.operationName, options.fieldResolver)).then(function (result) {
23412 logFunction({ action: LogAction.execute, step: LogStep.end });
23413 logFunction({ action: LogAction.request, step: LogStep.end });
23414 var response = {
23415 data: result.data,
23416 };
23417 if (result.errors) {
23418 response.errors = format(result.errors);
23419 if (debug) {
23420 result.errors.map(printStackTrace);
23421 }
23422 }
23423 if (extensionStack) {
23424 extensionStack.executionDidEnd();
23425 extensionStack.requestDidEnd();
23426 response.extensions = extensionStack.format();
23427 }
23428 if (options.formatResponse) {
23429 response = options.formatResponse(response, options);
23430 }
23431 return response;
23432 });
23433 }
23434 catch (executionError) {
23435 logFunction({ action: LogAction.execute, step: LogStep.end });
23436 logFunction({ action: LogAction.request, step: LogStep.end });
23437 return Promise.resolve({ errors: format([executionError]) });
23438 }
23439}
23440//# sourceMappingURL=runQuery.js.map
23441
23442/***/ }),
23443/* 283 */
23444/***/ (function(module, exports, __webpack_require__) {
23445
23446"use strict";
23447
23448var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
23449 return new (P || (P = Promise))(function (resolve, reject) {
23450 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
23451 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23452 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
23453 step((generator = generator.apply(thisArg, _arguments || [])).next());
23454 });
23455};
23456var __generator = (this && this.__generator) || function (thisArg, body) {
23457 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23458 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
23459 function verb(n) { return function (v) { return step([n, v]); }; }
23460 function step(op) {
23461 if (f) throw new TypeError("Generator is already executing.");
23462 while (_) try {
23463 if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
23464 if (y = 0, t) op = [0, t.value];
23465 switch (op[0]) {
23466 case 0: case 1: t = op; break;
23467 case 4: _.label++; return { value: op[1], done: false };
23468 case 5: _.label++; y = op[1]; op = [0]; continue;
23469 case 7: op = _.ops.pop(); _.trys.pop(); continue;
23470 default:
23471 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
23472 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
23473 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
23474 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
23475 if (t[2]) _.ops.pop();
23476 _.trys.pop(); continue;
23477 }
23478 op = body.call(thisArg, _);
23479 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
23480 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
23481 }
23482};
23483Object.defineProperty(exports, "__esModule", { value: true });
23484function resolveGraphqlOptions(options) {
23485 var args = [];
23486 for (var _i = 1; _i < arguments.length; _i++) {
23487 args[_i - 1] = arguments[_i];
23488 }
23489 return __awaiter(this, void 0, void 0, function () {
23490 var e_1;
23491 return __generator(this, function (_a) {
23492 switch (_a.label) {
23493 case 0:
23494 if (!isOptionsFunction(options)) return [3, 5];
23495 _a.label = 1;
23496 case 1:
23497 _a.trys.push([1, 3, , 4]);
23498 return [4, options.apply(void 0, args)];
23499 case 2: return [2, _a.sent()];
23500 case 3:
23501 e_1 = _a.sent();
23502 throw new Error("Invalid options provided to ApolloServer: " + e_1.message);
23503 case 4: return [3, 6];
23504 case 5: return [2, options];
23505 case 6: return [2];
23506 }
23507 });
23508 });
23509}
23510exports.resolveGraphqlOptions = resolveGraphqlOptions;
23511function isOptionsFunction(arg) {
23512 return typeof arg === 'function';
23513}
23514exports.isOptionsFunction = isOptionsFunction;
23515//# sourceMappingURL=graphqlOptions.js.map
23516
23517/***/ }),
23518/* 284 */
23519/***/ (function(module, exports, __webpack_require__) {
23520
23521"use strict";
23522
23523Object.defineProperty(exports, "__esModule", { value: true });
23524var GRAPHIQL_VERSION = '0.11.2';
23525var SUBSCRIPTIONS_TRANSPORT_VERSION = '0.8.2';
23526function safeSerialize(data) {
23527 return data ? JSON.stringify(data).replace(/\//g, '\\/') : null;
23528}
23529function renderGraphiQL(data) {
23530 var endpointURL = data.endpointURL;
23531 var endpointWs = endpointURL.startsWith('ws://') || endpointURL.startsWith('wss://');
23532 var subscriptionsEndpoint = data.subscriptionsEndpoint;
23533 var usingHttp = !endpointWs;
23534 var usingWs = endpointWs || !!subscriptionsEndpoint;
23535 var endpointURLWs = usingWs && (endpointWs ? endpointURL : subscriptionsEndpoint);
23536 var queryString = data.query;
23537 var variablesString = data.variables ? JSON.stringify(data.variables, null, 2) : null;
23538 var resultString = null;
23539 var operationName = data.operationName;
23540 var passHeader = data.passHeader ? data.passHeader : '';
23541 var editorTheme = data.editorTheme;
23542 var usingEditorTheme = !!editorTheme;
23543 var websocketConnectionParams = data.websocketConnectionParams || null;
23544 return "\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <title>GraphiQL</title>\n <meta name=\"robots\" content=\"noindex\" />\n <style>\n html, body {\n height: 100%;\n margin: 0;\n overflow: hidden;\n width: 100%;\n }\n </style>\n <link href=\"//unpkg.com/graphiql@" + GRAPHIQL_VERSION + "/graphiql.css\" rel=\"stylesheet\" />\n <script src=\"//unpkg.com/react@15.6.1/dist/react.min.js\"></script>\n <script src=\"//unpkg.com/react-dom@15.6.1/dist/react-dom.min.js\"></script>\n <script src=\"//unpkg.com/graphiql@" + GRAPHIQL_VERSION + "/graphiql.min.js\"></script>\n " + (usingEditorTheme ?
23545 "<link href=\"//cdn.jsdelivr.net/npm/codemirror@5/theme/" + editorTheme + ".min.css\" rel=\"stylesheet\" />"
23546 : '') + "\n " + (usingHttp ?
23547 "<script src=\"//cdn.jsdelivr.net/fetch/2.0.1/fetch.min.js\"></script>"
23548 : '') + "\n " + (usingWs ?
23549 "<script src=\"//unpkg.com/subscriptions-transport-ws@" + SUBSCRIPTIONS_TRANSPORT_VERSION + "/browser/client.js\"></script>"
23550 : '') + "\n " + (usingWs && usingHttp ?
23551 '<script src="//unpkg.com/graphiql-subscriptions-fetcher@0.0.2/browser/client.js"></script>'
23552 : '') + "\n\n</head>\n<body>\n <script>\n // Collect the URL parameters\n var parameters = {};\n window.location.search.substr(1).split('&').forEach(function (entry) {\n var eq = entry.indexOf('=');\n if (eq >= 0) {\n parameters[decodeURIComponent(entry.slice(0, eq))] =\n decodeURIComponent(entry.slice(eq + 1));\n }\n });\n // Produce a Location query string from a parameter object.\n function locationQuery(params, location) {\n return (location ? location: '') + '?' + Object.keys(params).map(function (key) {\n return encodeURIComponent(key) + '=' +\n encodeURIComponent(params[key]);\n }).join('&');\n }\n // Derive a fetch URL from the current URL, sans the GraphQL parameters.\n var graphqlParamNames = {\n query: true,\n variables: true,\n operationName: true\n };\n var otherParams = {};\n for (var k in parameters) {\n if (parameters.hasOwnProperty(k) && graphqlParamNames[k] !== true) {\n otherParams[k] = parameters[k];\n }\n }\n\n " + (usingWs ? "\n var subscriptionsClient = new window.SubscriptionsTransportWs.SubscriptionClient('" + endpointURLWs + "', {\n reconnect: true" + (websocketConnectionParams ? ",\n connectionParams: " + JSON.stringify(websocketConnectionParams) : '') + "\n });\n\n var graphQLWSFetcher = subscriptionsClient.request.bind(subscriptionsClient);\n " : '') + "\n\n " + (usingHttp ? "\n // We don't use safe-serialize for location, because it's not client input.\n var fetchURL = locationQuery(otherParams, '" + endpointURL + "');\n\n // Defines a GraphQL fetcher using the fetch API.\n function graphQLHttpFetcher(graphQLParams) {\n return fetch(fetchURL, {\n method: 'post',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n " + passHeader + "\n },\n body: JSON.stringify(graphQLParams),\n credentials: 'same-origin',\n }).then(function (response) {\n return response.text();\n }).then(function (responseBody) {\n try {\n return JSON.parse(responseBody);\n } catch (error) {\n return responseBody;\n }\n });\n }\n " : '') + "\n\n " + (usingWs && usingHttp ? "\n var fetcher =\n window.GraphiQLSubscriptionsFetcher.graphQLFetcher(subscriptionsClient, graphQLHttpFetcher);\n " : "\n var fetcher = " + (usingWs ? 'graphQLWSFetcher' : 'graphQLHttpFetcher') + ";\n ") + "\n\n // When the query and variables string is edited, update the URL bar so\n // that it can be easily shared.\n function onEditQuery(newQuery) {\n parameters.query = newQuery;\n updateURL();\n }\n function onEditVariables(newVariables) {\n parameters.variables = newVariables;\n updateURL();\n }\n function onEditOperationName(newOperationName) {\n parameters.operationName = newOperationName;\n updateURL();\n }\n function updateURL() {\n var cleanParams = Object.keys(parameters).filter(function(v) {\n return parameters[v];\n }).reduce(function(old, v) {\n old[v] = parameters[v];\n return old;\n }, {});\n\n history.replaceState(null, null, locationQuery(cleanParams) + window.location.hash);\n }\n // Render <GraphiQL /> into the body.\n ReactDOM.render(\n React.createElement(GraphiQL, {\n fetcher: fetcher,\n onEditQuery: onEditQuery,\n onEditVariables: onEditVariables,\n onEditOperationName: onEditOperationName,\n query: " + safeSerialize(queryString) + ",\n response: " + safeSerialize(resultString) + ",\n variables: " + safeSerialize(variablesString) + ",\n operationName: " + safeSerialize(operationName) + ",\n editorTheme: " + safeSerialize(editorTheme) + ",\n websocketConnectionParams: " + safeSerialize(websocketConnectionParams) + ",\n }),\n document.body\n );\n </script>\n</body>\n</html>";
23553}
23554exports.renderGraphiQL = renderGraphiQL;
23555//# sourceMappingURL=renderGraphiQL.js.map
23556
23557/***/ }),
23558/* 285 */
23559/***/ (function(module, exports) {
23560
23561/**
23562 * lodash 4.0.1 (Custom Build) <https://lodash.com/>
23563 * Build: `lodash modularize exports="npm" -o ./`
23564 * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
23565 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
23566 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
23567 * Available under MIT license <https://lodash.com/license>
23568 */
23569
23570/** `Object#toString` result references. */
23571var stringTag = '[object String]';
23572
23573/** Used for built-in method references. */
23574var objectProto = Object.prototype;
23575
23576/**
23577 * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
23578 * of values.
23579 */
23580var objectToString = objectProto.toString;
23581
23582/**
23583 * Checks if `value` is classified as an `Array` object.
23584 *
23585 * @static
23586 * @memberOf _
23587 * @type Function
23588 * @category Lang
23589 * @param {*} value The value to check.
23590 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
23591 * @example
23592 *
23593 * _.isArray([1, 2, 3]);
23594 * // => true
23595 *
23596 * _.isArray(document.body.children);
23597 * // => false
23598 *
23599 * _.isArray('abc');
23600 * // => false
23601 *
23602 * _.isArray(_.noop);
23603 * // => false
23604 */
23605var isArray = Array.isArray;
23606
23607/**
23608 * Checks if `value` is object-like. A value is object-like if it's not `null`
23609 * and has a `typeof` result of "object".
23610 *
23611 * @static
23612 * @memberOf _
23613 * @category Lang
23614 * @param {*} value The value to check.
23615 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
23616 * @example
23617 *
23618 * _.isObjectLike({});
23619 * // => true
23620 *
23621 * _.isObjectLike([1, 2, 3]);
23622 * // => true
23623 *
23624 * _.isObjectLike(_.noop);
23625 * // => false
23626 *
23627 * _.isObjectLike(null);
23628 * // => false
23629 */
23630function isObjectLike(value) {
23631 return !!value && typeof value == 'object';
23632}
23633
23634/**
23635 * Checks if `value` is classified as a `String` primitive or object.
23636 *
23637 * @static
23638 * @memberOf _
23639 * @category Lang
23640 * @param {*} value The value to check.
23641 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
23642 * @example
23643 *
23644 * _.isString('abc');
23645 * // => true
23646 *
23647 * _.isString(1);
23648 * // => false
23649 */
23650function isString(value) {
23651 return typeof value == 'string' ||
23652 (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
23653}
23654
23655module.exports = isString;
23656
23657
23658/***/ }),
23659/* 286 */
23660/***/ (function(module, exports) {
23661
23662/**
23663 * lodash 3.0.2 (Custom Build) <https://lodash.com/>
23664 * Build: `lodash modern modularize exports="npm" -o ./`
23665 * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
23666 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
23667 * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
23668 * Available under MIT license <https://lodash.com/license>
23669 */
23670
23671/**
23672 * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
23673 * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
23674 *
23675 * @static
23676 * @memberOf _
23677 * @category Lang
23678 * @param {*} value The value to check.
23679 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
23680 * @example
23681 *
23682 * _.isObject({});
23683 * // => true
23684 *
23685 * _.isObject([1, 2, 3]);
23686 * // => true
23687 *
23688 * _.isObject(1);
23689 * // => false
23690 */
23691function isObject(value) {
23692 // Avoid a V8 JIT bug in Chrome 19-20.
23693 // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
23694 var type = typeof value;
23695 return !!value && (type == 'object' || type == 'function');
23696}
23697
23698module.exports = isObject;
23699
23700
23701/***/ }),
23702/* 287 */
23703/***/ (function(module, exports, __webpack_require__) {
23704
23705"use strict";
23706/*!
23707 * ws: a node.js websocket client
23708 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
23709 * MIT Licensed
23710 */
23711
23712
23713
23714const EventEmitter = __webpack_require__(88);
23715const crypto = __webpack_require__(78);
23716const Ultron = __webpack_require__(288);
23717const https = __webpack_require__(289);
23718const http = __webpack_require__(43);
23719const url = __webpack_require__(53);
23720
23721const PerMessageDeflate = __webpack_require__(119);
23722const EventTarget = __webpack_require__(602);
23723const Extensions = __webpack_require__(290);
23724const constants = __webpack_require__(120);
23725const Receiver = __webpack_require__(291);
23726const Sender = __webpack_require__(293);
23727
23728const protocolVersions = [8, 13];
23729const closeTimeout = 30 * 1000; // Allow 30 seconds to terminate the connection cleanly.
23730
23731/**
23732 * Class representing a WebSocket.
23733 *
23734 * @extends EventEmitter
23735 */
23736class WebSocket extends EventEmitter {
23737 /**
23738 * Create a new `WebSocket`.
23739 *
23740 * @param {String} address The URL to which to connect
23741 * @param {(String|String[])} protocols The subprotocols
23742 * @param {Object} options Connection options
23743 */
23744 constructor (address, protocols, options) {
23745 super();
23746
23747 if (!protocols) {
23748 protocols = [];
23749 } else if (typeof protocols === 'string') {
23750 protocols = [protocols];
23751 } else if (!Array.isArray(protocols)) {
23752 options = protocols;
23753 protocols = [];
23754 }
23755
23756 this.readyState = WebSocket.CONNECTING;
23757 this.bytesReceived = 0;
23758 this.extensions = {};
23759 this.protocol = '';
23760
23761 this._binaryType = constants.BINARY_TYPES[0];
23762 this._finalize = this.finalize.bind(this);
23763 this._closeFrameReceived = false;
23764 this._closeFrameSent = false;
23765 this._closeMessage = '';
23766 this._closeTimer = null;
23767 this._finalized = false;
23768 this._closeCode = 1006;
23769 this._receiver = null;
23770 this._sender = null;
23771 this._socket = null;
23772 this._ultron = null;
23773
23774 if (Array.isArray(address)) {
23775 initAsServerClient.call(this, address[0], address[1], options);
23776 } else {
23777 initAsClient.call(this, address, protocols, options);
23778 }
23779 }
23780
23781 get CONNECTING () { return WebSocket.CONNECTING; }
23782 get CLOSING () { return WebSocket.CLOSING; }
23783 get CLOSED () { return WebSocket.CLOSED; }
23784 get OPEN () { return WebSocket.OPEN; }
23785
23786 /**
23787 * @type {Number}
23788 */
23789 get bufferedAmount () {
23790 var amount = 0;
23791
23792 if (this._socket) {
23793 amount = this._socket.bufferSize + this._sender._bufferedBytes;
23794 }
23795 return amount;
23796 }
23797
23798 /**
23799 * This deviates from the WHATWG interface since ws doesn't support the required
23800 * default "blob" type (instead we define a custom "nodebuffer" type).
23801 *
23802 * @type {String}
23803 */
23804 get binaryType () {
23805 return this._binaryType;
23806 }
23807
23808 set binaryType (type) {
23809 if (constants.BINARY_TYPES.indexOf(type) < 0) return;
23810
23811 this._binaryType = type;
23812
23813 //
23814 // Allow to change `binaryType` on the fly.
23815 //
23816 if (this._receiver) this._receiver._binaryType = type;
23817 }
23818
23819 /**
23820 * Set up the socket and the internal resources.
23821 *
23822 * @param {net.Socket} socket The network socket between the server and client
23823 * @param {Buffer} head The first packet of the upgraded stream
23824 * @private
23825 */
23826 setSocket (socket, head) {
23827 socket.setTimeout(0);
23828 socket.setNoDelay();
23829
23830 this._receiver = new Receiver(this.extensions, this._maxPayload, this.binaryType);
23831 this._sender = new Sender(socket, this.extensions);
23832 this._ultron = new Ultron(socket);
23833 this._socket = socket;
23834
23835 this._ultron.on('close', this._finalize);
23836 this._ultron.on('error', this._finalize);
23837 this._ultron.on('end', this._finalize);
23838
23839 if (head.length > 0) socket.unshift(head);
23840
23841 this._ultron.on('data', (data) => {
23842 this.bytesReceived += data.length;
23843 this._receiver.add(data);
23844 });
23845
23846 this._receiver.onmessage = (data) => this.emit('message', data);
23847 this._receiver.onping = (data) => {
23848 this.pong(data, !this._isServer, true);
23849 this.emit('ping', data);
23850 };
23851 this._receiver.onpong = (data) => this.emit('pong', data);
23852 this._receiver.onclose = (code, reason) => {
23853 this._closeFrameReceived = true;
23854 this._closeMessage = reason;
23855 this._closeCode = code;
23856 if (!this._finalized) this.close(code, reason);
23857 };
23858 this._receiver.onerror = (error, code) => {
23859 this._closeMessage = '';
23860 this._closeCode = code;
23861
23862 //
23863 // Ensure that the error is emitted even if `WebSocket#finalize()` has
23864 // already been called.
23865 //
23866 this.readyState = WebSocket.CLOSING;
23867 this.emit('error', error);
23868 this.finalize(true);
23869 };
23870
23871 this.readyState = WebSocket.OPEN;
23872 this.emit('open');
23873 }
23874
23875 /**
23876 * Clean up and release internal resources.
23877 *
23878 * @param {(Boolean|Error)} error Indicates whether or not an error occurred
23879 * @private
23880 */
23881 finalize (error) {
23882 if (this._finalized) return;
23883
23884 this.readyState = WebSocket.CLOSING;
23885 this._finalized = true;
23886
23887 if (typeof error === 'object') this.emit('error', error);
23888 if (!this._socket) return this.emitClose();
23889
23890 clearTimeout(this._closeTimer);
23891 this._closeTimer = null;
23892
23893 this._ultron.destroy();
23894 this._ultron = null;
23895
23896 this._socket.on('error', constants.NOOP);
23897
23898 if (!error) this._socket.end();
23899 else this._socket.destroy();
23900
23901 this._socket = null;
23902 this._sender = null;
23903
23904 this._receiver.cleanup(() => this.emitClose());
23905 this._receiver = null;
23906 }
23907
23908 /**
23909 * Emit the `close` event.
23910 *
23911 * @private
23912 */
23913 emitClose () {
23914 this.readyState = WebSocket.CLOSED;
23915
23916 this.emit('close', this._closeCode, this._closeMessage);
23917
23918 if (this.extensions[PerMessageDeflate.extensionName]) {
23919 this.extensions[PerMessageDeflate.extensionName].cleanup();
23920 }
23921
23922 this.extensions = null;
23923
23924 this.removeAllListeners();
23925 }
23926
23927 /**
23928 * Pause the socket stream.
23929 *
23930 * @public
23931 */
23932 pause () {
23933 if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
23934
23935 this._socket.pause();
23936 }
23937
23938 /**
23939 * Resume the socket stream
23940 *
23941 * @public
23942 */
23943 resume () {
23944 if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
23945
23946 this._socket.resume();
23947 }
23948
23949 /**
23950 * Start a closing handshake.
23951 *
23952 * +----------+ +-----------+ +----------+
23953 * + - - -|ws.close()|---->|close frame|-->|ws.close()|- - - -
23954 * +----------+ +-----------+ +----------+ |
23955 * | +----------+ +-----------+ |
23956 * |ws.close()|<----|close frame|<--------+ |
23957 * +----------+ +-----------+ |
23958 * CLOSING | +---+ | CLOSING
23959 * | +---|fin|<------------+
23960 * | | | +---+ |
23961 * | | +---+ +-------------+
23962 * | +----------+-->|fin|----->|ws.finalize()| - - +
23963 * | +---+ +-------------+
23964 * | +-------------+ |
23965 * - - -|ws.finalize()|<--+
23966 * +-------------+
23967 *
23968 * @param {Number} code Status code explaining why the connection is closing
23969 * @param {String} data A string explaining why the connection is closing
23970 * @public
23971 */
23972 close (code, data) {
23973 if (this.readyState === WebSocket.CLOSED) return;
23974 if (this.readyState === WebSocket.CONNECTING) {
23975 this._req.abort();
23976 this.finalize(new Error('closed before the connection is established'));
23977 return;
23978 }
23979
23980 if (this.readyState === WebSocket.CLOSING) {
23981 if (this._closeFrameSent && this._closeFrameReceived) this._socket.end();
23982 return;
23983 }
23984
23985 this.readyState = WebSocket.CLOSING;
23986 this._sender.close(code, data, !this._isServer, (err) => {
23987 //
23988 // This error is handled by the `'error'` listener on the socket. We only
23989 // want to know if the close frame has been sent here.
23990 //
23991 if (err) return;
23992
23993 this._closeFrameSent = true;
23994
23995 if (!this._finalized) {
23996 if (this._closeFrameReceived) this._socket.end();
23997
23998 //
23999 // Ensure that the connection is cleaned up even when the closing
24000 // handshake fails.
24001 //
24002 this._closeTimer = setTimeout(this._finalize, closeTimeout, true);
24003 }
24004 });
24005 }
24006
24007 /**
24008 * Send a ping message.
24009 *
24010 * @param {*} data The message to send
24011 * @param {Boolean} mask Indicates whether or not to mask `data`
24012 * @param {Boolean} failSilently Indicates whether or not to throw if `readyState` isn't `OPEN`
24013 * @public
24014 */
24015 ping (data, mask, failSilently) {
24016 if (this.readyState !== WebSocket.OPEN) {
24017 if (failSilently) return;
24018 throw new Error('not opened');
24019 }
24020
24021 if (typeof data === 'number') data = data.toString();
24022 if (mask === undefined) mask = !this._isServer;
24023 this._sender.ping(data || constants.EMPTY_BUFFER, mask);
24024 }
24025
24026 /**
24027 * Send a pong message.
24028 *
24029 * @param {*} data The message to send
24030 * @param {Boolean} mask Indicates whether or not to mask `data`
24031 * @param {Boolean} failSilently Indicates whether or not to throw if `readyState` isn't `OPEN`
24032 * @public
24033 */
24034 pong (data, mask, failSilently) {
24035 if (this.readyState !== WebSocket.OPEN) {
24036 if (failSilently) return;
24037 throw new Error('not opened');
24038 }
24039
24040 if (typeof data === 'number') data = data.toString();
24041 if (mask === undefined) mask = !this._isServer;
24042 this._sender.pong(data || constants.EMPTY_BUFFER, mask);
24043 }
24044
24045 /**
24046 * Send a data message.
24047 *
24048 * @param {*} data The message to send
24049 * @param {Object} options Options object
24050 * @param {Boolean} options.compress Specifies whether or not to compress `data`
24051 * @param {Boolean} options.binary Specifies whether `data` is binary or text
24052 * @param {Boolean} options.fin Specifies whether the fragment is the last one
24053 * @param {Boolean} options.mask Specifies whether or not to mask `data`
24054 * @param {Function} cb Callback which is executed when data is written out
24055 * @public
24056 */
24057 send (data, options, cb) {
24058 if (typeof options === 'function') {
24059 cb = options;
24060 options = {};
24061 }
24062
24063 if (this.readyState !== WebSocket.OPEN) {
24064 if (cb) cb(new Error('not opened'));
24065 else throw new Error('not opened');
24066 return;
24067 }
24068
24069 if (typeof data === 'number') data = data.toString();
24070
24071 const opts = Object.assign({
24072 binary: typeof data !== 'string',
24073 mask: !this._isServer,
24074 compress: true,
24075 fin: true
24076 }, options);
24077
24078 if (!this.extensions[PerMessageDeflate.extensionName]) {
24079 opts.compress = false;
24080 }
24081
24082 this._sender.send(data || constants.EMPTY_BUFFER, opts, cb);
24083 }
24084
24085 /**
24086 * Forcibly close the connection.
24087 *
24088 * @public
24089 */
24090 terminate () {
24091 if (this.readyState === WebSocket.CLOSED) return;
24092 if (this.readyState === WebSocket.CONNECTING) {
24093 this._req.abort();
24094 this.finalize(new Error('closed before the connection is established'));
24095 return;
24096 }
24097
24098 this.finalize(true);
24099 }
24100}
24101
24102WebSocket.CONNECTING = 0;
24103WebSocket.OPEN = 1;
24104WebSocket.CLOSING = 2;
24105WebSocket.CLOSED = 3;
24106
24107//
24108// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.
24109// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface
24110//
24111['open', 'error', 'close', 'message'].forEach((method) => {
24112 Object.defineProperty(WebSocket.prototype, `on${method}`, {
24113 /**
24114 * Return the listener of the event.
24115 *
24116 * @return {(Function|undefined)} The event listener or `undefined`
24117 * @public
24118 */
24119 get () {
24120 const listeners = this.listeners(method);
24121 for (var i = 0; i < listeners.length; i++) {
24122 if (listeners[i]._listener) return listeners[i]._listener;
24123 }
24124 },
24125 /**
24126 * Add a listener for the event.
24127 *
24128 * @param {Function} listener The listener to add
24129 * @public
24130 */
24131 set (listener) {
24132 const listeners = this.listeners(method);
24133 for (var i = 0; i < listeners.length; i++) {
24134 //
24135 // Remove only the listeners added via `addEventListener`.
24136 //
24137 if (listeners[i]._listener) this.removeListener(method, listeners[i]);
24138 }
24139 this.addEventListener(method, listener);
24140 }
24141 });
24142});
24143
24144WebSocket.prototype.addEventListener = EventTarget.addEventListener;
24145WebSocket.prototype.removeEventListener = EventTarget.removeEventListener;
24146
24147module.exports = WebSocket;
24148
24149/**
24150 * Initialize a WebSocket server client.
24151 *
24152 * @param {http.IncomingMessage} req The request object
24153 * @param {net.Socket} socket The network socket between the server and client
24154 * @param {Buffer} head The first packet of the upgraded stream
24155 * @param {Object} options WebSocket attributes
24156 * @param {Number} options.protocolVersion The WebSocket protocol version
24157 * @param {Object} options.extensions The negotiated extensions
24158 * @param {Number} options.maxPayload The maximum allowed message size
24159 * @param {String} options.protocol The chosen subprotocol
24160 * @private
24161 */
24162function initAsServerClient (socket, head, options) {
24163 this.protocolVersion = options.protocolVersion;
24164 this._maxPayload = options.maxPayload;
24165 this.extensions = options.extensions;
24166 this.protocol = options.protocol;
24167
24168 this._isServer = true;
24169
24170 this.setSocket(socket, head);
24171}
24172
24173/**
24174 * Initialize a WebSocket client.
24175 *
24176 * @param {String} address The URL to which to connect
24177 * @param {String[]} protocols The list of subprotocols
24178 * @param {Object} options Connection options
24179 * @param {String} options.protocol Value of the `Sec-WebSocket-Protocol` header
24180 * @param {(Boolean|Object)} options.perMessageDeflate Enable/disable permessage-deflate
24181 * @param {Number} options.handshakeTimeout Timeout in milliseconds for the handshake request
24182 * @param {String} options.localAddress Local interface to bind for network connections
24183 * @param {Number} options.protocolVersion Value of the `Sec-WebSocket-Version` header
24184 * @param {Object} options.headers An object containing request headers
24185 * @param {String} options.origin Value of the `Origin` or `Sec-WebSocket-Origin` header
24186 * @param {http.Agent} options.agent Use the specified Agent
24187 * @param {String} options.host Value of the `Host` header
24188 * @param {Number} options.family IP address family to use during hostname lookup (4 or 6).
24189 * @param {Function} options.checkServerIdentity A function to validate the server hostname
24190 * @param {Boolean} options.rejectUnauthorized Verify or not the server certificate
24191 * @param {String} options.passphrase The passphrase for the private key or pfx
24192 * @param {String} options.ciphers The ciphers to use or exclude
24193 * @param {String} options.ecdhCurve The curves for ECDH key agreement to use or exclude
24194 * @param {(String|String[]|Buffer|Buffer[])} options.cert The certificate key
24195 * @param {(String|String[]|Buffer|Buffer[])} options.key The private key
24196 * @param {(String|Buffer)} options.pfx The private key, certificate, and CA certs
24197 * @param {(String|String[]|Buffer|Buffer[])} options.ca Trusted certificates
24198 * @private
24199 */
24200function initAsClient (address, protocols, options) {
24201 options = Object.assign({
24202 protocolVersion: protocolVersions[1],
24203 protocol: protocols.join(','),
24204 perMessageDeflate: true,
24205 handshakeTimeout: null,
24206 localAddress: null,
24207 headers: null,
24208 family: null,
24209 origin: null,
24210 agent: null,
24211 host: null,
24212
24213 //
24214 // SSL options.
24215 //
24216 checkServerIdentity: null,
24217 rejectUnauthorized: null,
24218 passphrase: null,
24219 ciphers: null,
24220 ecdhCurve: null,
24221 cert: null,
24222 key: null,
24223 pfx: null,
24224 ca: null
24225 }, options);
24226
24227 if (protocolVersions.indexOf(options.protocolVersion) === -1) {
24228 throw new Error(
24229 `unsupported protocol version: ${options.protocolVersion} ` +
24230 `(supported versions: ${protocolVersions.join(', ')})`
24231 );
24232 }
24233
24234 this.protocolVersion = options.protocolVersion;
24235 this._isServer = false;
24236 this.url = address;
24237
24238 const serverUrl = url.parse(address);
24239 const isUnixSocket = serverUrl.protocol === 'ws+unix:';
24240
24241 if (!serverUrl.host && (!isUnixSocket || !serverUrl.path)) {
24242 throw new Error('invalid url');
24243 }
24244
24245 const isSecure = serverUrl.protocol === 'wss:' || serverUrl.protocol === 'https:';
24246 const key = crypto.randomBytes(16).toString('base64');
24247 const httpObj = isSecure ? https : http;
24248 var perMessageDeflate;
24249
24250 const requestOptions = {
24251 port: serverUrl.port || (isSecure ? 443 : 80),
24252 host: serverUrl.hostname,
24253 path: '/',
24254 headers: {
24255 'Sec-WebSocket-Version': options.protocolVersion,
24256 'Sec-WebSocket-Key': key,
24257 'Connection': 'Upgrade',
24258 'Upgrade': 'websocket'
24259 }
24260 };
24261
24262 if (options.headers) Object.assign(requestOptions.headers, options.headers);
24263 if (options.perMessageDeflate) {
24264 perMessageDeflate = new PerMessageDeflate(
24265 options.perMessageDeflate !== true ? options.perMessageDeflate : {},
24266 false
24267 );
24268 requestOptions.headers['Sec-WebSocket-Extensions'] = Extensions.format({
24269 [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
24270 });
24271 }
24272 if (options.protocol) {
24273 requestOptions.headers['Sec-WebSocket-Protocol'] = options.protocol;
24274 }
24275 if (options.origin) {
24276 if (options.protocolVersion < 13) {
24277 requestOptions.headers['Sec-WebSocket-Origin'] = options.origin;
24278 } else {
24279 requestOptions.headers.Origin = options.origin;
24280 }
24281 }
24282 if (options.host) requestOptions.headers.Host = options.host;
24283 if (serverUrl.auth) requestOptions.auth = serverUrl.auth;
24284
24285 if (options.localAddress) requestOptions.localAddress = options.localAddress;
24286 if (options.family) requestOptions.family = options.family;
24287
24288 if (isUnixSocket) {
24289 const parts = serverUrl.path.split(':');
24290
24291 requestOptions.socketPath = parts[0];
24292 requestOptions.path = parts[1];
24293 } else if (serverUrl.path) {
24294 //
24295 // Make sure that path starts with `/`.
24296 //
24297 if (serverUrl.path.charAt(0) !== '/') {
24298 requestOptions.path = `/${serverUrl.path}`;
24299 } else {
24300 requestOptions.path = serverUrl.path;
24301 }
24302 }
24303
24304 var agent = options.agent;
24305
24306 //
24307 // A custom agent is required for these options.
24308 //
24309 if (
24310 options.rejectUnauthorized != null ||
24311 options.checkServerIdentity ||
24312 options.passphrase ||
24313 options.ciphers ||
24314 options.ecdhCurve ||
24315 options.cert ||
24316 options.key ||
24317 options.pfx ||
24318 options.ca
24319 ) {
24320 if (options.passphrase) requestOptions.passphrase = options.passphrase;
24321 if (options.ciphers) requestOptions.ciphers = options.ciphers;
24322 if (options.ecdhCurve) requestOptions.ecdhCurve = options.ecdhCurve;
24323 if (options.cert) requestOptions.cert = options.cert;
24324 if (options.key) requestOptions.key = options.key;
24325 if (options.pfx) requestOptions.pfx = options.pfx;
24326 if (options.ca) requestOptions.ca = options.ca;
24327 if (options.checkServerIdentity) {
24328 requestOptions.checkServerIdentity = options.checkServerIdentity;
24329 }
24330 if (options.rejectUnauthorized != null) {
24331 requestOptions.rejectUnauthorized = options.rejectUnauthorized;
24332 }
24333
24334 if (!agent) agent = new httpObj.Agent(requestOptions);
24335 }
24336
24337 if (agent) requestOptions.agent = agent;
24338
24339 this._req = httpObj.get(requestOptions);
24340
24341 if (options.handshakeTimeout) {
24342 this._req.setTimeout(options.handshakeTimeout, () => {
24343 this._req.abort();
24344 this.finalize(new Error('opening handshake has timed out'));
24345 });
24346 }
24347
24348 this._req.on('error', (error) => {
24349 if (this._req.aborted) return;
24350
24351 this._req = null;
24352 this.finalize(error);
24353 });
24354
24355 this._req.on('response', (res) => {
24356 if (!this.emit('unexpected-response', this._req, res)) {
24357 this._req.abort();
24358 this.finalize(new Error(`unexpected server response (${res.statusCode})`));
24359 }
24360 });
24361
24362 this._req.on('upgrade', (res, socket, head) => {
24363 this.emit('headers', res.headers, res);
24364
24365 //
24366 // The user may have closed the connection from a listener of the `headers`
24367 // event.
24368 //
24369 if (this.readyState !== WebSocket.CONNECTING) return;
24370
24371 this._req = null;
24372
24373 const digest = crypto.createHash('sha1')
24374 .update(key + constants.GUID, 'binary')
24375 .digest('base64');
24376
24377 if (res.headers['sec-websocket-accept'] !== digest) {
24378 socket.destroy();
24379 return this.finalize(new Error('invalid server key'));
24380 }
24381
24382 const serverProt = res.headers['sec-websocket-protocol'];
24383 const protList = (options.protocol || '').split(/, */);
24384 var protError;
24385
24386 if (!options.protocol && serverProt) {
24387 protError = 'server sent a subprotocol even though none requested';
24388 } else if (options.protocol && !serverProt) {
24389 protError = 'server sent no subprotocol even though requested';
24390 } else if (serverProt && protList.indexOf(serverProt) === -1) {
24391 protError = 'server responded with an invalid protocol';
24392 }
24393
24394 if (protError) {
24395 socket.destroy();
24396 return this.finalize(new Error(protError));
24397 }
24398
24399 if (serverProt) this.protocol = serverProt;
24400
24401 if (perMessageDeflate) {
24402 try {
24403 const serverExtensions = Extensions.parse(
24404 res.headers['sec-websocket-extensions']
24405 );
24406
24407 if (serverExtensions[PerMessageDeflate.extensionName]) {
24408 perMessageDeflate.accept(
24409 serverExtensions[PerMessageDeflate.extensionName]
24410 );
24411 this.extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
24412 }
24413 } catch (err) {
24414 socket.destroy();
24415 this.finalize(new Error('invalid Sec-WebSocket-Extensions header'));
24416 return;
24417 }
24418 }
24419
24420 this.setSocket(socket, head);
24421 });
24422}
24423
24424
24425/***/ }),
24426/* 288 */
24427/***/ (function(module, exports, __webpack_require__) {
24428
24429"use strict";
24430
24431
24432var has = Object.prototype.hasOwnProperty;
24433
24434/**
24435 * An auto incrementing id which we can use to create "unique" Ultron instances
24436 * so we can track the event emitters that are added through the Ultron
24437 * interface.
24438 *
24439 * @type {Number}
24440 * @private
24441 */
24442var id = 0;
24443
24444/**
24445 * Ultron is high-intelligence robot. It gathers intelligence so it can start improving
24446 * upon his rudimentary design. It will learn from your EventEmitting patterns
24447 * and exterminate them.
24448 *
24449 * @constructor
24450 * @param {EventEmitter} ee EventEmitter instance we need to wrap.
24451 * @api public
24452 */
24453function Ultron(ee) {
24454 if (!(this instanceof Ultron)) return new Ultron(ee);
24455
24456 this.id = id++;
24457 this.ee = ee;
24458}
24459
24460/**
24461 * Register a new EventListener for the given event.
24462 *
24463 * @param {String} event Name of the event.
24464 * @param {Functon} fn Callback function.
24465 * @param {Mixed} context The context of the function.
24466 * @returns {Ultron}
24467 * @api public
24468 */
24469Ultron.prototype.on = function on(event, fn, context) {
24470 fn.__ultron = this.id;
24471 this.ee.on(event, fn, context);
24472
24473 return this;
24474};
24475/**
24476 * Add an EventListener that's only called once.
24477 *
24478 * @param {String} event Name of the event.
24479 * @param {Function} fn Callback function.
24480 * @param {Mixed} context The context of the function.
24481 * @returns {Ultron}
24482 * @api public
24483 */
24484Ultron.prototype.once = function once(event, fn, context) {
24485 fn.__ultron = this.id;
24486 this.ee.once(event, fn, context);
24487
24488 return this;
24489};
24490
24491/**
24492 * Remove the listeners we assigned for the given event.
24493 *
24494 * @returns {Ultron}
24495 * @api public
24496 */
24497Ultron.prototype.remove = function remove() {
24498 var args = arguments
24499 , ee = this.ee
24500 , event;
24501
24502 //
24503 // When no event names are provided we assume that we need to clear all the
24504 // events that were assigned through us.
24505 //
24506 if (args.length === 1 && 'string' === typeof args[0]) {
24507 args = args[0].split(/[, ]+/);
24508 } else if (!args.length) {
24509 if (ee.eventNames) {
24510 args = ee.eventNames();
24511 } else if (ee._events) {
24512 args = [];
24513
24514 for (event in ee._events) {
24515 if (has.call(ee._events, event)) args.push(event);
24516 }
24517
24518 if (Object.getOwnPropertySymbols) {
24519 args = args.concat(Object.getOwnPropertySymbols(ee._events));
24520 }
24521 }
24522 }
24523
24524 for (var i = 0; i < args.length; i++) {
24525 var listeners = ee.listeners(args[i]);
24526
24527 for (var j = 0; j < listeners.length; j++) {
24528 event = listeners[j];
24529
24530 //
24531 // Once listeners have a `listener` property that stores the real listener
24532 // in the EventEmitter that ships with Node.js.
24533 //
24534 if (event.listener) {
24535 if (event.listener.__ultron !== this.id) continue;
24536 } else if (event.__ultron !== this.id) {
24537 continue;
24538 }
24539
24540 ee.removeListener(args[i], event);
24541 }
24542 }
24543
24544 return this;
24545};
24546
24547/**
24548 * Destroy the Ultron instance, remove all listeners and release all references.
24549 *
24550 * @returns {Boolean}
24551 * @api public
24552 */
24553Ultron.prototype.destroy = function destroy() {
24554 if (!this.ee) return false;
24555
24556 this.remove();
24557 this.ee = null;
24558
24559 return true;
24560};
24561
24562//
24563// Expose the module.
24564//
24565module.exports = Ultron;
24566
24567
24568/***/ }),
24569/* 289 */
24570/***/ (function(module, exports) {
24571
24572module.exports = require("https");
24573
24574/***/ }),
24575/* 290 */
24576/***/ (function(module, exports, __webpack_require__) {
24577
24578"use strict";
24579
24580
24581//
24582// Allowed token characters:
24583//
24584// '!', '#', '$', '%', '&', ''', '*', '+', '-',
24585// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'
24586//
24587// tokenChars[32] === 0 // ' '
24588// tokenChars[33] === 1 // '!'
24589// tokenChars[34] === 0 // '"'
24590// ...
24591//
24592const tokenChars = [
24593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15
24594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31
24595 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47
24596 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63
24597 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79
24598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95
24599 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111
24600 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127
24601];
24602
24603/**
24604 * Adds an offer to the map of extension offers or a parameter to the map of
24605 * parameters.
24606 *
24607 * @param {Object} dest The map of extension offers or parameters
24608 * @param {String} name The extension or parameter name
24609 * @param {(Object|Boolean|String)} elem The extension parameters or the
24610 * parameter value
24611 * @private
24612 */
24613function push (dest, name, elem) {
24614 if (Object.prototype.hasOwnProperty.call(dest, name)) dest[name].push(elem);
24615 else dest[name] = [elem];
24616}
24617
24618/**
24619 * Parses the `Sec-WebSocket-Extensions` header into an object.
24620 *
24621 * @param {String} header The field value of the header
24622 * @return {Object} The parsed object
24623 * @public
24624 */
24625function parse (header) {
24626 const offers = {};
24627
24628 if (header === undefined || header === '') return offers;
24629
24630 var params = {};
24631 var mustUnescape = false;
24632 var isEscaping = false;
24633 var inQuotes = false;
24634 var extensionName;
24635 var paramName;
24636 var start = -1;
24637 var end = -1;
24638
24639 for (var i = 0; i < header.length; i++) {
24640 const code = header.charCodeAt(i);
24641
24642 if (extensionName === undefined) {
24643 if (end === -1 && tokenChars[code] === 1) {
24644 if (start === -1) start = i;
24645 } else if (code === 0x20/* ' ' */|| code === 0x09/* '\t' */) {
24646 if (end === -1 && start !== -1) end = i;
24647 } else if (code === 0x3b/* ';' */ || code === 0x2c/* ',' */) {
24648 if (start === -1) throw new Error(`unexpected character at index ${i}`);
24649
24650 if (end === -1) end = i;
24651 const name = header.slice(start, end);
24652 if (code === 0x2c) {
24653 push(offers, name, params);
24654 params = {};
24655 } else {
24656 extensionName = name;
24657 }
24658
24659 start = end = -1;
24660 } else {
24661 throw new Error(`unexpected character at index ${i}`);
24662 }
24663 } else if (paramName === undefined) {
24664 if (end === -1 && tokenChars[code] === 1) {
24665 if (start === -1) start = i;
24666 } else if (code === 0x20 || code === 0x09) {
24667 if (end === -1 && start !== -1) end = i;
24668 } else if (code === 0x3b || code === 0x2c) {
24669 if (start === -1) throw new Error(`unexpected character at index ${i}`);
24670
24671 if (end === -1) end = i;
24672 push(params, header.slice(start, end), true);
24673 if (code === 0x2c) {
24674 push(offers, extensionName, params);
24675 params = {};
24676 extensionName = undefined;
24677 }
24678
24679 start = end = -1;
24680 } else if (code === 0x3d/* '=' */&& start !== -1 && end === -1) {
24681 paramName = header.slice(start, i);
24682 start = end = -1;
24683 } else {
24684 throw new Error(`unexpected character at index ${i}`);
24685 }
24686 } else {
24687 //
24688 // The value of a quoted-string after unescaping must conform to the
24689 // token ABNF, so only token characters are valid.
24690 // Ref: https://tools.ietf.org/html/rfc6455#section-9.1
24691 //
24692 if (isEscaping) {
24693 if (tokenChars[code] !== 1) {
24694 throw new Error(`unexpected character at index ${i}`);
24695 }
24696 if (start === -1) start = i;
24697 else if (!mustUnescape) mustUnescape = true;
24698 isEscaping = false;
24699 } else if (inQuotes) {
24700 if (tokenChars[code] === 1) {
24701 if (start === -1) start = i;
24702 } else if (code === 0x22/* '"' */ && start !== -1) {
24703 inQuotes = false;
24704 end = i;
24705 } else if (code === 0x5c/* '\' */) {
24706 isEscaping = true;
24707 } else {
24708 throw new Error(`unexpected character at index ${i}`);
24709 }
24710 } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {
24711 inQuotes = true;
24712 } else if (end === -1 && tokenChars[code] === 1) {
24713 if (start === -1) start = i;
24714 } else if (start !== -1 && (code === 0x20 || code === 0x09)) {
24715 if (end === -1) end = i;
24716 } else if (code === 0x3b || code === 0x2c) {
24717 if (start === -1) throw new Error(`unexpected character at index ${i}`);
24718
24719 if (end === -1) end = i;
24720 var value = header.slice(start, end);
24721 if (mustUnescape) {
24722 value = value.replace(/\\/g, '');
24723 mustUnescape = false;
24724 }
24725 push(params, paramName, value);
24726 if (code === 0x2c) {
24727 push(offers, extensionName, params);
24728 params = {};
24729 extensionName = undefined;
24730 }
24731
24732 paramName = undefined;
24733 start = end = -1;
24734 } else {
24735 throw new Error(`unexpected character at index ${i}`);
24736 }
24737 }
24738 }
24739
24740 if (start === -1 || inQuotes) throw new Error('unexpected end of input');
24741
24742 if (end === -1) end = i;
24743 const token = header.slice(start, end);
24744 if (extensionName === undefined) {
24745 push(offers, token, {});
24746 } else {
24747 if (paramName === undefined) {
24748 push(params, token, true);
24749 } else if (mustUnescape) {
24750 push(params, paramName, token.replace(/\\/g, ''));
24751 } else {
24752 push(params, paramName, token);
24753 }
24754 push(offers, extensionName, params);
24755 }
24756
24757 return offers;
24758}
24759
24760/**
24761 * Serializes a parsed `Sec-WebSocket-Extensions` header to a string.
24762 *
24763 * @param {Object} value The object to format
24764 * @return {String} A string representing the given value
24765 * @public
24766 */
24767function format (value) {
24768 return Object.keys(value).map((token) => {
24769 var paramsList = value[token];
24770 if (!Array.isArray(paramsList)) paramsList = [paramsList];
24771 return paramsList.map((params) => {
24772 return [token].concat(Object.keys(params).map((k) => {
24773 var p = params[k];
24774 if (!Array.isArray(p)) p = [p];
24775 return p.map((v) => v === true ? k : `${k}=${v}`).join('; ');
24776 })).join('; ');
24777 }).join(', ');
24778 }).join(', ');
24779}
24780
24781module.exports = { format, parse };
24782
24783
24784/***/ }),
24785/* 291 */
24786/***/ (function(module, exports, __webpack_require__) {
24787
24788"use strict";
24789/*!
24790 * ws: a node.js websocket client
24791 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
24792 * MIT Licensed
24793 */
24794
24795
24796
24797const safeBuffer = __webpack_require__(29);
24798
24799const PerMessageDeflate = __webpack_require__(119);
24800const isValidUTF8 = __webpack_require__(603);
24801const bufferUtil = __webpack_require__(186);
24802const ErrorCodes = __webpack_require__(292);
24803const constants = __webpack_require__(120);
24804
24805const Buffer = safeBuffer.Buffer;
24806
24807const GET_INFO = 0;
24808const GET_PAYLOAD_LENGTH_16 = 1;
24809const GET_PAYLOAD_LENGTH_64 = 2;
24810const GET_MASK = 3;
24811const GET_DATA = 4;
24812const INFLATING = 5;
24813
24814/**
24815 * HyBi Receiver implementation.
24816 */
24817class Receiver {
24818 /**
24819 * Creates a Receiver instance.
24820 *
24821 * @param {Object} extensions An object containing the negotiated extensions
24822 * @param {Number} maxPayload The maximum allowed message length
24823 * @param {String} binaryType The type for binary data
24824 */
24825 constructor (extensions, maxPayload, binaryType) {
24826 this._binaryType = binaryType || constants.BINARY_TYPES[0];
24827 this._extensions = extensions || {};
24828 this._maxPayload = maxPayload | 0;
24829
24830 this._bufferedBytes = 0;
24831 this._buffers = [];
24832
24833 this._compressed = false;
24834 this._payloadLength = 0;
24835 this._fragmented = 0;
24836 this._masked = false;
24837 this._fin = false;
24838 this._mask = null;
24839 this._opcode = 0;
24840
24841 this._totalPayloadLength = 0;
24842 this._messageLength = 0;
24843 this._fragments = [];
24844
24845 this._cleanupCallback = null;
24846 this._hadError = false;
24847 this._dead = false;
24848 this._loop = false;
24849
24850 this.onmessage = null;
24851 this.onclose = null;
24852 this.onerror = null;
24853 this.onping = null;
24854 this.onpong = null;
24855
24856 this._state = GET_INFO;
24857 }
24858
24859 /**
24860 * Consumes bytes from the available buffered data.
24861 *
24862 * @param {Number} bytes The number of bytes to consume
24863 * @return {Buffer} Consumed bytes
24864 * @private
24865 */
24866 readBuffer (bytes) {
24867 var offset = 0;
24868 var dst;
24869 var l;
24870
24871 this._bufferedBytes -= bytes;
24872
24873 if (bytes === this._buffers[0].length) return this._buffers.shift();
24874
24875 if (bytes < this._buffers[0].length) {
24876 dst = this._buffers[0].slice(0, bytes);
24877 this._buffers[0] = this._buffers[0].slice(bytes);
24878 return dst;
24879 }
24880
24881 dst = Buffer.allocUnsafe(bytes);
24882
24883 while (bytes > 0) {
24884 l = this._buffers[0].length;
24885
24886 if (bytes >= l) {
24887 this._buffers[0].copy(dst, offset);
24888 offset += l;
24889 this._buffers.shift();
24890 } else {
24891 this._buffers[0].copy(dst, offset, 0, bytes);
24892 this._buffers[0] = this._buffers[0].slice(bytes);
24893 }
24894
24895 bytes -= l;
24896 }
24897
24898 return dst;
24899 }
24900
24901 /**
24902 * Checks if the number of buffered bytes is bigger or equal than `n` and
24903 * calls `cleanup` if necessary.
24904 *
24905 * @param {Number} n The number of bytes to check against
24906 * @return {Boolean} `true` if `bufferedBytes >= n`, else `false`
24907 * @private
24908 */
24909 hasBufferedBytes (n) {
24910 if (this._bufferedBytes >= n) return true;
24911
24912 this._loop = false;
24913 if (this._dead) this.cleanup(this._cleanupCallback);
24914 return false;
24915 }
24916
24917 /**
24918 * Adds new data to the parser.
24919 *
24920 * @public
24921 */
24922 add (data) {
24923 if (this._dead) return;
24924
24925 this._bufferedBytes += data.length;
24926 this._buffers.push(data);
24927 this.startLoop();
24928 }
24929
24930 /**
24931 * Starts the parsing loop.
24932 *
24933 * @private
24934 */
24935 startLoop () {
24936 this._loop = true;
24937
24938 while (this._loop) {
24939 switch (this._state) {
24940 case GET_INFO:
24941 this.getInfo();
24942 break;
24943 case GET_PAYLOAD_LENGTH_16:
24944 this.getPayloadLength16();
24945 break;
24946 case GET_PAYLOAD_LENGTH_64:
24947 this.getPayloadLength64();
24948 break;
24949 case GET_MASK:
24950 this.getMask();
24951 break;
24952 case GET_DATA:
24953 this.getData();
24954 break;
24955 default: // `INFLATING`
24956 this._loop = false;
24957 }
24958 }
24959 }
24960
24961 /**
24962 * Reads the first two bytes of a frame.
24963 *
24964 * @private
24965 */
24966 getInfo () {
24967 if (!this.hasBufferedBytes(2)) return;
24968
24969 const buf = this.readBuffer(2);
24970
24971 if ((buf[0] & 0x30) !== 0x00) {
24972 this.error(new Error('RSV2 and RSV3 must be clear'), 1002);
24973 return;
24974 }
24975
24976 const compressed = (buf[0] & 0x40) === 0x40;
24977
24978 if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
24979 this.error(new Error('RSV1 must be clear'), 1002);
24980 return;
24981 }
24982
24983 this._fin = (buf[0] & 0x80) === 0x80;
24984 this._opcode = buf[0] & 0x0f;
24985 this._payloadLength = buf[1] & 0x7f;
24986
24987 if (this._opcode === 0x00) {
24988 if (compressed) {
24989 this.error(new Error('RSV1 must be clear'), 1002);
24990 return;
24991 }
24992
24993 if (!this._fragmented) {
24994 this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
24995 return;
24996 } else {
24997 this._opcode = this._fragmented;
24998 }
24999 } else if (this._opcode === 0x01 || this._opcode === 0x02) {
25000 if (this._fragmented) {
25001 this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
25002 return;
25003 }
25004
25005 this._compressed = compressed;
25006 } else if (this._opcode > 0x07 && this._opcode < 0x0b) {
25007 if (!this._fin) {
25008 this.error(new Error('FIN must be set'), 1002);
25009 return;
25010 }
25011
25012 if (compressed) {
25013 this.error(new Error('RSV1 must be clear'), 1002);
25014 return;
25015 }
25016
25017 if (this._payloadLength > 0x7d) {
25018 this.error(new Error('invalid payload length'), 1002);
25019 return;
25020 }
25021 } else {
25022 this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
25023 return;
25024 }
25025
25026 if (!this._fin && !this._fragmented) this._fragmented = this._opcode;
25027
25028 this._masked = (buf[1] & 0x80) === 0x80;
25029
25030 if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;
25031 else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;
25032 else this.haveLength();
25033 }
25034
25035 /**
25036 * Gets extended payload length (7+16).
25037 *
25038 * @private
25039 */
25040 getPayloadLength16 () {
25041 if (!this.hasBufferedBytes(2)) return;
25042
25043 this._payloadLength = this.readBuffer(2).readUInt16BE(0, true);
25044 this.haveLength();
25045 }
25046
25047 /**
25048 * Gets extended payload length (7+64).
25049 *
25050 * @private
25051 */
25052 getPayloadLength64 () {
25053 if (!this.hasBufferedBytes(8)) return;
25054
25055 const buf = this.readBuffer(8);
25056 const num = buf.readUInt32BE(0, true);
25057
25058 //
25059 // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned
25060 // if payload length is greater than this number.
25061 //
25062 if (num > Math.pow(2, 53 - 32) - 1) {
25063 this.error(new Error('max payload size exceeded'), 1009);
25064 return;
25065 }
25066
25067 this._payloadLength = (num * Math.pow(2, 32)) + buf.readUInt32BE(4, true);
25068 this.haveLength();
25069 }
25070
25071 /**
25072 * Payload length has been read.
25073 *
25074 * @private
25075 */
25076 haveLength () {
25077 if (this._opcode < 0x08 && this.maxPayloadExceeded(this._payloadLength)) {
25078 return;
25079 }
25080
25081 if (this._masked) this._state = GET_MASK;
25082 else this._state = GET_DATA;
25083 }
25084
25085 /**
25086 * Reads mask bytes.
25087 *
25088 * @private
25089 */
25090 getMask () {
25091 if (!this.hasBufferedBytes(4)) return;
25092
25093 this._mask = this.readBuffer(4);
25094 this._state = GET_DATA;
25095 }
25096
25097 /**
25098 * Reads data bytes.
25099 *
25100 * @private
25101 */
25102 getData () {
25103 var data = constants.EMPTY_BUFFER;
25104
25105 if (this._payloadLength) {
25106 if (!this.hasBufferedBytes(this._payloadLength)) return;
25107
25108 data = this.readBuffer(this._payloadLength);
25109 if (this._masked) bufferUtil.unmask(data, this._mask);
25110 }
25111
25112 if (this._opcode > 0x07) {
25113 this.controlMessage(data);
25114 } else if (this._compressed) {
25115 this._state = INFLATING;
25116 this.decompress(data);
25117 } else if (this.pushFragment(data)) {
25118 this.dataMessage();
25119 }
25120 }
25121
25122 /**
25123 * Decompresses data.
25124 *
25125 * @param {Buffer} data Compressed data
25126 * @private
25127 */
25128 decompress (data) {
25129 const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
25130
25131 perMessageDeflate.decompress(data, this._fin, (err, buf) => {
25132 if (err) {
25133 this.error(err, err.closeCode === 1009 ? 1009 : 1007);
25134 return;
25135 }
25136
25137 if (this.pushFragment(buf)) this.dataMessage();
25138 this.startLoop();
25139 });
25140 }
25141
25142 /**
25143 * Handles a data message.
25144 *
25145 * @private
25146 */
25147 dataMessage () {
25148 if (this._fin) {
25149 const messageLength = this._messageLength;
25150 const fragments = this._fragments;
25151
25152 this._totalPayloadLength = 0;
25153 this._messageLength = 0;
25154 this._fragmented = 0;
25155 this._fragments = [];
25156
25157 if (this._opcode === 2) {
25158 var data;
25159
25160 if (this._binaryType === 'nodebuffer') {
25161 data = toBuffer(fragments, messageLength);
25162 } else if (this._binaryType === 'arraybuffer') {
25163 data = toArrayBuffer(toBuffer(fragments, messageLength));
25164 } else {
25165 data = fragments;
25166 }
25167
25168 this.onmessage(data);
25169 } else {
25170 const buf = toBuffer(fragments, messageLength);
25171
25172 if (!isValidUTF8(buf)) {
25173 this.error(new Error('invalid utf8 sequence'), 1007);
25174 return;
25175 }
25176
25177 this.onmessage(buf.toString());
25178 }
25179 }
25180
25181 this._state = GET_INFO;
25182 }
25183
25184 /**
25185 * Handles a control message.
25186 *
25187 * @param {Buffer} data Data to handle
25188 * @private
25189 */
25190 controlMessage (data) {
25191 if (this._opcode === 0x08) {
25192 if (data.length === 0) {
25193 this.onclose(1000, '');
25194 this._loop = false;
25195 this.cleanup(this._cleanupCallback);
25196 } else if (data.length === 1) {
25197 this.error(new Error('invalid payload length'), 1002);
25198 } else {
25199 const code = data.readUInt16BE(0, true);
25200
25201 if (!ErrorCodes.isValidErrorCode(code)) {
25202 this.error(new Error(`invalid status code: ${code}`), 1002);
25203 return;
25204 }
25205
25206 const buf = data.slice(2);
25207
25208 if (!isValidUTF8(buf)) {
25209 this.error(new Error('invalid utf8 sequence'), 1007);
25210 return;
25211 }
25212
25213 this.onclose(code, buf.toString());
25214 this._loop = false;
25215 this.cleanup(this._cleanupCallback);
25216 }
25217
25218 return;
25219 }
25220
25221 if (this._opcode === 0x09) this.onping(data);
25222 else this.onpong(data);
25223
25224 this._state = GET_INFO;
25225 }
25226
25227 /**
25228 * Handles an error.
25229 *
25230 * @param {Error} err The error
25231 * @param {Number} code Close code
25232 * @private
25233 */
25234 error (err, code) {
25235 this.onerror(err, code);
25236 this._hadError = true;
25237 this._loop = false;
25238 this.cleanup(this._cleanupCallback);
25239 }
25240
25241 /**
25242 * Checks payload size, disconnects socket when it exceeds `maxPayload`.
25243 *
25244 * @param {Number} length Payload length
25245 * @private
25246 */
25247 maxPayloadExceeded (length) {
25248 if (length === 0 || this._maxPayload < 1) return false;
25249
25250 const fullLength = this._totalPayloadLength + length;
25251
25252 if (fullLength <= this._maxPayload) {
25253 this._totalPayloadLength = fullLength;
25254 return false;
25255 }
25256
25257 this.error(new Error('max payload size exceeded'), 1009);
25258 return true;
25259 }
25260
25261 /**
25262 * Appends a fragment in the fragments array after checking that the sum of
25263 * fragment lengths does not exceed `maxPayload`.
25264 *
25265 * @param {Buffer} fragment The fragment to add
25266 * @return {Boolean} `true` if `maxPayload` is not exceeded, else `false`
25267 * @private
25268 */
25269 pushFragment (fragment) {
25270 if (fragment.length === 0) return true;
25271
25272 const totalLength = this._messageLength + fragment.length;
25273
25274 if (this._maxPayload < 1 || totalLength <= this._maxPayload) {
25275 this._messageLength = totalLength;
25276 this._fragments.push(fragment);
25277 return true;
25278 }
25279
25280 this.error(new Error('max payload size exceeded'), 1009);
25281 return false;
25282 }
25283
25284 /**
25285 * Releases resources used by the receiver.
25286 *
25287 * @param {Function} cb Callback
25288 * @public
25289 */
25290 cleanup (cb) {
25291 this._dead = true;
25292
25293 if (!this._hadError && (this._loop || this._state === INFLATING)) {
25294 this._cleanupCallback = cb;
25295 } else {
25296 this._extensions = null;
25297 this._fragments = null;
25298 this._buffers = null;
25299 this._mask = null;
25300
25301 this._cleanupCallback = null;
25302 this.onmessage = null;
25303 this.onclose = null;
25304 this.onerror = null;
25305 this.onping = null;
25306 this.onpong = null;
25307
25308 if (cb) cb();
25309 }
25310 }
25311}
25312
25313module.exports = Receiver;
25314
25315/**
25316 * Makes a buffer from a list of fragments.
25317 *
25318 * @param {Buffer[]} fragments The list of fragments composing the message
25319 * @param {Number} messageLength The length of the message
25320 * @return {Buffer}
25321 * @private
25322 */
25323function toBuffer (fragments, messageLength) {
25324 if (fragments.length === 1) return fragments[0];
25325 if (fragments.length > 1) return bufferUtil.concat(fragments, messageLength);
25326 return constants.EMPTY_BUFFER;
25327}
25328
25329/**
25330 * Converts a buffer to an `ArrayBuffer`.
25331 *
25332 * @param {Buffer} The buffer to convert
25333 * @return {ArrayBuffer} Converted buffer
25334 */
25335function toArrayBuffer (buf) {
25336 if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
25337 return buf.buffer;
25338 }
25339
25340 return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
25341}
25342
25343
25344/***/ }),
25345/* 292 */
25346/***/ (function(module, exports, __webpack_require__) {
25347
25348"use strict";
25349/*!
25350 * ws: a node.js websocket client
25351 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
25352 * MIT Licensed
25353 */
25354
25355
25356
25357module.exports = {
25358 isValidErrorCode: function (code) {
25359 return (code >= 1000 && code <= 1013 && code !== 1004 && code !== 1005 && code !== 1006) ||
25360 (code >= 3000 && code <= 4999);
25361 },
25362 1000: 'normal',
25363 1001: 'going away',
25364 1002: 'protocol error',
25365 1003: 'unsupported data',
25366 1004: 'reserved',
25367 1005: 'reserved for extensions',
25368 1006: 'reserved for extensions',
25369 1007: 'inconsistent or invalid data',
25370 1008: 'policy violation',
25371 1009: 'message too big',
25372 1010: 'extension handshake missing',
25373 1011: 'an unexpected condition prevented the request from being fulfilled',
25374 1012: 'service restart',
25375 1013: 'try again later'
25376};
25377
25378
25379/***/ }),
25380/* 293 */
25381/***/ (function(module, exports, __webpack_require__) {
25382
25383"use strict";
25384/*!
25385 * ws: a node.js websocket client
25386 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
25387 * MIT Licensed
25388 */
25389
25390
25391
25392const safeBuffer = __webpack_require__(29);
25393const crypto = __webpack_require__(78);
25394
25395const PerMessageDeflate = __webpack_require__(119);
25396const bufferUtil = __webpack_require__(186);
25397const ErrorCodes = __webpack_require__(292);
25398const constants = __webpack_require__(120);
25399
25400const Buffer = safeBuffer.Buffer;
25401
25402/**
25403 * HyBi Sender implementation.
25404 */
25405class Sender {
25406 /**
25407 * Creates a Sender instance.
25408 *
25409 * @param {net.Socket} socket The connection socket
25410 * @param {Object} extensions An object containing the negotiated extensions
25411 */
25412 constructor (socket, extensions) {
25413 this._extensions = extensions || {};
25414 this._socket = socket;
25415
25416 this._firstFragment = true;
25417 this._compress = false;
25418
25419 this._bufferedBytes = 0;
25420 this._deflating = false;
25421 this._queue = [];
25422 }
25423
25424 /**
25425 * Frames a piece of data according to the HyBi WebSocket protocol.
25426 *
25427 * @param {Buffer} data The data to frame
25428 * @param {Object} options Options object
25429 * @param {Number} options.opcode The opcode
25430 * @param {Boolean} options.readOnly Specifies whether `data` can be modified
25431 * @param {Boolean} options.fin Specifies whether or not to set the FIN bit
25432 * @param {Boolean} options.mask Specifies whether or not to mask `data`
25433 * @param {Boolean} options.rsv1 Specifies whether or not to set the RSV1 bit
25434 * @return {Buffer[]} The framed data as a list of `Buffer` instances
25435 * @public
25436 */
25437 static frame (data, options) {
25438 const merge = data.length < 1024 || (options.mask && options.readOnly);
25439 var offset = options.mask ? 6 : 2;
25440 var payloadLength = data.length;
25441
25442 if (data.length >= 65536) {
25443 offset += 8;
25444 payloadLength = 127;
25445 } else if (data.length > 125) {
25446 offset += 2;
25447 payloadLength = 126;
25448 }
25449
25450 const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);
25451
25452 target[0] = options.fin ? options.opcode | 0x80 : options.opcode;
25453 if (options.rsv1) target[0] |= 0x40;
25454
25455 if (payloadLength === 126) {
25456 target.writeUInt16BE(data.length, 2, true);
25457 } else if (payloadLength === 127) {
25458 target.writeUInt32BE(0, 2, true);
25459 target.writeUInt32BE(data.length, 6, true);
25460 }
25461
25462 if (!options.mask) {
25463 target[1] = payloadLength;
25464 if (merge) {
25465 data.copy(target, offset);
25466 return [target];
25467 }
25468
25469 return [target, data];
25470 }
25471
25472 const mask = crypto.randomBytes(4);
25473
25474 target[1] = payloadLength | 0x80;
25475 target[offset - 4] = mask[0];
25476 target[offset - 3] = mask[1];
25477 target[offset - 2] = mask[2];
25478 target[offset - 1] = mask[3];
25479
25480 if (merge) {
25481 bufferUtil.mask(data, mask, target, offset, data.length);
25482 return [target];
25483 }
25484
25485 bufferUtil.mask(data, mask, data, 0, data.length);
25486 return [target, data];
25487 }
25488
25489 /**
25490 * Sends a close message to the other peer.
25491 *
25492 * @param {(Number|undefined)} code The status code component of the body
25493 * @param {String} data The message component of the body
25494 * @param {Boolean} mask Specifies whether or not to mask the message
25495 * @param {Function} cb Callback
25496 * @public
25497 */
25498 close (code, data, mask, cb) {
25499 var buf;
25500
25501 if (code === undefined) {
25502 code = 1000;
25503 } else if (typeof code !== 'number' || !ErrorCodes.isValidErrorCode(code)) {
25504 throw new Error('first argument must be a valid error code number');
25505 }
25506
25507 if (data === undefined || data === '') {
25508 if (code === 1000) {
25509 buf = constants.EMPTY_BUFFER;
25510 } else {
25511 buf = Buffer.allocUnsafe(2);
25512 buf.writeUInt16BE(code, 0, true);
25513 }
25514 } else {
25515 buf = Buffer.allocUnsafe(2 + Buffer.byteLength(data));
25516 buf.writeUInt16BE(code, 0, true);
25517 buf.write(data, 2);
25518 }
25519
25520 if (this._deflating) {
25521 this.enqueue([this.doClose, buf, mask, cb]);
25522 } else {
25523 this.doClose(buf, mask, cb);
25524 }
25525 }
25526
25527 /**
25528 * Frames and sends a close message.
25529 *
25530 * @param {Buffer} data The message to send
25531 * @param {Boolean} mask Specifies whether or not to mask `data`
25532 * @param {Function} cb Callback
25533 * @private
25534 */
25535 doClose (data, mask, cb) {
25536 this.sendFrame(Sender.frame(data, {
25537 fin: true,
25538 rsv1: false,
25539 opcode: 0x08,
25540 mask,
25541 readOnly: false
25542 }), cb);
25543 }
25544
25545 /**
25546 * Sends a ping message to the other peer.
25547 *
25548 * @param {*} data The message to send
25549 * @param {Boolean} mask Specifies whether or not to mask `data`
25550 * @public
25551 */
25552 ping (data, mask) {
25553 var readOnly = true;
25554
25555 if (!Buffer.isBuffer(data)) {
25556 if (data instanceof ArrayBuffer) {
25557 data = Buffer.from(data);
25558 } else if (ArrayBuffer.isView(data)) {
25559 data = viewToBuffer(data);
25560 } else {
25561 data = Buffer.from(data);
25562 readOnly = false;
25563 }
25564 }
25565
25566 if (this._deflating) {
25567 this.enqueue([this.doPing, data, mask, readOnly]);
25568 } else {
25569 this.doPing(data, mask, readOnly);
25570 }
25571 }
25572
25573 /**
25574 * Frames and sends a ping message.
25575 *
25576 * @param {*} data The message to send
25577 * @param {Boolean} mask Specifies whether or not to mask `data`
25578 * @param {Boolean} readOnly Specifies whether `data` can be modified
25579 * @private
25580 */
25581 doPing (data, mask, readOnly) {
25582 this.sendFrame(Sender.frame(data, {
25583 fin: true,
25584 rsv1: false,
25585 opcode: 0x09,
25586 mask,
25587 readOnly
25588 }));
25589 }
25590
25591 /**
25592 * Sends a pong message to the other peer.
25593 *
25594 * @param {*} data The message to send
25595 * @param {Boolean} mask Specifies whether or not to mask `data`
25596 * @public
25597 */
25598 pong (data, mask) {
25599 var readOnly = true;
25600
25601 if (!Buffer.isBuffer(data)) {
25602 if (data instanceof ArrayBuffer) {
25603 data = Buffer.from(data);
25604 } else if (ArrayBuffer.isView(data)) {
25605 data = viewToBuffer(data);
25606 } else {
25607 data = Buffer.from(data);
25608 readOnly = false;
25609 }
25610 }
25611
25612 if (this._deflating) {
25613 this.enqueue([this.doPong, data, mask, readOnly]);
25614 } else {
25615 this.doPong(data, mask, readOnly);
25616 }
25617 }
25618
25619 /**
25620 * Frames and sends a pong message.
25621 *
25622 * @param {*} data The message to send
25623 * @param {Boolean} mask Specifies whether or not to mask `data`
25624 * @param {Boolean} readOnly Specifies whether `data` can be modified
25625 * @private
25626 */
25627 doPong (data, mask, readOnly) {
25628 this.sendFrame(Sender.frame(data, {
25629 fin: true,
25630 rsv1: false,
25631 opcode: 0x0a,
25632 mask,
25633 readOnly
25634 }));
25635 }
25636
25637 /**
25638 * Sends a data message to the other peer.
25639 *
25640 * @param {*} data The message to send
25641 * @param {Object} options Options object
25642 * @param {Boolean} options.compress Specifies whether or not to compress `data`
25643 * @param {Boolean} options.binary Specifies whether `data` is binary or text
25644 * @param {Boolean} options.fin Specifies whether the fragment is the last one
25645 * @param {Boolean} options.mask Specifies whether or not to mask `data`
25646 * @param {Function} cb Callback
25647 * @public
25648 */
25649 send (data, options, cb) {
25650 var opcode = options.binary ? 2 : 1;
25651 var rsv1 = options.compress;
25652 var readOnly = true;
25653
25654 if (!Buffer.isBuffer(data)) {
25655 if (data instanceof ArrayBuffer) {
25656 data = Buffer.from(data);
25657 } else if (ArrayBuffer.isView(data)) {
25658 data = viewToBuffer(data);
25659 } else {
25660 data = Buffer.from(data);
25661 readOnly = false;
25662 }
25663 }
25664
25665 const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
25666
25667 if (this._firstFragment) {
25668 this._firstFragment = false;
25669 if (rsv1 && perMessageDeflate) {
25670 rsv1 = data.length >= perMessageDeflate._threshold;
25671 }
25672 this._compress = rsv1;
25673 } else {
25674 rsv1 = false;
25675 opcode = 0;
25676 }
25677
25678 if (options.fin) this._firstFragment = true;
25679
25680 if (perMessageDeflate) {
25681 const opts = {
25682 fin: options.fin,
25683 rsv1,
25684 opcode,
25685 mask: options.mask,
25686 readOnly
25687 };
25688
25689 if (this._deflating) {
25690 this.enqueue([this.dispatch, data, this._compress, opts, cb]);
25691 } else {
25692 this.dispatch(data, this._compress, opts, cb);
25693 }
25694 } else {
25695 this.sendFrame(Sender.frame(data, {
25696 fin: options.fin,
25697 rsv1: false,
25698 opcode,
25699 mask: options.mask,
25700 readOnly
25701 }), cb);
25702 }
25703 }
25704
25705 /**
25706 * Dispatches a data message.
25707 *
25708 * @param {Buffer} data The message to send
25709 * @param {Boolean} compress Specifies whether or not to compress `data`
25710 * @param {Object} options Options object
25711 * @param {Number} options.opcode The opcode
25712 * @param {Boolean} options.readOnly Specifies whether `data` can be modified
25713 * @param {Boolean} options.fin Specifies whether or not to set the FIN bit
25714 * @param {Boolean} options.mask Specifies whether or not to mask `data`
25715 * @param {Boolean} options.rsv1 Specifies whether or not to set the RSV1 bit
25716 * @param {Function} cb Callback
25717 * @private
25718 */
25719 dispatch (data, compress, options, cb) {
25720 if (!compress) {
25721 this.sendFrame(Sender.frame(data, options), cb);
25722 return;
25723 }
25724
25725 const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
25726
25727 this._deflating = true;
25728 perMessageDeflate.compress(data, options.fin, (_, buf) => {
25729 options.readOnly = false;
25730 this.sendFrame(Sender.frame(buf, options), cb);
25731 this._deflating = false;
25732 this.dequeue();
25733 });
25734 }
25735
25736 /**
25737 * Executes queued send operations.
25738 *
25739 * @private
25740 */
25741 dequeue () {
25742 while (!this._deflating && this._queue.length) {
25743 const params = this._queue.shift();
25744
25745 this._bufferedBytes -= params[1].length;
25746 params[0].apply(this, params.slice(1));
25747 }
25748 }
25749
25750 /**
25751 * Enqueues a send operation.
25752 *
25753 * @param {Array} params Send operation parameters.
25754 * @private
25755 */
25756 enqueue (params) {
25757 this._bufferedBytes += params[1].length;
25758 this._queue.push(params);
25759 }
25760
25761 /**
25762 * Sends a frame.
25763 *
25764 * @param {Buffer[]} list The frame to send
25765 * @param {Function} cb Callback
25766 * @private
25767 */
25768 sendFrame (list, cb) {
25769 if (list.length === 2) {
25770 this._socket.write(list[0]);
25771 this._socket.write(list[1], cb);
25772 } else {
25773 this._socket.write(list[0], cb);
25774 }
25775 }
25776}
25777
25778module.exports = Sender;
25779
25780/**
25781 * Converts an `ArrayBuffer` view into a buffer.
25782 *
25783 * @param {(DataView|TypedArray)} view The view to convert
25784 * @return {Buffer} Converted view
25785 * @private
25786 */
25787function viewToBuffer (view) {
25788 const buf = Buffer.from(view.buffer);
25789
25790 if (view.byteLength !== view.buffer.byteLength) {
25791 return buf.slice(view.byteOffset, view.byteOffset + view.byteLength);
25792 }
25793
25794 return buf;
25795}
25796
25797
25798/***/ }),
25799/* 294 */
25800/***/ (function(module, exports, __webpack_require__) {
25801
25802"use strict";
25803/*!
25804 * body-parser
25805 * Copyright(c) 2014-2015 Douglas Christopher Wilson
25806 * MIT Licensed
25807 */
25808
25809
25810
25811/**
25812 * Module dependencies.
25813 * @private
25814 */
25815
25816var deprecate = __webpack_require__(47)('body-parser')
25817
25818/**
25819 * Cache of loaded parsers.
25820 * @private
25821 */
25822
25823var parsers = Object.create(null)
25824
25825/**
25826 * @typedef Parsers
25827 * @type {function}
25828 * @property {function} json
25829 * @property {function} raw
25830 * @property {function} text
25831 * @property {function} urlencoded
25832 */
25833
25834/**
25835 * Module exports.
25836 * @type {Parsers}
25837 */
25838
25839exports = module.exports = deprecate.function(bodyParser,
25840 'bodyParser: use individual json/urlencoded middlewares')
25841
25842/**
25843 * JSON parser.
25844 * @public
25845 */
25846
25847Object.defineProperty(exports, 'json', {
25848 configurable: true,
25849 enumerable: true,
25850 get: createParserGetter('json')
25851})
25852
25853/**
25854 * Raw parser.
25855 * @public
25856 */
25857
25858Object.defineProperty(exports, 'raw', {
25859 configurable: true,
25860 enumerable: true,
25861 get: createParserGetter('raw')
25862})
25863
25864/**
25865 * Text parser.
25866 * @public
25867 */
25868
25869Object.defineProperty(exports, 'text', {
25870 configurable: true,
25871 enumerable: true,
25872 get: createParserGetter('text')
25873})
25874
25875/**
25876 * URL-encoded parser.
25877 * @public
25878 */
25879
25880Object.defineProperty(exports, 'urlencoded', {
25881 configurable: true,
25882 enumerable: true,
25883 get: createParserGetter('urlencoded')
25884})
25885
25886/**
25887 * Create a middleware to parse json and urlencoded bodies.
25888 *
25889 * @param {object} [options]
25890 * @return {function}
25891 * @deprecated
25892 * @public
25893 */
25894
25895function bodyParser (options) {
25896 var opts = {}
25897
25898 // exclude type option
25899 if (options) {
25900 for (var prop in options) {
25901 if (prop !== 'type') {
25902 opts[prop] = options[prop]
25903 }
25904 }
25905 }
25906
25907 var _urlencoded = exports.urlencoded(opts)
25908 var _json = exports.json(opts)
25909
25910 return function bodyParser (req, res, next) {
25911 _json(req, res, function (err) {
25912 if (err) return next(err)
25913 _urlencoded(req, res, next)
25914 })
25915 }
25916}
25917
25918/**
25919 * Create a getter for loading a parser.
25920 * @private
25921 */
25922
25923function createParserGetter (name) {
25924 return function get () {
25925 return loadParser(name)
25926 }
25927}
25928
25929/**
25930 * Load a parser module.
25931 * @private
25932 */
25933
25934function loadParser (parserName) {
25935 var parser = parsers[parserName]
25936
25937 if (parser !== undefined) {
25938 return parser
25939 }
25940
25941 // this uses a switch for static require analysis
25942 switch (parserName) {
25943 case 'json':
25944 parser = __webpack_require__(610)
25945 break
25946 case 'raw':
25947 parser = __webpack_require__(640)
25948 break
25949 case 'text':
25950 parser = __webpack_require__(641)
25951 break
25952 case 'urlencoded':
25953 parser = __webpack_require__(642)
25954 break
25955 }
25956
25957 // store to prevent invoking require()
25958 return (parsers[parserName] = parser)
25959}
25960
25961
25962/***/ }),
25963/* 295 */
25964/***/ (function(module, exports, __webpack_require__) {
25965
25966"use strict";
25967/*!
25968 * depd
25969 * Copyright(c) 2014-2015 Douglas Christopher Wilson
25970 * MIT Licensed
25971 */
25972
25973
25974
25975/**
25976 * Module dependencies.
25977 * @private
25978 */
25979
25980var EventEmitter = __webpack_require__(88).EventEmitter
25981
25982/**
25983 * Module exports.
25984 * @public
25985 */
25986
25987lazyProperty(module.exports, 'callSiteToString', function callSiteToString () {
25988 var limit = Error.stackTraceLimit
25989 var obj = {}
25990 var prep = Error.prepareStackTrace
25991
25992 function prepareObjectStackTrace (obj, stack) {
25993 return stack
25994 }
25995
25996 Error.prepareStackTrace = prepareObjectStackTrace
25997 Error.stackTraceLimit = 2
25998
25999 // capture the stack
26000 Error.captureStackTrace(obj)
26001
26002 // slice the stack
26003 var stack = obj.stack.slice()
26004
26005 Error.prepareStackTrace = prep
26006 Error.stackTraceLimit = limit
26007
26008 return stack[0].toString ? toString : __webpack_require__(608)
26009})
26010
26011lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount () {
26012 return EventEmitter.listenerCount || __webpack_require__(609)
26013})
26014
26015/**
26016 * Define a lazy property.
26017 */
26018
26019function lazyProperty (obj, prop, getter) {
26020 function get () {
26021 var val = getter()
26022
26023 Object.defineProperty(obj, prop, {
26024 configurable: true,
26025 enumerable: true,
26026 value: val
26027 })
26028
26029 return val
26030 }
26031
26032 Object.defineProperty(obj, prop, {
26033 configurable: true,
26034 enumerable: true,
26035 get: get
26036 })
26037}
26038
26039/**
26040 * Call toString() on the obj
26041 */
26042
26043function toString (obj) {
26044 return obj.toString()
26045}
26046
26047
26048/***/ }),
26049/* 296 */
26050/***/ (function(module, exports, __webpack_require__) {
26051
26052
26053/**
26054 * This is the common logic for both the Node.js and web browser
26055 * implementations of `debug()`.
26056 *
26057 * Expose `debug()` as the module.
26058 */
26059
26060exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
26061exports.coerce = coerce;
26062exports.disable = disable;
26063exports.enable = enable;
26064exports.enabled = enabled;
26065exports.humanize = __webpack_require__(187);
26066
26067/**
26068 * The currently active debug mode names, and names to skip.
26069 */
26070
26071exports.names = [];
26072exports.skips = [];
26073
26074/**
26075 * Map of special "%n" handling functions, for the debug "format" argument.
26076 *
26077 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
26078 */
26079
26080exports.formatters = {};
26081
26082/**
26083 * Previous log timestamp.
26084 */
26085
26086var prevTime;
26087
26088/**
26089 * Select a color.
26090 * @param {String} namespace
26091 * @return {Number}
26092 * @api private
26093 */
26094
26095function selectColor(namespace) {
26096 var hash = 0, i;
26097
26098 for (i in namespace) {
26099 hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
26100 hash |= 0; // Convert to 32bit integer
26101 }
26102
26103 return exports.colors[Math.abs(hash) % exports.colors.length];
26104}
26105
26106/**
26107 * Create a debugger with the given `namespace`.
26108 *
26109 * @param {String} namespace
26110 * @return {Function}
26111 * @api public
26112 */
26113
26114function createDebug(namespace) {
26115
26116 function debug() {
26117 // disabled?
26118 if (!debug.enabled) return;
26119
26120 var self = debug;
26121
26122 // set `diff` timestamp
26123 var curr = +new Date();
26124 var ms = curr - (prevTime || curr);
26125 self.diff = ms;
26126 self.prev = prevTime;
26127 self.curr = curr;
26128 prevTime = curr;
26129
26130 // turn the `arguments` into a proper Array
26131 var args = new Array(arguments.length);
26132 for (var i = 0; i < args.length; i++) {
26133 args[i] = arguments[i];
26134 }
26135
26136 args[0] = exports.coerce(args[0]);
26137
26138 if ('string' !== typeof args[0]) {
26139 // anything else let's inspect with %O
26140 args.unshift('%O');
26141 }
26142
26143 // apply any `formatters` transformations
26144 var index = 0;
26145 args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
26146 // if we encounter an escaped % then don't increase the array index
26147 if (match === '%%') return match;
26148 index++;
26149 var formatter = exports.formatters[format];
26150 if ('function' === typeof formatter) {
26151 var val = args[index];
26152 match = formatter.call(self, val);
26153
26154 // now we need to remove `args[index]` since it's inlined in the `format`
26155 args.splice(index, 1);
26156 index--;
26157 }
26158 return match;
26159 });
26160
26161 // apply env-specific formatting (colors, etc.)
26162 exports.formatArgs.call(self, args);
26163
26164 var logFn = debug.log || exports.log || console.log.bind(console);
26165 logFn.apply(self, args);
26166 }
26167
26168 debug.namespace = namespace;
26169 debug.enabled = exports.enabled(namespace);
26170 debug.useColors = exports.useColors();
26171 debug.color = selectColor(namespace);
26172
26173 // env-specific initialization logic for debug instances
26174 if ('function' === typeof exports.init) {
26175 exports.init(debug);
26176 }
26177
26178 return debug;
26179}
26180
26181/**
26182 * Enables a debug mode by namespaces. This can include modes
26183 * separated by a colon and wildcards.
26184 *
26185 * @param {String} namespaces
26186 * @api public
26187 */
26188
26189function enable(namespaces) {
26190 exports.save(namespaces);
26191
26192 exports.names = [];
26193 exports.skips = [];
26194
26195 var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
26196 var len = split.length;
26197
26198 for (var i = 0; i < len; i++) {
26199 if (!split[i]) continue; // ignore empty strings
26200 namespaces = split[i].replace(/\*/g, '.*?');
26201 if (namespaces[0] === '-') {
26202 exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
26203 } else {
26204 exports.names.push(new RegExp('^' + namespaces + '$'));
26205 }
26206 }
26207}
26208
26209/**
26210 * Disable debug output.
26211 *
26212 * @api public
26213 */
26214
26215function disable() {
26216 exports.enable('');
26217}
26218
26219/**
26220 * Returns true if the given mode name is enabled, false otherwise.
26221 *
26222 * @param {String} name
26223 * @return {Boolean}
26224 * @api public
26225 */
26226
26227function enabled(name) {
26228 var i, len;
26229 for (i = 0, len = exports.skips.length; i < len; i++) {
26230 if (exports.skips[i].test(name)) {
26231 return false;
26232 }
26233 }
26234 for (i = 0, len = exports.names.length; i < len; i++) {
26235 if (exports.names[i].test(name)) {
26236 return true;
26237 }
26238 }
26239 return false;
26240}
26241
26242/**
26243 * Coerce `val`.
26244 *
26245 * @param {Mixed} val
26246 * @return {Mixed}
26247 * @api private
26248 */
26249
26250function coerce(val) {
26251 if (val instanceof Error) return val.stack || val.message;
26252 return val;
26253}
26254
26255
26256/***/ }),
26257/* 297 */
26258/***/ (function(module, exports) {
26259
26260module.exports = require("net");
26261
26262/***/ }),
26263/* 298 */
26264/***/ (function(module, exports) {
26265
26266module.exports = [["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]
26267
26268/***/ }),
26269/* 299 */
26270/***/ (function(module, exports) {
26271
26272module.exports = [["0","\u0000",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]
26273
26274/***/ }),
26275/* 300 */
26276/***/ (function(module, exports, __webpack_require__) {
26277
26278"use strict";
26279/*!
26280 * unpipe
26281 * Copyright(c) 2015 Douglas Christopher Wilson
26282 * MIT Licensed
26283 */
26284
26285
26286
26287/**
26288 * Module exports.
26289 * @public
26290 */
26291
26292module.exports = unpipe
26293
26294/**
26295 * Determine if there are Node.js pipe-like data listeners.
26296 * @private
26297 */
26298
26299function hasPipeDataListeners(stream) {
26300 var listeners = stream.listeners('data')
26301
26302 for (var i = 0; i < listeners.length; i++) {
26303 if (listeners[i].name === 'ondata') {
26304 return true
26305 }
26306 }
26307
26308 return false
26309}
26310
26311/**
26312 * Unpipe a stream from all destinations.
26313 *
26314 * @param {object} stream
26315 * @public
26316 */
26317
26318function unpipe(stream) {
26319 if (!stream) {
26320 throw new TypeError('argument stream is required')
26321 }
26322
26323 if (typeof stream.unpipe === 'function') {
26324 // new-style
26325 stream.unpipe()
26326 return
26327 }
26328
26329 // Node.js 0.8 hack
26330 if (!hasPipeDataListeners(stream)) {
26331 return
26332 }
26333
26334 var listener
26335 var listeners = stream.listeners('close')
26336
26337 for (var i = 0; i < listeners.length; i++) {
26338 listener = listeners[i]
26339
26340 if (listener.name !== 'cleanup' && listener.name !== 'onclose') {
26341 continue
26342 }
26343
26344 // invoke the listener
26345 listener.call(stream)
26346 }
26347}
26348
26349
26350/***/ }),
26351/* 301 */
26352/***/ (function(module, exports, __webpack_require__) {
26353
26354"use strict";
26355/*!
26356 * mime-types
26357 * Copyright(c) 2014 Jonathan Ong
26358 * Copyright(c) 2015 Douglas Christopher Wilson
26359 * MIT Licensed
26360 */
26361
26362
26363
26364/**
26365 * Module dependencies.
26366 * @private
26367 */
26368
26369var db = __webpack_require__(638)
26370var extname = __webpack_require__(48).extname
26371
26372/**
26373 * Module variables.
26374 * @private
26375 */
26376
26377var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/
26378var TEXT_TYPE_REGEXP = /^text\//i
26379
26380/**
26381 * Module exports.
26382 * @public
26383 */
26384
26385exports.charset = charset
26386exports.charsets = { lookup: charset }
26387exports.contentType = contentType
26388exports.extension = extension
26389exports.extensions = Object.create(null)
26390exports.lookup = lookup
26391exports.types = Object.create(null)
26392
26393// Populate the extensions/types maps
26394populateMaps(exports.extensions, exports.types)
26395
26396/**
26397 * Get the default charset for a MIME type.
26398 *
26399 * @param {string} type
26400 * @return {boolean|string}
26401 */
26402
26403function charset (type) {
26404 if (!type || typeof type !== 'string') {
26405 return false
26406 }
26407
26408 // TODO: use media-typer
26409 var match = EXTRACT_TYPE_REGEXP.exec(type)
26410 var mime = match && db[match[1].toLowerCase()]
26411
26412 if (mime && mime.charset) {
26413 return mime.charset
26414 }
26415
26416 // default text/* to utf-8
26417 if (match && TEXT_TYPE_REGEXP.test(match[1])) {
26418 return 'UTF-8'
26419 }
26420
26421 return false
26422}
26423
26424/**
26425 * Create a full Content-Type header given a MIME type or extension.
26426 *
26427 * @param {string} str
26428 * @return {boolean|string}
26429 */
26430
26431function contentType (str) {
26432 // TODO: should this even be in this module?
26433 if (!str || typeof str !== 'string') {
26434 return false
26435 }
26436
26437 var mime = str.indexOf('/') === -1
26438 ? exports.lookup(str)
26439 : str
26440
26441 if (!mime) {
26442 return false
26443 }
26444
26445 // TODO: use content-type or other module
26446 if (mime.indexOf('charset') === -1) {
26447 var charset = exports.charset(mime)
26448 if (charset) mime += '; charset=' + charset.toLowerCase()
26449 }
26450
26451 return mime
26452}
26453
26454/**
26455 * Get the default extension for a MIME type.
26456 *
26457 * @param {string} type
26458 * @return {boolean|string}
26459 */
26460
26461function extension (type) {
26462 if (!type || typeof type !== 'string') {
26463 return false
26464 }
26465
26466 // TODO: use media-typer
26467 var match = EXTRACT_TYPE_REGEXP.exec(type)
26468
26469 // get extensions
26470 var exts = match && exports.extensions[match[1].toLowerCase()]
26471
26472 if (!exts || !exts.length) {
26473 return false
26474 }
26475
26476 return exts[0]
26477}
26478
26479/**
26480 * Lookup the MIME type for a file path/extension.
26481 *
26482 * @param {string} path
26483 * @return {boolean|string}
26484 */
26485
26486function lookup (path) {
26487 if (!path || typeof path !== 'string') {
26488 return false
26489 }
26490
26491 // get the extension ("ext" or ".ext" or full path)
26492 var extension = extname('x.' + path)
26493 .toLowerCase()
26494 .substr(1)
26495
26496 if (!extension) {
26497 return false
26498 }
26499
26500 return exports.types[extension] || false
26501}
26502
26503/**
26504 * Populate the extensions and types maps.
26505 * @private
26506 */
26507
26508function populateMaps (extensions, types) {
26509 // source preference (least -> most)
26510 var preference = ['nginx', 'apache', undefined, 'iana']
26511
26512 Object.keys(db).forEach(function forEachMimeType (type) {
26513 var mime = db[type]
26514 var exts = mime.extensions
26515
26516 if (!exts || !exts.length) {
26517 return
26518 }
26519
26520 // mime -> extensions
26521 extensions[type] = exts
26522
26523 // extension -> mime
26524 for (var i = 0; i < exts.length; i++) {
26525 var extension = exts[i]
26526
26527 if (types[extension]) {
26528 var from = preference.indexOf(db[types[extension]].source)
26529 var to = preference.indexOf(mime.source)
26530
26531 if (types[extension] !== 'application/octet-stream' &&
26532 (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
26533 // skip the remapping
26534 continue
26535 }
26536 }
26537
26538 // set the extension -> mime
26539 types[extension] = type
26540 }
26541 })
26542}
26543
26544
26545/***/ }),
26546/* 302 */
26547/***/ (function(module, exports, __webpack_require__) {
26548
26549"use strict";
26550
26551
26552var has = Object.prototype.hasOwnProperty;
26553
26554var hexTable = (function () {
26555 var array = [];
26556 for (var i = 0; i < 256; ++i) {
26557 array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
26558 }
26559
26560 return array;
26561}());
26562
26563var compactQueue = function compactQueue(queue) {
26564 var obj;
26565
26566 while (queue.length) {
26567 var item = queue.pop();
26568 obj = item.obj[item.prop];
26569
26570 if (Array.isArray(obj)) {
26571 var compacted = [];
26572
26573 for (var j = 0; j < obj.length; ++j) {
26574 if (typeof obj[j] !== 'undefined') {
26575 compacted.push(obj[j]);
26576 }
26577 }
26578
26579 item.obj[item.prop] = compacted;
26580 }
26581 }
26582
26583 return obj;
26584};
26585
26586exports.arrayToObject = function arrayToObject(source, options) {
26587 var obj = options && options.plainObjects ? Object.create(null) : {};
26588 for (var i = 0; i < source.length; ++i) {
26589 if (typeof source[i] !== 'undefined') {
26590 obj[i] = source[i];
26591 }
26592 }
26593
26594 return obj;
26595};
26596
26597exports.merge = function merge(target, source, options) {
26598 if (!source) {
26599 return target;
26600 }
26601
26602 if (typeof source !== 'object') {
26603 if (Array.isArray(target)) {
26604 target.push(source);
26605 } else if (typeof target === 'object') {
26606 if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
26607 target[source] = true;
26608 }
26609 } else {
26610 return [target, source];
26611 }
26612
26613 return target;
26614 }
26615
26616 if (typeof target !== 'object') {
26617 return [target].concat(source);
26618 }
26619
26620 var mergeTarget = target;
26621 if (Array.isArray(target) && !Array.isArray(source)) {
26622 mergeTarget = exports.arrayToObject(target, options);
26623 }
26624
26625 if (Array.isArray(target) && Array.isArray(source)) {
26626 source.forEach(function (item, i) {
26627 if (has.call(target, i)) {
26628 if (target[i] && typeof target[i] === 'object') {
26629 target[i] = exports.merge(target[i], item, options);
26630 } else {
26631 target.push(item);
26632 }
26633 } else {
26634 target[i] = item;
26635 }
26636 });
26637 return target;
26638 }
26639
26640 return Object.keys(source).reduce(function (acc, key) {
26641 var value = source[key];
26642
26643 if (has.call(acc, key)) {
26644 acc[key] = exports.merge(acc[key], value, options);
26645 } else {
26646 acc[key] = value;
26647 }
26648 return acc;
26649 }, mergeTarget);
26650};
26651
26652exports.assign = function assignSingleSource(target, source) {
26653 return Object.keys(source).reduce(function (acc, key) {
26654 acc[key] = source[key];
26655 return acc;
26656 }, target);
26657};
26658
26659exports.decode = function (str) {
26660 try {
26661 return decodeURIComponent(str.replace(/\+/g, ' '));
26662 } catch (e) {
26663 return str;
26664 }
26665};
26666
26667exports.encode = function encode(str) {
26668 // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
26669 // It has been adapted here for stricter adherence to RFC 3986
26670 if (str.length === 0) {
26671 return str;
26672 }
26673
26674 var string = typeof str === 'string' ? str : String(str);
26675
26676 var out = '';
26677 for (var i = 0; i < string.length; ++i) {
26678 var c = string.charCodeAt(i);
26679
26680 if (
26681 c === 0x2D // -
26682 || c === 0x2E // .
26683 || c === 0x5F // _
26684 || c === 0x7E // ~
26685 || (c >= 0x30 && c <= 0x39) // 0-9
26686 || (c >= 0x41 && c <= 0x5A) // a-z
26687 || (c >= 0x61 && c <= 0x7A) // A-Z
26688 ) {
26689 out += string.charAt(i);
26690 continue;
26691 }
26692
26693 if (c < 0x80) {
26694 out = out + hexTable[c];
26695 continue;
26696 }
26697
26698 if (c < 0x800) {
26699 out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
26700 continue;
26701 }
26702
26703 if (c < 0xD800 || c >= 0xE000) {
26704 out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
26705 continue;
26706 }
26707
26708 i += 1;
26709 c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
26710 out += hexTable[0xF0 | (c >> 18)]
26711 + hexTable[0x80 | ((c >> 12) & 0x3F)]
26712 + hexTable[0x80 | ((c >> 6) & 0x3F)]
26713 + hexTable[0x80 | (c & 0x3F)];
26714 }
26715
26716 return out;
26717};
26718
26719exports.compact = function compact(value) {
26720 var queue = [{ obj: { o: value }, prop: 'o' }];
26721 var refs = [];
26722
26723 for (var i = 0; i < queue.length; ++i) {
26724 var item = queue[i];
26725 var obj = item.obj[item.prop];
26726
26727 var keys = Object.keys(obj);
26728 for (var j = 0; j < keys.length; ++j) {
26729 var key = keys[j];
26730 var val = obj[key];
26731 if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
26732 queue.push({ obj: obj, prop: key });
26733 refs.push(val);
26734 }
26735 }
26736 }
26737
26738 return compactQueue(queue);
26739};
26740
26741exports.isRegExp = function isRegExp(obj) {
26742 return Object.prototype.toString.call(obj) === '[object RegExp]';
26743};
26744
26745exports.isBuffer = function isBuffer(obj) {
26746 if (obj === null || typeof obj === 'undefined') {
26747 return false;
26748 }
26749
26750 return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
26751};
26752
26753
26754/***/ }),
26755/* 303 */
26756/***/ (function(module, exports, __webpack_require__) {
26757
26758"use strict";
26759
26760
26761var replace = String.prototype.replace;
26762var percentTwenties = /%20/g;
26763
26764module.exports = {
26765 'default': 'RFC3986',
26766 formatters: {
26767 RFC1738: function (value) {
26768 return replace.call(value, percentTwenties, '+');
26769 },
26770 RFC3986: function (value) {
26771 return value;
26772 }
26773 },
26774 RFC1738: 'RFC1738',
26775 RFC3986: 'RFC3986'
26776};
26777
26778
26779/***/ }),
26780/* 304 */
26781/***/ (function(module, exports) {
26782
26783module.exports = require("querystring");
26784
26785/***/ }),
26786/* 305 */
26787/***/ (function(module, exports, __webpack_require__) {
26788
26789"use strict";
26790/*!
26791 * express
26792 * Copyright(c) 2009-2013 TJ Holowaychuk
26793 * Copyright(c) 2013 Roman Shtylman
26794 * Copyright(c) 2014-2015 Douglas Christopher Wilson
26795 * MIT Licensed
26796 */
26797
26798
26799
26800/**
26801 * Module dependencies.
26802 * @private
26803 */
26804
26805var Route = __webpack_require__(306);
26806var Layer = __webpack_require__(307);
26807var methods = __webpack_require__(191);
26808var mixin = __webpack_require__(129);
26809var debug = __webpack_require__(30)('express:router');
26810var deprecate = __webpack_require__(47)('express');
26811var flatten = __webpack_require__(128);
26812var parseUrl = __webpack_require__(92);
26813var setPrototypeOf = __webpack_require__(122)
26814
26815/**
26816 * Module variables.
26817 * @private
26818 */
26819
26820var objectRegExp = /^\[object (\S+)\]$/;
26821var slice = Array.prototype.slice;
26822var toString = Object.prototype.toString;
26823
26824/**
26825 * Initialize a new `Router` with the given `options`.
26826 *
26827 * @param {Object} options
26828 * @return {Router} which is an callable function
26829 * @public
26830 */
26831
26832var proto = module.exports = function(options) {
26833 var opts = options || {};
26834
26835 function router(req, res, next) {
26836 router.handle(req, res, next);
26837 }
26838
26839 // mixin Router class functions
26840 setPrototypeOf(router, proto)
26841
26842 router.params = {};
26843 router._params = [];
26844 router.caseSensitive = opts.caseSensitive;
26845 router.mergeParams = opts.mergeParams;
26846 router.strict = opts.strict;
26847 router.stack = [];
26848
26849 return router;
26850};
26851
26852/**
26853 * Map the given param placeholder `name`(s) to the given callback.
26854 *
26855 * Parameter mapping is used to provide pre-conditions to routes
26856 * which use normalized placeholders. For example a _:user_id_ parameter
26857 * could automatically load a user's information from the database without
26858 * any additional code,
26859 *
26860 * The callback uses the same signature as middleware, the only difference
26861 * being that the value of the placeholder is passed, in this case the _id_
26862 * of the user. Once the `next()` function is invoked, just like middleware
26863 * it will continue on to execute the route, or subsequent parameter functions.
26864 *
26865 * Just like in middleware, you must either respond to the request or call next
26866 * to avoid stalling the request.
26867 *
26868 * app.param('user_id', function(req, res, next, id){
26869 * User.find(id, function(err, user){
26870 * if (err) {
26871 * return next(err);
26872 * } else if (!user) {
26873 * return next(new Error('failed to load user'));
26874 * }
26875 * req.user = user;
26876 * next();
26877 * });
26878 * });
26879 *
26880 * @param {String} name
26881 * @param {Function} fn
26882 * @return {app} for chaining
26883 * @public
26884 */
26885
26886proto.param = function param(name, fn) {
26887 // param logic
26888 if (typeof name === 'function') {
26889 deprecate('router.param(fn): Refactor to use path params');
26890 this._params.push(name);
26891 return;
26892 }
26893
26894 // apply param functions
26895 var params = this._params;
26896 var len = params.length;
26897 var ret;
26898
26899 if (name[0] === ':') {
26900 deprecate('router.param(' + JSON.stringify(name) + ', fn): Use router.param(' + JSON.stringify(name.substr(1)) + ', fn) instead');
26901 name = name.substr(1);
26902 }
26903
26904 for (var i = 0; i < len; ++i) {
26905 if (ret = params[i](name, fn)) {
26906 fn = ret;
26907 }
26908 }
26909
26910 // ensure we end up with a
26911 // middleware function
26912 if ('function' !== typeof fn) {
26913 throw new Error('invalid param() call for ' + name + ', got ' + fn);
26914 }
26915
26916 (this.params[name] = this.params[name] || []).push(fn);
26917 return this;
26918};
26919
26920/**
26921 * Dispatch a req, res into the router.
26922 * @private
26923 */
26924
26925proto.handle = function handle(req, res, out) {
26926 var self = this;
26927
26928 debug('dispatching %s %s', req.method, req.url);
26929
26930 var idx = 0;
26931 var protohost = getProtohost(req.url) || ''
26932 var removed = '';
26933 var slashAdded = false;
26934 var paramcalled = {};
26935
26936 // store options for OPTIONS request
26937 // only used if OPTIONS request
26938 var options = [];
26939
26940 // middleware and routes
26941 var stack = self.stack;
26942
26943 // manage inter-router variables
26944 var parentParams = req.params;
26945 var parentUrl = req.baseUrl || '';
26946 var done = restore(out, req, 'baseUrl', 'next', 'params');
26947
26948 // setup next layer
26949 req.next = next;
26950
26951 // for options requests, respond with a default if nothing else responds
26952 if (req.method === 'OPTIONS') {
26953 done = wrap(done, function(old, err) {
26954 if (err || options.length === 0) return old(err);
26955 sendOptionsResponse(res, options, old);
26956 });
26957 }
26958
26959 // setup basic req values
26960 req.baseUrl = parentUrl;
26961 req.originalUrl = req.originalUrl || req.url;
26962
26963 next();
26964
26965 function next(err) {
26966 var layerError = err === 'route'
26967 ? null
26968 : err;
26969
26970 // remove added slash
26971 if (slashAdded) {
26972 req.url = req.url.substr(1);
26973 slashAdded = false;
26974 }
26975
26976 // restore altered req.url
26977 if (removed.length !== 0) {
26978 req.baseUrl = parentUrl;
26979 req.url = protohost + removed + req.url.substr(protohost.length);
26980 removed = '';
26981 }
26982
26983 // signal to exit router
26984 if (layerError === 'router') {
26985 setImmediate(done, null)
26986 return
26987 }
26988
26989 // no more matching layers
26990 if (idx >= stack.length) {
26991 setImmediate(done, layerError);
26992 return;
26993 }
26994
26995 // get pathname of request
26996 var path = getPathname(req);
26997
26998 if (path == null) {
26999 return done(layerError);
27000 }
27001
27002 // find next matching layer
27003 var layer;
27004 var match;
27005 var route;
27006
27007 while (match !== true && idx < stack.length) {
27008 layer = stack[idx++];
27009 match = matchLayer(layer, path);
27010 route = layer.route;
27011
27012 if (typeof match !== 'boolean') {
27013 // hold on to layerError
27014 layerError = layerError || match;
27015 }
27016
27017 if (match !== true) {
27018 continue;
27019 }
27020
27021 if (!route) {
27022 // process non-route handlers normally
27023 continue;
27024 }
27025
27026 if (layerError) {
27027 // routes do not match with a pending error
27028 match = false;
27029 continue;
27030 }
27031
27032 var method = req.method;
27033 var has_method = route._handles_method(method);
27034
27035 // build up automatic options response
27036 if (!has_method && method === 'OPTIONS') {
27037 appendMethods(options, route._options());
27038 }
27039
27040 // don't even bother matching route
27041 if (!has_method && method !== 'HEAD') {
27042 match = false;
27043 continue;
27044 }
27045 }
27046
27047 // no match
27048 if (match !== true) {
27049 return done(layerError);
27050 }
27051
27052 // store route for dispatch on change
27053 if (route) {
27054 req.route = route;
27055 }
27056
27057 // Capture one-time layer values
27058 req.params = self.mergeParams
27059 ? mergeParams(layer.params, parentParams)
27060 : layer.params;
27061 var layerPath = layer.path;
27062
27063 // this should be done for the layer
27064 self.process_params(layer, paramcalled, req, res, function (err) {
27065 if (err) {
27066 return next(layerError || err);
27067 }
27068
27069 if (route) {
27070 return layer.handle_request(req, res, next);
27071 }
27072
27073 trim_prefix(layer, layerError, layerPath, path);
27074 });
27075 }
27076
27077 function trim_prefix(layer, layerError, layerPath, path) {
27078 if (layerPath.length !== 0) {
27079 // Validate path breaks on a path separator
27080 var c = path[layerPath.length]
27081 if (c && c !== '/' && c !== '.') return next(layerError)
27082
27083 // Trim off the part of the url that matches the route
27084 // middleware (.use stuff) needs to have the path stripped
27085 debug('trim prefix (%s) from url %s', layerPath, req.url);
27086 removed = layerPath;
27087 req.url = protohost + req.url.substr(protohost.length + removed.length);
27088
27089 // Ensure leading slash
27090 if (!protohost && req.url[0] !== '/') {
27091 req.url = '/' + req.url;
27092 slashAdded = true;
27093 }
27094
27095 // Setup base URL (no trailing slash)
27096 req.baseUrl = parentUrl + (removed[removed.length - 1] === '/'
27097 ? removed.substring(0, removed.length - 1)
27098 : removed);
27099 }
27100
27101 debug('%s %s : %s', layer.name, layerPath, req.originalUrl);
27102
27103 if (layerError) {
27104 layer.handle_error(layerError, req, res, next);
27105 } else {
27106 layer.handle_request(req, res, next);
27107 }
27108 }
27109};
27110
27111/**
27112 * Process any parameters for the layer.
27113 * @private
27114 */
27115
27116proto.process_params = function process_params(layer, called, req, res, done) {
27117 var params = this.params;
27118
27119 // captured parameters from the layer, keys and values
27120 var keys = layer.keys;
27121
27122 // fast track
27123 if (!keys || keys.length === 0) {
27124 return done();
27125 }
27126
27127 var i = 0;
27128 var name;
27129 var paramIndex = 0;
27130 var key;
27131 var paramVal;
27132 var paramCallbacks;
27133 var paramCalled;
27134
27135 // process params in order
27136 // param callbacks can be async
27137 function param(err) {
27138 if (err) {
27139 return done(err);
27140 }
27141
27142 if (i >= keys.length ) {
27143 return done();
27144 }
27145
27146 paramIndex = 0;
27147 key = keys[i++];
27148 name = key.name;
27149 paramVal = req.params[name];
27150 paramCallbacks = params[name];
27151 paramCalled = called[name];
27152
27153 if (paramVal === undefined || !paramCallbacks) {
27154 return param();
27155 }
27156
27157 // param previously called with same value or error occurred
27158 if (paramCalled && (paramCalled.match === paramVal
27159 || (paramCalled.error && paramCalled.error !== 'route'))) {
27160 // restore value
27161 req.params[name] = paramCalled.value;
27162
27163 // next param
27164 return param(paramCalled.error);
27165 }
27166
27167 called[name] = paramCalled = {
27168 error: null,
27169 match: paramVal,
27170 value: paramVal
27171 };
27172
27173 paramCallback();
27174 }
27175
27176 // single param callbacks
27177 function paramCallback(err) {
27178 var fn = paramCallbacks[paramIndex++];
27179
27180 // store updated value
27181 paramCalled.value = req.params[key.name];
27182
27183 if (err) {
27184 // store error
27185 paramCalled.error = err;
27186 param(err);
27187 return;
27188 }
27189
27190 if (!fn) return param();
27191
27192 try {
27193 fn(req, res, paramCallback, paramVal, key.name);
27194 } catch (e) {
27195 paramCallback(e);
27196 }
27197 }
27198
27199 param();
27200};
27201
27202/**
27203 * Use the given middleware function, with optional path, defaulting to "/".
27204 *
27205 * Use (like `.all`) will run for any http METHOD, but it will not add
27206 * handlers for those methods so OPTIONS requests will not consider `.use`
27207 * functions even if they could respond.
27208 *
27209 * The other difference is that _route_ path is stripped and not visible
27210 * to the handler function. The main effect of this feature is that mounted
27211 * handlers can operate without any code changes regardless of the "prefix"
27212 * pathname.
27213 *
27214 * @public
27215 */
27216
27217proto.use = function use(fn) {
27218 var offset = 0;
27219 var path = '/';
27220
27221 // default path to '/'
27222 // disambiguate router.use([fn])
27223 if (typeof fn !== 'function') {
27224 var arg = fn;
27225
27226 while (Array.isArray(arg) && arg.length !== 0) {
27227 arg = arg[0];
27228 }
27229
27230 // first arg is the path
27231 if (typeof arg !== 'function') {
27232 offset = 1;
27233 path = fn;
27234 }
27235 }
27236
27237 var callbacks = flatten(slice.call(arguments, offset));
27238
27239 if (callbacks.length === 0) {
27240 throw new TypeError('Router.use() requires a middleware function')
27241 }
27242
27243 for (var i = 0; i < callbacks.length; i++) {
27244 var fn = callbacks[i];
27245
27246 if (typeof fn !== 'function') {
27247 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
27248 }
27249
27250 // add the middleware
27251 debug('use %o %s', path, fn.name || '<anonymous>')
27252
27253 var layer = new Layer(path, {
27254 sensitive: this.caseSensitive,
27255 strict: false,
27256 end: false
27257 }, fn);
27258
27259 layer.route = undefined;
27260
27261 this.stack.push(layer);
27262 }
27263
27264 return this;
27265};
27266
27267/**
27268 * Create a new Route for the given path.
27269 *
27270 * Each route contains a separate middleware stack and VERB handlers.
27271 *
27272 * See the Route api documentation for details on adding handlers
27273 * and middleware to routes.
27274 *
27275 * @param {String} path
27276 * @return {Route}
27277 * @public
27278 */
27279
27280proto.route = function route(path) {
27281 var route = new Route(path);
27282
27283 var layer = new Layer(path, {
27284 sensitive: this.caseSensitive,
27285 strict: this.strict,
27286 end: true
27287 }, route.dispatch.bind(route));
27288
27289 layer.route = route;
27290
27291 this.stack.push(layer);
27292 return route;
27293};
27294
27295// create Router#VERB functions
27296methods.concat('all').forEach(function(method){
27297 proto[method] = function(path){
27298 var route = this.route(path)
27299 route[method].apply(route, slice.call(arguments, 1));
27300 return this;
27301 };
27302});
27303
27304// append methods to a list of methods
27305function appendMethods(list, addition) {
27306 for (var i = 0; i < addition.length; i++) {
27307 var method = addition[i];
27308 if (list.indexOf(method) === -1) {
27309 list.push(method);
27310 }
27311 }
27312}
27313
27314// get pathname of request
27315function getPathname(req) {
27316 try {
27317 return parseUrl(req).pathname;
27318 } catch (err) {
27319 return undefined;
27320 }
27321}
27322
27323// Get get protocol + host for a URL
27324function getProtohost(url) {
27325 if (typeof url !== 'string' || url.length === 0 || url[0] === '/') {
27326 return undefined
27327 }
27328
27329 var searchIndex = url.indexOf('?')
27330 var pathLength = searchIndex !== -1
27331 ? searchIndex
27332 : url.length
27333 var fqdnIndex = url.substr(0, pathLength).indexOf('://')
27334
27335 return fqdnIndex !== -1
27336 ? url.substr(0, url.indexOf('/', 3 + fqdnIndex))
27337 : undefined
27338}
27339
27340// get type for error message
27341function gettype(obj) {
27342 var type = typeof obj;
27343
27344 if (type !== 'object') {
27345 return type;
27346 }
27347
27348 // inspect [[Class]] for objects
27349 return toString.call(obj)
27350 .replace(objectRegExp, '$1');
27351}
27352
27353/**
27354 * Match path to a layer.
27355 *
27356 * @param {Layer} layer
27357 * @param {string} path
27358 * @private
27359 */
27360
27361function matchLayer(layer, path) {
27362 try {
27363 return layer.match(path);
27364 } catch (err) {
27365 return err;
27366 }
27367}
27368
27369// merge params with parent params
27370function mergeParams(params, parent) {
27371 if (typeof parent !== 'object' || !parent) {
27372 return params;
27373 }
27374
27375 // make copy of parent for base
27376 var obj = mixin({}, parent);
27377
27378 // simple non-numeric merging
27379 if (!(0 in params) || !(0 in parent)) {
27380 return mixin(obj, params);
27381 }
27382
27383 var i = 0;
27384 var o = 0;
27385
27386 // determine numeric gaps
27387 while (i in params) {
27388 i++;
27389 }
27390
27391 while (o in parent) {
27392 o++;
27393 }
27394
27395 // offset numeric indices in params before merge
27396 for (i--; i >= 0; i--) {
27397 params[i + o] = params[i];
27398
27399 // create holes for the merge when necessary
27400 if (i < o) {
27401 delete params[i];
27402 }
27403 }
27404
27405 return mixin(obj, params);
27406}
27407
27408// restore obj props after function
27409function restore(fn, obj) {
27410 var props = new Array(arguments.length - 2);
27411 var vals = new Array(arguments.length - 2);
27412
27413 for (var i = 0; i < props.length; i++) {
27414 props[i] = arguments[i + 2];
27415 vals[i] = obj[props[i]];
27416 }
27417
27418 return function () {
27419 // restore vals
27420 for (var i = 0; i < props.length; i++) {
27421 obj[props[i]] = vals[i];
27422 }
27423
27424 return fn.apply(this, arguments);
27425 };
27426}
27427
27428// send an OPTIONS response
27429function sendOptionsResponse(res, options, next) {
27430 try {
27431 var body = options.join(',');
27432 res.set('Allow', body);
27433 res.send(body);
27434 } catch (err) {
27435 next(err);
27436 }
27437}
27438
27439// wrap a function
27440function wrap(old, fn) {
27441 return function proxy() {
27442 var args = new Array(arguments.length + 1);
27443
27444 args[0] = old;
27445 for (var i = 0, len = arguments.length; i < len; i++) {
27446 args[i + 1] = arguments[i];
27447 }
27448
27449 fn.apply(this, args);
27450 };
27451}
27452
27453
27454/***/ }),
27455/* 306 */
27456/***/ (function(module, exports, __webpack_require__) {
27457
27458"use strict";
27459/*!
27460 * express
27461 * Copyright(c) 2009-2013 TJ Holowaychuk
27462 * Copyright(c) 2013 Roman Shtylman
27463 * Copyright(c) 2014-2015 Douglas Christopher Wilson
27464 * MIT Licensed
27465 */
27466
27467
27468
27469/**
27470 * Module dependencies.
27471 * @private
27472 */
27473
27474var debug = __webpack_require__(30)('express:router:route');
27475var flatten = __webpack_require__(128);
27476var Layer = __webpack_require__(307);
27477var methods = __webpack_require__(191);
27478
27479/**
27480 * Module variables.
27481 * @private
27482 */
27483
27484var slice = Array.prototype.slice;
27485var toString = Object.prototype.toString;
27486
27487/**
27488 * Module exports.
27489 * @public
27490 */
27491
27492module.exports = Route;
27493
27494/**
27495 * Initialize `Route` with the given `path`,
27496 *
27497 * @param {String} path
27498 * @public
27499 */
27500
27501function Route(path) {
27502 this.path = path;
27503 this.stack = [];
27504
27505 debug('new %o', path)
27506
27507 // route handlers for various http methods
27508 this.methods = {};
27509}
27510
27511/**
27512 * Determine if the route handles a given method.
27513 * @private
27514 */
27515
27516Route.prototype._handles_method = function _handles_method(method) {
27517 if (this.methods._all) {
27518 return true;
27519 }
27520
27521 var name = method.toLowerCase();
27522
27523 if (name === 'head' && !this.methods['head']) {
27524 name = 'get';
27525 }
27526
27527 return Boolean(this.methods[name]);
27528};
27529
27530/**
27531 * @return {Array} supported HTTP methods
27532 * @private
27533 */
27534
27535Route.prototype._options = function _options() {
27536 var methods = Object.keys(this.methods);
27537
27538 // append automatic head
27539 if (this.methods.get && !this.methods.head) {
27540 methods.push('head');
27541 }
27542
27543 for (var i = 0; i < methods.length; i++) {
27544 // make upper case
27545 methods[i] = methods[i].toUpperCase();
27546 }
27547
27548 return methods;
27549};
27550
27551/**
27552 * dispatch req, res into this route
27553 * @private
27554 */
27555
27556Route.prototype.dispatch = function dispatch(req, res, done) {
27557 var idx = 0;
27558 var stack = this.stack;
27559 if (stack.length === 0) {
27560 return done();
27561 }
27562
27563 var method = req.method.toLowerCase();
27564 if (method === 'head' && !this.methods['head']) {
27565 method = 'get';
27566 }
27567
27568 req.route = this;
27569
27570 next();
27571
27572 function next(err) {
27573 // signal to exit route
27574 if (err && err === 'route') {
27575 return done();
27576 }
27577
27578 // signal to exit router
27579 if (err && err === 'router') {
27580 return done(err)
27581 }
27582
27583 var layer = stack[idx++];
27584 if (!layer) {
27585 return done(err);
27586 }
27587
27588 if (layer.method && layer.method !== method) {
27589 return next(err);
27590 }
27591
27592 if (err) {
27593 layer.handle_error(err, req, res, next);
27594 } else {
27595 layer.handle_request(req, res, next);
27596 }
27597 }
27598};
27599
27600/**
27601 * Add a handler for all HTTP verbs to this route.
27602 *
27603 * Behaves just like middleware and can respond or call `next`
27604 * to continue processing.
27605 *
27606 * You can use multiple `.all` call to add multiple handlers.
27607 *
27608 * function check_something(req, res, next){
27609 * next();
27610 * };
27611 *
27612 * function validate_user(req, res, next){
27613 * next();
27614 * };
27615 *
27616 * route
27617 * .all(validate_user)
27618 * .all(check_something)
27619 * .get(function(req, res, next){
27620 * res.send('hello world');
27621 * });
27622 *
27623 * @param {function} handler
27624 * @return {Route} for chaining
27625 * @api public
27626 */
27627
27628Route.prototype.all = function all() {
27629 var handles = flatten(slice.call(arguments));
27630
27631 for (var i = 0; i < handles.length; i++) {
27632 var handle = handles[i];
27633
27634 if (typeof handle !== 'function') {
27635 var type = toString.call(handle);
27636 var msg = 'Route.all() requires a callback function but got a ' + type
27637 throw new TypeError(msg);
27638 }
27639
27640 var layer = Layer('/', {}, handle);
27641 layer.method = undefined;
27642
27643 this.methods._all = true;
27644 this.stack.push(layer);
27645 }
27646
27647 return this;
27648};
27649
27650methods.forEach(function(method){
27651 Route.prototype[method] = function(){
27652 var handles = flatten(slice.call(arguments));
27653
27654 for (var i = 0; i < handles.length; i++) {
27655 var handle = handles[i];
27656
27657 if (typeof handle !== 'function') {
27658 var type = toString.call(handle);
27659 var msg = 'Route.' + method + '() requires a callback function but got a ' + type
27660 throw new Error(msg);
27661 }
27662
27663 debug('%s %o', method, this.path)
27664
27665 var layer = Layer('/', {}, handle);
27666 layer.method = method;
27667
27668 this.methods[method] = true;
27669 this.stack.push(layer);
27670 }
27671
27672 return this;
27673 };
27674});
27675
27676
27677/***/ }),
27678/* 307 */
27679/***/ (function(module, exports, __webpack_require__) {
27680
27681"use strict";
27682/*!
27683 * express
27684 * Copyright(c) 2009-2013 TJ Holowaychuk
27685 * Copyright(c) 2013 Roman Shtylman
27686 * Copyright(c) 2014-2015 Douglas Christopher Wilson
27687 * MIT Licensed
27688 */
27689
27690
27691
27692/**
27693 * Module dependencies.
27694 * @private
27695 */
27696
27697var pathRegexp = __webpack_require__(650);
27698var debug = __webpack_require__(30)('express:router:layer');
27699
27700/**
27701 * Module variables.
27702 * @private
27703 */
27704
27705var hasOwnProperty = Object.prototype.hasOwnProperty;
27706
27707/**
27708 * Module exports.
27709 * @public
27710 */
27711
27712module.exports = Layer;
27713
27714function Layer(path, options, fn) {
27715 if (!(this instanceof Layer)) {
27716 return new Layer(path, options, fn);
27717 }
27718
27719 debug('new %o', path)
27720 var opts = options || {};
27721
27722 this.handle = fn;
27723 this.name = fn.name || '<anonymous>';
27724 this.params = undefined;
27725 this.path = undefined;
27726 this.regexp = pathRegexp(path, this.keys = [], opts);
27727
27728 // set fast path flags
27729 this.regexp.fast_star = path === '*'
27730 this.regexp.fast_slash = path === '/' && opts.end === false
27731}
27732
27733/**
27734 * Handle the error for the layer.
27735 *
27736 * @param {Error} error
27737 * @param {Request} req
27738 * @param {Response} res
27739 * @param {function} next
27740 * @api private
27741 */
27742
27743Layer.prototype.handle_error = function handle_error(error, req, res, next) {
27744 var fn = this.handle;
27745
27746 if (fn.length !== 4) {
27747 // not a standard error handler
27748 return next(error);
27749 }
27750
27751 try {
27752 fn(error, req, res, next);
27753 } catch (err) {
27754 next(err);
27755 }
27756};
27757
27758/**
27759 * Handle the request for the layer.
27760 *
27761 * @param {Request} req
27762 * @param {Response} res
27763 * @param {function} next
27764 * @api private
27765 */
27766
27767Layer.prototype.handle_request = function handle(req, res, next) {
27768 var fn = this.handle;
27769
27770 if (fn.length > 3) {
27771 // not a standard request handler
27772 return next();
27773 }
27774
27775 try {
27776 fn(req, res, next);
27777 } catch (err) {
27778 next(err);
27779 }
27780};
27781
27782/**
27783 * Check if this route matches `path`, if so
27784 * populate `.params`.
27785 *
27786 * @param {String} path
27787 * @return {Boolean}
27788 * @api private
27789 */
27790
27791Layer.prototype.match = function match(path) {
27792 var match
27793
27794 if (path != null) {
27795 // fast path non-ending match for / (any path matches)
27796 if (this.regexp.fast_slash) {
27797 this.params = {}
27798 this.path = ''
27799 return true
27800 }
27801
27802 // fast path for * (everything matched in a param)
27803 if (this.regexp.fast_star) {
27804 this.params = {'0': decode_param(path)}
27805 this.path = path
27806 return true
27807 }
27808
27809 // match the path
27810 match = this.regexp.exec(path)
27811 }
27812
27813 if (!match) {
27814 this.params = undefined;
27815 this.path = undefined;
27816 return false;
27817 }
27818
27819 // store values
27820 this.params = {};
27821 this.path = match[0]
27822
27823 var keys = this.keys;
27824 var params = this.params;
27825
27826 for (var i = 1; i < match.length; i++) {
27827 var key = keys[i - 1];
27828 var prop = key.name;
27829 var val = decode_param(match[i])
27830
27831 if (val !== undefined || !(hasOwnProperty.call(params, prop))) {
27832 params[prop] = val;
27833 }
27834 }
27835
27836 return true;
27837};
27838
27839/**
27840 * Decode param value.
27841 *
27842 * @param {string} val
27843 * @return {string}
27844 * @private
27845 */
27846
27847function decode_param(val) {
27848 if (typeof val !== 'string' || val.length === 0) {
27849 return val;
27850 }
27851
27852 try {
27853 return decodeURIComponent(val);
27854 } catch (err) {
27855 if (err instanceof URIError) {
27856 err.message = 'Failed to decode param \'' + val + '\'';
27857 err.status = err.statusCode = 400;
27858 }
27859
27860 throw err;
27861 }
27862}
27863
27864
27865/***/ }),
27866/* 308 */
27867/***/ (function(module, exports, __webpack_require__) {
27868
27869"use strict";
27870/*!
27871 * express
27872 * Copyright(c) 2009-2013 TJ Holowaychuk
27873 * Copyright(c) 2013 Roman Shtylman
27874 * Copyright(c) 2014-2015 Douglas Christopher Wilson
27875 * MIT Licensed
27876 */
27877
27878
27879
27880/**
27881 * Module dependencies.
27882 */
27883
27884var merge = __webpack_require__(129)
27885var parseUrl = __webpack_require__(92);
27886var qs = __webpack_require__(190);
27887
27888/**
27889 * @param {Object} options
27890 * @return {Function}
27891 * @api public
27892 */
27893
27894module.exports = function query(options) {
27895 var opts = merge({}, options)
27896 var queryparse = qs.parse;
27897
27898 if (typeof options === 'function') {
27899 queryparse = options;
27900 opts = undefined;
27901 }
27902
27903 if (opts !== undefined && opts.allowPrototypes === undefined) {
27904 // back-compat for qs module
27905 opts.allowPrototypes = true;
27906 }
27907
27908 return function query(req, res, next){
27909 if (!req.query) {
27910 var val = parseUrl(req).query;
27911 req.query = queryparse(val, opts);
27912 }
27913
27914 next();
27915 };
27916};
27917
27918
27919/***/ }),
27920/* 309 */
27921/***/ (function(module, exports, __webpack_require__) {
27922
27923"use strict";
27924/*!
27925 * content-disposition
27926 * Copyright(c) 2014 Douglas Christopher Wilson
27927 * MIT Licensed
27928 */
27929
27930
27931
27932/**
27933 * Module exports.
27934 */
27935
27936module.exports = contentDisposition
27937module.exports.parse = parse
27938
27939/**
27940 * Module dependencies.
27941 */
27942
27943var basename = __webpack_require__(48).basename
27944
27945/**
27946 * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%")
27947 */
27948
27949var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex
27950
27951/**
27952 * RegExp to match percent encoding escape.
27953 */
27954
27955var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/
27956var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g
27957
27958/**
27959 * RegExp to match non-latin1 characters.
27960 */
27961
27962var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g
27963
27964/**
27965 * RegExp to match quoted-pair in RFC 2616
27966 *
27967 * quoted-pair = "\" CHAR
27968 * CHAR = <any US-ASCII character (octets 0 - 127)>
27969 */
27970
27971var QESC_REGEXP = /\\([\u0000-\u007f])/g
27972
27973/**
27974 * RegExp to match chars that must be quoted-pair in RFC 2616
27975 */
27976
27977var QUOTE_REGEXP = /([\\"])/g
27978
27979/**
27980 * RegExp for various RFC 2616 grammar
27981 *
27982 * parameter = token "=" ( token | quoted-string )
27983 * token = 1*<any CHAR except CTLs or separators>
27984 * separators = "(" | ")" | "<" | ">" | "@"
27985 * | "," | ";" | ":" | "\" | <">
27986 * | "/" | "[" | "]" | "?" | "="
27987 * | "{" | "}" | SP | HT
27988 * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
27989 * qdtext = <any TEXT except <">>
27990 * quoted-pair = "\" CHAR
27991 * CHAR = <any US-ASCII character (octets 0 - 127)>
27992 * TEXT = <any OCTET except CTLs, but including LWS>
27993 * LWS = [CRLF] 1*( SP | HT )
27994 * CRLF = CR LF
27995 * CR = <US-ASCII CR, carriage return (13)>
27996 * LF = <US-ASCII LF, linefeed (10)>
27997 * SP = <US-ASCII SP, space (32)>
27998 * HT = <US-ASCII HT, horizontal-tab (9)>
27999 * CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
28000 * OCTET = <any 8-bit sequence of data>
28001 */
28002
28003var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex
28004var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/
28005var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/
28006
28007/**
28008 * RegExp for various RFC 5987 grammar
28009 *
28010 * ext-value = charset "'" [ language ] "'" value-chars
28011 * charset = "UTF-8" / "ISO-8859-1" / mime-charset
28012 * mime-charset = 1*mime-charsetc
28013 * mime-charsetc = ALPHA / DIGIT
28014 * / "!" / "#" / "$" / "%" / "&"
28015 * / "+" / "-" / "^" / "_" / "`"
28016 * / "{" / "}" / "~"
28017 * language = ( 2*3ALPHA [ extlang ] )
28018 * / 4ALPHA
28019 * / 5*8ALPHA
28020 * extlang = *3( "-" 3ALPHA )
28021 * value-chars = *( pct-encoded / attr-char )
28022 * pct-encoded = "%" HEXDIG HEXDIG
28023 * attr-char = ALPHA / DIGIT
28024 * / "!" / "#" / "$" / "&" / "+" / "-" / "."
28025 * / "^" / "_" / "`" / "|" / "~"
28026 */
28027
28028var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/
28029
28030/**
28031 * RegExp for various RFC 6266 grammar
28032 *
28033 * disposition-type = "inline" | "attachment" | disp-ext-type
28034 * disp-ext-type = token
28035 * disposition-parm = filename-parm | disp-ext-parm
28036 * filename-parm = "filename" "=" value
28037 * | "filename*" "=" ext-value
28038 * disp-ext-parm = token "=" value
28039 * | ext-token "=" ext-value
28040 * ext-token = <the characters in token, followed by "*">
28041 */
28042
28043var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex
28044
28045/**
28046 * Create an attachment Content-Disposition header.
28047 *
28048 * @param {string} [filename]
28049 * @param {object} [options]
28050 * @param {string} [options.type=attachment]
28051 * @param {string|boolean} [options.fallback=true]
28052 * @return {string}
28053 * @api public
28054 */
28055
28056function contentDisposition (filename, options) {
28057 var opts = options || {}
28058
28059 // get type
28060 var type = opts.type || 'attachment'
28061
28062 // get parameters
28063 var params = createparams(filename, opts.fallback)
28064
28065 // format into string
28066 return format(new ContentDisposition(type, params))
28067}
28068
28069/**
28070 * Create parameters object from filename and fallback.
28071 *
28072 * @param {string} [filename]
28073 * @param {string|boolean} [fallback=true]
28074 * @return {object}
28075 * @api private
28076 */
28077
28078function createparams (filename, fallback) {
28079 if (filename === undefined) {
28080 return
28081 }
28082
28083 var params = {}
28084
28085 if (typeof filename !== 'string') {
28086 throw new TypeError('filename must be a string')
28087 }
28088
28089 // fallback defaults to true
28090 if (fallback === undefined) {
28091 fallback = true
28092 }
28093
28094 if (typeof fallback !== 'string' && typeof fallback !== 'boolean') {
28095 throw new TypeError('fallback must be a string or boolean')
28096 }
28097
28098 if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) {
28099 throw new TypeError('fallback must be ISO-8859-1 string')
28100 }
28101
28102 // restrict to file base name
28103 var name = basename(filename)
28104
28105 // determine if name is suitable for quoted string
28106 var isQuotedString = TEXT_REGEXP.test(name)
28107
28108 // generate fallback name
28109 var fallbackName = typeof fallback !== 'string'
28110 ? fallback && getlatin1(name)
28111 : basename(fallback)
28112 var hasFallback = typeof fallbackName === 'string' && fallbackName !== name
28113
28114 // set extended filename parameter
28115 if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) {
28116 params['filename*'] = name
28117 }
28118
28119 // set filename parameter
28120 if (isQuotedString || hasFallback) {
28121 params.filename = hasFallback
28122 ? fallbackName
28123 : name
28124 }
28125
28126 return params
28127}
28128
28129/**
28130 * Format object to Content-Disposition header.
28131 *
28132 * @param {object} obj
28133 * @param {string} obj.type
28134 * @param {object} [obj.parameters]
28135 * @return {string}
28136 * @api private
28137 */
28138
28139function format (obj) {
28140 var parameters = obj.parameters
28141 var type = obj.type
28142
28143 if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) {
28144 throw new TypeError('invalid type')
28145 }
28146
28147 // start with normalized type
28148 var string = String(type).toLowerCase()
28149
28150 // append parameters
28151 if (parameters && typeof parameters === 'object') {
28152 var param
28153 var params = Object.keys(parameters).sort()
28154
28155 for (var i = 0; i < params.length; i++) {
28156 param = params[i]
28157
28158 var val = param.substr(-1) === '*'
28159 ? ustring(parameters[param])
28160 : qstring(parameters[param])
28161
28162 string += '; ' + param + '=' + val
28163 }
28164 }
28165
28166 return string
28167}
28168
28169/**
28170 * Decode a RFC 6987 field value (gracefully).
28171 *
28172 * @param {string} str
28173 * @return {string}
28174 * @api private
28175 */
28176
28177function decodefield (str) {
28178 var match = EXT_VALUE_REGEXP.exec(str)
28179
28180 if (!match) {
28181 throw new TypeError('invalid extended field value')
28182 }
28183
28184 var charset = match[1].toLowerCase()
28185 var encoded = match[2]
28186 var value
28187
28188 // to binary string
28189 var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode)
28190
28191 switch (charset) {
28192 case 'iso-8859-1':
28193 value = getlatin1(binary)
28194 break
28195 case 'utf-8':
28196 value = new Buffer(binary, 'binary').toString('utf8')
28197 break
28198 default:
28199 throw new TypeError('unsupported charset in extended field')
28200 }
28201
28202 return value
28203}
28204
28205/**
28206 * Get ISO-8859-1 version of string.
28207 *
28208 * @param {string} val
28209 * @return {string}
28210 * @api private
28211 */
28212
28213function getlatin1 (val) {
28214 // simple Unicode -> ISO-8859-1 transformation
28215 return String(val).replace(NON_LATIN1_REGEXP, '?')
28216}
28217
28218/**
28219 * Parse Content-Disposition header string.
28220 *
28221 * @param {string} string
28222 * @return {object}
28223 * @api private
28224 */
28225
28226function parse (string) {
28227 if (!string || typeof string !== 'string') {
28228 throw new TypeError('argument string is required')
28229 }
28230
28231 var match = DISPOSITION_TYPE_REGEXP.exec(string)
28232
28233 if (!match) {
28234 throw new TypeError('invalid type format')
28235 }
28236
28237 // normalize type
28238 var index = match[0].length
28239 var type = match[1].toLowerCase()
28240
28241 var key
28242 var names = []
28243 var params = {}
28244 var value
28245
28246 // calculate index to start at
28247 index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';'
28248 ? index - 1
28249 : index
28250
28251 // match parameters
28252 while ((match = PARAM_REGEXP.exec(string))) {
28253 if (match.index !== index) {
28254 throw new TypeError('invalid parameter format')
28255 }
28256
28257 index += match[0].length
28258 key = match[1].toLowerCase()
28259 value = match[2]
28260
28261 if (names.indexOf(key) !== -1) {
28262 throw new TypeError('invalid duplicate parameter')
28263 }
28264
28265 names.push(key)
28266
28267 if (key.indexOf('*') + 1 === key.length) {
28268 // decode extended value
28269 key = key.slice(0, -1)
28270 value = decodefield(value)
28271
28272 // overwrite existing value
28273 params[key] = value
28274 continue
28275 }
28276
28277 if (typeof params[key] === 'string') {
28278 continue
28279 }
28280
28281 if (value[0] === '"') {
28282 // remove quotes and escapes
28283 value = value
28284 .substr(1, value.length - 2)
28285 .replace(QESC_REGEXP, '$1')
28286 }
28287
28288 params[key] = value
28289 }
28290
28291 if (index !== -1 && index !== string.length) {
28292 throw new TypeError('invalid parameter format')
28293 }
28294
28295 return new ContentDisposition(type, params)
28296}
28297
28298/**
28299 * Percent decode a single character.
28300 *
28301 * @param {string} str
28302 * @param {string} hex
28303 * @return {string}
28304 * @api private
28305 */
28306
28307function pdecode (str, hex) {
28308 return String.fromCharCode(parseInt(hex, 16))
28309}
28310
28311/**
28312 * Percent encode a single character.
28313 *
28314 * @param {string} char
28315 * @return {string}
28316 * @api private
28317 */
28318
28319function pencode (char) {
28320 var hex = String(char)
28321 .charCodeAt(0)
28322 .toString(16)
28323 .toUpperCase()
28324 return hex.length === 1
28325 ? '%0' + hex
28326 : '%' + hex
28327}
28328
28329/**
28330 * Quote a string for HTTP.
28331 *
28332 * @param {string} val
28333 * @return {string}
28334 * @api private
28335 */
28336
28337function qstring (val) {
28338 var str = String(val)
28339
28340 return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"'
28341}
28342
28343/**
28344 * Encode a Unicode string for HTTP (RFC 5987).
28345 *
28346 * @param {string} val
28347 * @return {string}
28348 * @api private
28349 */
28350
28351function ustring (val) {
28352 var str = String(val)
28353
28354 // percent encode as UTF-8
28355 var encoded = encodeURIComponent(str)
28356 .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode)
28357
28358 return 'UTF-8\'\'' + encoded
28359}
28360
28361/**
28362 * Class for parsed Content-Disposition header for v8 optimization
28363 */
28364
28365function ContentDisposition (type, parameters) {
28366 this.type = type
28367 this.parameters = parameters
28368}
28369
28370
28371/***/ }),
28372/* 310 */
28373/***/ (function(module, exports, __webpack_require__) {
28374
28375"use strict";
28376/*!
28377 * etag
28378 * Copyright(c) 2014-2016 Douglas Christopher Wilson
28379 * MIT Licensed
28380 */
28381
28382
28383
28384/**
28385 * Module exports.
28386 * @public
28387 */
28388
28389module.exports = etag
28390
28391/**
28392 * Module dependencies.
28393 * @private
28394 */
28395
28396var crypto = __webpack_require__(78)
28397var Stats = __webpack_require__(68).Stats
28398
28399/**
28400 * Module variables.
28401 * @private
28402 */
28403
28404var toString = Object.prototype.toString
28405
28406/**
28407 * Generate an entity tag.
28408 *
28409 * @param {Buffer|string} entity
28410 * @return {string}
28411 * @private
28412 */
28413
28414function entitytag (entity) {
28415 if (entity.length === 0) {
28416 // fast-path empty
28417 return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'
28418 }
28419
28420 // compute hash of entity
28421 var hash = crypto
28422 .createHash('sha1')
28423 .update(entity, 'utf8')
28424 .digest('base64')
28425 .substring(0, 27)
28426
28427 // compute length of entity
28428 var len = typeof entity === 'string'
28429 ? Buffer.byteLength(entity, 'utf8')
28430 : entity.length
28431
28432 return '"' + len.toString(16) + '-' + hash + '"'
28433}
28434
28435/**
28436 * Create a simple ETag.
28437 *
28438 * @param {string|Buffer|Stats} entity
28439 * @param {object} [options]
28440 * @param {boolean} [options.weak]
28441 * @return {String}
28442 * @public
28443 */
28444
28445function etag (entity, options) {
28446 if (entity == null) {
28447 throw new TypeError('argument entity is required')
28448 }
28449
28450 // support fs.Stats object
28451 var isStats = isstats(entity)
28452 var weak = options && typeof options.weak === 'boolean'
28453 ? options.weak
28454 : isStats
28455
28456 // validate argument
28457 if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) {
28458 throw new TypeError('argument entity must be string, Buffer, or fs.Stats')
28459 }
28460
28461 // generate entity tag
28462 var tag = isStats
28463 ? stattag(entity)
28464 : entitytag(entity)
28465
28466 return weak
28467 ? 'W/' + tag
28468 : tag
28469}
28470
28471/**
28472 * Determine if object is a Stats object.
28473 *
28474 * @param {object} obj
28475 * @return {boolean}
28476 * @api private
28477 */
28478
28479function isstats (obj) {
28480 // genuine fs.Stats
28481 if (typeof Stats === 'function' && obj instanceof Stats) {
28482 return true
28483 }
28484
28485 // quack quack
28486 return obj && typeof obj === 'object' &&
28487 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' &&
28488 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' &&
28489 'ino' in obj && typeof obj.ino === 'number' &&
28490 'size' in obj && typeof obj.size === 'number'
28491}
28492
28493/**
28494 * Generate a tag for a stat.
28495 *
28496 * @param {object} stat
28497 * @return {string}
28498 * @private
28499 */
28500
28501function stattag (stat) {
28502 var mtime = stat.mtime.getTime().toString(16)
28503 var size = stat.size.toString(16)
28504
28505 return '"' + size + '-' + mtime + '"'
28506}
28507
28508
28509/***/ }),
28510/* 311 */
28511/***/ (function(module, exports, __webpack_require__) {
28512
28513"use strict";
28514/*!
28515 * fresh
28516 * Copyright(c) 2012 TJ Holowaychuk
28517 * Copyright(c) 2016-2017 Douglas Christopher Wilson
28518 * MIT Licensed
28519 */
28520
28521
28522
28523/**
28524 * RegExp to check for no-cache token in Cache-Control.
28525 * @private
28526 */
28527
28528var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/
28529
28530/**
28531 * Module exports.
28532 * @public
28533 */
28534
28535module.exports = fresh
28536
28537/**
28538 * Check freshness of the response using request and response headers.
28539 *
28540 * @param {Object} reqHeaders
28541 * @param {Object} resHeaders
28542 * @return {Boolean}
28543 * @public
28544 */
28545
28546function fresh (reqHeaders, resHeaders) {
28547 // fields
28548 var modifiedSince = reqHeaders['if-modified-since']
28549 var noneMatch = reqHeaders['if-none-match']
28550
28551 // unconditional request
28552 if (!modifiedSince && !noneMatch) {
28553 return false
28554 }
28555
28556 // Always return stale when Cache-Control: no-cache
28557 // to support end-to-end reload requests
28558 // https://tools.ietf.org/html/rfc2616#section-14.9.4
28559 var cacheControl = reqHeaders['cache-control']
28560 if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
28561 return false
28562 }
28563
28564 // if-none-match
28565 if (noneMatch && noneMatch !== '*') {
28566 var etag = resHeaders['etag']
28567
28568 if (!etag) {
28569 return false
28570 }
28571
28572 var etagStale = true
28573 var matches = parseTokenList(noneMatch)
28574 for (var i = 0; i < matches.length; i++) {
28575 var match = matches[i]
28576 if (match === etag || match === 'W/' + etag || 'W/' + match === etag) {
28577 etagStale = false
28578 break
28579 }
28580 }
28581
28582 if (etagStale) {
28583 return false
28584 }
28585 }
28586
28587 // if-modified-since
28588 if (modifiedSince) {
28589 var lastModified = resHeaders['last-modified']
28590 var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince))
28591
28592 if (modifiedStale) {
28593 return false
28594 }
28595 }
28596
28597 return true
28598}
28599
28600/**
28601 * Parse an HTTP Date into a number.
28602 *
28603 * @param {string} date
28604 * @private
28605 */
28606
28607function parseHttpDate (date) {
28608 var timestamp = date && Date.parse(date)
28609
28610 // istanbul ignore next: guard against date.js Date.parse patching
28611 return typeof timestamp === 'number'
28612 ? timestamp
28613 : NaN
28614}
28615
28616/**
28617 * Parse a HTTP token list.
28618 *
28619 * @param {string} str
28620 * @private
28621 */
28622
28623function parseTokenList (str) {
28624 var end = 0
28625 var list = []
28626 var start = 0
28627
28628 // gather tokens
28629 for (var i = 0, len = str.length; i < len; i++) {
28630 switch (str.charCodeAt(i)) {
28631 case 0x20: /* */
28632 if (start === end) {
28633 start = end = i + 1
28634 }
28635 break
28636 case 0x2c: /* , */
28637 list.push(str.substring(start, end))
28638 start = end = i + 1
28639 break
28640 default:
28641 end = i + 1
28642 break
28643 }
28644 }
28645
28646 // final token
28647 list.push(str.substring(start, end))
28648
28649 return list
28650}
28651
28652
28653/***/ }),
28654/* 312 */
28655/***/ (function(module, exports, __webpack_require__) {
28656
28657"use strict";
28658/*!
28659 * range-parser
28660 * Copyright(c) 2012-2014 TJ Holowaychuk
28661 * Copyright(c) 2015-2016 Douglas Christopher Wilson
28662 * MIT Licensed
28663 */
28664
28665
28666
28667/**
28668 * Module exports.
28669 * @public
28670 */
28671
28672module.exports = rangeParser
28673
28674/**
28675 * Parse "Range" header `str` relative to the given file `size`.
28676 *
28677 * @param {Number} size
28678 * @param {String} str
28679 * @param {Object} [options]
28680 * @return {Array}
28681 * @public
28682 */
28683
28684function rangeParser (size, str, options) {
28685 var index = str.indexOf('=')
28686
28687 if (index === -1) {
28688 return -2
28689 }
28690
28691 // split the range string
28692 var arr = str.slice(index + 1).split(',')
28693 var ranges = []
28694
28695 // add ranges type
28696 ranges.type = str.slice(0, index)
28697
28698 // parse all ranges
28699 for (var i = 0; i < arr.length; i++) {
28700 var range = arr[i].split('-')
28701 var start = parseInt(range[0], 10)
28702 var end = parseInt(range[1], 10)
28703
28704 // -nnn
28705 if (isNaN(start)) {
28706 start = size - end
28707 end = size - 1
28708 // nnn-
28709 } else if (isNaN(end)) {
28710 end = size - 1
28711 }
28712
28713 // limit last-byte-pos to current length
28714 if (end > size - 1) {
28715 end = size - 1
28716 }
28717
28718 // invalid or unsatisifiable
28719 if (isNaN(start) || isNaN(end) || start > end || start < 0) {
28720 continue
28721 }
28722
28723 // add range
28724 ranges.push({
28725 start: start,
28726 end: end
28727 })
28728 }
28729
28730 if (ranges.length < 1) {
28731 // unsatisifiable
28732 return -1
28733 }
28734
28735 return options && options.combine
28736 ? combineRanges(ranges)
28737 : ranges
28738}
28739
28740/**
28741 * Combine overlapping & adjacent ranges.
28742 * @private
28743 */
28744
28745function combineRanges (ranges) {
28746 var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart)
28747
28748 for (var j = 0, i = 1; i < ordered.length; i++) {
28749 var range = ordered[i]
28750 var current = ordered[j]
28751
28752 if (range.start > current.end + 1) {
28753 // next range
28754 ordered[++j] = range
28755 } else if (range.end > current.end) {
28756 // extend range
28757 current.end = range.end
28758 current.index = Math.min(current.index, range.index)
28759 }
28760 }
28761
28762 // trim ordered array
28763 ordered.length = j + 1
28764
28765 // generate combined range
28766 var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex)
28767
28768 // copy ranges type
28769 combined.type = ranges.type
28770
28771 return combined
28772}
28773
28774/**
28775 * Map function to add index value to ranges.
28776 * @private
28777 */
28778
28779function mapWithIndex (range, index) {
28780 return {
28781 start: range.start,
28782 end: range.end,
28783 index: index
28784 }
28785}
28786
28787/**
28788 * Map function to remove index value from ranges.
28789 * @private
28790 */
28791
28792function mapWithoutIndex (range) {
28793 return {
28794 start: range.start,
28795 end: range.end
28796 }
28797}
28798
28799/**
28800 * Sort function to sort ranges by index.
28801 * @private
28802 */
28803
28804function sortByRangeIndex (a, b) {
28805 return a.index - b.index
28806}
28807
28808/**
28809 * Sort function to sort ranges by start position.
28810 * @private
28811 */
28812
28813function sortByRangeStart (a, b) {
28814 return a.start - b.start
28815}
28816
28817
28818/***/ }),
28819/* 313 */
28820/***/ (function(module, exports, __webpack_require__) {
28821
28822"use strict";
28823/*!
28824 * proxy-addr
28825 * Copyright(c) 2014-2016 Douglas Christopher Wilson
28826 * MIT Licensed
28827 */
28828
28829
28830
28831/**
28832 * Module exports.
28833 * @public
28834 */
28835
28836module.exports = proxyaddr
28837module.exports.all = alladdrs
28838module.exports.compile = compile
28839
28840/**
28841 * Module dependencies.
28842 * @private
28843 */
28844
28845var forwarded = __webpack_require__(657)
28846var ipaddr = __webpack_require__(658)
28847
28848/**
28849 * Variables.
28850 * @private
28851 */
28852
28853var DIGIT_REGEXP = /^[0-9]+$/
28854var isip = ipaddr.isValid
28855var parseip = ipaddr.parse
28856
28857/**
28858 * Pre-defined IP ranges.
28859 * @private
28860 */
28861
28862var IP_RANGES = {
28863 linklocal: ['169.254.0.0/16', 'fe80::/10'],
28864 loopback: ['127.0.0.1/8', '::1/128'],
28865 uniquelocal: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', 'fc00::/7']
28866}
28867
28868/**
28869 * Get all addresses in the request, optionally stopping
28870 * at the first untrusted.
28871 *
28872 * @param {Object} request
28873 * @param {Function|Array|String} [trust]
28874 * @public
28875 */
28876
28877function alladdrs (req, trust) {
28878 // get addresses
28879 var addrs = forwarded(req)
28880
28881 if (!trust) {
28882 // Return all addresses
28883 return addrs
28884 }
28885
28886 if (typeof trust !== 'function') {
28887 trust = compile(trust)
28888 }
28889
28890 for (var i = 0; i < addrs.length - 1; i++) {
28891 if (trust(addrs[i], i)) continue
28892
28893 addrs.length = i + 1
28894 }
28895
28896 return addrs
28897}
28898
28899/**
28900 * Compile argument into trust function.
28901 *
28902 * @param {Array|String} val
28903 * @private
28904 */
28905
28906function compile (val) {
28907 if (!val) {
28908 throw new TypeError('argument is required')
28909 }
28910
28911 var trust
28912
28913 if (typeof val === 'string') {
28914 trust = [val]
28915 } else if (Array.isArray(val)) {
28916 trust = val.slice()
28917 } else {
28918 throw new TypeError('unsupported trust argument')
28919 }
28920
28921 for (var i = 0; i < trust.length; i++) {
28922 val = trust[i]
28923
28924 if (!IP_RANGES.hasOwnProperty(val)) {
28925 continue
28926 }
28927
28928 // Splice in pre-defined range
28929 val = IP_RANGES[val]
28930 trust.splice.apply(trust, [i, 1].concat(val))
28931 i += val.length - 1
28932 }
28933
28934 return compileTrust(compileRangeSubnets(trust))
28935}
28936
28937/**
28938 * Compile `arr` elements into range subnets.
28939 *
28940 * @param {Array} arr
28941 * @private
28942 */
28943
28944function compileRangeSubnets (arr) {
28945 var rangeSubnets = new Array(arr.length)
28946
28947 for (var i = 0; i < arr.length; i++) {
28948 rangeSubnets[i] = parseipNotation(arr[i])
28949 }
28950
28951 return rangeSubnets
28952}
28953
28954/**
28955 * Compile range subnet array into trust function.
28956 *
28957 * @param {Array} rangeSubnets
28958 * @private
28959 */
28960
28961function compileTrust (rangeSubnets) {
28962 // Return optimized function based on length
28963 var len = rangeSubnets.length
28964 return len === 0
28965 ? trustNone
28966 : len === 1
28967 ? trustSingle(rangeSubnets[0])
28968 : trustMulti(rangeSubnets)
28969}
28970
28971/**
28972 * Parse IP notation string into range subnet.
28973 *
28974 * @param {String} note
28975 * @private
28976 */
28977
28978function parseipNotation (note) {
28979 var pos = note.lastIndexOf('/')
28980 var str = pos !== -1
28981 ? note.substring(0, pos)
28982 : note
28983
28984 if (!isip(str)) {
28985 throw new TypeError('invalid IP address: ' + str)
28986 }
28987
28988 var ip = parseip(str)
28989
28990 if (pos === -1 && ip.kind() === 'ipv6' && ip.isIPv4MappedAddress()) {
28991 // Store as IPv4
28992 ip = ip.toIPv4Address()
28993 }
28994
28995 var max = ip.kind() === 'ipv6'
28996 ? 128
28997 : 32
28998
28999 var range = pos !== -1
29000 ? note.substring(pos + 1, note.length)
29001 : null
29002
29003 if (range === null) {
29004 range = max
29005 } else if (DIGIT_REGEXP.test(range)) {
29006 range = parseInt(range, 10)
29007 } else if (ip.kind() === 'ipv4' && isip(range)) {
29008 range = parseNetmask(range)
29009 } else {
29010 range = null
29011 }
29012
29013 if (range <= 0 || range > max) {
29014 throw new TypeError('invalid range on address: ' + note)
29015 }
29016
29017 return [ip, range]
29018}
29019
29020/**
29021 * Parse netmask string into CIDR range.
29022 *
29023 * @param {String} netmask
29024 * @private
29025 */
29026
29027function parseNetmask (netmask) {
29028 var ip = parseip(netmask)
29029 var kind = ip.kind()
29030
29031 return kind === 'ipv4'
29032 ? ip.prefixLengthFromSubnetMask()
29033 : null
29034}
29035
29036/**
29037 * Determine address of proxied request.
29038 *
29039 * @param {Object} request
29040 * @param {Function|Array|String} trust
29041 * @public
29042 */
29043
29044function proxyaddr (req, trust) {
29045 if (!req) {
29046 throw new TypeError('req argument is required')
29047 }
29048
29049 if (!trust) {
29050 throw new TypeError('trust argument is required')
29051 }
29052
29053 var addrs = alladdrs(req, trust)
29054 var addr = addrs[addrs.length - 1]
29055
29056 return addr
29057}
29058
29059/**
29060 * Static trust function to trust nothing.
29061 *
29062 * @private
29063 */
29064
29065function trustNone () {
29066 return false
29067}
29068
29069/**
29070 * Compile trust function for multiple subnets.
29071 *
29072 * @param {Array} subnets
29073 * @private
29074 */
29075
29076function trustMulti (subnets) {
29077 return function trust (addr) {
29078 if (!isip(addr)) return false
29079
29080 var ip = parseip(addr)
29081 var ipconv
29082 var kind = ip.kind()
29083
29084 for (var i = 0; i < subnets.length; i++) {
29085 var subnet = subnets[i]
29086 var subnetip = subnet[0]
29087 var subnetkind = subnetip.kind()
29088 var subnetrange = subnet[1]
29089 var trusted = ip
29090
29091 if (kind !== subnetkind) {
29092 if (subnetkind === 'ipv4' && !ip.isIPv4MappedAddress()) {
29093 // Incompatible IP addresses
29094 continue
29095 }
29096
29097 if (!ipconv) {
29098 // Convert IP to match subnet IP kind
29099 ipconv = subnetkind === 'ipv4'
29100 ? ip.toIPv4Address()
29101 : ip.toIPv4MappedAddress()
29102 }
29103
29104 trusted = ipconv
29105 }
29106
29107 if (trusted.match(subnetip, subnetrange)) {
29108 return true
29109 }
29110 }
29111
29112 return false
29113 }
29114}
29115
29116/**
29117 * Compile trust function for single subnet.
29118 *
29119 * @param {Object} subnet
29120 * @private
29121 */
29122
29123function trustSingle (subnet) {
29124 var subnetip = subnet[0]
29125 var subnetkind = subnetip.kind()
29126 var subnetisipv4 = subnetkind === 'ipv4'
29127 var subnetrange = subnet[1]
29128
29129 return function trust (addr) {
29130 if (!isip(addr)) return false
29131
29132 var ip = parseip(addr)
29133 var kind = ip.kind()
29134
29135 if (kind !== subnetkind) {
29136 if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
29137 // Incompatible IP addresses
29138 return false
29139 }
29140
29141 // Convert IP to match subnet IP kind
29142 ip = subnetisipv4
29143 ? ip.toIPv4Address()
29144 : ip.toIPv4MappedAddress()
29145 }
29146
29147 return ip.match(subnetip, subnetrange)
29148 }
29149}
29150
29151
29152/***/ }),
29153/* 314 */
29154/***/ (function(module, exports, __webpack_require__) {
29155
29156var jws = __webpack_require__(194);
29157
29158module.exports = function (jwt, options) {
29159 options = options || {};
29160 var decoded = jws.decode(jwt, options);
29161 if (!decoded) { return null; }
29162 var payload = decoded.payload;
29163
29164 //try parse the payload
29165 if(typeof payload === 'string') {
29166 try {
29167 var obj = JSON.parse(payload);
29168 if(typeof obj === 'object') {
29169 payload = obj;
29170 }
29171 } catch (e) { }
29172 }
29173
29174 //return header if `complete` option is enabled. header includes claims
29175 //such as `kid` and `alg` used to select the key within a JWKS needed to
29176 //verify the signature
29177 if (options.complete === true) {
29178 return {
29179 header: decoded.header,
29180 payload: payload,
29181 signature: decoded.signature
29182 };
29183 }
29184 return payload;
29185};
29186
29187
29188/***/ }),
29189/* 315 */
29190/***/ (function(module, exports, __webpack_require__) {
29191
29192/*global module, process*/
29193var Buffer = __webpack_require__(29).Buffer;
29194var Stream = __webpack_require__(40);
29195var util = __webpack_require__(54);
29196
29197function DataStream(data) {
29198 this.buffer = null;
29199 this.writable = true;
29200 this.readable = true;
29201
29202 // No input
29203 if (!data) {
29204 this.buffer = Buffer.alloc(0);
29205 return this;
29206 }
29207
29208 // Stream
29209 if (typeof data.pipe === 'function') {
29210 this.buffer = Buffer.alloc(0);
29211 data.pipe(this);
29212 return this;
29213 }
29214
29215 // Buffer or String
29216 // or Object (assumedly a passworded key)
29217 if (data.length || typeof data === 'object') {
29218 this.buffer = data;
29219 this.writable = false;
29220 process.nextTick(function () {
29221 this.emit('end', data);
29222 this.readable = false;
29223 this.emit('close');
29224 }.bind(this));
29225 return this;
29226 }
29227
29228 throw new TypeError('Unexpected data type ('+ typeof data + ')');
29229}
29230util.inherits(DataStream, Stream);
29231
29232DataStream.prototype.write = function write(data) {
29233 this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);
29234 this.emit('data', data);
29235};
29236
29237DataStream.prototype.end = function end(data) {
29238 if (data)
29239 this.write(data);
29240 this.emit('end', data);
29241 this.emit('close');
29242 this.writable = false;
29243 this.readable = false;
29244};
29245
29246module.exports = DataStream;
29247
29248
29249/***/ }),
29250/* 316 */
29251/***/ (function(module, exports, __webpack_require__) {
29252
29253var bufferEqual = __webpack_require__(675);
29254var base64url = __webpack_require__(130);
29255var Buffer = __webpack_require__(29).Buffer;
29256var crypto = __webpack_require__(78);
29257var formatEcdsa = __webpack_require__(676);
29258var util = __webpack_require__(54);
29259
29260var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512" and "none".'
29261var MSG_INVALID_SECRET = 'secret must be a string or buffer';
29262var MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';
29263var MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';
29264
29265function typeError(template) {
29266 var args = [].slice.call(arguments, 1);
29267 var errMsg = util.format.bind(util, template).apply(null, args);
29268 return new TypeError(errMsg);
29269}
29270
29271function bufferOrString(obj) {
29272 return Buffer.isBuffer(obj) || typeof obj === 'string';
29273}
29274
29275function normalizeInput(thing) {
29276 if (!bufferOrString(thing))
29277 thing = JSON.stringify(thing);
29278 return thing;
29279}
29280
29281function createHmacSigner(bits) {
29282 return function sign(thing, secret) {
29283 if (!bufferOrString(secret))
29284 throw typeError(MSG_INVALID_SECRET);
29285 thing = normalizeInput(thing);
29286 var hmac = crypto.createHmac('sha' + bits, secret);
29287 var sig = (hmac.update(thing), hmac.digest('base64'))
29288 return base64url.fromBase64(sig);
29289 }
29290}
29291
29292function createHmacVerifier(bits) {
29293 return function verify(thing, signature, secret) {
29294 var computedSig = createHmacSigner(bits)(thing, secret);
29295 return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));
29296 }
29297}
29298
29299function createKeySigner(bits) {
29300 return function sign(thing, privateKey) {
29301 if (!bufferOrString(privateKey) && !(typeof privateKey === 'object'))
29302 throw typeError(MSG_INVALID_SIGNER_KEY);
29303 thing = normalizeInput(thing);
29304 // Even though we are specifying "RSA" here, this works with ECDSA
29305 // keys as well.
29306 var signer = crypto.createSign('RSA-SHA' + bits);
29307 var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));
29308 return base64url.fromBase64(sig);
29309 }
29310}
29311
29312function createKeyVerifier(bits) {
29313 return function verify(thing, signature, publicKey) {
29314 if (!bufferOrString(publicKey))
29315 throw typeError(MSG_INVALID_VERIFIER_KEY);
29316 thing = normalizeInput(thing);
29317 signature = base64url.toBase64(signature);
29318 var verifier = crypto.createVerify('RSA-SHA' + bits);
29319 verifier.update(thing);
29320 return verifier.verify(publicKey, signature, 'base64');
29321 }
29322}
29323
29324function createECDSASigner(bits) {
29325 var inner = createKeySigner(bits);
29326 return function sign() {
29327 var signature = inner.apply(null, arguments);
29328 signature = formatEcdsa.derToJose(signature, 'ES' + bits);
29329 return signature;
29330 };
29331}
29332
29333function createECDSAVerifer(bits) {
29334 var inner = createKeyVerifier(bits);
29335 return function verify(thing, signature, publicKey) {
29336 signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');
29337 var result = inner(thing, signature, publicKey);
29338 return result;
29339 };
29340}
29341
29342function createNoneSigner() {
29343 return function sign() {
29344 return '';
29345 }
29346}
29347
29348function createNoneVerifier() {
29349 return function verify(thing, signature) {
29350 return signature === '';
29351 }
29352}
29353
29354module.exports = function jwa(algorithm) {
29355 var signerFactories = {
29356 hs: createHmacSigner,
29357 rs: createKeySigner,
29358 es: createECDSASigner,
29359 none: createNoneSigner,
29360 }
29361 var verifierFactories = {
29362 hs: createHmacVerifier,
29363 rs: createKeyVerifier,
29364 es: createECDSAVerifer,
29365 none: createNoneVerifier,
29366 }
29367 var match = algorithm.match(/^(RS|ES|HS)(256|384|512)$|^(none)$/i);
29368 if (!match)
29369 throw typeError(MSG_INVALID_ALGORITHM, algorithm);
29370 var algo = (match[1] || match[3]).toLowerCase();
29371 var bits = match[2];
29372
29373 return {
29374 sign: signerFactories[algo](bits),
29375 verify: verifierFactories[algo](bits),
29376 }
29377};
29378
29379
29380/***/ }),
29381/* 317 */
29382/***/ (function(module, exports, __webpack_require__) {
29383
29384/*global module*/
29385var Buffer = __webpack_require__(16).Buffer;
29386
29387module.exports = function toString(obj) {
29388 if (typeof obj === 'string')
29389 return obj;
29390 if (typeof obj === 'number' || Buffer.isBuffer(obj))
29391 return obj.toString();
29392 return JSON.stringify(obj);
29393};
29394
29395
29396/***/ }),
29397/* 318 */
29398/***/ (function(module, exports, __webpack_require__) {
29399
29400var JsonWebTokenError = __webpack_require__(131);
29401
29402var NotBeforeError = function (message, date) {
29403 JsonWebTokenError.call(this, message);
29404 this.name = 'NotBeforeError';
29405 this.date = date;
29406};
29407
29408NotBeforeError.prototype = Object.create(JsonWebTokenError.prototype);
29409
29410NotBeforeError.prototype.constructor = NotBeforeError;
29411
29412module.exports = NotBeforeError;
29413
29414/***/ }),
29415/* 319 */
29416/***/ (function(module, exports, __webpack_require__) {
29417
29418var JsonWebTokenError = __webpack_require__(131);
29419
29420var TokenExpiredError = function (message, expiredAt) {
29421 JsonWebTokenError.call(this, message);
29422 this.name = 'TokenExpiredError';
29423 this.expiredAt = expiredAt;
29424};
29425
29426TokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);
29427
29428TokenExpiredError.prototype.constructor = TokenExpiredError;
29429
29430module.exports = TokenExpiredError;
29431
29432/***/ }),
29433/* 320 */
29434/***/ (function(module, exports, __webpack_require__) {
29435
29436var ms = __webpack_require__(187);
29437
29438module.exports = function (time, iat) {
29439 var timestamp = iat || Math.floor(Date.now() / 1000);
29440
29441 if (typeof time === 'string') {
29442 var milliseconds = ms(time);
29443 if (typeof milliseconds === 'undefined') {
29444 return;
29445 }
29446 return Math.floor(timestamp + milliseconds / 1000);
29447 } else if (typeof time === 'number') {
29448 return timestamp + time;
29449 } else {
29450 return;
29451 }
29452
29453};
29454
29455/***/ }),
29456/* 321 */
29457/***/ (function(module, exports) {
29458
29459module.exports = extend
29460
29461var hasOwnProperty = Object.prototype.hasOwnProperty;
29462
29463function extend() {
29464 var target = {}
29465
29466 for (var i = 0; i < arguments.length; i++) {
29467 var source = arguments[i]
29468
29469 for (var key in source) {
29470 if (hasOwnProperty.call(source, key)) {
29471 target[key] = source[key]
29472 }
29473 }
29474 }
29475
29476 return target
29477}
29478
29479
29480/***/ }),
29481/* 322 */
29482/***/ (function(module, exports, __webpack_require__) {
29483
29484module.exports = { "default": __webpack_require__(689), __esModule: true };
29485
29486/***/ }),
29487/* 323 */
29488/***/ (function(module, exports, __webpack_require__) {
29489
29490"use strict";
29491
29492var LIBRARY = __webpack_require__(324);
29493var $export = __webpack_require__(132);
29494var redefine = __webpack_require__(695);
29495var hide = __webpack_require__(80);
29496var has = __webpack_require__(136);
29497var Iterators = __webpack_require__(95);
29498var $iterCreate = __webpack_require__(696);
29499var setToStringTag = __webpack_require__(200);
29500var getPrototypeOf = __webpack_require__(704);
29501var ITERATOR = __webpack_require__(32)('iterator');
29502var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
29503var FF_ITERATOR = '@@iterator';
29504var KEYS = 'keys';
29505var VALUES = 'values';
29506
29507var returnThis = function () { return this; };
29508
29509module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
29510 $iterCreate(Constructor, NAME, next);
29511 var getMethod = function (kind) {
29512 if (!BUGGY && kind in proto) return proto[kind];
29513 switch (kind) {
29514 case KEYS: return function keys() { return new Constructor(this, kind); };
29515 case VALUES: return function values() { return new Constructor(this, kind); };
29516 } return function entries() { return new Constructor(this, kind); };
29517 };
29518 var TAG = NAME + ' Iterator';
29519 var DEF_VALUES = DEFAULT == VALUES;
29520 var VALUES_BUG = false;
29521 var proto = Base.prototype;
29522 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
29523 var $default = (!BUGGY && $native) || getMethod(DEFAULT);
29524 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
29525 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
29526 var methods, key, IteratorPrototype;
29527 // Fix native
29528 if ($anyNative) {
29529 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
29530 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
29531 // Set @@toStringTag to native iterators
29532 setToStringTag(IteratorPrototype, TAG, true);
29533 // fix for some old engines
29534 if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);
29535 }
29536 }
29537 // fix Array#{values, @@iterator}.name in V8 / FF
29538 if (DEF_VALUES && $native && $native.name !== VALUES) {
29539 VALUES_BUG = true;
29540 $default = function values() { return $native.call(this); };
29541 }
29542 // Define iterator
29543 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
29544 hide(proto, ITERATOR, $default);
29545 }
29546 // Plug for library
29547 Iterators[NAME] = $default;
29548 Iterators[TAG] = returnThis;
29549 if (DEFAULT) {
29550 methods = {
29551 values: DEF_VALUES ? $default : getMethod(VALUES),
29552 keys: IS_SET ? $default : getMethod(KEYS),
29553 entries: $entries
29554 };
29555 if (FORCED) for (key in methods) {
29556 if (!(key in proto)) redefine(proto, key, methods[key]);
29557 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
29558 }
29559 return methods;
29560};
29561
29562
29563/***/ }),
29564/* 324 */
29565/***/ (function(module, exports) {
29566
29567module.exports = true;
29568
29569
29570/***/ }),
29571/* 325 */
29572/***/ (function(module, exports) {
29573
29574module.exports = function (exec) {
29575 try {
29576 return !!exec();
29577 } catch (e) {
29578 return true;
29579 }
29580};
29581
29582
29583/***/ }),
29584/* 326 */
29585/***/ (function(module, exports) {
29586
29587module.exports = function (bitmap, value) {
29588 return {
29589 enumerable: !(bitmap & 1),
29590 configurable: !(bitmap & 2),
29591 writable: !(bitmap & 4),
29592 value: value
29593 };
29594};
29595
29596
29597/***/ }),
29598/* 327 */
29599/***/ (function(module, exports, __webpack_require__) {
29600
29601// 7.1.15 ToLength
29602var toInteger = __webpack_require__(195);
29603var min = Math.min;
29604module.exports = function (it) {
29605 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
29606};
29607
29608
29609/***/ }),
29610/* 328 */
29611/***/ (function(module, exports, __webpack_require__) {
29612
29613var global = __webpack_require__(31);
29614var SHARED = '__core-js_shared__';
29615var store = global[SHARED] || (global[SHARED] = {});
29616module.exports = function (key) {
29617 return store[key] || (store[key] = {});
29618};
29619
29620
29621/***/ }),
29622/* 329 */
29623/***/ (function(module, exports) {
29624
29625var id = 0;
29626var px = Math.random();
29627module.exports = function (key) {
29628 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
29629};
29630
29631
29632/***/ }),
29633/* 330 */
29634/***/ (function(module, exports) {
29635
29636// IE 8- don't enum bug keys
29637module.exports = (
29638 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
29639).split(',');
29640
29641
29642/***/ }),
29643/* 331 */
29644/***/ (function(module, exports, __webpack_require__) {
29645
29646var document = __webpack_require__(31).document;
29647module.exports = document && document.documentElement;
29648
29649
29650/***/ }),
29651/* 332 */
29652/***/ (function(module, exports, __webpack_require__) {
29653
29654// getting tag from 19.1.3.6 Object.prototype.toString()
29655var cof = __webpack_require__(137);
29656var TAG = __webpack_require__(32)('toStringTag');
29657// ES3 wrong here
29658var ARG = cof(function () { return arguments; }()) == 'Arguments';
29659
29660// fallback for IE11 Script Access Denied error
29661var tryGet = function (it, key) {
29662 try {
29663 return it[key];
29664 } catch (e) { /* empty */ }
29665};
29666
29667module.exports = function (it) {
29668 var O, T, B;
29669 return it === undefined ? 'Undefined' : it === null ? 'Null'
29670 // @@toStringTag case
29671 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
29672 // builtinTag case
29673 : ARG ? cof(O)
29674 // ES3 arguments fallback
29675 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
29676};
29677
29678
29679/***/ }),
29680/* 333 */
29681/***/ (function(module, exports, __webpack_require__) {
29682
29683// 7.3.20 SpeciesConstructor(O, defaultConstructor)
29684var anObject = __webpack_require__(70);
29685var aFunction = __webpack_require__(134);
29686var SPECIES = __webpack_require__(32)('species');
29687module.exports = function (O, D) {
29688 var C = anObject(O).constructor;
29689 var S;
29690 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
29691};
29692
29693
29694/***/ }),
29695/* 334 */
29696/***/ (function(module, exports, __webpack_require__) {
29697
29698var ctx = __webpack_require__(133);
29699var invoke = __webpack_require__(716);
29700var html = __webpack_require__(331);
29701var cel = __webpack_require__(197);
29702var global = __webpack_require__(31);
29703var process = global.process;
29704var setTask = global.setImmediate;
29705var clearTask = global.clearImmediate;
29706var MessageChannel = global.MessageChannel;
29707var Dispatch = global.Dispatch;
29708var counter = 0;
29709var queue = {};
29710var ONREADYSTATECHANGE = 'onreadystatechange';
29711var defer, channel, port;
29712var run = function () {
29713 var id = +this;
29714 // eslint-disable-next-line no-prototype-builtins
29715 if (queue.hasOwnProperty(id)) {
29716 var fn = queue[id];
29717 delete queue[id];
29718 fn();
29719 }
29720};
29721var listener = function (event) {
29722 run.call(event.data);
29723};
29724// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
29725if (!setTask || !clearTask) {
29726 setTask = function setImmediate(fn) {
29727 var args = [];
29728 var i = 1;
29729 while (arguments.length > i) args.push(arguments[i++]);
29730 queue[++counter] = function () {
29731 // eslint-disable-next-line no-new-func
29732 invoke(typeof fn == 'function' ? fn : Function(fn), args);
29733 };
29734 defer(counter);
29735 return counter;
29736 };
29737 clearTask = function clearImmediate(id) {
29738 delete queue[id];
29739 };
29740 // Node.js 0.8-
29741 if (__webpack_require__(137)(process) == 'process') {
29742 defer = function (id) {
29743 process.nextTick(ctx(run, id, 1));
29744 };
29745 // Sphere (JS game engine) Dispatch API
29746 } else if (Dispatch && Dispatch.now) {
29747 defer = function (id) {
29748 Dispatch.now(ctx(run, id, 1));
29749 };
29750 // Browsers with MessageChannel, includes WebWorkers
29751 } else if (MessageChannel) {
29752 channel = new MessageChannel();
29753 port = channel.port2;
29754 channel.port1.onmessage = listener;
29755 defer = ctx(port.postMessage, port, 1);
29756 // Browsers with postMessage, skip WebWorkers
29757 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
29758 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
29759 defer = function (id) {
29760 global.postMessage(id + '', '*');
29761 };
29762 global.addEventListener('message', listener, false);
29763 // IE8-
29764 } else if (ONREADYSTATECHANGE in cel('script')) {
29765 defer = function (id) {
29766 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
29767 html.removeChild(this);
29768 run.call(id);
29769 };
29770 };
29771 // Rest old browsers
29772 } else {
29773 defer = function (id) {
29774 setTimeout(ctx(run, id, 1), 0);
29775 };
29776 }
29777}
29778module.exports = {
29779 set: setTask,
29780 clear: clearTask
29781};
29782
29783
29784/***/ }),
29785/* 335 */
29786/***/ (function(module, exports) {
29787
29788module.exports = function (exec) {
29789 try {
29790 return { e: false, v: exec() };
29791 } catch (e) {
29792 return { e: true, v: e };
29793 }
29794};
29795
29796
29797/***/ }),
29798/* 336 */
29799/***/ (function(module, exports, __webpack_require__) {
29800
29801var anObject = __webpack_require__(70);
29802var isObject = __webpack_require__(93);
29803var newPromiseCapability = __webpack_require__(201);
29804
29805module.exports = function (C, x) {
29806 anObject(C);
29807 if (isObject(x) && x.constructor === C) return x;
29808 var promiseCapability = newPromiseCapability.f(C);
29809 var resolve = promiseCapability.resolve;
29810 resolve(x);
29811 return promiseCapability.promise;
29812};
29813
29814
29815/***/ }),
29816/* 337 */
29817/***/ (function(module, exports, __webpack_require__) {
29818
29819"use strict";
29820
29821
29822Object.defineProperty(exports, "__esModule", {
29823 value: true
29824});
29825exports.base64 = base64;
29826exports.unbase64 = unbase64;
29827function base64(i) {
29828 return Buffer.from(i, 'utf8').toString('base64');
29829} /**
29830 * Copyright (c) 2015-present, Facebook, Inc.
29831 *
29832 * This source code is licensed under the MIT license found in the
29833 * LICENSE file in the root directory of this source tree.
29834 *
29835 *
29836 */
29837
29838function unbase64(i) {
29839 return Buffer.from(i, 'base64').toString('utf8');
29840}
29841
29842/***/ }),
29843/* 338 */
29844/***/ (function(module, exports, __webpack_require__) {
29845
29846"use strict";
29847
29848
29849Object.defineProperty(exports, "__esModule", {
29850 value: true
29851});
29852
29853var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
29854
29855var _graphql = __webpack_require__(14);
29856
29857var _graphqlRelay = __webpack_require__(96);
29858
29859function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
29860
29861var setter = {
29862 activityID: {
29863 type: _graphql.GraphQLString,
29864 description: 'id'
29865 },
29866 name: {
29867 type: _graphql.GraphQLString,
29868 description: 'clientID'
29869 },
29870 skills: {
29871 type: new _graphql.GraphQLList(_graphql.GraphQLString),
29872 description: 'skills name'
29873 },
29874 description: {
29875 type: _graphql.GraphQLString,
29876 description: 'activity description'
29877 },
29878 activity: {
29879 type: _graphql.GraphQLString,
29880 description: 'kind fun or pro'
29881 },
29882 type: {
29883 type: _graphql.GraphQLString,
29884 description: 'search or request'
29885 },
29886 userID: {
29887 type: _graphql.GraphQLString,
29888 description: 'user id'
29889 },
29890 active: {
29891 type: _graphql.GraphQLBoolean,
29892 description: 'is active'
29893 },
29894 matchedActivitiesID: {
29895 type: new _graphql.GraphQLList(_graphql.GraphQLString),
29896 description: 'matched activities'
29897 },
29898 score: {
29899 type: _graphql.GraphQLString,
29900 description: 'score'
29901 }
29902};
29903
29904var getter = function getter(ActivitiesType) {
29905 return _extends({}, setter, {
29906 id: (0, _graphqlRelay.globalIdField)('Activity'),
29907 matchedActivities: {
29908 type: new _graphql.GraphQLList(ActivitiesType),
29909 resolve: function () {
29910 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(obj, args, _ref2) {
29911 var loaders = _ref2.loaders;
29912 var activities;
29913 return regeneratorRuntime.wrap(function _callee$(_context) {
29914 while (1) {
29915 switch (_context.prev = _context.next) {
29916 case 0:
29917 if (obj.matchedActivitiesID) {
29918 _context.next = 2;
29919 break;
29920 }
29921
29922 return _context.abrupt('return', null);
29923
29924 case 2:
29925 _context.next = 4;
29926 return loaders.activity.loadManyByURL(obj.matchedActivitiesID);
29927
29928 case 4:
29929 activities = _context.sent;
29930 return _context.abrupt('return', activities);
29931
29932 case 6:
29933 case 'end':
29934 return _context.stop();
29935 }
29936 }
29937 }, _callee, undefined);
29938 }));
29939
29940 return function resolve(_x, _x2, _x3) {
29941 return _ref.apply(this, arguments);
29942 };
29943 }()
29944 },
29945 score: _extends({}, setter.score, {
29946 args: {
29947 id: { type: _graphql.GraphQLString }
29948 },
29949 resolve: function () {
29950 var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(obj, args, _ref4) {
29951 var loaders = _ref4.loaders;
29952 var score;
29953 return regeneratorRuntime.wrap(function _callee2$(_context2) {
29954 while (1) {
29955 switch (_context2.prev = _context2.next) {
29956 case 0:
29957 if (args.id) {
29958 _context2.next = 2;
29959 break;
29960 }
29961
29962 return _context2.abrupt('return', null);
29963
29964 case 2:
29965 _context2.next = 4;
29966 return loaders.score.load(args.id + obj.activityID);
29967
29968 case 4:
29969 score = _context2.sent;
29970 return _context2.abrupt('return', score.score);
29971
29972 case 6:
29973 case 'end':
29974 return _context2.stop();
29975 }
29976 }
29977 }, _callee2, undefined);
29978 }));
29979
29980 return function resolve(_x4, _x5, _x6) {
29981 return _ref3.apply(this, arguments);
29982 };
29983 }()
29984 })
29985 });
29986};
29987
29988var getActivityType = function getActivityType(name) {
29989 var ActivityType = new _graphql.GraphQLObjectType({
29990 name: name,
29991 description: 'Activities',
29992 fields: function fields() {
29993 return getter(ActivityType);
29994 }
29995 });
29996 return ActivityType;
29997};
29998
29999var getActivityInputType = function getActivityInputType() {
30000 return new _graphql.GraphQLInputObjectType({
30001 name: 'ActivityInput',
30002 fields: setter
30003 });
30004};
30005
30006exports.default = {
30007 getActivityType: getActivityType,
30008 getActivityInputType: getActivityInputType
30009};
30010module.exports = exports['default'];
30011
30012/***/ }),
30013/* 339 */
30014/***/ (function(module, exports, __webpack_require__) {
30015
30016"use strict";
30017
30018
30019Object.defineProperty(exports, "__esModule", {
30020 value: true
30021});
30022
30023var _nodeFetch = __webpack_require__(97);
30024
30025var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
30026
30027function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30028
30029var BASE_URL = 'http://users-dev.madbean.ovh';
30030var PATH = '/users';
30031
30032var getJSONFromRelativeURL = function getJSONFromRelativeURL(relativeURL) {
30033 return (0, _nodeFetch2.default)('' + BASE_URL + relativeURL).then(function (res) {
30034 return res.json();
30035 });
30036};
30037
30038var getUsers = function getUsers() {
30039 return getJSONFromRelativeURL(PATH).then(function (json) {
30040 return json.data.users;
30041 });
30042};
30043
30044var getUserByURL = function getUserByURL(relativeURL) {
30045 return getJSONFromRelativeURL(relativeURL).then(function (json) {
30046 return json.data.user;
30047 }).catch(function (err) {
30048 return null;
30049 });
30050};
30051
30052var getUser = function getUser(id) {
30053 return getUserByURL(PATH + '/' + id);
30054};
30055
30056var addUser = function addUser(user) {
30057 var options = {
30058 method: 'POST',
30059 headers: {
30060 'Content-Type': 'application/json',
30061 Accept: 'application/json'
30062 },
30063 body: JSON.stringify(user)
30064 };
30065
30066 (0, _nodeFetch2.default)('' + BASE_URL + PATH, options).then(function (response) {
30067 return response.json();
30068 }).then(function (json) {
30069 return json;
30070 }).catch(console.log);
30071};
30072
30073var updateUser = function updateUser(user) {
30074 var options = {
30075 method: 'PUT',
30076 headers: {
30077 'Content-Type': 'application/json',
30078 Accept: 'application/json'
30079 },
30080 body: JSON.stringify(user)
30081 };
30082
30083 (0, _nodeFetch2.default)('' + BASE_URL + PATH + '/' + user.userID, options).then(function (response) {
30084 return response.json();
30085 }).then(function (json) {
30086 return json;
30087 }).catch(console.log);
30088};
30089
30090exports.default = {
30091 updateUser: updateUser,
30092 addUser: addUser,
30093 getUser: getUser,
30094 getUsers: getUsers,
30095 PATH: PATH,
30096 getUserByURL: getUserByURL
30097};
30098module.exports = exports['default'];
30099
30100/***/ }),
30101/* 340 */
30102/***/ (function(module, exports, __webpack_require__) {
30103
30104
30105/**
30106 * fetch-error.js
30107 *
30108 * FetchError interface for operational errors
30109 */
30110
30111module.exports = FetchError;
30112
30113/**
30114 * Create FetchError instance
30115 *
30116 * @param String message Error message for human
30117 * @param String type Error type for machine
30118 * @param String systemError For Node.js system error
30119 * @return FetchError
30120 */
30121function FetchError(message, type, systemError) {
30122
30123 this.name = this.constructor.name;
30124 this.message = message;
30125 this.type = type;
30126
30127 // when err.type is `system`, err.code contains system error code
30128 if (systemError) {
30129 this.code = this.errno = systemError.code;
30130 }
30131
30132 // hide custom error implementation details from end-users
30133 Error.captureStackTrace(this, this.constructor);
30134}
30135
30136__webpack_require__(54).inherits(FetchError, Error);
30137
30138
30139/***/ }),
30140/* 341 */
30141/***/ (function(module, exports) {
30142
30143/** Detect free variable `global` from Node.js. */
30144var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
30145
30146module.exports = freeGlobal;
30147
30148
30149/***/ }),
30150/* 342 */
30151/***/ (function(module, exports, __webpack_require__) {
30152
30153/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(49),
30154 stubFalse = __webpack_require__(759);
30155
30156/** Detect free variable `exports`. */
30157var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
30158
30159/** Detect free variable `module`. */
30160var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
30161
30162/** Detect the popular CommonJS extension `module.exports`. */
30163var moduleExports = freeModule && freeModule.exports === freeExports;
30164
30165/** Built-in value references. */
30166var Buffer = moduleExports ? root.Buffer : undefined;
30167
30168/* Built-in method references for those with the same name as other `lodash` methods. */
30169var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
30170
30171/**
30172 * Checks if `value` is a buffer.
30173 *
30174 * @static
30175 * @memberOf _
30176 * @since 4.3.0
30177 * @category Lang
30178 * @param {*} value The value to check.
30179 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
30180 * @example
30181 *
30182 * _.isBuffer(new Buffer(2));
30183 * // => true
30184 *
30185 * _.isBuffer(new Uint8Array(2));
30186 * // => false
30187 */
30188var isBuffer = nativeIsBuffer || stubFalse;
30189
30190module.exports = isBuffer;
30191
30192/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(193)(module)))
30193
30194/***/ }),
30195/* 343 */
30196/***/ (function(module, exports, __webpack_require__) {
30197
30198var baseIsTypedArray = __webpack_require__(760),
30199 baseUnary = __webpack_require__(761),
30200 nodeUtil = __webpack_require__(762);
30201
30202/* Node.js helper references. */
30203var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
30204
30205/**
30206 * Checks if `value` is classified as a typed array.
30207 *
30208 * @static
30209 * @memberOf _
30210 * @since 3.0.0
30211 * @category Lang
30212 * @param {*} value The value to check.
30213 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
30214 * @example
30215 *
30216 * _.isTypedArray(new Uint8Array);
30217 * // => true
30218 *
30219 * _.isTypedArray([]);
30220 * // => false
30221 */
30222var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
30223
30224module.exports = isTypedArray;
30225
30226
30227/***/ }),
30228/* 344 */
30229/***/ (function(module, exports, __webpack_require__) {
30230
30231var baseGetTag = __webpack_require__(98),
30232 isObject = __webpack_require__(140);
30233
30234/** `Object#toString` result references. */
30235var asyncTag = '[object AsyncFunction]',
30236 funcTag = '[object Function]',
30237 genTag = '[object GeneratorFunction]',
30238 proxyTag = '[object Proxy]';
30239
30240/**
30241 * Checks if `value` is classified as a `Function` object.
30242 *
30243 * @static
30244 * @memberOf _
30245 * @since 0.1.0
30246 * @category Lang
30247 * @param {*} value The value to check.
30248 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
30249 * @example
30250 *
30251 * _.isFunction(_);
30252 * // => true
30253 *
30254 * _.isFunction(/abc/);
30255 * // => false
30256 */
30257function isFunction(value) {
30258 if (!isObject(value)) {
30259 return false;
30260 }
30261 // The use of `Object#toString` avoids issues with the `typeof` operator
30262 // in Safari 9 which returns 'object' for typed arrays and other constructors.
30263 var tag = baseGetTag(value);
30264 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
30265}
30266
30267module.exports = isFunction;
30268
30269
30270/***/ }),
30271/* 345 */
30272/***/ (function(module, exports) {
30273
30274/**
30275 * This method returns the first argument it receives.
30276 *
30277 * @static
30278 * @since 0.1.0
30279 * @memberOf _
30280 * @category Util
30281 * @param {*} value Any value.
30282 * @returns {*} Returns `value`.
30283 * @example
30284 *
30285 * var object = { 'a': 1 };
30286 *
30287 * console.log(_.identity(object) === object);
30288 * // => true
30289 */
30290function identity(value) {
30291 return value;
30292}
30293
30294module.exports = identity;
30295
30296
30297/***/ }),
30298/* 346 */
30299/***/ (function(module, exports) {
30300
30301/**
30302 * A specialized version of `_.map` for arrays without support for iteratee
30303 * shorthands.
30304 *
30305 * @private
30306 * @param {Array} [array] The array to iterate over.
30307 * @param {Function} iteratee The function invoked per iteration.
30308 * @returns {Array} Returns the new mapped array.
30309 */
30310function arrayMap(array, iteratee) {
30311 var index = -1,
30312 length = array == null ? 0 : array.length,
30313 result = Array(length);
30314
30315 while (++index < length) {
30316 result[index] = iteratee(array[index], index, array);
30317 }
30318 return result;
30319}
30320
30321module.exports = arrayMap;
30322
30323
30324/***/ }),
30325/* 347 */
30326/***/ (function(module, exports, __webpack_require__) {
30327
30328var ListCache = __webpack_require__(141),
30329 stackClear = __webpack_require__(777),
30330 stackDelete = __webpack_require__(778),
30331 stackGet = __webpack_require__(779),
30332 stackHas = __webpack_require__(780),
30333 stackSet = __webpack_require__(781);
30334
30335/**
30336 * Creates a stack cache object to store key-value pairs.
30337 *
30338 * @private
30339 * @constructor
30340 * @param {Array} [entries] The key-value pairs to cache.
30341 */
30342function Stack(entries) {
30343 var data = this.__data__ = new ListCache(entries);
30344 this.size = data.size;
30345}
30346
30347// Add methods to `Stack`.
30348Stack.prototype.clear = stackClear;
30349Stack.prototype['delete'] = stackDelete;
30350Stack.prototype.get = stackGet;
30351Stack.prototype.has = stackHas;
30352Stack.prototype.set = stackSet;
30353
30354module.exports = Stack;
30355
30356
30357/***/ }),
30358/* 348 */
30359/***/ (function(module, exports) {
30360
30361/** Used for built-in method references. */
30362var funcProto = Function.prototype;
30363
30364/** Used to resolve the decompiled source of functions. */
30365var funcToString = funcProto.toString;
30366
30367/**
30368 * Converts `func` to its source code.
30369 *
30370 * @private
30371 * @param {Function} func The function to convert.
30372 * @returns {string} Returns the source code.
30373 */
30374function toSource(func) {
30375 if (func != null) {
30376 try {
30377 return funcToString.call(func);
30378 } catch (e) {}
30379 try {
30380 return (func + '');
30381 } catch (e) {}
30382 }
30383 return '';
30384}
30385
30386module.exports = toSource;
30387
30388
30389/***/ }),
30390/* 349 */
30391/***/ (function(module, exports, __webpack_require__) {
30392
30393var baseIsEqualDeep = __webpack_require__(798),
30394 isObjectLike = __webpack_require__(100);
30395
30396/**
30397 * The base implementation of `_.isEqual` which supports partial comparisons
30398 * and tracks traversed objects.
30399 *
30400 * @private
30401 * @param {*} value The value to compare.
30402 * @param {*} other The other value to compare.
30403 * @param {boolean} bitmask The bitmask flags.
30404 * 1 - Unordered comparison
30405 * 2 - Partial comparison
30406 * @param {Function} [customizer] The function to customize comparisons.
30407 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
30408 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
30409 */
30410function baseIsEqual(value, other, bitmask, customizer, stack) {
30411 if (value === other) {
30412 return true;
30413 }
30414 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
30415 return value !== value && other !== other;
30416 }
30417 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
30418}
30419
30420module.exports = baseIsEqual;
30421
30422
30423/***/ }),
30424/* 350 */
30425/***/ (function(module, exports, __webpack_require__) {
30426
30427var SetCache = __webpack_require__(799),
30428 arraySome = __webpack_require__(802),
30429 cacheHas = __webpack_require__(803);
30430
30431/** Used to compose bitmasks for value comparisons. */
30432var COMPARE_PARTIAL_FLAG = 1,
30433 COMPARE_UNORDERED_FLAG = 2;
30434
30435/**
30436 * A specialized version of `baseIsEqualDeep` for arrays with support for
30437 * partial deep comparisons.
30438 *
30439 * @private
30440 * @param {Array} array The array to compare.
30441 * @param {Array} other The other array to compare.
30442 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
30443 * @param {Function} customizer The function to customize comparisons.
30444 * @param {Function} equalFunc The function to determine equivalents of values.
30445 * @param {Object} stack Tracks traversed `array` and `other` objects.
30446 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
30447 */
30448function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
30449 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
30450 arrLength = array.length,
30451 othLength = other.length;
30452
30453 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
30454 return false;
30455 }
30456 // Assume cyclic values are equal.
30457 var stacked = stack.get(array);
30458 if (stacked && stack.get(other)) {
30459 return stacked == other;
30460 }
30461 var index = -1,
30462 result = true,
30463 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
30464
30465 stack.set(array, other);
30466 stack.set(other, array);
30467
30468 // Ignore non-index properties.
30469 while (++index < arrLength) {
30470 var arrValue = array[index],
30471 othValue = other[index];
30472
30473 if (customizer) {
30474 var compared = isPartial
30475 ? customizer(othValue, arrValue, index, other, array, stack)
30476 : customizer(arrValue, othValue, index, array, other, stack);
30477 }
30478 if (compared !== undefined) {
30479 if (compared) {
30480 continue;
30481 }
30482 result = false;
30483 break;
30484 }
30485 // Recursively compare arrays (susceptible to call stack limits).
30486 if (seen) {
30487 if (!arraySome(other, function(othValue, othIndex) {
30488 if (!cacheHas(seen, othIndex) &&
30489 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
30490 return seen.push(othIndex);
30491 }
30492 })) {
30493 result = false;
30494 break;
30495 }
30496 } else if (!(
30497 arrValue === othValue ||
30498 equalFunc(arrValue, othValue, bitmask, customizer, stack)
30499 )) {
30500 result = false;
30501 break;
30502 }
30503 }
30504 stack['delete'](array);
30505 stack['delete'](other);
30506 return result;
30507}
30508
30509module.exports = equalArrays;
30510
30511
30512/***/ }),
30513/* 351 */
30514/***/ (function(module, exports) {
30515
30516/**
30517 * Appends the elements of `values` to `array`.
30518 *
30519 * @private
30520 * @param {Array} array The array to modify.
30521 * @param {Array} values The values to append.
30522 * @returns {Array} Returns `array`.
30523 */
30524function arrayPush(array, values) {
30525 var index = -1,
30526 length = values.length,
30527 offset = array.length;
30528
30529 while (++index < length) {
30530 array[offset + index] = values[index];
30531 }
30532 return array;
30533}
30534
30535module.exports = arrayPush;
30536
30537
30538/***/ }),
30539/* 352 */
30540/***/ (function(module, exports, __webpack_require__) {
30541
30542var isObject = __webpack_require__(140);
30543
30544/**
30545 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
30546 *
30547 * @private
30548 * @param {*} value The value to check.
30549 * @returns {boolean} Returns `true` if `value` if suitable for strict
30550 * equality comparisons, else `false`.
30551 */
30552function isStrictComparable(value) {
30553 return value === value && !isObject(value);
30554}
30555
30556module.exports = isStrictComparable;
30557
30558
30559/***/ }),
30560/* 353 */
30561/***/ (function(module, exports) {
30562
30563/**
30564 * A specialized version of `matchesProperty` for source values suitable
30565 * for strict equality comparisons, i.e. `===`.
30566 *
30567 * @private
30568 * @param {string} key The key of the property to get.
30569 * @param {*} srcValue The value to match.
30570 * @returns {Function} Returns the new spec function.
30571 */
30572function matchesStrictComparable(key, srcValue) {
30573 return function(object) {
30574 if (object == null) {
30575 return false;
30576 }
30577 return object[key] === srcValue &&
30578 (srcValue !== undefined || (key in Object(object)));
30579 };
30580}
30581
30582module.exports = matchesStrictComparable;
30583
30584
30585/***/ }),
30586/* 354 */
30587/***/ (function(module, exports, __webpack_require__) {
30588
30589var castPath = __webpack_require__(355),
30590 toKey = __webpack_require__(146);
30591
30592/**
30593 * The base implementation of `_.get` without support for default values.
30594 *
30595 * @private
30596 * @param {Object} object The object to query.
30597 * @param {Array|string} path The path of the property to get.
30598 * @returns {*} Returns the resolved value.
30599 */
30600function baseGet(object, path) {
30601 path = castPath(path, object);
30602
30603 var index = 0,
30604 length = path.length;
30605
30606 while (object != null && index < length) {
30607 object = object[toKey(path[index++])];
30608 }
30609 return (index && index == length) ? object : undefined;
30610}
30611
30612module.exports = baseGet;
30613
30614
30615/***/ }),
30616/* 355 */
30617/***/ (function(module, exports, __webpack_require__) {
30618
30619var isArray = __webpack_require__(24),
30620 isKey = __webpack_require__(213),
30621 stringToPath = __webpack_require__(822),
30622 toString = __webpack_require__(825);
30623
30624/**
30625 * Casts `value` to a path array if it's not one.
30626 *
30627 * @private
30628 * @param {*} value The value to inspect.
30629 * @param {Object} [object] The object to query keys on.
30630 * @returns {Array} Returns the cast property path array.
30631 */
30632function castPath(value, object) {
30633 if (isArray(value)) {
30634 return value;
30635 }
30636 return isKey(value, object) ? [value] : stringToPath(toString(value));
30637}
30638
30639module.exports = castPath;
30640
30641
30642/***/ }),
30643/* 356 */
30644/***/ (function(module, exports, __webpack_require__) {
30645
30646"use strict";
30647
30648
30649Object.defineProperty(exports, "__esModule", {
30650 value: true
30651});
30652
30653var _nodeFetch = __webpack_require__(97);
30654
30655var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
30656
30657function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30658
30659var BASE_URL = 'http://scoring-dev.madbean.ovh';
30660var PATH = '/scores';
30661
30662var getJSONFromRelativeURL = function getJSONFromRelativeURL(relativeURL) {
30663 return (0, _nodeFetch2.default)('' + BASE_URL + relativeURL).then(function (res) {
30664 return res.json();
30665 });
30666};
30667
30668var getEntities = function getEntities() {
30669 return getJSONFromRelativeURL(PATH).then(function (json) {
30670 return json.data.scores;
30671 });
30672};
30673
30674var getEntityByURL = function getEntityByURL(relativeURL) {
30675 return getJSONFromRelativeURL(relativeURL).then(function (json) {
30676 return json.data.score;
30677 });
30678};
30679
30680var getEntity = function getEntity(id) {
30681 return getEntityByURL(PATH + '/' + id);
30682};
30683
30684var addEntity = function addEntity(score) {
30685 var options = {
30686 method: 'POST',
30687 headers: {
30688 'Content-Type': 'application/json',
30689 Accept: 'application/json'
30690 },
30691 body: JSON.stringify(score)
30692 };
30693
30694 (0, _nodeFetch2.default)('' + BASE_URL + PATH, options).then(function (response) {
30695 return response.json();
30696 }).then(function (json) {
30697 return json;
30698 }).catch(console.log);
30699};
30700
30701var updateEntity = function updateEntity(score) {
30702 var options = {
30703 method: 'PUT',
30704 headers: {
30705 'Content-Type': 'application/json',
30706 Accept: 'application/json'
30707 },
30708 body: JSON.stringify(score)
30709 };
30710
30711 (0, _nodeFetch2.default)('' + BASE_URL + PATH + '/' + score.ID, options).then(function (response) {
30712 return response.json();
30713 }).then(function (json) {
30714 return json;
30715 }).catch(console.log);
30716};
30717
30718exports.default = {
30719 updateEntity: updateEntity,
30720 addEntity: addEntity,
30721 getEntity: getEntity,
30722 getEntities: getEntities,
30723 PATH: PATH,
30724 getEntityByURL: getEntityByURL
30725};
30726module.exports = exports['default'];
30727
30728/***/ }),
30729/* 357 */
30730/***/ (function(module, exports, __webpack_require__) {
30731
30732"use strict";
30733
30734
30735Object.defineProperty(exports, "__esModule", {
30736 value: true
30737});
30738
30739var _nodeFetch = __webpack_require__(97);
30740
30741var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
30742
30743function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30744
30745var BASE_URL = 'http://activities-dev.madbean.ovh';
30746var PATH = '/activities';
30747
30748var getJSONFromRelativeURL = function getJSONFromRelativeURL(relativeURL) {
30749 return (0, _nodeFetch2.default)('' + BASE_URL + relativeURL).then(function (res) {
30750 return res.json();
30751 });
30752};
30753
30754var getEntities = function getEntities() {
30755 return getJSONFromRelativeURL(PATH).then(function (json) {
30756 return json.data.activities;
30757 });
30758};
30759
30760var getEntityByURL = function getEntityByURL(relativeURL) {
30761 return getJSONFromRelativeURL(relativeURL).then(function (json) {
30762 return json.data.activity;
30763 });
30764};
30765
30766var getEntity = function getEntity(id) {
30767 return getEntityByURL(PATH + '/' + id);
30768};
30769
30770var addEntity = function addEntity(activity) {
30771 var options = {
30772 method: 'POST',
30773 headers: {
30774 'Content-Type': 'application/json',
30775 Accept: 'application/json'
30776 },
30777 body: JSON.stringify(activity)
30778 };
30779
30780 (0, _nodeFetch2.default)('' + BASE_URL + PATH, options).then(function (response) {
30781 return response.json();
30782 }).then(function (json) {
30783 return json;
30784 }).catch(console.log);
30785};
30786
30787var updateEntity = function updateEntity(activity) {
30788 var options = {
30789 method: 'PUT',
30790 headers: {
30791 'Content-Type': 'application/json',
30792 Accept: 'application/json'
30793 },
30794 body: JSON.stringify(activity)
30795 };
30796
30797 (0, _nodeFetch2.default)('' + BASE_URL + PATH + '/' + activity.activityID, options).then(function (response) {
30798 return response.json();
30799 }).then(function (json) {
30800 return json;
30801 }).catch(console.log);
30802};
30803
30804exports.default = {
30805 updateEntity: updateEntity,
30806 addEntity: addEntity,
30807 getEntity: getEntity,
30808 getEntities: getEntities,
30809 PATH: PATH,
30810 getEntityByURL: getEntityByURL
30811};
30812module.exports = exports['default'];
30813
30814/***/ }),
30815/* 358 */
30816/***/ (function(module, exports, __webpack_require__) {
30817
30818__webpack_require__(359);
30819module.exports = __webpack_require__(561);
30820
30821
30822/***/ }),
30823/* 359 */
30824/***/ (function(module, exports, __webpack_require__) {
30825
30826"use strict";
30827
30828
30829__webpack_require__(360);
30830
30831__webpack_require__(557);
30832
30833__webpack_require__(558);
30834
30835if (global._babelPolyfill) {
30836 throw new Error("only one instance of babel-polyfill is allowed");
30837}
30838global._babelPolyfill = true;
30839
30840var DEFINE_PROPERTY = "defineProperty";
30841function define(O, key, value) {
30842 O[key] || Object[DEFINE_PROPERTY](O, key, {
30843 writable: true,
30844 configurable: true,
30845 value: value
30846 });
30847}
30848
30849define(String.prototype, "padLeft", "".padStart);
30850define(String.prototype, "padRight", "".padEnd);
30851
30852"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) {
30853 [][key] && define(Array, key, Function.call.bind([][key]));
30854});
30855
30856/***/ }),
30857/* 360 */
30858/***/ (function(module, exports, __webpack_require__) {
30859
30860__webpack_require__(361);
30861__webpack_require__(363);
30862__webpack_require__(364);
30863__webpack_require__(365);
30864__webpack_require__(366);
30865__webpack_require__(367);
30866__webpack_require__(368);
30867__webpack_require__(369);
30868__webpack_require__(370);
30869__webpack_require__(371);
30870__webpack_require__(372);
30871__webpack_require__(373);
30872__webpack_require__(374);
30873__webpack_require__(375);
30874__webpack_require__(376);
30875__webpack_require__(377);
30876__webpack_require__(379);
30877__webpack_require__(380);
30878__webpack_require__(381);
30879__webpack_require__(382);
30880__webpack_require__(383);
30881__webpack_require__(384);
30882__webpack_require__(385);
30883__webpack_require__(386);
30884__webpack_require__(387);
30885__webpack_require__(388);
30886__webpack_require__(389);
30887__webpack_require__(390);
30888__webpack_require__(391);
30889__webpack_require__(392);
30890__webpack_require__(393);
30891__webpack_require__(394);
30892__webpack_require__(395);
30893__webpack_require__(396);
30894__webpack_require__(397);
30895__webpack_require__(398);
30896__webpack_require__(399);
30897__webpack_require__(400);
30898__webpack_require__(401);
30899__webpack_require__(402);
30900__webpack_require__(403);
30901__webpack_require__(404);
30902__webpack_require__(405);
30903__webpack_require__(406);
30904__webpack_require__(407);
30905__webpack_require__(408);
30906__webpack_require__(409);
30907__webpack_require__(410);
30908__webpack_require__(411);
30909__webpack_require__(412);
30910__webpack_require__(413);
30911__webpack_require__(414);
30912__webpack_require__(415);
30913__webpack_require__(416);
30914__webpack_require__(417);
30915__webpack_require__(418);
30916__webpack_require__(419);
30917__webpack_require__(420);
30918__webpack_require__(421);
30919__webpack_require__(422);
30920__webpack_require__(423);
30921__webpack_require__(424);
30922__webpack_require__(425);
30923__webpack_require__(426);
30924__webpack_require__(427);
30925__webpack_require__(428);
30926__webpack_require__(429);
30927__webpack_require__(430);
30928__webpack_require__(431);
30929__webpack_require__(432);
30930__webpack_require__(433);
30931__webpack_require__(434);
30932__webpack_require__(435);
30933__webpack_require__(436);
30934__webpack_require__(437);
30935__webpack_require__(438);
30936__webpack_require__(439);
30937__webpack_require__(441);
30938__webpack_require__(442);
30939__webpack_require__(444);
30940__webpack_require__(445);
30941__webpack_require__(446);
30942__webpack_require__(447);
30943__webpack_require__(448);
30944__webpack_require__(449);
30945__webpack_require__(450);
30946__webpack_require__(452);
30947__webpack_require__(453);
30948__webpack_require__(454);
30949__webpack_require__(455);
30950__webpack_require__(456);
30951__webpack_require__(457);
30952__webpack_require__(458);
30953__webpack_require__(459);
30954__webpack_require__(460);
30955__webpack_require__(461);
30956__webpack_require__(462);
30957__webpack_require__(463);
30958__webpack_require__(464);
30959__webpack_require__(168);
30960__webpack_require__(465);
30961__webpack_require__(466);
30962__webpack_require__(232);
30963__webpack_require__(467);
30964__webpack_require__(468);
30965__webpack_require__(469);
30966__webpack_require__(470);
30967__webpack_require__(471);
30968__webpack_require__(235);
30969__webpack_require__(237);
30970__webpack_require__(238);
30971__webpack_require__(472);
30972__webpack_require__(473);
30973__webpack_require__(474);
30974__webpack_require__(475);
30975__webpack_require__(476);
30976__webpack_require__(477);
30977__webpack_require__(478);
30978__webpack_require__(479);
30979__webpack_require__(480);
30980__webpack_require__(481);
30981__webpack_require__(482);
30982__webpack_require__(483);
30983__webpack_require__(484);
30984__webpack_require__(485);
30985__webpack_require__(486);
30986__webpack_require__(487);
30987__webpack_require__(488);
30988__webpack_require__(489);
30989__webpack_require__(490);
30990__webpack_require__(491);
30991__webpack_require__(492);
30992__webpack_require__(493);
30993__webpack_require__(494);
30994__webpack_require__(495);
30995__webpack_require__(496);
30996__webpack_require__(497);
30997__webpack_require__(498);
30998__webpack_require__(499);
30999__webpack_require__(500);
31000__webpack_require__(501);
31001__webpack_require__(502);
31002__webpack_require__(503);
31003__webpack_require__(504);
31004__webpack_require__(505);
31005__webpack_require__(506);
31006__webpack_require__(507);
31007__webpack_require__(508);
31008__webpack_require__(509);
31009__webpack_require__(510);
31010__webpack_require__(511);
31011__webpack_require__(512);
31012__webpack_require__(513);
31013__webpack_require__(514);
31014__webpack_require__(515);
31015__webpack_require__(516);
31016__webpack_require__(517);
31017__webpack_require__(518);
31018__webpack_require__(519);
31019__webpack_require__(520);
31020__webpack_require__(521);
31021__webpack_require__(522);
31022__webpack_require__(523);
31023__webpack_require__(524);
31024__webpack_require__(525);
31025__webpack_require__(526);
31026__webpack_require__(527);
31027__webpack_require__(528);
31028__webpack_require__(529);
31029__webpack_require__(530);
31030__webpack_require__(531);
31031__webpack_require__(532);
31032__webpack_require__(533);
31033__webpack_require__(534);
31034__webpack_require__(535);
31035__webpack_require__(536);
31036__webpack_require__(537);
31037__webpack_require__(538);
31038__webpack_require__(539);
31039__webpack_require__(540);
31040__webpack_require__(541);
31041__webpack_require__(542);
31042__webpack_require__(543);
31043__webpack_require__(544);
31044__webpack_require__(545);
31045__webpack_require__(546);
31046__webpack_require__(547);
31047__webpack_require__(548);
31048__webpack_require__(549);
31049__webpack_require__(550);
31050__webpack_require__(551);
31051__webpack_require__(552);
31052__webpack_require__(553);
31053__webpack_require__(554);
31054__webpack_require__(555);
31055__webpack_require__(556);
31056module.exports = __webpack_require__(33);
31057
31058
31059/***/ }),
31060/* 361 */
31061/***/ (function(module, exports, __webpack_require__) {
31062
31063"use strict";
31064
31065// ECMAScript 6 symbols shim
31066var global = __webpack_require__(2);
31067var has = __webpack_require__(17);
31068var DESCRIPTORS = __webpack_require__(8);
31069var $export = __webpack_require__(0);
31070var redefine = __webpack_require__(19);
31071var META = __webpack_require__(50).KEY;
31072var $fails = __webpack_require__(4);
31073var shared = __webpack_require__(101);
31074var setToStringTag = __webpack_require__(71);
31075var uid = __webpack_require__(56);
31076var wks = __webpack_require__(7);
31077var wksExt = __webpack_require__(215);
31078var wksDefine = __webpack_require__(148);
31079var enumKeys = __webpack_require__(362);
31080var isArray = __webpack_require__(104);
31081var anObject = __webpack_require__(1);
31082var isObject = __webpack_require__(5);
31083var toIObject = __webpack_require__(21);
31084var toPrimitive = __webpack_require__(34);
31085var createDesc = __webpack_require__(55);
31086var _create = __webpack_require__(60);
31087var gOPNExt = __webpack_require__(218);
31088var $GOPD = __webpack_require__(22);
31089var $DP = __webpack_require__(9);
31090var $keys = __webpack_require__(58);
31091var gOPD = $GOPD.f;
31092var dP = $DP.f;
31093var gOPN = gOPNExt.f;
31094var $Symbol = global.Symbol;
31095var $JSON = global.JSON;
31096var _stringify = $JSON && $JSON.stringify;
31097var PROTOTYPE = 'prototype';
31098var HIDDEN = wks('_hidden');
31099var TO_PRIMITIVE = wks('toPrimitive');
31100var isEnum = {}.propertyIsEnumerable;
31101var SymbolRegistry = shared('symbol-registry');
31102var AllSymbols = shared('symbols');
31103var OPSymbols = shared('op-symbols');
31104var ObjectProto = Object[PROTOTYPE];
31105var USE_NATIVE = typeof $Symbol == 'function';
31106var QObject = global.QObject;
31107// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
31108var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
31109
31110// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
31111var setSymbolDesc = DESCRIPTORS && $fails(function () {
31112 return _create(dP({}, 'a', {
31113 get: function () { return dP(this, 'a', { value: 7 }).a; }
31114 })).a != 7;
31115}) ? function (it, key, D) {
31116 var protoDesc = gOPD(ObjectProto, key);
31117 if (protoDesc) delete ObjectProto[key];
31118 dP(it, key, D);
31119 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
31120} : dP;
31121
31122var wrap = function (tag) {
31123 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
31124 sym._k = tag;
31125 return sym;
31126};
31127
31128var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
31129 return typeof it == 'symbol';
31130} : function (it) {
31131 return it instanceof $Symbol;
31132};
31133
31134var $defineProperty = function defineProperty(it, key, D) {
31135 if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
31136 anObject(it);
31137 key = toPrimitive(key, true);
31138 anObject(D);
31139 if (has(AllSymbols, key)) {
31140 if (!D.enumerable) {
31141 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
31142 it[HIDDEN][key] = true;
31143 } else {
31144 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
31145 D = _create(D, { enumerable: createDesc(0, false) });
31146 } return setSymbolDesc(it, key, D);
31147 } return dP(it, key, D);
31148};
31149var $defineProperties = function defineProperties(it, P) {
31150 anObject(it);
31151 var keys = enumKeys(P = toIObject(P));
31152 var i = 0;
31153 var l = keys.length;
31154 var key;
31155 while (l > i) $defineProperty(it, key = keys[i++], P[key]);
31156 return it;
31157};
31158var $create = function create(it, P) {
31159 return P === undefined ? _create(it) : $defineProperties(_create(it), P);
31160};
31161var $propertyIsEnumerable = function propertyIsEnumerable(key) {
31162 var E = isEnum.call(this, key = toPrimitive(key, true));
31163 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
31164 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
31165};
31166var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
31167 it = toIObject(it);
31168 key = toPrimitive(key, true);
31169 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
31170 var D = gOPD(it, key);
31171 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
31172 return D;
31173};
31174var $getOwnPropertyNames = function getOwnPropertyNames(it) {
31175 var names = gOPN(toIObject(it));
31176 var result = [];
31177 var i = 0;
31178 var key;
31179 while (names.length > i) {
31180 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
31181 } return result;
31182};
31183var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
31184 var IS_OP = it === ObjectProto;
31185 var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
31186 var result = [];
31187 var i = 0;
31188 var key;
31189 while (names.length > i) {
31190 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
31191 } return result;
31192};
31193
31194// 19.4.1.1 Symbol([description])
31195if (!USE_NATIVE) {
31196 $Symbol = function Symbol() {
31197 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
31198 var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
31199 var $set = function (value) {
31200 if (this === ObjectProto) $set.call(OPSymbols, value);
31201 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
31202 setSymbolDesc(this, tag, createDesc(1, value));
31203 };
31204 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
31205 return wrap(tag);
31206 };
31207 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
31208 return this._k;
31209 });
31210
31211 $GOPD.f = $getOwnPropertyDescriptor;
31212 $DP.f = $defineProperty;
31213 __webpack_require__(61).f = gOPNExt.f = $getOwnPropertyNames;
31214 __webpack_require__(83).f = $propertyIsEnumerable;
31215 __webpack_require__(103).f = $getOwnPropertySymbols;
31216
31217 if (DESCRIPTORS && !__webpack_require__(57)) {
31218 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
31219 }
31220
31221 wksExt.f = function (name) {
31222 return wrap(wks(name));
31223 };
31224}
31225
31226$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
31227
31228for (var es6Symbols = (
31229 // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
31230 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
31231).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
31232
31233for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
31234
31235$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
31236 // 19.4.2.1 Symbol.for(key)
31237 'for': function (key) {
31238 return has(SymbolRegistry, key += '')
31239 ? SymbolRegistry[key]
31240 : SymbolRegistry[key] = $Symbol(key);
31241 },
31242 // 19.4.2.5 Symbol.keyFor(sym)
31243 keyFor: function keyFor(sym) {
31244 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
31245 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
31246 },
31247 useSetter: function () { setter = true; },
31248 useSimple: function () { setter = false; }
31249});
31250
31251$export($export.S + $export.F * !USE_NATIVE, 'Object', {
31252 // 19.1.2.2 Object.create(O [, Properties])
31253 create: $create,
31254 // 19.1.2.4 Object.defineProperty(O, P, Attributes)
31255 defineProperty: $defineProperty,
31256 // 19.1.2.3 Object.defineProperties(O, Properties)
31257 defineProperties: $defineProperties,
31258 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
31259 getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
31260 // 19.1.2.7 Object.getOwnPropertyNames(O)
31261 getOwnPropertyNames: $getOwnPropertyNames,
31262 // 19.1.2.8 Object.getOwnPropertySymbols(O)
31263 getOwnPropertySymbols: $getOwnPropertySymbols
31264});
31265
31266// 24.3.2 JSON.stringify(value [, replacer [, space]])
31267$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
31268 var S = $Symbol();
31269 // MS Edge converts symbol values to JSON as {}
31270 // WebKit converts symbol values to JSON as null
31271 // V8 throws on boxed symbols
31272 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
31273})), 'JSON', {
31274 stringify: function stringify(it) {
31275 var args = [it];
31276 var i = 1;
31277 var replacer, $replacer;
31278 while (arguments.length > i) args.push(arguments[i++]);
31279 $replacer = replacer = args[1];
31280 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
31281 if (!isArray(replacer)) replacer = function (key, value) {
31282 if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
31283 if (!isSymbol(value)) return value;
31284 };
31285 args[1] = replacer;
31286 return _stringify.apply($JSON, args);
31287 }
31288});
31289
31290// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
31291$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(18)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
31292// 19.4.3.5 Symbol.prototype[@@toStringTag]
31293setToStringTag($Symbol, 'Symbol');
31294// 20.2.1.9 Math[@@toStringTag]
31295setToStringTag(Math, 'Math', true);
31296// 24.3.3 JSON[@@toStringTag]
31297setToStringTag(global.JSON, 'JSON', true);
31298
31299
31300/***/ }),
31301/* 362 */
31302/***/ (function(module, exports, __webpack_require__) {
31303
31304// all enumerable object keys, includes symbols
31305var getKeys = __webpack_require__(58);
31306var gOPS = __webpack_require__(103);
31307var pIE = __webpack_require__(83);
31308module.exports = function (it) {
31309 var result = getKeys(it);
31310 var getSymbols = gOPS.f;
31311 if (getSymbols) {
31312 var symbols = getSymbols(it);
31313 var isEnum = pIE.f;
31314 var i = 0;
31315 var key;
31316 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
31317 } return result;
31318};
31319
31320
31321/***/ }),
31322/* 363 */
31323/***/ (function(module, exports, __webpack_require__) {
31324
31325var $export = __webpack_require__(0);
31326// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
31327$export($export.S, 'Object', { create: __webpack_require__(60) });
31328
31329
31330/***/ }),
31331/* 364 */
31332/***/ (function(module, exports, __webpack_require__) {
31333
31334var $export = __webpack_require__(0);
31335// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
31336$export($export.S + $export.F * !__webpack_require__(8), 'Object', { defineProperty: __webpack_require__(9).f });
31337
31338
31339/***/ }),
31340/* 365 */
31341/***/ (function(module, exports, __webpack_require__) {
31342
31343var $export = __webpack_require__(0);
31344// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
31345$export($export.S + $export.F * !__webpack_require__(8), 'Object', { defineProperties: __webpack_require__(217) });
31346
31347
31348/***/ }),
31349/* 366 */
31350/***/ (function(module, exports, __webpack_require__) {
31351
31352// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
31353var toIObject = __webpack_require__(21);
31354var $getOwnPropertyDescriptor = __webpack_require__(22).f;
31355
31356__webpack_require__(37)('getOwnPropertyDescriptor', function () {
31357 return function getOwnPropertyDescriptor(it, key) {
31358 return $getOwnPropertyDescriptor(toIObject(it), key);
31359 };
31360});
31361
31362
31363/***/ }),
31364/* 367 */
31365/***/ (function(module, exports, __webpack_require__) {
31366
31367// 19.1.2.9 Object.getPrototypeOf(O)
31368var toObject = __webpack_require__(13);
31369var $getPrototypeOf = __webpack_require__(23);
31370
31371__webpack_require__(37)('getPrototypeOf', function () {
31372 return function getPrototypeOf(it) {
31373 return $getPrototypeOf(toObject(it));
31374 };
31375});
31376
31377
31378/***/ }),
31379/* 368 */
31380/***/ (function(module, exports, __webpack_require__) {
31381
31382// 19.1.2.14 Object.keys(O)
31383var toObject = __webpack_require__(13);
31384var $keys = __webpack_require__(58);
31385
31386__webpack_require__(37)('keys', function () {
31387 return function keys(it) {
31388 return $keys(toObject(it));
31389 };
31390});
31391
31392
31393/***/ }),
31394/* 369 */
31395/***/ (function(module, exports, __webpack_require__) {
31396
31397// 19.1.2.7 Object.getOwnPropertyNames(O)
31398__webpack_require__(37)('getOwnPropertyNames', function () {
31399 return __webpack_require__(218).f;
31400});
31401
31402
31403/***/ }),
31404/* 370 */
31405/***/ (function(module, exports, __webpack_require__) {
31406
31407// 19.1.2.5 Object.freeze(O)
31408var isObject = __webpack_require__(5);
31409var meta = __webpack_require__(50).onFreeze;
31410
31411__webpack_require__(37)('freeze', function ($freeze) {
31412 return function freeze(it) {
31413 return $freeze && isObject(it) ? $freeze(meta(it)) : it;
31414 };
31415});
31416
31417
31418/***/ }),
31419/* 371 */
31420/***/ (function(module, exports, __webpack_require__) {
31421
31422// 19.1.2.17 Object.seal(O)
31423var isObject = __webpack_require__(5);
31424var meta = __webpack_require__(50).onFreeze;
31425
31426__webpack_require__(37)('seal', function ($seal) {
31427 return function seal(it) {
31428 return $seal && isObject(it) ? $seal(meta(it)) : it;
31429 };
31430});
31431
31432
31433/***/ }),
31434/* 372 */
31435/***/ (function(module, exports, __webpack_require__) {
31436
31437// 19.1.2.15 Object.preventExtensions(O)
31438var isObject = __webpack_require__(5);
31439var meta = __webpack_require__(50).onFreeze;
31440
31441__webpack_require__(37)('preventExtensions', function ($preventExtensions) {
31442 return function preventExtensions(it) {
31443 return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
31444 };
31445});
31446
31447
31448/***/ }),
31449/* 373 */
31450/***/ (function(module, exports, __webpack_require__) {
31451
31452// 19.1.2.12 Object.isFrozen(O)
31453var isObject = __webpack_require__(5);
31454
31455__webpack_require__(37)('isFrozen', function ($isFrozen) {
31456 return function isFrozen(it) {
31457 return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
31458 };
31459});
31460
31461
31462/***/ }),
31463/* 374 */
31464/***/ (function(module, exports, __webpack_require__) {
31465
31466// 19.1.2.13 Object.isSealed(O)
31467var isObject = __webpack_require__(5);
31468
31469__webpack_require__(37)('isSealed', function ($isSealed) {
31470 return function isSealed(it) {
31471 return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
31472 };
31473});
31474
31475
31476/***/ }),
31477/* 375 */
31478/***/ (function(module, exports, __webpack_require__) {
31479
31480// 19.1.2.11 Object.isExtensible(O)
31481var isObject = __webpack_require__(5);
31482
31483__webpack_require__(37)('isExtensible', function ($isExtensible) {
31484 return function isExtensible(it) {
31485 return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
31486 };
31487});
31488
31489
31490/***/ }),
31491/* 376 */
31492/***/ (function(module, exports, __webpack_require__) {
31493
31494// 19.1.3.1 Object.assign(target, source)
31495var $export = __webpack_require__(0);
31496
31497$export($export.S + $export.F, 'Object', { assign: __webpack_require__(219) });
31498
31499
31500/***/ }),
31501/* 377 */
31502/***/ (function(module, exports, __webpack_require__) {
31503
31504// 19.1.3.10 Object.is(value1, value2)
31505var $export = __webpack_require__(0);
31506$export($export.S, 'Object', { is: __webpack_require__(378) });
31507
31508
31509/***/ }),
31510/* 378 */
31511/***/ (function(module, exports) {
31512
31513// 7.2.9 SameValue(x, y)
31514module.exports = Object.is || function is(x, y) {
31515 // eslint-disable-next-line no-self-compare
31516 return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
31517};
31518
31519
31520/***/ }),
31521/* 379 */
31522/***/ (function(module, exports, __webpack_require__) {
31523
31524// 19.1.3.19 Object.setPrototypeOf(O, proto)
31525var $export = __webpack_require__(0);
31526$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(152).set });
31527
31528
31529/***/ }),
31530/* 380 */
31531/***/ (function(module, exports, __webpack_require__) {
31532
31533"use strict";
31534
31535// 19.1.3.6 Object.prototype.toString()
31536var classof = __webpack_require__(84);
31537var test = {};
31538test[__webpack_require__(7)('toStringTag')] = 'z';
31539if (test + '' != '[object z]') {
31540 __webpack_require__(19)(Object.prototype, 'toString', function toString() {
31541 return '[object ' + classof(this) + ']';
31542 }, true);
31543}
31544
31545
31546/***/ }),
31547/* 381 */
31548/***/ (function(module, exports, __webpack_require__) {
31549
31550// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
31551var $export = __webpack_require__(0);
31552
31553$export($export.P, 'Function', { bind: __webpack_require__(220) });
31554
31555
31556/***/ }),
31557/* 382 */
31558/***/ (function(module, exports, __webpack_require__) {
31559
31560var dP = __webpack_require__(9).f;
31561var FProto = Function.prototype;
31562var nameRE = /^\s*function ([^ (]*)/;
31563var NAME = 'name';
31564
31565// 19.2.4.2 name
31566NAME in FProto || __webpack_require__(8) && dP(FProto, NAME, {
31567 configurable: true,
31568 get: function () {
31569 try {
31570 return ('' + this).match(nameRE)[1];
31571 } catch (e) {
31572 return '';
31573 }
31574 }
31575});
31576
31577
31578/***/ }),
31579/* 383 */
31580/***/ (function(module, exports, __webpack_require__) {
31581
31582"use strict";
31583
31584var isObject = __webpack_require__(5);
31585var getPrototypeOf = __webpack_require__(23);
31586var HAS_INSTANCE = __webpack_require__(7)('hasInstance');
31587var FunctionProto = Function.prototype;
31588// 19.2.3.6 Function.prototype[@@hasInstance](V)
31589if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(9).f(FunctionProto, HAS_INSTANCE, { value: function (O) {
31590 if (typeof this != 'function' || !isObject(O)) return false;
31591 if (!isObject(this.prototype)) return O instanceof this;
31592 // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
31593 while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
31594 return false;
31595} });
31596
31597
31598/***/ }),
31599/* 384 */
31600/***/ (function(module, exports, __webpack_require__) {
31601
31602var $export = __webpack_require__(0);
31603var $parseInt = __webpack_require__(222);
31604// 18.2.5 parseInt(string, radix)
31605$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });
31606
31607
31608/***/ }),
31609/* 385 */
31610/***/ (function(module, exports, __webpack_require__) {
31611
31612var $export = __webpack_require__(0);
31613var $parseFloat = __webpack_require__(223);
31614// 18.2.4 parseFloat(string)
31615$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });
31616
31617
31618/***/ }),
31619/* 386 */
31620/***/ (function(module, exports, __webpack_require__) {
31621
31622"use strict";
31623
31624var global = __webpack_require__(2);
31625var has = __webpack_require__(17);
31626var cof = __webpack_require__(26);
31627var inheritIfRequired = __webpack_require__(154);
31628var toPrimitive = __webpack_require__(34);
31629var fails = __webpack_require__(4);
31630var gOPN = __webpack_require__(61).f;
31631var gOPD = __webpack_require__(22).f;
31632var dP = __webpack_require__(9).f;
31633var $trim = __webpack_require__(72).trim;
31634var NUMBER = 'Number';
31635var $Number = global[NUMBER];
31636var Base = $Number;
31637var proto = $Number.prototype;
31638// Opera ~12 has broken Object#toString
31639var BROKEN_COF = cof(__webpack_require__(60)(proto)) == NUMBER;
31640var TRIM = 'trim' in String.prototype;
31641
31642// 7.1.3 ToNumber(argument)
31643var toNumber = function (argument) {
31644 var it = toPrimitive(argument, false);
31645 if (typeof it == 'string' && it.length > 2) {
31646 it = TRIM ? it.trim() : $trim(it, 3);
31647 var first = it.charCodeAt(0);
31648 var third, radix, maxCode;
31649 if (first === 43 || first === 45) {
31650 third = it.charCodeAt(2);
31651 if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
31652 } else if (first === 48) {
31653 switch (it.charCodeAt(1)) {
31654 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
31655 case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
31656 default: return +it;
31657 }
31658 for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {
31659 code = digits.charCodeAt(i);
31660 // parseInt parses a string to a first unavailable symbol
31661 // but ToNumber should return NaN if a string contains unavailable symbols
31662 if (code < 48 || code > maxCode) return NaN;
31663 } return parseInt(digits, radix);
31664 }
31665 } return +it;
31666};
31667
31668if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
31669 $Number = function Number(value) {
31670 var it = arguments.length < 1 ? 0 : value;
31671 var that = this;
31672 return that instanceof $Number
31673 // check on 1..constructor(foo) case
31674 && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)
31675 ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
31676 };
31677 for (var keys = __webpack_require__(8) ? gOPN(Base) : (
31678 // ES3:
31679 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
31680 // ES6 (in case, if modules with ES6 Number statics required before):
31681 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
31682 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
31683 ).split(','), j = 0, key; keys.length > j; j++) {
31684 if (has(Base, key = keys[j]) && !has($Number, key)) {
31685 dP($Number, key, gOPD(Base, key));
31686 }
31687 }
31688 $Number.prototype = proto;
31689 proto.constructor = $Number;
31690 __webpack_require__(19)(global, NUMBER, $Number);
31691}
31692
31693
31694/***/ }),
31695/* 387 */
31696/***/ (function(module, exports, __webpack_require__) {
31697
31698"use strict";
31699
31700var $export = __webpack_require__(0);
31701var toInteger = __webpack_require__(36);
31702var aNumberValue = __webpack_require__(224);
31703var repeat = __webpack_require__(155);
31704var $toFixed = 1.0.toFixed;
31705var floor = Math.floor;
31706var data = [0, 0, 0, 0, 0, 0];
31707var ERROR = 'Number.toFixed: incorrect invocation!';
31708var ZERO = '0';
31709
31710var multiply = function (n, c) {
31711 var i = -1;
31712 var c2 = c;
31713 while (++i < 6) {
31714 c2 += n * data[i];
31715 data[i] = c2 % 1e7;
31716 c2 = floor(c2 / 1e7);
31717 }
31718};
31719var divide = function (n) {
31720 var i = 6;
31721 var c = 0;
31722 while (--i >= 0) {
31723 c += data[i];
31724 data[i] = floor(c / n);
31725 c = (c % n) * 1e7;
31726 }
31727};
31728var numToString = function () {
31729 var i = 6;
31730 var s = '';
31731 while (--i >= 0) {
31732 if (s !== '' || i === 0 || data[i] !== 0) {
31733 var t = String(data[i]);
31734 s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
31735 }
31736 } return s;
31737};
31738var pow = function (x, n, acc) {
31739 return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
31740};
31741var log = function (x) {
31742 var n = 0;
31743 var x2 = x;
31744 while (x2 >= 4096) {
31745 n += 12;
31746 x2 /= 4096;
31747 }
31748 while (x2 >= 2) {
31749 n += 1;
31750 x2 /= 2;
31751 } return n;
31752};
31753
31754$export($export.P + $export.F * (!!$toFixed && (
31755 0.00008.toFixed(3) !== '0.000' ||
31756 0.9.toFixed(0) !== '1' ||
31757 1.255.toFixed(2) !== '1.25' ||
31758 1000000000000000128.0.toFixed(0) !== '1000000000000000128'
31759) || !__webpack_require__(4)(function () {
31760 // V8 ~ Android 4.3-
31761 $toFixed.call({});
31762})), 'Number', {
31763 toFixed: function toFixed(fractionDigits) {
31764 var x = aNumberValue(this, ERROR);
31765 var f = toInteger(fractionDigits);
31766 var s = '';
31767 var m = ZERO;
31768 var e, z, j, k;
31769 if (f < 0 || f > 20) throw RangeError(ERROR);
31770 // eslint-disable-next-line no-self-compare
31771 if (x != x) return 'NaN';
31772 if (x <= -1e21 || x >= 1e21) return String(x);
31773 if (x < 0) {
31774 s = '-';
31775 x = -x;
31776 }
31777 if (x > 1e-21) {
31778 e = log(x * pow(2, 69, 1)) - 69;
31779 z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
31780 z *= 0x10000000000000;
31781 e = 52 - e;
31782 if (e > 0) {
31783 multiply(0, z);
31784 j = f;
31785 while (j >= 7) {
31786 multiply(1e7, 0);
31787 j -= 7;
31788 }
31789 multiply(pow(10, j, 1), 0);
31790 j = e - 1;
31791 while (j >= 23) {
31792 divide(1 << 23);
31793 j -= 23;
31794 }
31795 divide(1 << j);
31796 multiply(1, 1);
31797 divide(2);
31798 m = numToString();
31799 } else {
31800 multiply(0, z);
31801 multiply(1 << -e, 0);
31802 m = numToString() + repeat.call(ZERO, f);
31803 }
31804 }
31805 if (f > 0) {
31806 k = m.length;
31807 m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
31808 } else {
31809 m = s + m;
31810 } return m;
31811 }
31812});
31813
31814
31815/***/ }),
31816/* 388 */
31817/***/ (function(module, exports, __webpack_require__) {
31818
31819"use strict";
31820
31821var $export = __webpack_require__(0);
31822var $fails = __webpack_require__(4);
31823var aNumberValue = __webpack_require__(224);
31824var $toPrecision = 1.0.toPrecision;
31825
31826$export($export.P + $export.F * ($fails(function () {
31827 // IE7-
31828 return $toPrecision.call(1, undefined) !== '1';
31829}) || !$fails(function () {
31830 // V8 ~ Android 4.3-
31831 $toPrecision.call({});
31832})), 'Number', {
31833 toPrecision: function toPrecision(precision) {
31834 var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
31835 return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
31836 }
31837});
31838
31839
31840/***/ }),
31841/* 389 */
31842/***/ (function(module, exports, __webpack_require__) {
31843
31844// 20.1.2.1 Number.EPSILON
31845var $export = __webpack_require__(0);
31846
31847$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });
31848
31849
31850/***/ }),
31851/* 390 */
31852/***/ (function(module, exports, __webpack_require__) {
31853
31854// 20.1.2.2 Number.isFinite(number)
31855var $export = __webpack_require__(0);
31856var _isFinite = __webpack_require__(2).isFinite;
31857
31858$export($export.S, 'Number', {
31859 isFinite: function isFinite(it) {
31860 return typeof it == 'number' && _isFinite(it);
31861 }
31862});
31863
31864
31865/***/ }),
31866/* 391 */
31867/***/ (function(module, exports, __webpack_require__) {
31868
31869// 20.1.2.3 Number.isInteger(number)
31870var $export = __webpack_require__(0);
31871
31872$export($export.S, 'Number', { isInteger: __webpack_require__(225) });
31873
31874
31875/***/ }),
31876/* 392 */
31877/***/ (function(module, exports, __webpack_require__) {
31878
31879// 20.1.2.4 Number.isNaN(number)
31880var $export = __webpack_require__(0);
31881
31882$export($export.S, 'Number', {
31883 isNaN: function isNaN(number) {
31884 // eslint-disable-next-line no-self-compare
31885 return number != number;
31886 }
31887});
31888
31889
31890/***/ }),
31891/* 393 */
31892/***/ (function(module, exports, __webpack_require__) {
31893
31894// 20.1.2.5 Number.isSafeInteger(number)
31895var $export = __webpack_require__(0);
31896var isInteger = __webpack_require__(225);
31897var abs = Math.abs;
31898
31899$export($export.S, 'Number', {
31900 isSafeInteger: function isSafeInteger(number) {
31901 return isInteger(number) && abs(number) <= 0x1fffffffffffff;
31902 }
31903});
31904
31905
31906/***/ }),
31907/* 394 */
31908/***/ (function(module, exports, __webpack_require__) {
31909
31910// 20.1.2.6 Number.MAX_SAFE_INTEGER
31911var $export = __webpack_require__(0);
31912
31913$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
31914
31915
31916/***/ }),
31917/* 395 */
31918/***/ (function(module, exports, __webpack_require__) {
31919
31920// 20.1.2.10 Number.MIN_SAFE_INTEGER
31921var $export = __webpack_require__(0);
31922
31923$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
31924
31925
31926/***/ }),
31927/* 396 */
31928/***/ (function(module, exports, __webpack_require__) {
31929
31930var $export = __webpack_require__(0);
31931var $parseFloat = __webpack_require__(223);
31932// 20.1.2.12 Number.parseFloat(string)
31933$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });
31934
31935
31936/***/ }),
31937/* 397 */
31938/***/ (function(module, exports, __webpack_require__) {
31939
31940var $export = __webpack_require__(0);
31941var $parseInt = __webpack_require__(222);
31942// 20.1.2.13 Number.parseInt(string, radix)
31943$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });
31944
31945
31946/***/ }),
31947/* 398 */
31948/***/ (function(module, exports, __webpack_require__) {
31949
31950// 20.2.2.3 Math.acosh(x)
31951var $export = __webpack_require__(0);
31952var log1p = __webpack_require__(226);
31953var sqrt = Math.sqrt;
31954var $acosh = Math.acosh;
31955
31956$export($export.S + $export.F * !($acosh
31957 // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
31958 && Math.floor($acosh(Number.MAX_VALUE)) == 710
31959 // Tor Browser bug: Math.acosh(Infinity) -> NaN
31960 && $acosh(Infinity) == Infinity
31961), 'Math', {
31962 acosh: function acosh(x) {
31963 return (x = +x) < 1 ? NaN : x > 94906265.62425156
31964 ? Math.log(x) + Math.LN2
31965 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
31966 }
31967});
31968
31969
31970/***/ }),
31971/* 399 */
31972/***/ (function(module, exports, __webpack_require__) {
31973
31974// 20.2.2.5 Math.asinh(x)
31975var $export = __webpack_require__(0);
31976var $asinh = Math.asinh;
31977
31978function asinh(x) {
31979 return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
31980}
31981
31982// Tor Browser bug: Math.asinh(0) -> -0
31983$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
31984
31985
31986/***/ }),
31987/* 400 */
31988/***/ (function(module, exports, __webpack_require__) {
31989
31990// 20.2.2.7 Math.atanh(x)
31991var $export = __webpack_require__(0);
31992var $atanh = Math.atanh;
31993
31994// Tor Browser bug: Math.atanh(-0) -> 0
31995$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
31996 atanh: function atanh(x) {
31997 return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
31998 }
31999});
32000
32001
32002/***/ }),
32003/* 401 */
32004/***/ (function(module, exports, __webpack_require__) {
32005
32006// 20.2.2.9 Math.cbrt(x)
32007var $export = __webpack_require__(0);
32008var sign = __webpack_require__(156);
32009
32010$export($export.S, 'Math', {
32011 cbrt: function cbrt(x) {
32012 return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
32013 }
32014});
32015
32016
32017/***/ }),
32018/* 402 */
32019/***/ (function(module, exports, __webpack_require__) {
32020
32021// 20.2.2.11 Math.clz32(x)
32022var $export = __webpack_require__(0);
32023
32024$export($export.S, 'Math', {
32025 clz32: function clz32(x) {
32026 return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
32027 }
32028});
32029
32030
32031/***/ }),
32032/* 403 */
32033/***/ (function(module, exports, __webpack_require__) {
32034
32035// 20.2.2.12 Math.cosh(x)
32036var $export = __webpack_require__(0);
32037var exp = Math.exp;
32038
32039$export($export.S, 'Math', {
32040 cosh: function cosh(x) {
32041 return (exp(x = +x) + exp(-x)) / 2;
32042 }
32043});
32044
32045
32046/***/ }),
32047/* 404 */
32048/***/ (function(module, exports, __webpack_require__) {
32049
32050// 20.2.2.14 Math.expm1(x)
32051var $export = __webpack_require__(0);
32052var $expm1 = __webpack_require__(157);
32053
32054$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });
32055
32056
32057/***/ }),
32058/* 405 */
32059/***/ (function(module, exports, __webpack_require__) {
32060
32061// 20.2.2.16 Math.fround(x)
32062var $export = __webpack_require__(0);
32063
32064$export($export.S, 'Math', { fround: __webpack_require__(227) });
32065
32066
32067/***/ }),
32068/* 406 */
32069/***/ (function(module, exports, __webpack_require__) {
32070
32071// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
32072var $export = __webpack_require__(0);
32073var abs = Math.abs;
32074
32075$export($export.S, 'Math', {
32076 hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
32077 var sum = 0;
32078 var i = 0;
32079 var aLen = arguments.length;
32080 var larg = 0;
32081 var arg, div;
32082 while (i < aLen) {
32083 arg = abs(arguments[i++]);
32084 if (larg < arg) {
32085 div = larg / arg;
32086 sum = sum * div * div + 1;
32087 larg = arg;
32088 } else if (arg > 0) {
32089 div = arg / larg;
32090 sum += div * div;
32091 } else sum += arg;
32092 }
32093 return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
32094 }
32095});
32096
32097
32098/***/ }),
32099/* 407 */
32100/***/ (function(module, exports, __webpack_require__) {
32101
32102// 20.2.2.18 Math.imul(x, y)
32103var $export = __webpack_require__(0);
32104var $imul = Math.imul;
32105
32106// some WebKit versions fails with big numbers, some has wrong arity
32107$export($export.S + $export.F * __webpack_require__(4)(function () {
32108 return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
32109}), 'Math', {
32110 imul: function imul(x, y) {
32111 var UINT16 = 0xffff;
32112 var xn = +x;
32113 var yn = +y;
32114 var xl = UINT16 & xn;
32115 var yl = UINT16 & yn;
32116 return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
32117 }
32118});
32119
32120
32121/***/ }),
32122/* 408 */
32123/***/ (function(module, exports, __webpack_require__) {
32124
32125// 20.2.2.21 Math.log10(x)
32126var $export = __webpack_require__(0);
32127
32128$export($export.S, 'Math', {
32129 log10: function log10(x) {
32130 return Math.log(x) * Math.LOG10E;
32131 }
32132});
32133
32134
32135/***/ }),
32136/* 409 */
32137/***/ (function(module, exports, __webpack_require__) {
32138
32139// 20.2.2.20 Math.log1p(x)
32140var $export = __webpack_require__(0);
32141
32142$export($export.S, 'Math', { log1p: __webpack_require__(226) });
32143
32144
32145/***/ }),
32146/* 410 */
32147/***/ (function(module, exports, __webpack_require__) {
32148
32149// 20.2.2.22 Math.log2(x)
32150var $export = __webpack_require__(0);
32151
32152$export($export.S, 'Math', {
32153 log2: function log2(x) {
32154 return Math.log(x) / Math.LN2;
32155 }
32156});
32157
32158
32159/***/ }),
32160/* 411 */
32161/***/ (function(module, exports, __webpack_require__) {
32162
32163// 20.2.2.28 Math.sign(x)
32164var $export = __webpack_require__(0);
32165
32166$export($export.S, 'Math', { sign: __webpack_require__(156) });
32167
32168
32169/***/ }),
32170/* 412 */
32171/***/ (function(module, exports, __webpack_require__) {
32172
32173// 20.2.2.30 Math.sinh(x)
32174var $export = __webpack_require__(0);
32175var expm1 = __webpack_require__(157);
32176var exp = Math.exp;
32177
32178// V8 near Chromium 38 has a problem with very small numbers
32179$export($export.S + $export.F * __webpack_require__(4)(function () {
32180 return !Math.sinh(-2e-17) != -2e-17;
32181}), 'Math', {
32182 sinh: function sinh(x) {
32183 return Math.abs(x = +x) < 1
32184 ? (expm1(x) - expm1(-x)) / 2
32185 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
32186 }
32187});
32188
32189
32190/***/ }),
32191/* 413 */
32192/***/ (function(module, exports, __webpack_require__) {
32193
32194// 20.2.2.33 Math.tanh(x)
32195var $export = __webpack_require__(0);
32196var expm1 = __webpack_require__(157);
32197var exp = Math.exp;
32198
32199$export($export.S, 'Math', {
32200 tanh: function tanh(x) {
32201 var a = expm1(x = +x);
32202 var b = expm1(-x);
32203 return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
32204 }
32205});
32206
32207
32208/***/ }),
32209/* 414 */
32210/***/ (function(module, exports, __webpack_require__) {
32211
32212// 20.2.2.34 Math.trunc(x)
32213var $export = __webpack_require__(0);
32214
32215$export($export.S, 'Math', {
32216 trunc: function trunc(it) {
32217 return (it > 0 ? Math.floor : Math.ceil)(it);
32218 }
32219});
32220
32221
32222/***/ }),
32223/* 415 */
32224/***/ (function(module, exports, __webpack_require__) {
32225
32226var $export = __webpack_require__(0);
32227var toAbsoluteIndex = __webpack_require__(59);
32228var fromCharCode = String.fromCharCode;
32229var $fromCodePoint = String.fromCodePoint;
32230
32231// length should be 1, old FF problem
32232$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
32233 // 21.1.2.2 String.fromCodePoint(...codePoints)
32234 fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
32235 var res = [];
32236 var aLen = arguments.length;
32237 var i = 0;
32238 var code;
32239 while (aLen > i) {
32240 code = +arguments[i++];
32241 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
32242 res.push(code < 0x10000
32243 ? fromCharCode(code)
32244 : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
32245 );
32246 } return res.join('');
32247 }
32248});
32249
32250
32251/***/ }),
32252/* 416 */
32253/***/ (function(module, exports, __webpack_require__) {
32254
32255var $export = __webpack_require__(0);
32256var toIObject = __webpack_require__(21);
32257var toLength = __webpack_require__(10);
32258
32259$export($export.S, 'String', {
32260 // 21.1.2.4 String.raw(callSite, ...substitutions)
32261 raw: function raw(callSite) {
32262 var tpl = toIObject(callSite.raw);
32263 var len = toLength(tpl.length);
32264 var aLen = arguments.length;
32265 var res = [];
32266 var i = 0;
32267 while (len > i) {
32268 res.push(String(tpl[i++]));
32269 if (i < aLen) res.push(String(arguments[i]));
32270 } return res.join('');
32271 }
32272});
32273
32274
32275/***/ }),
32276/* 417 */
32277/***/ (function(module, exports, __webpack_require__) {
32278
32279"use strict";
32280
32281// 21.1.3.25 String.prototype.trim()
32282__webpack_require__(72)('trim', function ($trim) {
32283 return function trim() {
32284 return $trim(this, 3);
32285 };
32286});
32287
32288
32289/***/ }),
32290/* 418 */
32291/***/ (function(module, exports, __webpack_require__) {
32292
32293"use strict";
32294
32295var $at = __webpack_require__(158)(true);
32296
32297// 21.1.3.27 String.prototype[@@iterator]()
32298__webpack_require__(159)(String, 'String', function (iterated) {
32299 this._t = String(iterated); // target
32300 this._i = 0; // next index
32301// 21.1.5.2.1 %StringIteratorPrototype%.next()
32302}, function () {
32303 var O = this._t;
32304 var index = this._i;
32305 var point;
32306 if (index >= O.length) return { value: undefined, done: true };
32307 point = $at(O, index);
32308 this._i += point.length;
32309 return { value: point, done: false };
32310});
32311
32312
32313/***/ }),
32314/* 419 */
32315/***/ (function(module, exports, __webpack_require__) {
32316
32317"use strict";
32318
32319var $export = __webpack_require__(0);
32320var $at = __webpack_require__(158)(false);
32321$export($export.P, 'String', {
32322 // 21.1.3.3 String.prototype.codePointAt(pos)
32323 codePointAt: function codePointAt(pos) {
32324 return $at(this, pos);
32325 }
32326});
32327
32328
32329/***/ }),
32330/* 420 */
32331/***/ (function(module, exports, __webpack_require__) {
32332
32333"use strict";
32334// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
32335
32336var $export = __webpack_require__(0);
32337var toLength = __webpack_require__(10);
32338var context = __webpack_require__(161);
32339var ENDS_WITH = 'endsWith';
32340var $endsWith = ''[ENDS_WITH];
32341
32342$export($export.P + $export.F * __webpack_require__(162)(ENDS_WITH), 'String', {
32343 endsWith: function endsWith(searchString /* , endPosition = @length */) {
32344 var that = context(this, searchString, ENDS_WITH);
32345 var endPosition = arguments.length > 1 ? arguments[1] : undefined;
32346 var len = toLength(that.length);
32347 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
32348 var search = String(searchString);
32349 return $endsWith
32350 ? $endsWith.call(that, search, end)
32351 : that.slice(end - search.length, end) === search;
32352 }
32353});
32354
32355
32356/***/ }),
32357/* 421 */
32358/***/ (function(module, exports, __webpack_require__) {
32359
32360"use strict";
32361// 21.1.3.7 String.prototype.includes(searchString, position = 0)
32362
32363var $export = __webpack_require__(0);
32364var context = __webpack_require__(161);
32365var INCLUDES = 'includes';
32366
32367$export($export.P + $export.F * __webpack_require__(162)(INCLUDES), 'String', {
32368 includes: function includes(searchString /* , position = 0 */) {
32369 return !!~context(this, searchString, INCLUDES)
32370 .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
32371 }
32372});
32373
32374
32375/***/ }),
32376/* 422 */
32377/***/ (function(module, exports, __webpack_require__) {
32378
32379var $export = __webpack_require__(0);
32380
32381$export($export.P, 'String', {
32382 // 21.1.3.13 String.prototype.repeat(count)
32383 repeat: __webpack_require__(155)
32384});
32385
32386
32387/***/ }),
32388/* 423 */
32389/***/ (function(module, exports, __webpack_require__) {
32390
32391"use strict";
32392// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
32393
32394var $export = __webpack_require__(0);
32395var toLength = __webpack_require__(10);
32396var context = __webpack_require__(161);
32397var STARTS_WITH = 'startsWith';
32398var $startsWith = ''[STARTS_WITH];
32399
32400$export($export.P + $export.F * __webpack_require__(162)(STARTS_WITH), 'String', {
32401 startsWith: function startsWith(searchString /* , position = 0 */) {
32402 var that = context(this, searchString, STARTS_WITH);
32403 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
32404 var search = String(searchString);
32405 return $startsWith
32406 ? $startsWith.call(that, search, index)
32407 : that.slice(index, index + search.length) === search;
32408 }
32409});
32410
32411
32412/***/ }),
32413/* 424 */
32414/***/ (function(module, exports, __webpack_require__) {
32415
32416"use strict";
32417
32418// B.2.3.2 String.prototype.anchor(name)
32419__webpack_require__(20)('anchor', function (createHTML) {
32420 return function anchor(name) {
32421 return createHTML(this, 'a', 'name', name);
32422 };
32423});
32424
32425
32426/***/ }),
32427/* 425 */
32428/***/ (function(module, exports, __webpack_require__) {
32429
32430"use strict";
32431
32432// B.2.3.3 String.prototype.big()
32433__webpack_require__(20)('big', function (createHTML) {
32434 return function big() {
32435 return createHTML(this, 'big', '', '');
32436 };
32437});
32438
32439
32440/***/ }),
32441/* 426 */
32442/***/ (function(module, exports, __webpack_require__) {
32443
32444"use strict";
32445
32446// B.2.3.4 String.prototype.blink()
32447__webpack_require__(20)('blink', function (createHTML) {
32448 return function blink() {
32449 return createHTML(this, 'blink', '', '');
32450 };
32451});
32452
32453
32454/***/ }),
32455/* 427 */
32456/***/ (function(module, exports, __webpack_require__) {
32457
32458"use strict";
32459
32460// B.2.3.5 String.prototype.bold()
32461__webpack_require__(20)('bold', function (createHTML) {
32462 return function bold() {
32463 return createHTML(this, 'b', '', '');
32464 };
32465});
32466
32467
32468/***/ }),
32469/* 428 */
32470/***/ (function(module, exports, __webpack_require__) {
32471
32472"use strict";
32473
32474// B.2.3.6 String.prototype.fixed()
32475__webpack_require__(20)('fixed', function (createHTML) {
32476 return function fixed() {
32477 return createHTML(this, 'tt', '', '');
32478 };
32479});
32480
32481
32482/***/ }),
32483/* 429 */
32484/***/ (function(module, exports, __webpack_require__) {
32485
32486"use strict";
32487
32488// B.2.3.7 String.prototype.fontcolor(color)
32489__webpack_require__(20)('fontcolor', function (createHTML) {
32490 return function fontcolor(color) {
32491 return createHTML(this, 'font', 'color', color);
32492 };
32493});
32494
32495
32496/***/ }),
32497/* 430 */
32498/***/ (function(module, exports, __webpack_require__) {
32499
32500"use strict";
32501
32502// B.2.3.8 String.prototype.fontsize(size)
32503__webpack_require__(20)('fontsize', function (createHTML) {
32504 return function fontsize(size) {
32505 return createHTML(this, 'font', 'size', size);
32506 };
32507});
32508
32509
32510/***/ }),
32511/* 431 */
32512/***/ (function(module, exports, __webpack_require__) {
32513
32514"use strict";
32515
32516// B.2.3.9 String.prototype.italics()
32517__webpack_require__(20)('italics', function (createHTML) {
32518 return function italics() {
32519 return createHTML(this, 'i', '', '');
32520 };
32521});
32522
32523
32524/***/ }),
32525/* 432 */
32526/***/ (function(module, exports, __webpack_require__) {
32527
32528"use strict";
32529
32530// B.2.3.10 String.prototype.link(url)
32531__webpack_require__(20)('link', function (createHTML) {
32532 return function link(url) {
32533 return createHTML(this, 'a', 'href', url);
32534 };
32535});
32536
32537
32538/***/ }),
32539/* 433 */
32540/***/ (function(module, exports, __webpack_require__) {
32541
32542"use strict";
32543
32544// B.2.3.11 String.prototype.small()
32545__webpack_require__(20)('small', function (createHTML) {
32546 return function small() {
32547 return createHTML(this, 'small', '', '');
32548 };
32549});
32550
32551
32552/***/ }),
32553/* 434 */
32554/***/ (function(module, exports, __webpack_require__) {
32555
32556"use strict";
32557
32558// B.2.3.12 String.prototype.strike()
32559__webpack_require__(20)('strike', function (createHTML) {
32560 return function strike() {
32561 return createHTML(this, 'strike', '', '');
32562 };
32563});
32564
32565
32566/***/ }),
32567/* 435 */
32568/***/ (function(module, exports, __webpack_require__) {
32569
32570"use strict";
32571
32572// B.2.3.13 String.prototype.sub()
32573__webpack_require__(20)('sub', function (createHTML) {
32574 return function sub() {
32575 return createHTML(this, 'sub', '', '');
32576 };
32577});
32578
32579
32580/***/ }),
32581/* 436 */
32582/***/ (function(module, exports, __webpack_require__) {
32583
32584"use strict";
32585
32586// B.2.3.14 String.prototype.sup()
32587__webpack_require__(20)('sup', function (createHTML) {
32588 return function sup() {
32589 return createHTML(this, 'sup', '', '');
32590 };
32591});
32592
32593
32594/***/ }),
32595/* 437 */
32596/***/ (function(module, exports, __webpack_require__) {
32597
32598// 20.3.3.1 / 15.9.4.4 Date.now()
32599var $export = __webpack_require__(0);
32600
32601$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
32602
32603
32604/***/ }),
32605/* 438 */
32606/***/ (function(module, exports, __webpack_require__) {
32607
32608"use strict";
32609
32610var $export = __webpack_require__(0);
32611var toObject = __webpack_require__(13);
32612var toPrimitive = __webpack_require__(34);
32613
32614$export($export.P + $export.F * __webpack_require__(4)(function () {
32615 return new Date(NaN).toJSON() !== null
32616 || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
32617}), 'Date', {
32618 // eslint-disable-next-line no-unused-vars
32619 toJSON: function toJSON(key) {
32620 var O = toObject(this);
32621 var pv = toPrimitive(O);
32622 return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
32623 }
32624});
32625
32626
32627/***/ }),
32628/* 439 */
32629/***/ (function(module, exports, __webpack_require__) {
32630
32631// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
32632var $export = __webpack_require__(0);
32633var toISOString = __webpack_require__(440);
32634
32635// PhantomJS / old WebKit has a broken implementations
32636$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
32637 toISOString: toISOString
32638});
32639
32640
32641/***/ }),
32642/* 440 */
32643/***/ (function(module, exports, __webpack_require__) {
32644
32645"use strict";
32646
32647// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
32648var fails = __webpack_require__(4);
32649var getTime = Date.prototype.getTime;
32650var $toISOString = Date.prototype.toISOString;
32651
32652var lz = function (num) {
32653 return num > 9 ? num : '0' + num;
32654};
32655
32656// PhantomJS / old WebKit has a broken implementations
32657module.exports = (fails(function () {
32658 return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
32659}) || !fails(function () {
32660 $toISOString.call(new Date(NaN));
32661})) ? function toISOString() {
32662 if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
32663 var d = this;
32664 var y = d.getUTCFullYear();
32665 var m = d.getUTCMilliseconds();
32666 var s = y < 0 ? '-' : y > 9999 ? '+' : '';
32667 return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
32668 '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
32669 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
32670 ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
32671} : $toISOString;
32672
32673
32674/***/ }),
32675/* 441 */
32676/***/ (function(module, exports, __webpack_require__) {
32677
32678var DateProto = Date.prototype;
32679var INVALID_DATE = 'Invalid Date';
32680var TO_STRING = 'toString';
32681var $toString = DateProto[TO_STRING];
32682var getTime = DateProto.getTime;
32683if (new Date(NaN) + '' != INVALID_DATE) {
32684 __webpack_require__(19)(DateProto, TO_STRING, function toString() {
32685 var value = getTime.call(this);
32686 // eslint-disable-next-line no-self-compare
32687 return value === value ? $toString.call(this) : INVALID_DATE;
32688 });
32689}
32690
32691
32692/***/ }),
32693/* 442 */
32694/***/ (function(module, exports, __webpack_require__) {
32695
32696var TO_PRIMITIVE = __webpack_require__(7)('toPrimitive');
32697var proto = Date.prototype;
32698
32699if (!(TO_PRIMITIVE in proto)) __webpack_require__(18)(proto, TO_PRIMITIVE, __webpack_require__(443));
32700
32701
32702/***/ }),
32703/* 443 */
32704/***/ (function(module, exports, __webpack_require__) {
32705
32706"use strict";
32707
32708var anObject = __webpack_require__(1);
32709var toPrimitive = __webpack_require__(34);
32710var NUMBER = 'number';
32711
32712module.exports = function (hint) {
32713 if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
32714 return toPrimitive(anObject(this), hint != NUMBER);
32715};
32716
32717
32718/***/ }),
32719/* 444 */
32720/***/ (function(module, exports, __webpack_require__) {
32721
32722// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
32723var $export = __webpack_require__(0);
32724
32725$export($export.S, 'Array', { isArray: __webpack_require__(104) });
32726
32727
32728/***/ }),
32729/* 445 */
32730/***/ (function(module, exports, __webpack_require__) {
32731
32732"use strict";
32733
32734var ctx = __webpack_require__(25);
32735var $export = __webpack_require__(0);
32736var toObject = __webpack_require__(13);
32737var call = __webpack_require__(228);
32738var isArrayIter = __webpack_require__(163);
32739var toLength = __webpack_require__(10);
32740var createProperty = __webpack_require__(164);
32741var getIterFn = __webpack_require__(165);
32742
32743$export($export.S + $export.F * !__webpack_require__(106)(function (iter) { Array.from(iter); }), 'Array', {
32744 // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
32745 from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
32746 var O = toObject(arrayLike);
32747 var C = typeof this == 'function' ? this : Array;
32748 var aLen = arguments.length;
32749 var mapfn = aLen > 1 ? arguments[1] : undefined;
32750 var mapping = mapfn !== undefined;
32751 var index = 0;
32752 var iterFn = getIterFn(O);
32753 var length, result, step, iterator;
32754 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
32755 // if object isn't iterable or it's array with default iterator - use simple case
32756 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
32757 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
32758 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
32759 }
32760 } else {
32761 length = toLength(O.length);
32762 for (result = new C(length); length > index; index++) {
32763 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
32764 }
32765 }
32766 result.length = index;
32767 return result;
32768 }
32769});
32770
32771
32772/***/ }),
32773/* 446 */
32774/***/ (function(module, exports, __webpack_require__) {
32775
32776"use strict";
32777
32778var $export = __webpack_require__(0);
32779var createProperty = __webpack_require__(164);
32780
32781// WebKit Array.of isn't generic
32782$export($export.S + $export.F * __webpack_require__(4)(function () {
32783 function F() { /* empty */ }
32784 return !(Array.of.call(F) instanceof F);
32785}), 'Array', {
32786 // 22.1.2.3 Array.of( ...items)
32787 of: function of(/* ...args */) {
32788 var index = 0;
32789 var aLen = arguments.length;
32790 var result = new (typeof this == 'function' ? this : Array)(aLen);
32791 while (aLen > index) createProperty(result, index, arguments[index++]);
32792 result.length = aLen;
32793 return result;
32794 }
32795});
32796
32797
32798/***/ }),
32799/* 447 */
32800/***/ (function(module, exports, __webpack_require__) {
32801
32802"use strict";
32803
32804// 22.1.3.13 Array.prototype.join(separator)
32805var $export = __webpack_require__(0);
32806var toIObject = __webpack_require__(21);
32807var arrayJoin = [].join;
32808
32809// fallback for not array-like strings
32810$export($export.P + $export.F * (__webpack_require__(82) != Object || !__webpack_require__(27)(arrayJoin)), 'Array', {
32811 join: function join(separator) {
32812 return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
32813 }
32814});
32815
32816
32817/***/ }),
32818/* 448 */
32819/***/ (function(module, exports, __webpack_require__) {
32820
32821"use strict";
32822
32823var $export = __webpack_require__(0);
32824var html = __webpack_require__(151);
32825var cof = __webpack_require__(26);
32826var toAbsoluteIndex = __webpack_require__(59);
32827var toLength = __webpack_require__(10);
32828var arraySlice = [].slice;
32829
32830// fallback for not array-like ES3 strings and DOM objects
32831$export($export.P + $export.F * __webpack_require__(4)(function () {
32832 if (html) arraySlice.call(html);
32833}), 'Array', {
32834 slice: function slice(begin, end) {
32835 var len = toLength(this.length);
32836 var klass = cof(this);
32837 end = end === undefined ? len : end;
32838 if (klass == 'Array') return arraySlice.call(this, begin, end);
32839 var start = toAbsoluteIndex(begin, len);
32840 var upTo = toAbsoluteIndex(end, len);
32841 var size = toLength(upTo - start);
32842 var cloned = new Array(size);
32843 var i = 0;
32844 for (; i < size; i++) cloned[i] = klass == 'String'
32845 ? this.charAt(start + i)
32846 : this[start + i];
32847 return cloned;
32848 }
32849});
32850
32851
32852/***/ }),
32853/* 449 */
32854/***/ (function(module, exports, __webpack_require__) {
32855
32856"use strict";
32857
32858var $export = __webpack_require__(0);
32859var aFunction = __webpack_require__(15);
32860var toObject = __webpack_require__(13);
32861var fails = __webpack_require__(4);
32862var $sort = [].sort;
32863var test = [1, 2, 3];
32864
32865$export($export.P + $export.F * (fails(function () {
32866 // IE8-
32867 test.sort(undefined);
32868}) || !fails(function () {
32869 // V8 bug
32870 test.sort(null);
32871 // Old WebKit
32872}) || !__webpack_require__(27)($sort)), 'Array', {
32873 // 22.1.3.25 Array.prototype.sort(comparefn)
32874 sort: function sort(comparefn) {
32875 return comparefn === undefined
32876 ? $sort.call(toObject(this))
32877 : $sort.call(toObject(this), aFunction(comparefn));
32878 }
32879});
32880
32881
32882/***/ }),
32883/* 450 */
32884/***/ (function(module, exports, __webpack_require__) {
32885
32886"use strict";
32887
32888var $export = __webpack_require__(0);
32889var $forEach = __webpack_require__(38)(0);
32890var STRICT = __webpack_require__(27)([].forEach, true);
32891
32892$export($export.P + $export.F * !STRICT, 'Array', {
32893 // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
32894 forEach: function forEach(callbackfn /* , thisArg */) {
32895 return $forEach(this, callbackfn, arguments[1]);
32896 }
32897});
32898
32899
32900/***/ }),
32901/* 451 */
32902/***/ (function(module, exports, __webpack_require__) {
32903
32904var isObject = __webpack_require__(5);
32905var isArray = __webpack_require__(104);
32906var SPECIES = __webpack_require__(7)('species');
32907
32908module.exports = function (original) {
32909 var C;
32910 if (isArray(original)) {
32911 C = original.constructor;
32912 // cross-realm fallback
32913 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
32914 if (isObject(C)) {
32915 C = C[SPECIES];
32916 if (C === null) C = undefined;
32917 }
32918 } return C === undefined ? Array : C;
32919};
32920
32921
32922/***/ }),
32923/* 452 */
32924/***/ (function(module, exports, __webpack_require__) {
32925
32926"use strict";
32927
32928var $export = __webpack_require__(0);
32929var $map = __webpack_require__(38)(1);
32930
32931$export($export.P + $export.F * !__webpack_require__(27)([].map, true), 'Array', {
32932 // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
32933 map: function map(callbackfn /* , thisArg */) {
32934 return $map(this, callbackfn, arguments[1]);
32935 }
32936});
32937
32938
32939/***/ }),
32940/* 453 */
32941/***/ (function(module, exports, __webpack_require__) {
32942
32943"use strict";
32944
32945var $export = __webpack_require__(0);
32946var $filter = __webpack_require__(38)(2);
32947
32948$export($export.P + $export.F * !__webpack_require__(27)([].filter, true), 'Array', {
32949 // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
32950 filter: function filter(callbackfn /* , thisArg */) {
32951 return $filter(this, callbackfn, arguments[1]);
32952 }
32953});
32954
32955
32956/***/ }),
32957/* 454 */
32958/***/ (function(module, exports, __webpack_require__) {
32959
32960"use strict";
32961
32962var $export = __webpack_require__(0);
32963var $some = __webpack_require__(38)(3);
32964
32965$export($export.P + $export.F * !__webpack_require__(27)([].some, true), 'Array', {
32966 // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
32967 some: function some(callbackfn /* , thisArg */) {
32968 return $some(this, callbackfn, arguments[1]);
32969 }
32970});
32971
32972
32973/***/ }),
32974/* 455 */
32975/***/ (function(module, exports, __webpack_require__) {
32976
32977"use strict";
32978
32979var $export = __webpack_require__(0);
32980var $every = __webpack_require__(38)(4);
32981
32982$export($export.P + $export.F * !__webpack_require__(27)([].every, true), 'Array', {
32983 // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
32984 every: function every(callbackfn /* , thisArg */) {
32985 return $every(this, callbackfn, arguments[1]);
32986 }
32987});
32988
32989
32990/***/ }),
32991/* 456 */
32992/***/ (function(module, exports, __webpack_require__) {
32993
32994"use strict";
32995
32996var $export = __webpack_require__(0);
32997var $reduce = __webpack_require__(229);
32998
32999$export($export.P + $export.F * !__webpack_require__(27)([].reduce, true), 'Array', {
33000 // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
33001 reduce: function reduce(callbackfn /* , initialValue */) {
33002 return $reduce(this, callbackfn, arguments.length, arguments[1], false);
33003 }
33004});
33005
33006
33007/***/ }),
33008/* 457 */
33009/***/ (function(module, exports, __webpack_require__) {
33010
33011"use strict";
33012
33013var $export = __webpack_require__(0);
33014var $reduce = __webpack_require__(229);
33015
33016$export($export.P + $export.F * !__webpack_require__(27)([].reduceRight, true), 'Array', {
33017 // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
33018 reduceRight: function reduceRight(callbackfn /* , initialValue */) {
33019 return $reduce(this, callbackfn, arguments.length, arguments[1], true);
33020 }
33021});
33022
33023
33024/***/ }),
33025/* 458 */
33026/***/ (function(module, exports, __webpack_require__) {
33027
33028"use strict";
33029
33030var $export = __webpack_require__(0);
33031var $indexOf = __webpack_require__(102)(false);
33032var $native = [].indexOf;
33033var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
33034
33035$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(27)($native)), 'Array', {
33036 // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
33037 indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
33038 return NEGATIVE_ZERO
33039 // convert -0 to +0
33040 ? $native.apply(this, arguments) || 0
33041 : $indexOf(this, searchElement, arguments[1]);
33042 }
33043});
33044
33045
33046/***/ }),
33047/* 459 */
33048/***/ (function(module, exports, __webpack_require__) {
33049
33050"use strict";
33051
33052var $export = __webpack_require__(0);
33053var toIObject = __webpack_require__(21);
33054var toInteger = __webpack_require__(36);
33055var toLength = __webpack_require__(10);
33056var $native = [].lastIndexOf;
33057var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
33058
33059$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(27)($native)), 'Array', {
33060 // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
33061 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
33062 // convert -0 to +0
33063 if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
33064 var O = toIObject(this);
33065 var length = toLength(O.length);
33066 var index = length - 1;
33067 if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
33068 if (index < 0) index = length + index;
33069 for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
33070 return -1;
33071 }
33072});
33073
33074
33075/***/ }),
33076/* 460 */
33077/***/ (function(module, exports, __webpack_require__) {
33078
33079// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
33080var $export = __webpack_require__(0);
33081
33082$export($export.P, 'Array', { copyWithin: __webpack_require__(230) });
33083
33084__webpack_require__(51)('copyWithin');
33085
33086
33087/***/ }),
33088/* 461 */
33089/***/ (function(module, exports, __webpack_require__) {
33090
33091// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
33092var $export = __webpack_require__(0);
33093
33094$export($export.P, 'Array', { fill: __webpack_require__(167) });
33095
33096__webpack_require__(51)('fill');
33097
33098
33099/***/ }),
33100/* 462 */
33101/***/ (function(module, exports, __webpack_require__) {
33102
33103"use strict";
33104
33105// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
33106var $export = __webpack_require__(0);
33107var $find = __webpack_require__(38)(5);
33108var KEY = 'find';
33109var forced = true;
33110// Shouldn't skip holes
33111if (KEY in []) Array(1)[KEY](function () { forced = false; });
33112$export($export.P + $export.F * forced, 'Array', {
33113 find: function find(callbackfn /* , that = undefined */) {
33114 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
33115 }
33116});
33117__webpack_require__(51)(KEY);
33118
33119
33120/***/ }),
33121/* 463 */
33122/***/ (function(module, exports, __webpack_require__) {
33123
33124"use strict";
33125
33126// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
33127var $export = __webpack_require__(0);
33128var $find = __webpack_require__(38)(6);
33129var KEY = 'findIndex';
33130var forced = true;
33131// Shouldn't skip holes
33132if (KEY in []) Array(1)[KEY](function () { forced = false; });
33133$export($export.P + $export.F * forced, 'Array', {
33134 findIndex: function findIndex(callbackfn /* , that = undefined */) {
33135 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
33136 }
33137});
33138__webpack_require__(51)(KEY);
33139
33140
33141/***/ }),
33142/* 464 */
33143/***/ (function(module, exports, __webpack_require__) {
33144
33145__webpack_require__(62)('Array');
33146
33147
33148/***/ }),
33149/* 465 */
33150/***/ (function(module, exports, __webpack_require__) {
33151
33152var global = __webpack_require__(2);
33153var inheritIfRequired = __webpack_require__(154);
33154var dP = __webpack_require__(9).f;
33155var gOPN = __webpack_require__(61).f;
33156var isRegExp = __webpack_require__(105);
33157var $flags = __webpack_require__(107);
33158var $RegExp = global.RegExp;
33159var Base = $RegExp;
33160var proto = $RegExp.prototype;
33161var re1 = /a/g;
33162var re2 = /a/g;
33163// "new" creates a new object, old webkit buggy here
33164var CORRECT_NEW = new $RegExp(re1) !== re1;
33165
33166if (__webpack_require__(8) && (!CORRECT_NEW || __webpack_require__(4)(function () {
33167 re2[__webpack_require__(7)('match')] = false;
33168 // RegExp constructor can alter flags and IsRegExp works correct with @@match
33169 return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
33170}))) {
33171 $RegExp = function RegExp(p, f) {
33172 var tiRE = this instanceof $RegExp;
33173 var piRE = isRegExp(p);
33174 var fiU = f === undefined;
33175 return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
33176 : inheritIfRequired(CORRECT_NEW
33177 ? new Base(piRE && !fiU ? p.source : p, f)
33178 : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
33179 , tiRE ? this : proto, $RegExp);
33180 };
33181 var proxy = function (key) {
33182 key in $RegExp || dP($RegExp, key, {
33183 configurable: true,
33184 get: function () { return Base[key]; },
33185 set: function (it) { Base[key] = it; }
33186 });
33187 };
33188 for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
33189 proto.constructor = $RegExp;
33190 $RegExp.prototype = proto;
33191 __webpack_require__(19)(global, 'RegExp', $RegExp);
33192}
33193
33194__webpack_require__(62)('RegExp');
33195
33196
33197/***/ }),
33198/* 466 */
33199/***/ (function(module, exports, __webpack_require__) {
33200
33201"use strict";
33202
33203__webpack_require__(232);
33204var anObject = __webpack_require__(1);
33205var $flags = __webpack_require__(107);
33206var DESCRIPTORS = __webpack_require__(8);
33207var TO_STRING = 'toString';
33208var $toString = /./[TO_STRING];
33209
33210var define = function (fn) {
33211 __webpack_require__(19)(RegExp.prototype, TO_STRING, fn, true);
33212};
33213
33214// 21.2.5.14 RegExp.prototype.toString()
33215if (__webpack_require__(4)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
33216 define(function toString() {
33217 var R = anObject(this);
33218 return '/'.concat(R.source, '/',
33219 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
33220 });
33221// FF44- RegExp#toString has a wrong name
33222} else if ($toString.name != TO_STRING) {
33223 define(function toString() {
33224 return $toString.call(this);
33225 });
33226}
33227
33228
33229/***/ }),
33230/* 467 */
33231/***/ (function(module, exports, __webpack_require__) {
33232
33233// @@match logic
33234__webpack_require__(108)('match', 1, function (defined, MATCH, $match) {
33235 // 21.1.3.11 String.prototype.match(regexp)
33236 return [function match(regexp) {
33237 'use strict';
33238 var O = defined(this);
33239 var fn = regexp == undefined ? undefined : regexp[MATCH];
33240 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
33241 }, $match];
33242});
33243
33244
33245/***/ }),
33246/* 468 */
33247/***/ (function(module, exports, __webpack_require__) {
33248
33249// @@replace logic
33250__webpack_require__(108)('replace', 2, function (defined, REPLACE, $replace) {
33251 // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
33252 return [function replace(searchValue, replaceValue) {
33253 'use strict';
33254 var O = defined(this);
33255 var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
33256 return fn !== undefined
33257 ? fn.call(searchValue, O, replaceValue)
33258 : $replace.call(String(O), searchValue, replaceValue);
33259 }, $replace];
33260});
33261
33262
33263/***/ }),
33264/* 469 */
33265/***/ (function(module, exports, __webpack_require__) {
33266
33267// @@search logic
33268__webpack_require__(108)('search', 1, function (defined, SEARCH, $search) {
33269 // 21.1.3.15 String.prototype.search(regexp)
33270 return [function search(regexp) {
33271 'use strict';
33272 var O = defined(this);
33273 var fn = regexp == undefined ? undefined : regexp[SEARCH];
33274 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
33275 }, $search];
33276});
33277
33278
33279/***/ }),
33280/* 470 */
33281/***/ (function(module, exports, __webpack_require__) {
33282
33283// @@split logic
33284__webpack_require__(108)('split', 2, function (defined, SPLIT, $split) {
33285 'use strict';
33286 var isRegExp = __webpack_require__(105);
33287 var _split = $split;
33288 var $push = [].push;
33289 var $SPLIT = 'split';
33290 var LENGTH = 'length';
33291 var LAST_INDEX = 'lastIndex';
33292 if (
33293 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
33294 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
33295 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
33296 '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
33297 '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
33298 ''[$SPLIT](/.?/)[LENGTH]
33299 ) {
33300 var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
33301 // based on es5-shim implementation, need to rework it
33302 $split = function (separator, limit) {
33303 var string = String(this);
33304 if (separator === undefined && limit === 0) return [];
33305 // If `separator` is not a regex, use native split
33306 if (!isRegExp(separator)) return _split.call(string, separator, limit);
33307 var output = [];
33308 var flags = (separator.ignoreCase ? 'i' : '') +
33309 (separator.multiline ? 'm' : '') +
33310 (separator.unicode ? 'u' : '') +
33311 (separator.sticky ? 'y' : '');
33312 var lastLastIndex = 0;
33313 var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
33314 // Make `global` and avoid `lastIndex` issues by working with a copy
33315 var separatorCopy = new RegExp(separator.source, flags + 'g');
33316 var separator2, match, lastIndex, lastLength, i;
33317 // Doesn't need flags gy, but they don't hurt
33318 if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
33319 while (match = separatorCopy.exec(string)) {
33320 // `separatorCopy.lastIndex` is not reliable cross-browser
33321 lastIndex = match.index + match[0][LENGTH];
33322 if (lastIndex > lastLastIndex) {
33323 output.push(string.slice(lastLastIndex, match.index));
33324 // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
33325 // eslint-disable-next-line no-loop-func
33326 if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {
33327 for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;
33328 });
33329 if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
33330 lastLength = match[0][LENGTH];
33331 lastLastIndex = lastIndex;
33332 if (output[LENGTH] >= splitLimit) break;
33333 }
33334 if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
33335 }
33336 if (lastLastIndex === string[LENGTH]) {
33337 if (lastLength || !separatorCopy.test('')) output.push('');
33338 } else output.push(string.slice(lastLastIndex));
33339 return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
33340 };
33341 // Chakra, V8
33342 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
33343 $split = function (separator, limit) {
33344 return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
33345 };
33346 }
33347 // 21.1.3.17 String.prototype.split(separator, limit)
33348 return [function split(separator, limit) {
33349 var O = defined(this);
33350 var fn = separator == undefined ? undefined : separator[SPLIT];
33351 return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
33352 }, $split];
33353});
33354
33355
33356/***/ }),
33357/* 471 */
33358/***/ (function(module, exports, __webpack_require__) {
33359
33360"use strict";
33361
33362var LIBRARY = __webpack_require__(57);
33363var global = __webpack_require__(2);
33364var ctx = __webpack_require__(25);
33365var classof = __webpack_require__(84);
33366var $export = __webpack_require__(0);
33367var isObject = __webpack_require__(5);
33368var aFunction = __webpack_require__(15);
33369var anInstance = __webpack_require__(63);
33370var forOf = __webpack_require__(64);
33371var speciesConstructor = __webpack_require__(109);
33372var task = __webpack_require__(169).set;
33373var microtask = __webpack_require__(170)();
33374var newPromiseCapabilityModule = __webpack_require__(171);
33375var perform = __webpack_require__(233);
33376var promiseResolve = __webpack_require__(234);
33377var PROMISE = 'Promise';
33378var TypeError = global.TypeError;
33379var process = global.process;
33380var $Promise = global[PROMISE];
33381var isNode = classof(process) == 'process';
33382var empty = function () { /* empty */ };
33383var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
33384var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
33385
33386var USE_NATIVE = !!function () {
33387 try {
33388 // correct subclassing with @@species support
33389 var promise = $Promise.resolve(1);
33390 var FakePromise = (promise.constructor = {})[__webpack_require__(7)('species')] = function (exec) {
33391 exec(empty, empty);
33392 };
33393 // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
33394 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
33395 } catch (e) { /* empty */ }
33396}();
33397
33398// helpers
33399var isThenable = function (it) {
33400 var then;
33401 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
33402};
33403var notify = function (promise, isReject) {
33404 if (promise._n) return;
33405 promise._n = true;
33406 var chain = promise._c;
33407 microtask(function () {
33408 var value = promise._v;
33409 var ok = promise._s == 1;
33410 var i = 0;
33411 var run = function (reaction) {
33412 var handler = ok ? reaction.ok : reaction.fail;
33413 var resolve = reaction.resolve;
33414 var reject = reaction.reject;
33415 var domain = reaction.domain;
33416 var result, then;
33417 try {
33418 if (handler) {
33419 if (!ok) {
33420 if (promise._h == 2) onHandleUnhandled(promise);
33421 promise._h = 1;
33422 }
33423 if (handler === true) result = value;
33424 else {
33425 if (domain) domain.enter();
33426 result = handler(value);
33427 if (domain) domain.exit();
33428 }
33429 if (result === reaction.promise) {
33430 reject(TypeError('Promise-chain cycle'));
33431 } else if (then = isThenable(result)) {
33432 then.call(result, resolve, reject);
33433 } else resolve(result);
33434 } else reject(value);
33435 } catch (e) {
33436 reject(e);
33437 }
33438 };
33439 while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
33440 promise._c = [];
33441 promise._n = false;
33442 if (isReject && !promise._h) onUnhandled(promise);
33443 });
33444};
33445var onUnhandled = function (promise) {
33446 task.call(global, function () {
33447 var value = promise._v;
33448 var unhandled = isUnhandled(promise);
33449 var result, handler, console;
33450 if (unhandled) {
33451 result = perform(function () {
33452 if (isNode) {
33453 process.emit('unhandledRejection', value, promise);
33454 } else if (handler = global.onunhandledrejection) {
33455 handler({ promise: promise, reason: value });
33456 } else if ((console = global.console) && console.error) {
33457 console.error('Unhandled promise rejection', value);
33458 }
33459 });
33460 // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
33461 promise._h = isNode || isUnhandled(promise) ? 2 : 1;
33462 } promise._a = undefined;
33463 if (unhandled && result.e) throw result.v;
33464 });
33465};
33466var isUnhandled = function (promise) {
33467 return promise._h !== 1 && (promise._a || promise._c).length === 0;
33468};
33469var onHandleUnhandled = function (promise) {
33470 task.call(global, function () {
33471 var handler;
33472 if (isNode) {
33473 process.emit('rejectionHandled', promise);
33474 } else if (handler = global.onrejectionhandled) {
33475 handler({ promise: promise, reason: promise._v });
33476 }
33477 });
33478};
33479var $reject = function (value) {
33480 var promise = this;
33481 if (promise._d) return;
33482 promise._d = true;
33483 promise = promise._w || promise; // unwrap
33484 promise._v = value;
33485 promise._s = 2;
33486 if (!promise._a) promise._a = promise._c.slice();
33487 notify(promise, true);
33488};
33489var $resolve = function (value) {
33490 var promise = this;
33491 var then;
33492 if (promise._d) return;
33493 promise._d = true;
33494 promise = promise._w || promise; // unwrap
33495 try {
33496 if (promise === value) throw TypeError("Promise can't be resolved itself");
33497 if (then = isThenable(value)) {
33498 microtask(function () {
33499 var wrapper = { _w: promise, _d: false }; // wrap
33500 try {
33501 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
33502 } catch (e) {
33503 $reject.call(wrapper, e);
33504 }
33505 });
33506 } else {
33507 promise._v = value;
33508 promise._s = 1;
33509 notify(promise, false);
33510 }
33511 } catch (e) {
33512 $reject.call({ _w: promise, _d: false }, e); // wrap
33513 }
33514};
33515
33516// constructor polyfill
33517if (!USE_NATIVE) {
33518 // 25.4.3.1 Promise(executor)
33519 $Promise = function Promise(executor) {
33520 anInstance(this, $Promise, PROMISE, '_h');
33521 aFunction(executor);
33522 Internal.call(this);
33523 try {
33524 executor(ctx($resolve, this, 1), ctx($reject, this, 1));
33525 } catch (err) {
33526 $reject.call(this, err);
33527 }
33528 };
33529 // eslint-disable-next-line no-unused-vars
33530 Internal = function Promise(executor) {
33531 this._c = []; // <- awaiting reactions
33532 this._a = undefined; // <- checked in isUnhandled reactions
33533 this._s = 0; // <- state
33534 this._d = false; // <- done
33535 this._v = undefined; // <- value
33536 this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
33537 this._n = false; // <- notify
33538 };
33539 Internal.prototype = __webpack_require__(65)($Promise.prototype, {
33540 // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
33541 then: function then(onFulfilled, onRejected) {
33542 var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
33543 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
33544 reaction.fail = typeof onRejected == 'function' && onRejected;
33545 reaction.domain = isNode ? process.domain : undefined;
33546 this._c.push(reaction);
33547 if (this._a) this._a.push(reaction);
33548 if (this._s) notify(this, false);
33549 return reaction.promise;
33550 },
33551 // 25.4.5.1 Promise.prototype.catch(onRejected)
33552 'catch': function (onRejected) {
33553 return this.then(undefined, onRejected);
33554 }
33555 });
33556 OwnPromiseCapability = function () {
33557 var promise = new Internal();
33558 this.promise = promise;
33559 this.resolve = ctx($resolve, promise, 1);
33560 this.reject = ctx($reject, promise, 1);
33561 };
33562 newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
33563 return C === $Promise || C === Wrapper
33564 ? new OwnPromiseCapability(C)
33565 : newGenericPromiseCapability(C);
33566 };
33567}
33568
33569$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
33570__webpack_require__(71)($Promise, PROMISE);
33571__webpack_require__(62)(PROMISE);
33572Wrapper = __webpack_require__(33)[PROMISE];
33573
33574// statics
33575$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
33576 // 25.4.4.5 Promise.reject(r)
33577 reject: function reject(r) {
33578 var capability = newPromiseCapability(this);
33579 var $$reject = capability.reject;
33580 $$reject(r);
33581 return capability.promise;
33582 }
33583});
33584$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
33585 // 25.4.4.6 Promise.resolve(x)
33586 resolve: function resolve(x) {
33587 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
33588 }
33589});
33590$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(106)(function (iter) {
33591 $Promise.all(iter)['catch'](empty);
33592})), PROMISE, {
33593 // 25.4.4.1 Promise.all(iterable)
33594 all: function all(iterable) {
33595 var C = this;
33596 var capability = newPromiseCapability(C);
33597 var resolve = capability.resolve;
33598 var reject = capability.reject;
33599 var result = perform(function () {
33600 var values = [];
33601 var index = 0;
33602 var remaining = 1;
33603 forOf(iterable, false, function (promise) {
33604 var $index = index++;
33605 var alreadyCalled = false;
33606 values.push(undefined);
33607 remaining++;
33608 C.resolve(promise).then(function (value) {
33609 if (alreadyCalled) return;
33610 alreadyCalled = true;
33611 values[$index] = value;
33612 --remaining || resolve(values);
33613 }, reject);
33614 });
33615 --remaining || resolve(values);
33616 });
33617 if (result.e) reject(result.v);
33618 return capability.promise;
33619 },
33620 // 25.4.4.4 Promise.race(iterable)
33621 race: function race(iterable) {
33622 var C = this;
33623 var capability = newPromiseCapability(C);
33624 var reject = capability.reject;
33625 var result = perform(function () {
33626 forOf(iterable, false, function (promise) {
33627 C.resolve(promise).then(capability.resolve, reject);
33628 });
33629 });
33630 if (result.e) reject(result.v);
33631 return capability.promise;
33632 }
33633});
33634
33635
33636/***/ }),
33637/* 472 */
33638/***/ (function(module, exports, __webpack_require__) {
33639
33640"use strict";
33641
33642var weak = __webpack_require__(239);
33643var validate = __webpack_require__(74);
33644var WEAK_SET = 'WeakSet';
33645
33646// 23.4 WeakSet Objects
33647__webpack_require__(110)(WEAK_SET, function (get) {
33648 return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
33649}, {
33650 // 23.4.3.1 WeakSet.prototype.add(value)
33651 add: function add(value) {
33652 return weak.def(validate(this, WEAK_SET), value, true);
33653 }
33654}, weak, false, true);
33655
33656
33657/***/ }),
33658/* 473 */
33659/***/ (function(module, exports, __webpack_require__) {
33660
33661"use strict";
33662
33663var $export = __webpack_require__(0);
33664var $typed = __webpack_require__(111);
33665var buffer = __webpack_require__(172);
33666var anObject = __webpack_require__(1);
33667var toAbsoluteIndex = __webpack_require__(59);
33668var toLength = __webpack_require__(10);
33669var isObject = __webpack_require__(5);
33670var ArrayBuffer = __webpack_require__(2).ArrayBuffer;
33671var speciesConstructor = __webpack_require__(109);
33672var $ArrayBuffer = buffer.ArrayBuffer;
33673var $DataView = buffer.DataView;
33674var $isView = $typed.ABV && ArrayBuffer.isView;
33675var $slice = $ArrayBuffer.prototype.slice;
33676var VIEW = $typed.VIEW;
33677var ARRAY_BUFFER = 'ArrayBuffer';
33678
33679$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
33680
33681$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
33682 // 24.1.3.1 ArrayBuffer.isView(arg)
33683 isView: function isView(it) {
33684 return $isView && $isView(it) || isObject(it) && VIEW in it;
33685 }
33686});
33687
33688$export($export.P + $export.U + $export.F * __webpack_require__(4)(function () {
33689 return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
33690}), ARRAY_BUFFER, {
33691 // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
33692 slice: function slice(start, end) {
33693 if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
33694 var len = anObject(this).byteLength;
33695 var first = toAbsoluteIndex(start, len);
33696 var final = toAbsoluteIndex(end === undefined ? len : end, len);
33697 var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first));
33698 var viewS = new $DataView(this);
33699 var viewT = new $DataView(result);
33700 var index = 0;
33701 while (first < final) {
33702 viewT.setUint8(index++, viewS.getUint8(first++));
33703 } return result;
33704 }
33705});
33706
33707__webpack_require__(62)(ARRAY_BUFFER);
33708
33709
33710/***/ }),
33711/* 474 */
33712/***/ (function(module, exports, __webpack_require__) {
33713
33714var $export = __webpack_require__(0);
33715$export($export.G + $export.W + $export.F * !__webpack_require__(111).ABV, {
33716 DataView: __webpack_require__(172).DataView
33717});
33718
33719
33720/***/ }),
33721/* 475 */
33722/***/ (function(module, exports, __webpack_require__) {
33723
33724__webpack_require__(41)('Int8', 1, function (init) {
33725 return function Int8Array(data, byteOffset, length) {
33726 return init(this, data, byteOffset, length);
33727 };
33728});
33729
33730
33731/***/ }),
33732/* 476 */
33733/***/ (function(module, exports, __webpack_require__) {
33734
33735__webpack_require__(41)('Uint8', 1, function (init) {
33736 return function Uint8Array(data, byteOffset, length) {
33737 return init(this, data, byteOffset, length);
33738 };
33739});
33740
33741
33742/***/ }),
33743/* 477 */
33744/***/ (function(module, exports, __webpack_require__) {
33745
33746__webpack_require__(41)('Uint8', 1, function (init) {
33747 return function Uint8ClampedArray(data, byteOffset, length) {
33748 return init(this, data, byteOffset, length);
33749 };
33750}, true);
33751
33752
33753/***/ }),
33754/* 478 */
33755/***/ (function(module, exports, __webpack_require__) {
33756
33757__webpack_require__(41)('Int16', 2, function (init) {
33758 return function Int16Array(data, byteOffset, length) {
33759 return init(this, data, byteOffset, length);
33760 };
33761});
33762
33763
33764/***/ }),
33765/* 479 */
33766/***/ (function(module, exports, __webpack_require__) {
33767
33768__webpack_require__(41)('Uint16', 2, function (init) {
33769 return function Uint16Array(data, byteOffset, length) {
33770 return init(this, data, byteOffset, length);
33771 };
33772});
33773
33774
33775/***/ }),
33776/* 480 */
33777/***/ (function(module, exports, __webpack_require__) {
33778
33779__webpack_require__(41)('Int32', 4, function (init) {
33780 return function Int32Array(data, byteOffset, length) {
33781 return init(this, data, byteOffset, length);
33782 };
33783});
33784
33785
33786/***/ }),
33787/* 481 */
33788/***/ (function(module, exports, __webpack_require__) {
33789
33790__webpack_require__(41)('Uint32', 4, function (init) {
33791 return function Uint32Array(data, byteOffset, length) {
33792 return init(this, data, byteOffset, length);
33793 };
33794});
33795
33796
33797/***/ }),
33798/* 482 */
33799/***/ (function(module, exports, __webpack_require__) {
33800
33801__webpack_require__(41)('Float32', 4, function (init) {
33802 return function Float32Array(data, byteOffset, length) {
33803 return init(this, data, byteOffset, length);
33804 };
33805});
33806
33807
33808/***/ }),
33809/* 483 */
33810/***/ (function(module, exports, __webpack_require__) {
33811
33812__webpack_require__(41)('Float64', 8, function (init) {
33813 return function Float64Array(data, byteOffset, length) {
33814 return init(this, data, byteOffset, length);
33815 };
33816});
33817
33818
33819/***/ }),
33820/* 484 */
33821/***/ (function(module, exports, __webpack_require__) {
33822
33823// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
33824var $export = __webpack_require__(0);
33825var aFunction = __webpack_require__(15);
33826var anObject = __webpack_require__(1);
33827var rApply = (__webpack_require__(2).Reflect || {}).apply;
33828var fApply = Function.apply;
33829// MS Edge argumentsList argument is optional
33830$export($export.S + $export.F * !__webpack_require__(4)(function () {
33831 rApply(function () { /* empty */ });
33832}), 'Reflect', {
33833 apply: function apply(target, thisArgument, argumentsList) {
33834 var T = aFunction(target);
33835 var L = anObject(argumentsList);
33836 return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
33837 }
33838});
33839
33840
33841/***/ }),
33842/* 485 */
33843/***/ (function(module, exports, __webpack_require__) {
33844
33845// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
33846var $export = __webpack_require__(0);
33847var create = __webpack_require__(60);
33848var aFunction = __webpack_require__(15);
33849var anObject = __webpack_require__(1);
33850var isObject = __webpack_require__(5);
33851var fails = __webpack_require__(4);
33852var bind = __webpack_require__(220);
33853var rConstruct = (__webpack_require__(2).Reflect || {}).construct;
33854
33855// MS Edge supports only 2 arguments and argumentsList argument is optional
33856// FF Nightly sets third argument as `new.target`, but does not create `this` from it
33857var NEW_TARGET_BUG = fails(function () {
33858 function F() { /* empty */ }
33859 return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
33860});
33861var ARGS_BUG = !fails(function () {
33862 rConstruct(function () { /* empty */ });
33863});
33864
33865$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
33866 construct: function construct(Target, args /* , newTarget */) {
33867 aFunction(Target);
33868 anObject(args);
33869 var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
33870 if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
33871 if (Target == newTarget) {
33872 // w/o altered newTarget, optimization for 0-4 arguments
33873 switch (args.length) {
33874 case 0: return new Target();
33875 case 1: return new Target(args[0]);
33876 case 2: return new Target(args[0], args[1]);
33877 case 3: return new Target(args[0], args[1], args[2]);
33878 case 4: return new Target(args[0], args[1], args[2], args[3]);
33879 }
33880 // w/o altered newTarget, lot of arguments case
33881 var $args = [null];
33882 $args.push.apply($args, args);
33883 return new (bind.apply(Target, $args))();
33884 }
33885 // with altered newTarget, not support built-in constructors
33886 var proto = newTarget.prototype;
33887 var instance = create(isObject(proto) ? proto : Object.prototype);
33888 var result = Function.apply.call(Target, instance, args);
33889 return isObject(result) ? result : instance;
33890 }
33891});
33892
33893
33894/***/ }),
33895/* 486 */
33896/***/ (function(module, exports, __webpack_require__) {
33897
33898// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
33899var dP = __webpack_require__(9);
33900var $export = __webpack_require__(0);
33901var anObject = __webpack_require__(1);
33902var toPrimitive = __webpack_require__(34);
33903
33904// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
33905$export($export.S + $export.F * __webpack_require__(4)(function () {
33906 // eslint-disable-next-line no-undef
33907 Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
33908}), 'Reflect', {
33909 defineProperty: function defineProperty(target, propertyKey, attributes) {
33910 anObject(target);
33911 propertyKey = toPrimitive(propertyKey, true);
33912 anObject(attributes);
33913 try {
33914 dP.f(target, propertyKey, attributes);
33915 return true;
33916 } catch (e) {
33917 return false;
33918 }
33919 }
33920});
33921
33922
33923/***/ }),
33924/* 487 */
33925/***/ (function(module, exports, __webpack_require__) {
33926
33927// 26.1.4 Reflect.deleteProperty(target, propertyKey)
33928var $export = __webpack_require__(0);
33929var gOPD = __webpack_require__(22).f;
33930var anObject = __webpack_require__(1);
33931
33932$export($export.S, 'Reflect', {
33933 deleteProperty: function deleteProperty(target, propertyKey) {
33934 var desc = gOPD(anObject(target), propertyKey);
33935 return desc && !desc.configurable ? false : delete target[propertyKey];
33936 }
33937});
33938
33939
33940/***/ }),
33941/* 488 */
33942/***/ (function(module, exports, __webpack_require__) {
33943
33944"use strict";
33945
33946// 26.1.5 Reflect.enumerate(target)
33947var $export = __webpack_require__(0);
33948var anObject = __webpack_require__(1);
33949var Enumerate = function (iterated) {
33950 this._t = anObject(iterated); // target
33951 this._i = 0; // next index
33952 var keys = this._k = []; // keys
33953 var key;
33954 for (key in iterated) keys.push(key);
33955};
33956__webpack_require__(160)(Enumerate, 'Object', function () {
33957 var that = this;
33958 var keys = that._k;
33959 var key;
33960 do {
33961 if (that._i >= keys.length) return { value: undefined, done: true };
33962 } while (!((key = keys[that._i++]) in that._t));
33963 return { value: key, done: false };
33964});
33965
33966$export($export.S, 'Reflect', {
33967 enumerate: function enumerate(target) {
33968 return new Enumerate(target);
33969 }
33970});
33971
33972
33973/***/ }),
33974/* 489 */
33975/***/ (function(module, exports, __webpack_require__) {
33976
33977// 26.1.6 Reflect.get(target, propertyKey [, receiver])
33978var gOPD = __webpack_require__(22);
33979var getPrototypeOf = __webpack_require__(23);
33980var has = __webpack_require__(17);
33981var $export = __webpack_require__(0);
33982var isObject = __webpack_require__(5);
33983var anObject = __webpack_require__(1);
33984
33985function get(target, propertyKey /* , receiver */) {
33986 var receiver = arguments.length < 3 ? target : arguments[2];
33987 var desc, proto;
33988 if (anObject(target) === receiver) return target[propertyKey];
33989 if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
33990 ? desc.value
33991 : desc.get !== undefined
33992 ? desc.get.call(receiver)
33993 : undefined;
33994 if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
33995}
33996
33997$export($export.S, 'Reflect', { get: get });
33998
33999
34000/***/ }),
34001/* 490 */
34002/***/ (function(module, exports, __webpack_require__) {
34003
34004// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
34005var gOPD = __webpack_require__(22);
34006var $export = __webpack_require__(0);
34007var anObject = __webpack_require__(1);
34008
34009$export($export.S, 'Reflect', {
34010 getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
34011 return gOPD.f(anObject(target), propertyKey);
34012 }
34013});
34014
34015
34016/***/ }),
34017/* 491 */
34018/***/ (function(module, exports, __webpack_require__) {
34019
34020// 26.1.8 Reflect.getPrototypeOf(target)
34021var $export = __webpack_require__(0);
34022var getProto = __webpack_require__(23);
34023var anObject = __webpack_require__(1);
34024
34025$export($export.S, 'Reflect', {
34026 getPrototypeOf: function getPrototypeOf(target) {
34027 return getProto(anObject(target));
34028 }
34029});
34030
34031
34032/***/ }),
34033/* 492 */
34034/***/ (function(module, exports, __webpack_require__) {
34035
34036// 26.1.9 Reflect.has(target, propertyKey)
34037var $export = __webpack_require__(0);
34038
34039$export($export.S, 'Reflect', {
34040 has: function has(target, propertyKey) {
34041 return propertyKey in target;
34042 }
34043});
34044
34045
34046/***/ }),
34047/* 493 */
34048/***/ (function(module, exports, __webpack_require__) {
34049
34050// 26.1.10 Reflect.isExtensible(target)
34051var $export = __webpack_require__(0);
34052var anObject = __webpack_require__(1);
34053var $isExtensible = Object.isExtensible;
34054
34055$export($export.S, 'Reflect', {
34056 isExtensible: function isExtensible(target) {
34057 anObject(target);
34058 return $isExtensible ? $isExtensible(target) : true;
34059 }
34060});
34061
34062
34063/***/ }),
34064/* 494 */
34065/***/ (function(module, exports, __webpack_require__) {
34066
34067// 26.1.11 Reflect.ownKeys(target)
34068var $export = __webpack_require__(0);
34069
34070$export($export.S, 'Reflect', { ownKeys: __webpack_require__(241) });
34071
34072
34073/***/ }),
34074/* 495 */
34075/***/ (function(module, exports, __webpack_require__) {
34076
34077// 26.1.12 Reflect.preventExtensions(target)
34078var $export = __webpack_require__(0);
34079var anObject = __webpack_require__(1);
34080var $preventExtensions = Object.preventExtensions;
34081
34082$export($export.S, 'Reflect', {
34083 preventExtensions: function preventExtensions(target) {
34084 anObject(target);
34085 try {
34086 if ($preventExtensions) $preventExtensions(target);
34087 return true;
34088 } catch (e) {
34089 return false;
34090 }
34091 }
34092});
34093
34094
34095/***/ }),
34096/* 496 */
34097/***/ (function(module, exports, __webpack_require__) {
34098
34099// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
34100var dP = __webpack_require__(9);
34101var gOPD = __webpack_require__(22);
34102var getPrototypeOf = __webpack_require__(23);
34103var has = __webpack_require__(17);
34104var $export = __webpack_require__(0);
34105var createDesc = __webpack_require__(55);
34106var anObject = __webpack_require__(1);
34107var isObject = __webpack_require__(5);
34108
34109function set(target, propertyKey, V /* , receiver */) {
34110 var receiver = arguments.length < 4 ? target : arguments[3];
34111 var ownDesc = gOPD.f(anObject(target), propertyKey);
34112 var existingDescriptor, proto;
34113 if (!ownDesc) {
34114 if (isObject(proto = getPrototypeOf(target))) {
34115 return set(proto, propertyKey, V, receiver);
34116 }
34117 ownDesc = createDesc(0);
34118 }
34119 if (has(ownDesc, 'value')) {
34120 if (ownDesc.writable === false || !isObject(receiver)) return false;
34121 existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);
34122 existingDescriptor.value = V;
34123 dP.f(receiver, propertyKey, existingDescriptor);
34124 return true;
34125 }
34126 return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
34127}
34128
34129$export($export.S, 'Reflect', { set: set });
34130
34131
34132/***/ }),
34133/* 497 */
34134/***/ (function(module, exports, __webpack_require__) {
34135
34136// 26.1.14 Reflect.setPrototypeOf(target, proto)
34137var $export = __webpack_require__(0);
34138var setProto = __webpack_require__(152);
34139
34140if (setProto) $export($export.S, 'Reflect', {
34141 setPrototypeOf: function setPrototypeOf(target, proto) {
34142 setProto.check(target, proto);
34143 try {
34144 setProto.set(target, proto);
34145 return true;
34146 } catch (e) {
34147 return false;
34148 }
34149 }
34150});
34151
34152
34153/***/ }),
34154/* 498 */
34155/***/ (function(module, exports, __webpack_require__) {
34156
34157"use strict";
34158
34159// https://github.com/tc39/Array.prototype.includes
34160var $export = __webpack_require__(0);
34161var $includes = __webpack_require__(102)(true);
34162
34163$export($export.P, 'Array', {
34164 includes: function includes(el /* , fromIndex = 0 */) {
34165 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
34166 }
34167});
34168
34169__webpack_require__(51)('includes');
34170
34171
34172/***/ }),
34173/* 499 */
34174/***/ (function(module, exports, __webpack_require__) {
34175
34176"use strict";
34177
34178// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
34179var $export = __webpack_require__(0);
34180var flattenIntoArray = __webpack_require__(242);
34181var toObject = __webpack_require__(13);
34182var toLength = __webpack_require__(10);
34183var aFunction = __webpack_require__(15);
34184var arraySpeciesCreate = __webpack_require__(166);
34185
34186$export($export.P, 'Array', {
34187 flatMap: function flatMap(callbackfn /* , thisArg */) {
34188 var O = toObject(this);
34189 var sourceLen, A;
34190 aFunction(callbackfn);
34191 sourceLen = toLength(O.length);
34192 A = arraySpeciesCreate(O, 0);
34193 flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
34194 return A;
34195 }
34196});
34197
34198__webpack_require__(51)('flatMap');
34199
34200
34201/***/ }),
34202/* 500 */
34203/***/ (function(module, exports, __webpack_require__) {
34204
34205"use strict";
34206
34207// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
34208var $export = __webpack_require__(0);
34209var flattenIntoArray = __webpack_require__(242);
34210var toObject = __webpack_require__(13);
34211var toLength = __webpack_require__(10);
34212var toInteger = __webpack_require__(36);
34213var arraySpeciesCreate = __webpack_require__(166);
34214
34215$export($export.P, 'Array', {
34216 flatten: function flatten(/* depthArg = 1 */) {
34217 var depthArg = arguments[0];
34218 var O = toObject(this);
34219 var sourceLen = toLength(O.length);
34220 var A = arraySpeciesCreate(O, 0);
34221 flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
34222 return A;
34223 }
34224});
34225
34226__webpack_require__(51)('flatten');
34227
34228
34229/***/ }),
34230/* 501 */
34231/***/ (function(module, exports, __webpack_require__) {
34232
34233"use strict";
34234
34235// https://github.com/mathiasbynens/String.prototype.at
34236var $export = __webpack_require__(0);
34237var $at = __webpack_require__(158)(true);
34238
34239$export($export.P, 'String', {
34240 at: function at(pos) {
34241 return $at(this, pos);
34242 }
34243});
34244
34245
34246/***/ }),
34247/* 502 */
34248/***/ (function(module, exports, __webpack_require__) {
34249
34250"use strict";
34251
34252// https://github.com/tc39/proposal-string-pad-start-end
34253var $export = __webpack_require__(0);
34254var $pad = __webpack_require__(243);
34255var userAgent = __webpack_require__(173);
34256
34257// https://github.com/zloirock/core-js/issues/280
34258$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
34259 padStart: function padStart(maxLength /* , fillString = ' ' */) {
34260 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
34261 }
34262});
34263
34264
34265/***/ }),
34266/* 503 */
34267/***/ (function(module, exports, __webpack_require__) {
34268
34269"use strict";
34270
34271// https://github.com/tc39/proposal-string-pad-start-end
34272var $export = __webpack_require__(0);
34273var $pad = __webpack_require__(243);
34274var userAgent = __webpack_require__(173);
34275
34276// https://github.com/zloirock/core-js/issues/280
34277$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
34278 padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
34279 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
34280 }
34281});
34282
34283
34284/***/ }),
34285/* 504 */
34286/***/ (function(module, exports, __webpack_require__) {
34287
34288"use strict";
34289
34290// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
34291__webpack_require__(72)('trimLeft', function ($trim) {
34292 return function trimLeft() {
34293 return $trim(this, 1);
34294 };
34295}, 'trimStart');
34296
34297
34298/***/ }),
34299/* 505 */
34300/***/ (function(module, exports, __webpack_require__) {
34301
34302"use strict";
34303
34304// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
34305__webpack_require__(72)('trimRight', function ($trim) {
34306 return function trimRight() {
34307 return $trim(this, 2);
34308 };
34309}, 'trimEnd');
34310
34311
34312/***/ }),
34313/* 506 */
34314/***/ (function(module, exports, __webpack_require__) {
34315
34316"use strict";
34317
34318// https://tc39.github.io/String.prototype.matchAll/
34319var $export = __webpack_require__(0);
34320var defined = __webpack_require__(35);
34321var toLength = __webpack_require__(10);
34322var isRegExp = __webpack_require__(105);
34323var getFlags = __webpack_require__(107);
34324var RegExpProto = RegExp.prototype;
34325
34326var $RegExpStringIterator = function (regexp, string) {
34327 this._r = regexp;
34328 this._s = string;
34329};
34330
34331__webpack_require__(160)($RegExpStringIterator, 'RegExp String', function next() {
34332 var match = this._r.exec(this._s);
34333 return { value: match, done: match === null };
34334});
34335
34336$export($export.P, 'String', {
34337 matchAll: function matchAll(regexp) {
34338 defined(this);
34339 if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');
34340 var S = String(this);
34341 var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);
34342 var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
34343 rx.lastIndex = toLength(regexp.lastIndex);
34344 return new $RegExpStringIterator(rx, S);
34345 }
34346});
34347
34348
34349/***/ }),
34350/* 507 */
34351/***/ (function(module, exports, __webpack_require__) {
34352
34353__webpack_require__(148)('asyncIterator');
34354
34355
34356/***/ }),
34357/* 508 */
34358/***/ (function(module, exports, __webpack_require__) {
34359
34360__webpack_require__(148)('observable');
34361
34362
34363/***/ }),
34364/* 509 */
34365/***/ (function(module, exports, __webpack_require__) {
34366
34367// https://github.com/tc39/proposal-object-getownpropertydescriptors
34368var $export = __webpack_require__(0);
34369var ownKeys = __webpack_require__(241);
34370var toIObject = __webpack_require__(21);
34371var gOPD = __webpack_require__(22);
34372var createProperty = __webpack_require__(164);
34373
34374$export($export.S, 'Object', {
34375 getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
34376 var O = toIObject(object);
34377 var getDesc = gOPD.f;
34378 var keys = ownKeys(O);
34379 var result = {};
34380 var i = 0;
34381 var key, desc;
34382 while (keys.length > i) {
34383 desc = getDesc(O, key = keys[i++]);
34384 if (desc !== undefined) createProperty(result, key, desc);
34385 }
34386 return result;
34387 }
34388});
34389
34390
34391/***/ }),
34392/* 510 */
34393/***/ (function(module, exports, __webpack_require__) {
34394
34395// https://github.com/tc39/proposal-object-values-entries
34396var $export = __webpack_require__(0);
34397var $values = __webpack_require__(244)(false);
34398
34399$export($export.S, 'Object', {
34400 values: function values(it) {
34401 return $values(it);
34402 }
34403});
34404
34405
34406/***/ }),
34407/* 511 */
34408/***/ (function(module, exports, __webpack_require__) {
34409
34410// https://github.com/tc39/proposal-object-values-entries
34411var $export = __webpack_require__(0);
34412var $entries = __webpack_require__(244)(true);
34413
34414$export($export.S, 'Object', {
34415 entries: function entries(it) {
34416 return $entries(it);
34417 }
34418});
34419
34420
34421/***/ }),
34422/* 512 */
34423/***/ (function(module, exports, __webpack_require__) {
34424
34425"use strict";
34426
34427var $export = __webpack_require__(0);
34428var toObject = __webpack_require__(13);
34429var aFunction = __webpack_require__(15);
34430var $defineProperty = __webpack_require__(9);
34431
34432// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
34433__webpack_require__(8) && $export($export.P + __webpack_require__(112), 'Object', {
34434 __defineGetter__: function __defineGetter__(P, getter) {
34435 $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
34436 }
34437});
34438
34439
34440/***/ }),
34441/* 513 */
34442/***/ (function(module, exports, __webpack_require__) {
34443
34444"use strict";
34445
34446var $export = __webpack_require__(0);
34447var toObject = __webpack_require__(13);
34448var aFunction = __webpack_require__(15);
34449var $defineProperty = __webpack_require__(9);
34450
34451// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
34452__webpack_require__(8) && $export($export.P + __webpack_require__(112), 'Object', {
34453 __defineSetter__: function __defineSetter__(P, setter) {
34454 $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
34455 }
34456});
34457
34458
34459/***/ }),
34460/* 514 */
34461/***/ (function(module, exports, __webpack_require__) {
34462
34463"use strict";
34464
34465var $export = __webpack_require__(0);
34466var toObject = __webpack_require__(13);
34467var toPrimitive = __webpack_require__(34);
34468var getPrototypeOf = __webpack_require__(23);
34469var getOwnPropertyDescriptor = __webpack_require__(22).f;
34470
34471// B.2.2.4 Object.prototype.__lookupGetter__(P)
34472__webpack_require__(8) && $export($export.P + __webpack_require__(112), 'Object', {
34473 __lookupGetter__: function __lookupGetter__(P) {
34474 var O = toObject(this);
34475 var K = toPrimitive(P, true);
34476 var D;
34477 do {
34478 if (D = getOwnPropertyDescriptor(O, K)) return D.get;
34479 } while (O = getPrototypeOf(O));
34480 }
34481});
34482
34483
34484/***/ }),
34485/* 515 */
34486/***/ (function(module, exports, __webpack_require__) {
34487
34488"use strict";
34489
34490var $export = __webpack_require__(0);
34491var toObject = __webpack_require__(13);
34492var toPrimitive = __webpack_require__(34);
34493var getPrototypeOf = __webpack_require__(23);
34494var getOwnPropertyDescriptor = __webpack_require__(22).f;
34495
34496// B.2.2.5 Object.prototype.__lookupSetter__(P)
34497__webpack_require__(8) && $export($export.P + __webpack_require__(112), 'Object', {
34498 __lookupSetter__: function __lookupSetter__(P) {
34499 var O = toObject(this);
34500 var K = toPrimitive(P, true);
34501 var D;
34502 do {
34503 if (D = getOwnPropertyDescriptor(O, K)) return D.set;
34504 } while (O = getPrototypeOf(O));
34505 }
34506});
34507
34508
34509/***/ }),
34510/* 516 */
34511/***/ (function(module, exports, __webpack_require__) {
34512
34513// https://github.com/DavidBruant/Map-Set.prototype.toJSON
34514var $export = __webpack_require__(0);
34515
34516$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(245)('Map') });
34517
34518
34519/***/ }),
34520/* 517 */
34521/***/ (function(module, exports, __webpack_require__) {
34522
34523// https://github.com/DavidBruant/Map-Set.prototype.toJSON
34524var $export = __webpack_require__(0);
34525
34526$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(245)('Set') });
34527
34528
34529/***/ }),
34530/* 518 */
34531/***/ (function(module, exports, __webpack_require__) {
34532
34533// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
34534__webpack_require__(113)('Map');
34535
34536
34537/***/ }),
34538/* 519 */
34539/***/ (function(module, exports, __webpack_require__) {
34540
34541// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
34542__webpack_require__(113)('Set');
34543
34544
34545/***/ }),
34546/* 520 */
34547/***/ (function(module, exports, __webpack_require__) {
34548
34549// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
34550__webpack_require__(113)('WeakMap');
34551
34552
34553/***/ }),
34554/* 521 */
34555/***/ (function(module, exports, __webpack_require__) {
34556
34557// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
34558__webpack_require__(113)('WeakSet');
34559
34560
34561/***/ }),
34562/* 522 */
34563/***/ (function(module, exports, __webpack_require__) {
34564
34565// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
34566__webpack_require__(114)('Map');
34567
34568
34569/***/ }),
34570/* 523 */
34571/***/ (function(module, exports, __webpack_require__) {
34572
34573// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
34574__webpack_require__(114)('Set');
34575
34576
34577/***/ }),
34578/* 524 */
34579/***/ (function(module, exports, __webpack_require__) {
34580
34581// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
34582__webpack_require__(114)('WeakMap');
34583
34584
34585/***/ }),
34586/* 525 */
34587/***/ (function(module, exports, __webpack_require__) {
34588
34589// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
34590__webpack_require__(114)('WeakSet');
34591
34592
34593/***/ }),
34594/* 526 */
34595/***/ (function(module, exports, __webpack_require__) {
34596
34597// https://github.com/tc39/proposal-global
34598var $export = __webpack_require__(0);
34599
34600$export($export.G, { global: __webpack_require__(2) });
34601
34602
34603/***/ }),
34604/* 527 */
34605/***/ (function(module, exports, __webpack_require__) {
34606
34607// https://github.com/tc39/proposal-global
34608var $export = __webpack_require__(0);
34609
34610$export($export.S, 'System', { global: __webpack_require__(2) });
34611
34612
34613/***/ }),
34614/* 528 */
34615/***/ (function(module, exports, __webpack_require__) {
34616
34617// https://github.com/ljharb/proposal-is-error
34618var $export = __webpack_require__(0);
34619var cof = __webpack_require__(26);
34620
34621$export($export.S, 'Error', {
34622 isError: function isError(it) {
34623 return cof(it) === 'Error';
34624 }
34625});
34626
34627
34628/***/ }),
34629/* 529 */
34630/***/ (function(module, exports, __webpack_require__) {
34631
34632// https://rwaldron.github.io/proposal-math-extensions/
34633var $export = __webpack_require__(0);
34634
34635$export($export.S, 'Math', {
34636 clamp: function clamp(x, lower, upper) {
34637 return Math.min(upper, Math.max(lower, x));
34638 }
34639});
34640
34641
34642/***/ }),
34643/* 530 */
34644/***/ (function(module, exports, __webpack_require__) {
34645
34646// https://rwaldron.github.io/proposal-math-extensions/
34647var $export = __webpack_require__(0);
34648
34649$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });
34650
34651
34652/***/ }),
34653/* 531 */
34654/***/ (function(module, exports, __webpack_require__) {
34655
34656// https://rwaldron.github.io/proposal-math-extensions/
34657var $export = __webpack_require__(0);
34658var RAD_PER_DEG = 180 / Math.PI;
34659
34660$export($export.S, 'Math', {
34661 degrees: function degrees(radians) {
34662 return radians * RAD_PER_DEG;
34663 }
34664});
34665
34666
34667/***/ }),
34668/* 532 */
34669/***/ (function(module, exports, __webpack_require__) {
34670
34671// https://rwaldron.github.io/proposal-math-extensions/
34672var $export = __webpack_require__(0);
34673var scale = __webpack_require__(247);
34674var fround = __webpack_require__(227);
34675
34676$export($export.S, 'Math', {
34677 fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
34678 return fround(scale(x, inLow, inHigh, outLow, outHigh));
34679 }
34680});
34681
34682
34683/***/ }),
34684/* 533 */
34685/***/ (function(module, exports, __webpack_require__) {
34686
34687// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
34688var $export = __webpack_require__(0);
34689
34690$export($export.S, 'Math', {
34691 iaddh: function iaddh(x0, x1, y0, y1) {
34692 var $x0 = x0 >>> 0;
34693 var $x1 = x1 >>> 0;
34694 var $y0 = y0 >>> 0;
34695 return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
34696 }
34697});
34698
34699
34700/***/ }),
34701/* 534 */
34702/***/ (function(module, exports, __webpack_require__) {
34703
34704// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
34705var $export = __webpack_require__(0);
34706
34707$export($export.S, 'Math', {
34708 isubh: function isubh(x0, x1, y0, y1) {
34709 var $x0 = x0 >>> 0;
34710 var $x1 = x1 >>> 0;
34711 var $y0 = y0 >>> 0;
34712 return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
34713 }
34714});
34715
34716
34717/***/ }),
34718/* 535 */
34719/***/ (function(module, exports, __webpack_require__) {
34720
34721// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
34722var $export = __webpack_require__(0);
34723
34724$export($export.S, 'Math', {
34725 imulh: function imulh(u, v) {
34726 var UINT16 = 0xffff;
34727 var $u = +u;
34728 var $v = +v;
34729 var u0 = $u & UINT16;
34730 var v0 = $v & UINT16;
34731 var u1 = $u >> 16;
34732 var v1 = $v >> 16;
34733 var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
34734 return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
34735 }
34736});
34737
34738
34739/***/ }),
34740/* 536 */
34741/***/ (function(module, exports, __webpack_require__) {
34742
34743// https://rwaldron.github.io/proposal-math-extensions/
34744var $export = __webpack_require__(0);
34745
34746$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });
34747
34748
34749/***/ }),
34750/* 537 */
34751/***/ (function(module, exports, __webpack_require__) {
34752
34753// https://rwaldron.github.io/proposal-math-extensions/
34754var $export = __webpack_require__(0);
34755var DEG_PER_RAD = Math.PI / 180;
34756
34757$export($export.S, 'Math', {
34758 radians: function radians(degrees) {
34759 return degrees * DEG_PER_RAD;
34760 }
34761});
34762
34763
34764/***/ }),
34765/* 538 */
34766/***/ (function(module, exports, __webpack_require__) {
34767
34768// https://rwaldron.github.io/proposal-math-extensions/
34769var $export = __webpack_require__(0);
34770
34771$export($export.S, 'Math', { scale: __webpack_require__(247) });
34772
34773
34774/***/ }),
34775/* 539 */
34776/***/ (function(module, exports, __webpack_require__) {
34777
34778// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
34779var $export = __webpack_require__(0);
34780
34781$export($export.S, 'Math', {
34782 umulh: function umulh(u, v) {
34783 var UINT16 = 0xffff;
34784 var $u = +u;
34785 var $v = +v;
34786 var u0 = $u & UINT16;
34787 var v0 = $v & UINT16;
34788 var u1 = $u >>> 16;
34789 var v1 = $v >>> 16;
34790 var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
34791 return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
34792 }
34793});
34794
34795
34796/***/ }),
34797/* 540 */
34798/***/ (function(module, exports, __webpack_require__) {
34799
34800// http://jfbastien.github.io/papers/Math.signbit.html
34801var $export = __webpack_require__(0);
34802
34803$export($export.S, 'Math', { signbit: function signbit(x) {
34804 // eslint-disable-next-line no-self-compare
34805 return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;
34806} });
34807
34808
34809/***/ }),
34810/* 541 */
34811/***/ (function(module, exports, __webpack_require__) {
34812
34813"use strict";
34814// https://github.com/tc39/proposal-promise-finally
34815
34816var $export = __webpack_require__(0);
34817var core = __webpack_require__(33);
34818var global = __webpack_require__(2);
34819var speciesConstructor = __webpack_require__(109);
34820var promiseResolve = __webpack_require__(234);
34821
34822$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
34823 var C = speciesConstructor(this, core.Promise || global.Promise);
34824 var isFunction = typeof onFinally == 'function';
34825 return this.then(
34826 isFunction ? function (x) {
34827 return promiseResolve(C, onFinally()).then(function () { return x; });
34828 } : onFinally,
34829 isFunction ? function (e) {
34830 return promiseResolve(C, onFinally()).then(function () { throw e; });
34831 } : onFinally
34832 );
34833} });
34834
34835
34836/***/ }),
34837/* 542 */
34838/***/ (function(module, exports, __webpack_require__) {
34839
34840"use strict";
34841
34842// https://github.com/tc39/proposal-promise-try
34843var $export = __webpack_require__(0);
34844var newPromiseCapability = __webpack_require__(171);
34845var perform = __webpack_require__(233);
34846
34847$export($export.S, 'Promise', { 'try': function (callbackfn) {
34848 var promiseCapability = newPromiseCapability.f(this);
34849 var result = perform(callbackfn);
34850 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
34851 return promiseCapability.promise;
34852} });
34853
34854
34855/***/ }),
34856/* 543 */
34857/***/ (function(module, exports, __webpack_require__) {
34858
34859var metadata = __webpack_require__(42);
34860var anObject = __webpack_require__(1);
34861var toMetaKey = metadata.key;
34862var ordinaryDefineOwnMetadata = metadata.set;
34863
34864metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {
34865 ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
34866} });
34867
34868
34869/***/ }),
34870/* 544 */
34871/***/ (function(module, exports, __webpack_require__) {
34872
34873var metadata = __webpack_require__(42);
34874var anObject = __webpack_require__(1);
34875var toMetaKey = metadata.key;
34876var getOrCreateMetadataMap = metadata.map;
34877var store = metadata.store;
34878
34879metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
34880 var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);
34881 var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
34882 if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
34883 if (metadataMap.size) return true;
34884 var targetMetadata = store.get(target);
34885 targetMetadata['delete'](targetKey);
34886 return !!targetMetadata.size || store['delete'](target);
34887} });
34888
34889
34890/***/ }),
34891/* 545 */
34892/***/ (function(module, exports, __webpack_require__) {
34893
34894var metadata = __webpack_require__(42);
34895var anObject = __webpack_require__(1);
34896var getPrototypeOf = __webpack_require__(23);
34897var ordinaryHasOwnMetadata = metadata.has;
34898var ordinaryGetOwnMetadata = metadata.get;
34899var toMetaKey = metadata.key;
34900
34901var ordinaryGetMetadata = function (MetadataKey, O, P) {
34902 var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
34903 if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);
34904 var parent = getPrototypeOf(O);
34905 return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
34906};
34907
34908metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {
34909 return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
34910} });
34911
34912
34913/***/ }),
34914/* 546 */
34915/***/ (function(module, exports, __webpack_require__) {
34916
34917var Set = __webpack_require__(237);
34918var from = __webpack_require__(246);
34919var metadata = __webpack_require__(42);
34920var anObject = __webpack_require__(1);
34921var getPrototypeOf = __webpack_require__(23);
34922var ordinaryOwnMetadataKeys = metadata.keys;
34923var toMetaKey = metadata.key;
34924
34925var ordinaryMetadataKeys = function (O, P) {
34926 var oKeys = ordinaryOwnMetadataKeys(O, P);
34927 var parent = getPrototypeOf(O);
34928 if (parent === null) return oKeys;
34929 var pKeys = ordinaryMetadataKeys(parent, P);
34930 return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
34931};
34932
34933metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {
34934 return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
34935} });
34936
34937
34938/***/ }),
34939/* 547 */
34940/***/ (function(module, exports, __webpack_require__) {
34941
34942var metadata = __webpack_require__(42);
34943var anObject = __webpack_require__(1);
34944var ordinaryGetOwnMetadata = metadata.get;
34945var toMetaKey = metadata.key;
34946
34947metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {
34948 return ordinaryGetOwnMetadata(metadataKey, anObject(target)
34949 , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
34950} });
34951
34952
34953/***/ }),
34954/* 548 */
34955/***/ (function(module, exports, __webpack_require__) {
34956
34957var metadata = __webpack_require__(42);
34958var anObject = __webpack_require__(1);
34959var ordinaryOwnMetadataKeys = metadata.keys;
34960var toMetaKey = metadata.key;
34961
34962metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {
34963 return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
34964} });
34965
34966
34967/***/ }),
34968/* 549 */
34969/***/ (function(module, exports, __webpack_require__) {
34970
34971var metadata = __webpack_require__(42);
34972var anObject = __webpack_require__(1);
34973var getPrototypeOf = __webpack_require__(23);
34974var ordinaryHasOwnMetadata = metadata.has;
34975var toMetaKey = metadata.key;
34976
34977var ordinaryHasMetadata = function (MetadataKey, O, P) {
34978 var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
34979 if (hasOwn) return true;
34980 var parent = getPrototypeOf(O);
34981 return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
34982};
34983
34984metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {
34985 return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
34986} });
34987
34988
34989/***/ }),
34990/* 550 */
34991/***/ (function(module, exports, __webpack_require__) {
34992
34993var metadata = __webpack_require__(42);
34994var anObject = __webpack_require__(1);
34995var ordinaryHasOwnMetadata = metadata.has;
34996var toMetaKey = metadata.key;
34997
34998metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {
34999 return ordinaryHasOwnMetadata(metadataKey, anObject(target)
35000 , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
35001} });
35002
35003
35004/***/ }),
35005/* 551 */
35006/***/ (function(module, exports, __webpack_require__) {
35007
35008var $metadata = __webpack_require__(42);
35009var anObject = __webpack_require__(1);
35010var aFunction = __webpack_require__(15);
35011var toMetaKey = $metadata.key;
35012var ordinaryDefineOwnMetadata = $metadata.set;
35013
35014$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {
35015 return function decorator(target, targetKey) {
35016 ordinaryDefineOwnMetadata(
35017 metadataKey, metadataValue,
35018 (targetKey !== undefined ? anObject : aFunction)(target),
35019 toMetaKey(targetKey)
35020 );
35021 };
35022} });
35023
35024
35025/***/ }),
35026/* 552 */
35027/***/ (function(module, exports, __webpack_require__) {
35028
35029// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
35030var $export = __webpack_require__(0);
35031var microtask = __webpack_require__(170)();
35032var process = __webpack_require__(2).process;
35033var isNode = __webpack_require__(26)(process) == 'process';
35034
35035$export($export.G, {
35036 asap: function asap(fn) {
35037 var domain = isNode && process.domain;
35038 microtask(domain ? domain.bind(fn) : fn);
35039 }
35040});
35041
35042
35043/***/ }),
35044/* 553 */
35045/***/ (function(module, exports, __webpack_require__) {
35046
35047"use strict";
35048
35049// https://github.com/zenparsing/es-observable
35050var $export = __webpack_require__(0);
35051var global = __webpack_require__(2);
35052var core = __webpack_require__(33);
35053var microtask = __webpack_require__(170)();
35054var OBSERVABLE = __webpack_require__(7)('observable');
35055var aFunction = __webpack_require__(15);
35056var anObject = __webpack_require__(1);
35057var anInstance = __webpack_require__(63);
35058var redefineAll = __webpack_require__(65);
35059var hide = __webpack_require__(18);
35060var forOf = __webpack_require__(64);
35061var RETURN = forOf.RETURN;
35062
35063var getMethod = function (fn) {
35064 return fn == null ? undefined : aFunction(fn);
35065};
35066
35067var cleanupSubscription = function (subscription) {
35068 var cleanup = subscription._c;
35069 if (cleanup) {
35070 subscription._c = undefined;
35071 cleanup();
35072 }
35073};
35074
35075var subscriptionClosed = function (subscription) {
35076 return subscription._o === undefined;
35077};
35078
35079var closeSubscription = function (subscription) {
35080 if (!subscriptionClosed(subscription)) {
35081 subscription._o = undefined;
35082 cleanupSubscription(subscription);
35083 }
35084};
35085
35086var Subscription = function (observer, subscriber) {
35087 anObject(observer);
35088 this._c = undefined;
35089 this._o = observer;
35090 observer = new SubscriptionObserver(this);
35091 try {
35092 var cleanup = subscriber(observer);
35093 var subscription = cleanup;
35094 if (cleanup != null) {
35095 if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };
35096 else aFunction(cleanup);
35097 this._c = cleanup;
35098 }
35099 } catch (e) {
35100 observer.error(e);
35101 return;
35102 } if (subscriptionClosed(this)) cleanupSubscription(this);
35103};
35104
35105Subscription.prototype = redefineAll({}, {
35106 unsubscribe: function unsubscribe() { closeSubscription(this); }
35107});
35108
35109var SubscriptionObserver = function (subscription) {
35110 this._s = subscription;
35111};
35112
35113SubscriptionObserver.prototype = redefineAll({}, {
35114 next: function next(value) {
35115 var subscription = this._s;
35116 if (!subscriptionClosed(subscription)) {
35117 var observer = subscription._o;
35118 try {
35119 var m = getMethod(observer.next);
35120 if (m) return m.call(observer, value);
35121 } catch (e) {
35122 try {
35123 closeSubscription(subscription);
35124 } finally {
35125 throw e;
35126 }
35127 }
35128 }
35129 },
35130 error: function error(value) {
35131 var subscription = this._s;
35132 if (subscriptionClosed(subscription)) throw value;
35133 var observer = subscription._o;
35134 subscription._o = undefined;
35135 try {
35136 var m = getMethod(observer.error);
35137 if (!m) throw value;
35138 value = m.call(observer, value);
35139 } catch (e) {
35140 try {
35141 cleanupSubscription(subscription);
35142 } finally {
35143 throw e;
35144 }
35145 } cleanupSubscription(subscription);
35146 return value;
35147 },
35148 complete: function complete(value) {
35149 var subscription = this._s;
35150 if (!subscriptionClosed(subscription)) {
35151 var observer = subscription._o;
35152 subscription._o = undefined;
35153 try {
35154 var m = getMethod(observer.complete);
35155 value = m ? m.call(observer, value) : undefined;
35156 } catch (e) {
35157 try {
35158 cleanupSubscription(subscription);
35159 } finally {
35160 throw e;
35161 }
35162 } cleanupSubscription(subscription);
35163 return value;
35164 }
35165 }
35166});
35167
35168var $Observable = function Observable(subscriber) {
35169 anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
35170};
35171
35172redefineAll($Observable.prototype, {
35173 subscribe: function subscribe(observer) {
35174 return new Subscription(observer, this._f);
35175 },
35176 forEach: function forEach(fn) {
35177 var that = this;
35178 return new (core.Promise || global.Promise)(function (resolve, reject) {
35179 aFunction(fn);
35180 var subscription = that.subscribe({
35181 next: function (value) {
35182 try {
35183 return fn(value);
35184 } catch (e) {
35185 reject(e);
35186 subscription.unsubscribe();
35187 }
35188 },
35189 error: reject,
35190 complete: resolve
35191 });
35192 });
35193 }
35194});
35195
35196redefineAll($Observable, {
35197 from: function from(x) {
35198 var C = typeof this === 'function' ? this : $Observable;
35199 var method = getMethod(anObject(x)[OBSERVABLE]);
35200 if (method) {
35201 var observable = anObject(method.call(x));
35202 return observable.constructor === C ? observable : new C(function (observer) {
35203 return observable.subscribe(observer);
35204 });
35205 }
35206 return new C(function (observer) {
35207 var done = false;
35208 microtask(function () {
35209 if (!done) {
35210 try {
35211 if (forOf(x, false, function (it) {
35212 observer.next(it);
35213 if (done) return RETURN;
35214 }) === RETURN) return;
35215 } catch (e) {
35216 if (done) throw e;
35217 observer.error(e);
35218 return;
35219 } observer.complete();
35220 }
35221 });
35222 return function () { done = true; };
35223 });
35224 },
35225 of: function of() {
35226 for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];
35227 return new (typeof this === 'function' ? this : $Observable)(function (observer) {
35228 var done = false;
35229 microtask(function () {
35230 if (!done) {
35231 for (var j = 0; j < items.length; ++j) {
35232 observer.next(items[j]);
35233 if (done) return;
35234 } observer.complete();
35235 }
35236 });
35237 return function () { done = true; };
35238 });
35239 }
35240});
35241
35242hide($Observable.prototype, OBSERVABLE, function () { return this; });
35243
35244$export($export.G, { Observable: $Observable });
35245
35246__webpack_require__(62)('Observable');
35247
35248
35249/***/ }),
35250/* 554 */
35251/***/ (function(module, exports, __webpack_require__) {
35252
35253// ie9- setTimeout & setInterval additional parameters fix
35254var global = __webpack_require__(2);
35255var $export = __webpack_require__(0);
35256var userAgent = __webpack_require__(173);
35257var slice = [].slice;
35258var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
35259var wrap = function (set) {
35260 return function (fn, time /* , ...args */) {
35261 var boundArgs = arguments.length > 2;
35262 var args = boundArgs ? slice.call(arguments, 2) : false;
35263 return set(boundArgs ? function () {
35264 // eslint-disable-next-line no-new-func
35265 (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
35266 } : fn, time);
35267 };
35268};
35269$export($export.G + $export.B + $export.F * MSIE, {
35270 setTimeout: wrap(global.setTimeout),
35271 setInterval: wrap(global.setInterval)
35272});
35273
35274
35275/***/ }),
35276/* 555 */
35277/***/ (function(module, exports, __webpack_require__) {
35278
35279var $export = __webpack_require__(0);
35280var $task = __webpack_require__(169);
35281$export($export.G + $export.B, {
35282 setImmediate: $task.set,
35283 clearImmediate: $task.clear
35284});
35285
35286
35287/***/ }),
35288/* 556 */
35289/***/ (function(module, exports, __webpack_require__) {
35290
35291var $iterators = __webpack_require__(168);
35292var getKeys = __webpack_require__(58);
35293var redefine = __webpack_require__(19);
35294var global = __webpack_require__(2);
35295var hide = __webpack_require__(18);
35296var Iterators = __webpack_require__(73);
35297var wks = __webpack_require__(7);
35298var ITERATOR = wks('iterator');
35299var TO_STRING_TAG = wks('toStringTag');
35300var ArrayValues = Iterators.Array;
35301
35302var DOMIterables = {
35303 CSSRuleList: true, // TODO: Not spec compliant, should be false.
35304 CSSStyleDeclaration: false,
35305 CSSValueList: false,
35306 ClientRectList: false,
35307 DOMRectList: false,
35308 DOMStringList: false,
35309 DOMTokenList: true,
35310 DataTransferItemList: false,
35311 FileList: false,
35312 HTMLAllCollection: false,
35313 HTMLCollection: false,
35314 HTMLFormElement: false,
35315 HTMLSelectElement: false,
35316 MediaList: true, // TODO: Not spec compliant, should be false.
35317 MimeTypeArray: false,
35318 NamedNodeMap: false,
35319 NodeList: true,
35320 PaintRequestList: false,
35321 Plugin: false,
35322 PluginArray: false,
35323 SVGLengthList: false,
35324 SVGNumberList: false,
35325 SVGPathSegList: false,
35326 SVGPointList: false,
35327 SVGStringList: false,
35328 SVGTransformList: false,
35329 SourceBufferList: false,
35330 StyleSheetList: true, // TODO: Not spec compliant, should be false.
35331 TextTrackCueList: false,
35332 TextTrackList: false,
35333 TouchList: false
35334};
35335
35336for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
35337 var NAME = collections[i];
35338 var explicit = DOMIterables[NAME];
35339 var Collection = global[NAME];
35340 var proto = Collection && Collection.prototype;
35341 var key;
35342 if (proto) {
35343 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
35344 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
35345 Iterators[NAME] = ArrayValues;
35346 if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
35347 }
35348}
35349
35350
35351/***/ }),
35352/* 557 */
35353/***/ (function(module, exports) {
35354
35355/**
35356 * Copyright (c) 2014-present, Facebook, Inc.
35357 *
35358 * This source code is licensed under the MIT license found in the
35359 * LICENSE file in the root directory of this source tree.
35360 */
35361
35362!(function(global) {
35363 "use strict";
35364
35365 var Op = Object.prototype;
35366 var hasOwn = Op.hasOwnProperty;
35367 var undefined; // More compressible than void 0.
35368 var $Symbol = typeof Symbol === "function" ? Symbol : {};
35369 var iteratorSymbol = $Symbol.iterator || "@@iterator";
35370 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
35371 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
35372
35373 var inModule = typeof module === "object";
35374 var runtime = global.regeneratorRuntime;
35375 if (runtime) {
35376 if (inModule) {
35377 // If regeneratorRuntime is defined globally and we're in a module,
35378 // make the exports object identical to regeneratorRuntime.
35379 module.exports = runtime;
35380 }
35381 // Don't bother evaluating the rest of this file if the runtime was
35382 // already defined globally.
35383 return;
35384 }
35385
35386 // Define the runtime globally (as expected by generated code) as either
35387 // module.exports (if we're in a module) or a new, empty object.
35388 runtime = global.regeneratorRuntime = inModule ? module.exports : {};
35389
35390 function wrap(innerFn, outerFn, self, tryLocsList) {
35391 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
35392 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
35393 var generator = Object.create(protoGenerator.prototype);
35394 var context = new Context(tryLocsList || []);
35395
35396 // The ._invoke method unifies the implementations of the .next,
35397 // .throw, and .return methods.
35398 generator._invoke = makeInvokeMethod(innerFn, self, context);
35399
35400 return generator;
35401 }
35402 runtime.wrap = wrap;
35403
35404 // Try/catch helper to minimize deoptimizations. Returns a completion
35405 // record like context.tryEntries[i].completion. This interface could
35406 // have been (and was previously) designed to take a closure to be
35407 // invoked without arguments, but in all the cases we care about we
35408 // already have an existing method we want to call, so there's no need
35409 // to create a new function object. We can even get away with assuming
35410 // the method takes exactly one argument, since that happens to be true
35411 // in every case, so we don't have to touch the arguments object. The
35412 // only additional allocation required is the completion record, which
35413 // has a stable shape and so hopefully should be cheap to allocate.
35414 function tryCatch(fn, obj, arg) {
35415 try {
35416 return { type: "normal", arg: fn.call(obj, arg) };
35417 } catch (err) {
35418 return { type: "throw", arg: err };
35419 }
35420 }
35421
35422 var GenStateSuspendedStart = "suspendedStart";
35423 var GenStateSuspendedYield = "suspendedYield";
35424 var GenStateExecuting = "executing";
35425 var GenStateCompleted = "completed";
35426
35427 // Returning this object from the innerFn has the same effect as
35428 // breaking out of the dispatch switch statement.
35429 var ContinueSentinel = {};
35430
35431 // Dummy constructor functions that we use as the .constructor and
35432 // .constructor.prototype properties for functions that return Generator
35433 // objects. For full spec compliance, you may wish to configure your
35434 // minifier not to mangle the names of these two functions.
35435 function Generator() {}
35436 function GeneratorFunction() {}
35437 function GeneratorFunctionPrototype() {}
35438
35439 // This is a polyfill for %IteratorPrototype% for environments that
35440 // don't natively support it.
35441 var IteratorPrototype = {};
35442 IteratorPrototype[iteratorSymbol] = function () {
35443 return this;
35444 };
35445
35446 var getProto = Object.getPrototypeOf;
35447 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
35448 if (NativeIteratorPrototype &&
35449 NativeIteratorPrototype !== Op &&
35450 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
35451 // This environment has a native %IteratorPrototype%; use it instead
35452 // of the polyfill.
35453 IteratorPrototype = NativeIteratorPrototype;
35454 }
35455
35456 var Gp = GeneratorFunctionPrototype.prototype =
35457 Generator.prototype = Object.create(IteratorPrototype);
35458 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
35459 GeneratorFunctionPrototype.constructor = GeneratorFunction;
35460 GeneratorFunctionPrototype[toStringTagSymbol] =
35461 GeneratorFunction.displayName = "GeneratorFunction";
35462
35463 // Helper for defining the .next, .throw, and .return methods of the
35464 // Iterator interface in terms of a single ._invoke method.
35465 function defineIteratorMethods(prototype) {
35466 ["next", "throw", "return"].forEach(function(method) {
35467 prototype[method] = function(arg) {
35468 return this._invoke(method, arg);
35469 };
35470 });
35471 }
35472
35473 runtime.isGeneratorFunction = function(genFun) {
35474 var ctor = typeof genFun === "function" && genFun.constructor;
35475 return ctor
35476 ? ctor === GeneratorFunction ||
35477 // For the native GeneratorFunction constructor, the best we can
35478 // do is to check its .name property.
35479 (ctor.displayName || ctor.name) === "GeneratorFunction"
35480 : false;
35481 };
35482
35483 runtime.mark = function(genFun) {
35484 if (Object.setPrototypeOf) {
35485 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
35486 } else {
35487 genFun.__proto__ = GeneratorFunctionPrototype;
35488 if (!(toStringTagSymbol in genFun)) {
35489 genFun[toStringTagSymbol] = "GeneratorFunction";
35490 }
35491 }
35492 genFun.prototype = Object.create(Gp);
35493 return genFun;
35494 };
35495
35496 // Within the body of any async function, `await x` is transformed to
35497 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
35498 // `hasOwn.call(value, "__await")` to determine if the yielded value is
35499 // meant to be awaited.
35500 runtime.awrap = function(arg) {
35501 return { __await: arg };
35502 };
35503
35504 function AsyncIterator(generator) {
35505 function invoke(method, arg, resolve, reject) {
35506 var record = tryCatch(generator[method], generator, arg);
35507 if (record.type === "throw") {
35508 reject(record.arg);
35509 } else {
35510 var result = record.arg;
35511 var value = result.value;
35512 if (value &&
35513 typeof value === "object" &&
35514 hasOwn.call(value, "__await")) {
35515 return Promise.resolve(value.__await).then(function(value) {
35516 invoke("next", value, resolve, reject);
35517 }, function(err) {
35518 invoke("throw", err, resolve, reject);
35519 });
35520 }
35521
35522 return Promise.resolve(value).then(function(unwrapped) {
35523 // When a yielded Promise is resolved, its final value becomes
35524 // the .value of the Promise<{value,done}> result for the
35525 // current iteration. If the Promise is rejected, however, the
35526 // result for this iteration will be rejected with the same
35527 // reason. Note that rejections of yielded Promises are not
35528 // thrown back into the generator function, as is the case
35529 // when an awaited Promise is rejected. This difference in
35530 // behavior between yield and await is important, because it
35531 // allows the consumer to decide what to do with the yielded
35532 // rejection (swallow it and continue, manually .throw it back
35533 // into the generator, abandon iteration, whatever). With
35534 // await, by contrast, there is no opportunity to examine the
35535 // rejection reason outside the generator function, so the
35536 // only option is to throw it from the await expression, and
35537 // let the generator function handle the exception.
35538 result.value = unwrapped;
35539 resolve(result);
35540 }, reject);
35541 }
35542 }
35543
35544 var previousPromise;
35545
35546 function enqueue(method, arg) {
35547 function callInvokeWithMethodAndArg() {
35548 return new Promise(function(resolve, reject) {
35549 invoke(method, arg, resolve, reject);
35550 });
35551 }
35552
35553 return previousPromise =
35554 // If enqueue has been called before, then we want to wait until
35555 // all previous Promises have been resolved before calling invoke,
35556 // so that results are always delivered in the correct order. If
35557 // enqueue has not been called before, then it is important to
35558 // call invoke immediately, without waiting on a callback to fire,
35559 // so that the async generator function has the opportunity to do
35560 // any necessary setup in a predictable way. This predictability
35561 // is why the Promise constructor synchronously invokes its
35562 // executor callback, and why async functions synchronously
35563 // execute code before the first await. Since we implement simple
35564 // async functions in terms of async generators, it is especially
35565 // important to get this right, even though it requires care.
35566 previousPromise ? previousPromise.then(
35567 callInvokeWithMethodAndArg,
35568 // Avoid propagating failures to Promises returned by later
35569 // invocations of the iterator.
35570 callInvokeWithMethodAndArg
35571 ) : callInvokeWithMethodAndArg();
35572 }
35573
35574 // Define the unified helper method that is used to implement .next,
35575 // .throw, and .return (see defineIteratorMethods).
35576 this._invoke = enqueue;
35577 }
35578
35579 defineIteratorMethods(AsyncIterator.prototype);
35580 AsyncIterator.prototype[asyncIteratorSymbol] = function () {
35581 return this;
35582 };
35583 runtime.AsyncIterator = AsyncIterator;
35584
35585 // Note that simple async functions are implemented on top of
35586 // AsyncIterator objects; they just return a Promise for the value of
35587 // the final result produced by the iterator.
35588 runtime.async = function(innerFn, outerFn, self, tryLocsList) {
35589 var iter = new AsyncIterator(
35590 wrap(innerFn, outerFn, self, tryLocsList)
35591 );
35592
35593 return runtime.isGeneratorFunction(outerFn)
35594 ? iter // If outerFn is a generator, return the full iterator.
35595 : iter.next().then(function(result) {
35596 return result.done ? result.value : iter.next();
35597 });
35598 };
35599
35600 function makeInvokeMethod(innerFn, self, context) {
35601 var state = GenStateSuspendedStart;
35602
35603 return function invoke(method, arg) {
35604 if (state === GenStateExecuting) {
35605 throw new Error("Generator is already running");
35606 }
35607
35608 if (state === GenStateCompleted) {
35609 if (method === "throw") {
35610 throw arg;
35611 }
35612
35613 // Be forgiving, per 25.3.3.3.3 of the spec:
35614 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
35615 return doneResult();
35616 }
35617
35618 context.method = method;
35619 context.arg = arg;
35620
35621 while (true) {
35622 var delegate = context.delegate;
35623 if (delegate) {
35624 var delegateResult = maybeInvokeDelegate(delegate, context);
35625 if (delegateResult) {
35626 if (delegateResult === ContinueSentinel) continue;
35627 return delegateResult;
35628 }
35629 }
35630
35631 if (context.method === "next") {
35632 // Setting context._sent for legacy support of Babel's
35633 // function.sent implementation.
35634 context.sent = context._sent = context.arg;
35635
35636 } else if (context.method === "throw") {
35637 if (state === GenStateSuspendedStart) {
35638 state = GenStateCompleted;
35639 throw context.arg;
35640 }
35641
35642 context.dispatchException(context.arg);
35643
35644 } else if (context.method === "return") {
35645 context.abrupt("return", context.arg);
35646 }
35647
35648 state = GenStateExecuting;
35649
35650 var record = tryCatch(innerFn, self, context);
35651 if (record.type === "normal") {
35652 // If an exception is thrown from innerFn, we leave state ===
35653 // GenStateExecuting and loop back for another invocation.
35654 state = context.done
35655 ? GenStateCompleted
35656 : GenStateSuspendedYield;
35657
35658 if (record.arg === ContinueSentinel) {
35659 continue;
35660 }
35661
35662 return {
35663 value: record.arg,
35664 done: context.done
35665 };
35666
35667 } else if (record.type === "throw") {
35668 state = GenStateCompleted;
35669 // Dispatch the exception by looping back around to the
35670 // context.dispatchException(context.arg) call above.
35671 context.method = "throw";
35672 context.arg = record.arg;
35673 }
35674 }
35675 };
35676 }
35677
35678 // Call delegate.iterator[context.method](context.arg) and handle the
35679 // result, either by returning a { value, done } result from the
35680 // delegate iterator, or by modifying context.method and context.arg,
35681 // setting context.delegate to null, and returning the ContinueSentinel.
35682 function maybeInvokeDelegate(delegate, context) {
35683 var method = delegate.iterator[context.method];
35684 if (method === undefined) {
35685 // A .throw or .return when the delegate iterator has no .throw
35686 // method always terminates the yield* loop.
35687 context.delegate = null;
35688
35689 if (context.method === "throw") {
35690 if (delegate.iterator.return) {
35691 // If the delegate iterator has a return method, give it a
35692 // chance to clean up.
35693 context.method = "return";
35694 context.arg = undefined;
35695 maybeInvokeDelegate(delegate, context);
35696
35697 if (context.method === "throw") {
35698 // If maybeInvokeDelegate(context) changed context.method from
35699 // "return" to "throw", let that override the TypeError below.
35700 return ContinueSentinel;
35701 }
35702 }
35703
35704 context.method = "throw";
35705 context.arg = new TypeError(
35706 "The iterator does not provide a 'throw' method");
35707 }
35708
35709 return ContinueSentinel;
35710 }
35711
35712 var record = tryCatch(method, delegate.iterator, context.arg);
35713
35714 if (record.type === "throw") {
35715 context.method = "throw";
35716 context.arg = record.arg;
35717 context.delegate = null;
35718 return ContinueSentinel;
35719 }
35720
35721 var info = record.arg;
35722
35723 if (! info) {
35724 context.method = "throw";
35725 context.arg = new TypeError("iterator result is not an object");
35726 context.delegate = null;
35727 return ContinueSentinel;
35728 }
35729
35730 if (info.done) {
35731 // Assign the result of the finished delegate to the temporary
35732 // variable specified by delegate.resultName (see delegateYield).
35733 context[delegate.resultName] = info.value;
35734
35735 // Resume execution at the desired location (see delegateYield).
35736 context.next = delegate.nextLoc;
35737
35738 // If context.method was "throw" but the delegate handled the
35739 // exception, let the outer generator proceed normally. If
35740 // context.method was "next", forget context.arg since it has been
35741 // "consumed" by the delegate iterator. If context.method was
35742 // "return", allow the original .return call to continue in the
35743 // outer generator.
35744 if (context.method !== "return") {
35745 context.method = "next";
35746 context.arg = undefined;
35747 }
35748
35749 } else {
35750 // Re-yield the result returned by the delegate method.
35751 return info;
35752 }
35753
35754 // The delegate iterator is finished, so forget it and continue with
35755 // the outer generator.
35756 context.delegate = null;
35757 return ContinueSentinel;
35758 }
35759
35760 // Define Generator.prototype.{next,throw,return} in terms of the
35761 // unified ._invoke helper method.
35762 defineIteratorMethods(Gp);
35763
35764 Gp[toStringTagSymbol] = "Generator";
35765
35766 // A Generator should always return itself as the iterator object when the
35767 // @@iterator function is called on it. Some browsers' implementations of the
35768 // iterator prototype chain incorrectly implement this, causing the Generator
35769 // object to not be returned from this call. This ensures that doesn't happen.
35770 // See https://github.com/facebook/regenerator/issues/274 for more details.
35771 Gp[iteratorSymbol] = function() {
35772 return this;
35773 };
35774
35775 Gp.toString = function() {
35776 return "[object Generator]";
35777 };
35778
35779 function pushTryEntry(locs) {
35780 var entry = { tryLoc: locs[0] };
35781
35782 if (1 in locs) {
35783 entry.catchLoc = locs[1];
35784 }
35785
35786 if (2 in locs) {
35787 entry.finallyLoc = locs[2];
35788 entry.afterLoc = locs[3];
35789 }
35790
35791 this.tryEntries.push(entry);
35792 }
35793
35794 function resetTryEntry(entry) {
35795 var record = entry.completion || {};
35796 record.type = "normal";
35797 delete record.arg;
35798 entry.completion = record;
35799 }
35800
35801 function Context(tryLocsList) {
35802 // The root entry object (effectively a try statement without a catch
35803 // or a finally block) gives us a place to store values thrown from
35804 // locations where there is no enclosing try statement.
35805 this.tryEntries = [{ tryLoc: "root" }];
35806 tryLocsList.forEach(pushTryEntry, this);
35807 this.reset(true);
35808 }
35809
35810 runtime.keys = function(object) {
35811 var keys = [];
35812 for (var key in object) {
35813 keys.push(key);
35814 }
35815 keys.reverse();
35816
35817 // Rather than returning an object with a next method, we keep
35818 // things simple and return the next function itself.
35819 return function next() {
35820 while (keys.length) {
35821 var key = keys.pop();
35822 if (key in object) {
35823 next.value = key;
35824 next.done = false;
35825 return next;
35826 }
35827 }
35828
35829 // To avoid creating an additional object, we just hang the .value
35830 // and .done properties off the next function object itself. This
35831 // also ensures that the minifier will not anonymize the function.
35832 next.done = true;
35833 return next;
35834 };
35835 };
35836
35837 function values(iterable) {
35838 if (iterable) {
35839 var iteratorMethod = iterable[iteratorSymbol];
35840 if (iteratorMethod) {
35841 return iteratorMethod.call(iterable);
35842 }
35843
35844 if (typeof iterable.next === "function") {
35845 return iterable;
35846 }
35847
35848 if (!isNaN(iterable.length)) {
35849 var i = -1, next = function next() {
35850 while (++i < iterable.length) {
35851 if (hasOwn.call(iterable, i)) {
35852 next.value = iterable[i];
35853 next.done = false;
35854 return next;
35855 }
35856 }
35857
35858 next.value = undefined;
35859 next.done = true;
35860
35861 return next;
35862 };
35863
35864 return next.next = next;
35865 }
35866 }
35867
35868 // Return an iterator with no values.
35869 return { next: doneResult };
35870 }
35871 runtime.values = values;
35872
35873 function doneResult() {
35874 return { value: undefined, done: true };
35875 }
35876
35877 Context.prototype = {
35878 constructor: Context,
35879
35880 reset: function(skipTempReset) {
35881 this.prev = 0;
35882 this.next = 0;
35883 // Resetting context._sent for legacy support of Babel's
35884 // function.sent implementation.
35885 this.sent = this._sent = undefined;
35886 this.done = false;
35887 this.delegate = null;
35888
35889 this.method = "next";
35890 this.arg = undefined;
35891
35892 this.tryEntries.forEach(resetTryEntry);
35893
35894 if (!skipTempReset) {
35895 for (var name in this) {
35896 // Not sure about the optimal order of these conditions:
35897 if (name.charAt(0) === "t" &&
35898 hasOwn.call(this, name) &&
35899 !isNaN(+name.slice(1))) {
35900 this[name] = undefined;
35901 }
35902 }
35903 }
35904 },
35905
35906 stop: function() {
35907 this.done = true;
35908
35909 var rootEntry = this.tryEntries[0];
35910 var rootRecord = rootEntry.completion;
35911 if (rootRecord.type === "throw") {
35912 throw rootRecord.arg;
35913 }
35914
35915 return this.rval;
35916 },
35917
35918 dispatchException: function(exception) {
35919 if (this.done) {
35920 throw exception;
35921 }
35922
35923 var context = this;
35924 function handle(loc, caught) {
35925 record.type = "throw";
35926 record.arg = exception;
35927 context.next = loc;
35928
35929 if (caught) {
35930 // If the dispatched exception was caught by a catch block,
35931 // then let that catch block handle the exception normally.
35932 context.method = "next";
35933 context.arg = undefined;
35934 }
35935
35936 return !! caught;
35937 }
35938
35939 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
35940 var entry = this.tryEntries[i];
35941 var record = entry.completion;
35942
35943 if (entry.tryLoc === "root") {
35944 // Exception thrown outside of any try block that could handle
35945 // it, so set the completion value of the entire function to
35946 // throw the exception.
35947 return handle("end");
35948 }
35949
35950 if (entry.tryLoc <= this.prev) {
35951 var hasCatch = hasOwn.call(entry, "catchLoc");
35952 var hasFinally = hasOwn.call(entry, "finallyLoc");
35953
35954 if (hasCatch && hasFinally) {
35955 if (this.prev < entry.catchLoc) {
35956 return handle(entry.catchLoc, true);
35957 } else if (this.prev < entry.finallyLoc) {
35958 return handle(entry.finallyLoc);
35959 }
35960
35961 } else if (hasCatch) {
35962 if (this.prev < entry.catchLoc) {
35963 return handle(entry.catchLoc, true);
35964 }
35965
35966 } else if (hasFinally) {
35967 if (this.prev < entry.finallyLoc) {
35968 return handle(entry.finallyLoc);
35969 }
35970
35971 } else {
35972 throw new Error("try statement without catch or finally");
35973 }
35974 }
35975 }
35976 },
35977
35978 abrupt: function(type, arg) {
35979 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
35980 var entry = this.tryEntries[i];
35981 if (entry.tryLoc <= this.prev &&
35982 hasOwn.call(entry, "finallyLoc") &&
35983 this.prev < entry.finallyLoc) {
35984 var finallyEntry = entry;
35985 break;
35986 }
35987 }
35988
35989 if (finallyEntry &&
35990 (type === "break" ||
35991 type === "continue") &&
35992 finallyEntry.tryLoc <= arg &&
35993 arg <= finallyEntry.finallyLoc) {
35994 // Ignore the finally entry if control is not jumping to a
35995 // location outside the try/catch block.
35996 finallyEntry = null;
35997 }
35998
35999 var record = finallyEntry ? finallyEntry.completion : {};
36000 record.type = type;
36001 record.arg = arg;
36002
36003 if (finallyEntry) {
36004 this.method = "next";
36005 this.next = finallyEntry.finallyLoc;
36006 return ContinueSentinel;
36007 }
36008
36009 return this.complete(record);
36010 },
36011
36012 complete: function(record, afterLoc) {
36013 if (record.type === "throw") {
36014 throw record.arg;
36015 }
36016
36017 if (record.type === "break" ||
36018 record.type === "continue") {
36019 this.next = record.arg;
36020 } else if (record.type === "return") {
36021 this.rval = this.arg = record.arg;
36022 this.method = "return";
36023 this.next = "end";
36024 } else if (record.type === "normal" && afterLoc) {
36025 this.next = afterLoc;
36026 }
36027
36028 return ContinueSentinel;
36029 },
36030
36031 finish: function(finallyLoc) {
36032 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
36033 var entry = this.tryEntries[i];
36034 if (entry.finallyLoc === finallyLoc) {
36035 this.complete(entry.completion, entry.afterLoc);
36036 resetTryEntry(entry);
36037 return ContinueSentinel;
36038 }
36039 }
36040 },
36041
36042 "catch": function(tryLoc) {
36043 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
36044 var entry = this.tryEntries[i];
36045 if (entry.tryLoc === tryLoc) {
36046 var record = entry.completion;
36047 if (record.type === "throw") {
36048 var thrown = record.arg;
36049 resetTryEntry(entry);
36050 }
36051 return thrown;
36052 }
36053 }
36054
36055 // The context.catch method must only be called with a location
36056 // argument that corresponds to a known catch block.
36057 throw new Error("illegal catch attempt");
36058 },
36059
36060 delegateYield: function(iterable, resultName, nextLoc) {
36061 this.delegate = {
36062 iterator: values(iterable),
36063 resultName: resultName,
36064 nextLoc: nextLoc
36065 };
36066
36067 if (this.method === "next") {
36068 // Deliberately forget the last sent value so that we don't
36069 // accidentally pass it on to the delegate.
36070 this.arg = undefined;
36071 }
36072
36073 return ContinueSentinel;
36074 }
36075 };
36076})(
36077 // In sloppy mode, unbound `this` refers to the global object, fallback to
36078 // Function constructor if we're in global strict mode. That is sadly a form
36079 // of indirect eval which violates Content Security Policy.
36080 (function() { return this })() || Function("return this")()
36081);
36082
36083
36084/***/ }),
36085/* 558 */
36086/***/ (function(module, exports, __webpack_require__) {
36087
36088__webpack_require__(559);
36089module.exports = __webpack_require__(33).RegExp.escape;
36090
36091
36092/***/ }),
36093/* 559 */
36094/***/ (function(module, exports, __webpack_require__) {
36095
36096// https://github.com/benjamingr/RexExp.escape
36097var $export = __webpack_require__(0);
36098var $re = __webpack_require__(560)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
36099
36100$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });
36101
36102
36103/***/ }),
36104/* 560 */
36105/***/ (function(module, exports) {
36106
36107module.exports = function (regExp, replace) {
36108 var replacer = replace === Object(replace) ? function (part) {
36109 return replace[part];
36110 } : replace;
36111 return function (it) {
36112 return String(it).replace(regExp, replacer);
36113 };
36114};
36115
36116
36117/***/ }),
36118/* 561 */
36119/***/ (function(module, exports, __webpack_require__) {
36120
36121"use strict";
36122
36123
36124var _http = __webpack_require__(43);
36125
36126var _graphql = __webpack_require__(14);
36127
36128var _graphqlServerExpress = __webpack_require__(581);
36129
36130var _subscriptionsTransportWs = __webpack_require__(591);
36131
36132var _bodyParser = __webpack_require__(294);
36133
36134var _bodyParser2 = _interopRequireDefault(_bodyParser);
36135
36136var _express = __webpack_require__(645);
36137
36138var _express2 = _interopRequireDefault(_express);
36139
36140var _fs = __webpack_require__(68);
36141
36142var _fs2 = _interopRequireDefault(_fs);
36143
36144var _jsonwebtoken = __webpack_require__(671);
36145
36146var _jsonwebtoken2 = _interopRequireDefault(_jsonwebtoken);
36147
36148var _schema = __webpack_require__(687);
36149
36150var _schema2 = _interopRequireDefault(_schema);
36151
36152var _Loaders = __webpack_require__(737);
36153
36154var _Loaders2 = _interopRequireDefault(_Loaders);
36155
36156var _User = __webpack_require__(848);
36157
36158var _User2 = _interopRequireDefault(_User);
36159
36160function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36161
36162var app = (0, _express2.default)();
36163var PORT = 3000;
36164var cert = process.env.NODE_ENV === 'dev' ? 'hive' : _fs2.default.readFileSync('/etc/letsencrypt/production/certs/madbean.ovh/fullchain.pem');
36165
36166app.use(_bodyParser2.default.json());
36167
36168app.use(function (req, res, next) {
36169 if (!req.headers.authorization) {
36170 console.log('head next');
36171 next();
36172 } else {
36173 var bearer = req.headers.authorization;
36174
36175 var token = bearer.replace('Bearer ', '');
36176 _jsonwebtoken2.default.verify(token, cert, { algorithms: ['RS256'] }, function (err, decoded) {
36177 if (!decoded) {
36178 console.log('next');
36179 next();
36180 } else {
36181 var data = decoded.data;
36182
36183 if (data && data.userID && data.userID !== '') {
36184 console.log('data', (0, _User2.default)(data));
36185 req.user = (0, _User2.default)(data);
36186 next();
36187 }
36188 }
36189 });
36190 }
36191});
36192
36193app.use('/graphql', (0, _graphqlServerExpress.graphqlExpress)(function (req) {
36194 console.log(req.user);
36195 return {
36196 context: {
36197 loaders: _Loaders2.default,
36198 auth: {
36199 isAuthenticated: req.user,
36200 scope: req.user && req.user.scope ? req.user.scope : null
36201 }
36202 },
36203 schema: _schema2.default,
36204 tracing: true,
36205 cacheControl: true
36206 };
36207}));
36208
36209app.use('/graphiql', (0, _graphqlServerExpress.graphiqlExpress)({
36210 endpointURL: '/graphql',
36211 subscriptionsEndpoint: 'ws://localhost:' + PORT + '/subscriptions'
36212}));
36213
36214var server = (0, _http.createServer)(app);
36215
36216server.listen(PORT, function () {
36217 new _subscriptionsTransportWs.SubscriptionServer({
36218 execute: _graphql.execute,
36219 subscribe: _graphql.subscribe,
36220 schema: _schema2.default,
36221 onConnect: function onConnect() {
36222 return console.log('new client connected');
36223 }
36224 }, {
36225 server: server,
36226 path: '/subscriptions'
36227 });
36228});
36229
36230console.log('Middle running at http://localhost:' + PORT);
36231
36232/***/ }),
36233/* 562 */
36234/***/ (function(module, exports, __webpack_require__) {
36235
36236"use strict";
36237
36238
36239Object.defineProperty(exports, "__esModule", {
36240 value: true
36241});
36242exports.graphql = graphql;
36243
36244var _parser = __webpack_require__(115);
36245
36246var _validate = __webpack_require__(250);
36247
36248var _execute = __webpack_require__(181);
36249
36250/**
36251 * This is the primary entry point function for fulfilling GraphQL operations
36252 * by parsing, validating, and executing a GraphQL document along side a
36253 * GraphQL schema.
36254 *
36255 * More sophisticated GraphQL servers, such as those which persist queries,
36256 * may wish to separate the validation and execution phases to a static time
36257 * tooling step, and a server runtime step.
36258 *
36259 * Accepts either an object with named arguments, or individual arguments:
36260 *
36261 * schema:
36262 * The GraphQL type system to use when validating and executing a query.
36263 * source:
36264 * A GraphQL language formatted string representing the requested operation.
36265 * rootValue:
36266 * The value provided as the first argument to resolver functions on the top
36267 * level type (e.g. the query object type).
36268 * variableValues:
36269 * A mapping of variable name to runtime value to use for all variables
36270 * defined in the requestString.
36271 * operationName:
36272 * The name of the operation to use if requestString contains multiple
36273 * possible operations. Can be omitted if requestString contains only
36274 * one operation.
36275 * fieldResolver:
36276 * A resolver function to use when one is not provided by the schema.
36277 * If not provided, the default field resolver is used (which looks for a
36278 * value or method on the source value with the field's name).
36279 */
36280
36281/* eslint-disable no-redeclare */
36282function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) {
36283 // Extract arguments from object args if provided.
36284 return arguments.length === 1 ? graphqlImpl(argsOrSchema.schema, argsOrSchema.source, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : graphqlImpl(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver);
36285} /**
36286 * Copyright (c) 2015-present, Facebook, Inc.
36287 *
36288 * This source code is licensed under the MIT license found in the
36289 * LICENSE file in the root directory of this source tree.
36290 *
36291 *
36292 */
36293
36294function graphqlImpl(schema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) {
36295 return new Promise(function (resolve) {
36296 // Parse
36297 var document = void 0;
36298 try {
36299 document = (0, _parser.parse)(source);
36300 } catch (syntaxError) {
36301 return resolve({ errors: [syntaxError] });
36302 }
36303
36304 // Validate
36305 var validationErrors = (0, _validate.validate)(schema, document);
36306 if (validationErrors.length > 0) {
36307 return resolve({ errors: validationErrors });
36308 }
36309
36310 // Execute
36311 resolve((0, _execute.execute)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver));
36312 });
36313}
36314
36315/***/ }),
36316/* 563 */
36317/***/ (function(module, exports, __webpack_require__) {
36318
36319"use strict";
36320
36321
36322Object.defineProperty(exports, "__esModule", {
36323 value: true
36324});
36325exports.syntaxError = syntaxError;
36326
36327var _location = __webpack_require__(174);
36328
36329var _GraphQLError = __webpack_require__(75);
36330
36331/**
36332 * Produces a GraphQLError representing a syntax error, containing useful
36333 * descriptive information about the syntax error's position in the source.
36334 */
36335/**
36336 * Copyright (c) 2015-present, Facebook, Inc.
36337 *
36338 * This source code is licensed under the MIT license found in the
36339 * LICENSE file in the root directory of this source tree.
36340 *
36341 *
36342 */
36343
36344function syntaxError(source, position, description) {
36345 var location = (0, _location.getLocation)(source, position);
36346 var line = location.line + source.locationOffset.line - 1;
36347 var columnOffset = getColumnOffset(source, location);
36348 var column = location.column + columnOffset;
36349 var error = new _GraphQLError.GraphQLError('Syntax Error ' + source.name + ' (' + line + ':' + column + ') ' + description + '\n\n' + highlightSourceAtLocation(source, location), undefined, source, [position]);
36350 return error;
36351}
36352
36353/**
36354 * Render a helpful description of the location of the error in the GraphQL
36355 * Source document.
36356 */
36357function highlightSourceAtLocation(source, location) {
36358 var line = location.line;
36359 var lineOffset = source.locationOffset.line - 1;
36360 var columnOffset = getColumnOffset(source, location);
36361 var contextLine = line + lineOffset;
36362 var prevLineNum = (contextLine - 1).toString();
36363 var lineNum = contextLine.toString();
36364 var nextLineNum = (contextLine + 1).toString();
36365 var padLen = nextLineNum.length;
36366 var lines = source.body.split(/\r\n|[\n\r]/g);
36367 lines[0] = whitespace(source.locationOffset.column - 1) + lines[0];
36368 return (line >= 2 ? lpad(padLen, prevLineNum) + ': ' + lines[line - 2] + '\n' : '') + lpad(padLen, lineNum) + ': ' + lines[line - 1] + '\n' + whitespace(2 + padLen + location.column - 1 + columnOffset) + '^\n' + (line < lines.length ? lpad(padLen, nextLineNum) + ': ' + lines[line] + '\n' : '');
36369}
36370
36371function getColumnOffset(source, location) {
36372 return location.line === 1 ? source.locationOffset.column - 1 : 0;
36373}
36374
36375function whitespace(len) {
36376 return Array(len + 1).join(' ');
36377}
36378
36379function lpad(len, str) {
36380 return whitespace(len - str.length) + str;
36381}
36382
36383/***/ }),
36384/* 564 */
36385/***/ (function(module, exports, __webpack_require__) {
36386
36387"use strict";
36388
36389
36390Object.defineProperty(exports, "__esModule", {
36391 value: true
36392});
36393exports.formatError = formatError;
36394
36395var _invariant = __webpack_require__(11);
36396
36397var _invariant2 = _interopRequireDefault(_invariant);
36398
36399function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36400
36401/**
36402 * Given a GraphQLError, format it according to the rules described by the
36403 * Response Format, Errors section of the GraphQL Specification.
36404 */
36405function formatError(error) {
36406 !error ? (0, _invariant2.default)(0, 'Received null or undefined error.') : void 0;
36407 return {
36408 message: error.message,
36409 locations: error.locations,
36410 path: error.path
36411 };
36412} /**
36413 * Copyright (c) 2015-present, Facebook, Inc.
36414 *
36415 * This source code is licensed under the MIT license found in the
36416 * LICENSE file in the root directory of this source tree.
36417 *
36418 *
36419 */
36420
36421/***/ }),
36422/* 565 */
36423/***/ (function(module, exports, __webpack_require__) {
36424
36425"use strict";
36426
36427
36428Object.defineProperty(exports, "__esModule", {
36429 value: true
36430});
36431
36432var _schema = __webpack_require__(44);
36433
36434Object.defineProperty(exports, 'GraphQLSchema', {
36435 enumerable: true,
36436 get: function get() {
36437 return _schema.GraphQLSchema;
36438 }
36439});
36440
36441var _definition = __webpack_require__(6);
36442
36443Object.defineProperty(exports, 'isType', {
36444 enumerable: true,
36445 get: function get() {
36446 return _definition.isType;
36447 }
36448});
36449Object.defineProperty(exports, 'isInputType', {
36450 enumerable: true,
36451 get: function get() {
36452 return _definition.isInputType;
36453 }
36454});
36455Object.defineProperty(exports, 'isOutputType', {
36456 enumerable: true,
36457 get: function get() {
36458 return _definition.isOutputType;
36459 }
36460});
36461Object.defineProperty(exports, 'isLeafType', {
36462 enumerable: true,
36463 get: function get() {
36464 return _definition.isLeafType;
36465 }
36466});
36467Object.defineProperty(exports, 'isCompositeType', {
36468 enumerable: true,
36469 get: function get() {
36470 return _definition.isCompositeType;
36471 }
36472});
36473Object.defineProperty(exports, 'isAbstractType', {
36474 enumerable: true,
36475 get: function get() {
36476 return _definition.isAbstractType;
36477 }
36478});
36479Object.defineProperty(exports, 'isNamedType', {
36480 enumerable: true,
36481 get: function get() {
36482 return _definition.isNamedType;
36483 }
36484});
36485Object.defineProperty(exports, 'assertType', {
36486 enumerable: true,
36487 get: function get() {
36488 return _definition.assertType;
36489 }
36490});
36491Object.defineProperty(exports, 'assertInputType', {
36492 enumerable: true,
36493 get: function get() {
36494 return _definition.assertInputType;
36495 }
36496});
36497Object.defineProperty(exports, 'assertOutputType', {
36498 enumerable: true,
36499 get: function get() {
36500 return _definition.assertOutputType;
36501 }
36502});
36503Object.defineProperty(exports, 'assertLeafType', {
36504 enumerable: true,
36505 get: function get() {
36506 return _definition.assertLeafType;
36507 }
36508});
36509Object.defineProperty(exports, 'assertCompositeType', {
36510 enumerable: true,
36511 get: function get() {
36512 return _definition.assertCompositeType;
36513 }
36514});
36515Object.defineProperty(exports, 'assertAbstractType', {
36516 enumerable: true,
36517 get: function get() {
36518 return _definition.assertAbstractType;
36519 }
36520});
36521Object.defineProperty(exports, 'assertNamedType', {
36522 enumerable: true,
36523 get: function get() {
36524 return _definition.assertNamedType;
36525 }
36526});
36527Object.defineProperty(exports, 'getNullableType', {
36528 enumerable: true,
36529 get: function get() {
36530 return _definition.getNullableType;
36531 }
36532});
36533Object.defineProperty(exports, 'getNamedType', {
36534 enumerable: true,
36535 get: function get() {
36536 return _definition.getNamedType;
36537 }
36538});
36539Object.defineProperty(exports, 'GraphQLScalarType', {
36540 enumerable: true,
36541 get: function get() {
36542 return _definition.GraphQLScalarType;
36543 }
36544});
36545Object.defineProperty(exports, 'GraphQLObjectType', {
36546 enumerable: true,
36547 get: function get() {
36548 return _definition.GraphQLObjectType;
36549 }
36550});
36551Object.defineProperty(exports, 'GraphQLInterfaceType', {
36552 enumerable: true,
36553 get: function get() {
36554 return _definition.GraphQLInterfaceType;
36555 }
36556});
36557Object.defineProperty(exports, 'GraphQLUnionType', {
36558 enumerable: true,
36559 get: function get() {
36560 return _definition.GraphQLUnionType;
36561 }
36562});
36563Object.defineProperty(exports, 'GraphQLEnumType', {
36564 enumerable: true,
36565 get: function get() {
36566 return _definition.GraphQLEnumType;
36567 }
36568});
36569Object.defineProperty(exports, 'GraphQLInputObjectType', {
36570 enumerable: true,
36571 get: function get() {
36572 return _definition.GraphQLInputObjectType;
36573 }
36574});
36575Object.defineProperty(exports, 'GraphQLList', {
36576 enumerable: true,
36577 get: function get() {
36578 return _definition.GraphQLList;
36579 }
36580});
36581Object.defineProperty(exports, 'GraphQLNonNull', {
36582 enumerable: true,
36583 get: function get() {
36584 return _definition.GraphQLNonNull;
36585 }
36586});
36587
36588var _directives = __webpack_require__(45);
36589
36590Object.defineProperty(exports, 'DirectiveLocation', {
36591 enumerable: true,
36592 get: function get() {
36593 return _directives.DirectiveLocation;
36594 }
36595});
36596Object.defineProperty(exports, 'GraphQLDirective', {
36597 enumerable: true,
36598 get: function get() {
36599 return _directives.GraphQLDirective;
36600 }
36601});
36602Object.defineProperty(exports, 'specifiedDirectives', {
36603 enumerable: true,
36604 get: function get() {
36605 return _directives.specifiedDirectives;
36606 }
36607});
36608Object.defineProperty(exports, 'GraphQLIncludeDirective', {
36609 enumerable: true,
36610 get: function get() {
36611 return _directives.GraphQLIncludeDirective;
36612 }
36613});
36614Object.defineProperty(exports, 'GraphQLSkipDirective', {
36615 enumerable: true,
36616 get: function get() {
36617 return _directives.GraphQLSkipDirective;
36618 }
36619});
36620Object.defineProperty(exports, 'GraphQLDeprecatedDirective', {
36621 enumerable: true,
36622 get: function get() {
36623 return _directives.GraphQLDeprecatedDirective;
36624 }
36625});
36626Object.defineProperty(exports, 'DEFAULT_DEPRECATION_REASON', {
36627 enumerable: true,
36628 get: function get() {
36629 return _directives.DEFAULT_DEPRECATION_REASON;
36630 }
36631});
36632
36633var _scalars = __webpack_require__(52);
36634
36635Object.defineProperty(exports, 'GraphQLInt', {
36636 enumerable: true,
36637 get: function get() {
36638 return _scalars.GraphQLInt;
36639 }
36640});
36641Object.defineProperty(exports, 'GraphQLFloat', {
36642 enumerable: true,
36643 get: function get() {
36644 return _scalars.GraphQLFloat;
36645 }
36646});
36647Object.defineProperty(exports, 'GraphQLString', {
36648 enumerable: true,
36649 get: function get() {
36650 return _scalars.GraphQLString;
36651 }
36652});
36653Object.defineProperty(exports, 'GraphQLBoolean', {
36654 enumerable: true,
36655 get: function get() {
36656 return _scalars.GraphQLBoolean;
36657 }
36658});
36659Object.defineProperty(exports, 'GraphQLID', {
36660 enumerable: true,
36661 get: function get() {
36662 return _scalars.GraphQLID;
36663 }
36664});
36665
36666var _introspection = __webpack_require__(67);
36667
36668Object.defineProperty(exports, 'TypeKind', {
36669 enumerable: true,
36670 get: function get() {
36671 return _introspection.TypeKind;
36672 }
36673});
36674Object.defineProperty(exports, '__Schema', {
36675 enumerable: true,
36676 get: function get() {
36677 return _introspection.__Schema;
36678 }
36679});
36680Object.defineProperty(exports, '__Directive', {
36681 enumerable: true,
36682 get: function get() {
36683 return _introspection.__Directive;
36684 }
36685});
36686Object.defineProperty(exports, '__DirectiveLocation', {
36687 enumerable: true,
36688 get: function get() {
36689 return _introspection.__DirectiveLocation;
36690 }
36691});
36692Object.defineProperty(exports, '__Type', {
36693 enumerable: true,
36694 get: function get() {
36695 return _introspection.__Type;
36696 }
36697});
36698Object.defineProperty(exports, '__Field', {
36699 enumerable: true,
36700 get: function get() {
36701 return _introspection.__Field;
36702 }
36703});
36704Object.defineProperty(exports, '__InputValue', {
36705 enumerable: true,
36706 get: function get() {
36707 return _introspection.__InputValue;
36708 }
36709});
36710Object.defineProperty(exports, '__EnumValue', {
36711 enumerable: true,
36712 get: function get() {
36713 return _introspection.__EnumValue;
36714 }
36715});
36716Object.defineProperty(exports, '__TypeKind', {
36717 enumerable: true,
36718 get: function get() {
36719 return _introspection.__TypeKind;
36720 }
36721});
36722Object.defineProperty(exports, 'SchemaMetaFieldDef', {
36723 enumerable: true,
36724 get: function get() {
36725 return _introspection.SchemaMetaFieldDef;
36726 }
36727});
36728Object.defineProperty(exports, 'TypeMetaFieldDef', {
36729 enumerable: true,
36730 get: function get() {
36731 return _introspection.TypeMetaFieldDef;
36732 }
36733});
36734Object.defineProperty(exports, 'TypeNameMetaFieldDef', {
36735 enumerable: true,
36736 get: function get() {
36737 return _introspection.TypeNameMetaFieldDef;
36738 }
36739});
36740
36741/***/ }),
36742/* 566 */
36743/***/ (function(module, exports, __webpack_require__) {
36744
36745"use strict";
36746
36747
36748Object.defineProperty(exports, "__esModule", {
36749 value: true
36750});
36751exports.BREAK = exports.getVisitFn = exports.visitWithTypeInfo = exports.visitInParallel = exports.visit = exports.Source = exports.print = exports.parseType = exports.parseValue = exports.parse = exports.TokenKind = exports.createLexer = exports.Kind = exports.getLocation = undefined;
36752
36753var _location = __webpack_require__(174);
36754
36755Object.defineProperty(exports, 'getLocation', {
36756 enumerable: true,
36757 get: function get() {
36758 return _location.getLocation;
36759 }
36760});
36761
36762var _lexer = __webpack_require__(175);
36763
36764Object.defineProperty(exports, 'createLexer', {
36765 enumerable: true,
36766 get: function get() {
36767 return _lexer.createLexer;
36768 }
36769});
36770Object.defineProperty(exports, 'TokenKind', {
36771 enumerable: true,
36772 get: function get() {
36773 return _lexer.TokenKind;
36774 }
36775});
36776
36777var _parser = __webpack_require__(115);
36778
36779Object.defineProperty(exports, 'parse', {
36780 enumerable: true,
36781 get: function get() {
36782 return _parser.parse;
36783 }
36784});
36785Object.defineProperty(exports, 'parseValue', {
36786 enumerable: true,
36787 get: function get() {
36788 return _parser.parseValue;
36789 }
36790});
36791Object.defineProperty(exports, 'parseType', {
36792 enumerable: true,
36793 get: function get() {
36794 return _parser.parseType;
36795 }
36796});
36797
36798var _printer = __webpack_require__(28);
36799
36800Object.defineProperty(exports, 'print', {
36801 enumerable: true,
36802 get: function get() {
36803 return _printer.print;
36804 }
36805});
36806
36807var _source = __webpack_require__(248);
36808
36809Object.defineProperty(exports, 'Source', {
36810 enumerable: true,
36811 get: function get() {
36812 return _source.Source;
36813 }
36814});
36815
36816var _visitor = __webpack_require__(85);
36817
36818Object.defineProperty(exports, 'visit', {
36819 enumerable: true,
36820 get: function get() {
36821 return _visitor.visit;
36822 }
36823});
36824Object.defineProperty(exports, 'visitInParallel', {
36825 enumerable: true,
36826 get: function get() {
36827 return _visitor.visitInParallel;
36828 }
36829});
36830Object.defineProperty(exports, 'visitWithTypeInfo', {
36831 enumerable: true,
36832 get: function get() {
36833 return _visitor.visitWithTypeInfo;
36834 }
36835});
36836Object.defineProperty(exports, 'getVisitFn', {
36837 enumerable: true,
36838 get: function get() {
36839 return _visitor.getVisitFn;
36840 }
36841});
36842Object.defineProperty(exports, 'BREAK', {
36843 enumerable: true,
36844 get: function get() {
36845 return _visitor.BREAK;
36846 }
36847});
36848
36849var _kinds = __webpack_require__(12);
36850
36851var Kind = _interopRequireWildcard(_kinds);
36852
36853function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
36854
36855exports.Kind = Kind;
36856
36857/***/ }),
36858/* 567 */
36859/***/ (function(module, exports, __webpack_require__) {
36860
36861"use strict";
36862
36863
36864Object.defineProperty(exports, "__esModule", {
36865 value: true
36866});
36867
36868var _execute = __webpack_require__(181);
36869
36870Object.defineProperty(exports, 'execute', {
36871 enumerable: true,
36872 get: function get() {
36873 return _execute.execute;
36874 }
36875});
36876Object.defineProperty(exports, 'defaultFieldResolver', {
36877 enumerable: true,
36878 get: function get() {
36879 return _execute.defaultFieldResolver;
36880 }
36881});
36882Object.defineProperty(exports, 'responsePathAsArray', {
36883 enumerable: true,
36884 get: function get() {
36885 return _execute.responsePathAsArray;
36886 }
36887});
36888
36889var _values = __webpack_require__(182);
36890
36891Object.defineProperty(exports, 'getDirectiveValues', {
36892 enumerable: true,
36893 get: function get() {
36894 return _values.getDirectiveValues;
36895 }
36896});
36897
36898/***/ }),
36899/* 568 */
36900/***/ (function(module, exports, __webpack_require__) {
36901
36902"use strict";
36903
36904
36905Object.defineProperty(exports, "__esModule", {
36906 value: true
36907});
36908
36909var _subscribe = __webpack_require__(569);
36910
36911Object.defineProperty(exports, 'subscribe', {
36912 enumerable: true,
36913 get: function get() {
36914 return _subscribe.subscribe;
36915 }
36916});
36917Object.defineProperty(exports, 'createSourceEventStream', {
36918 enumerable: true,
36919 get: function get() {
36920 return _subscribe.createSourceEventStream;
36921 }
36922});
36923
36924/***/ }),
36925/* 569 */
36926/***/ (function(module, exports, __webpack_require__) {
36927
36928"use strict";
36929
36930
36931Object.defineProperty(exports, "__esModule", {
36932 value: true
36933});
36934exports.subscribe = subscribe;
36935exports.createSourceEventStream = createSourceEventStream;
36936
36937var _iterall = __webpack_require__(39);
36938
36939var _GraphQLError = __webpack_require__(75);
36940
36941var _locatedError = __webpack_require__(249);
36942
36943var _execute = __webpack_require__(181);
36944
36945var _schema = __webpack_require__(44);
36946
36947var _invariant = __webpack_require__(11);
36948
36949var _invariant2 = _interopRequireDefault(_invariant);
36950
36951var _mapAsyncIterator = __webpack_require__(570);
36952
36953var _mapAsyncIterator2 = _interopRequireDefault(_mapAsyncIterator);
36954
36955function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36956
36957/**
36958 * Implements the "Subscribe" algorithm described in the GraphQL specification.
36959 *
36960 * Returns a Promise which resolves to either an AsyncIterator (if successful)
36961 * or an ExecutionResult (client error). The promise will be rejected if a
36962 * server error occurs.
36963 *
36964 * If the client-provided arguments to this function do not result in a
36965 * compliant subscription, a GraphQL Response (ExecutionResult) with
36966 * descriptive errors and no data will be returned.
36967 *
36968 * If the the source stream could not be created due to faulty subscription
36969 * resolver logic or underlying systems, the promise will resolve to a single
36970 * ExecutionResult containing `errors` and no `data`.
36971 *
36972 * If the operation succeeded, the promise resolves to an AsyncIterator, which
36973 * yields a stream of ExecutionResults representing the response stream.
36974 *
36975 * Accepts either an object with named arguments, or individual arguments.
36976 */
36977
36978/* eslint-disable no-redeclare */
36979function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
36980 // Extract arguments from object args if provided.
36981 var args = arguments.length === 1 ? argsOrSchema : undefined;
36982 var schema = args ? args.schema : argsOrSchema;
36983
36984 return args ? subscribeImpl(schema, args.document, args.rootValue, args.contextValue, args.variableValues, args.operationName, args.fieldResolver, args.subscribeFieldResolver) : subscribeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver);
36985}
36986
36987/**
36988 * This function checks if the error is a GraphQLError. If it is, report it as
36989 * an ExecutionResult, containing only errors and no data. Otherwise treat the
36990 * error as a system-class error and re-throw it.
36991 */
36992/**
36993 * Copyright (c) 2017-present, Facebook, Inc.
36994 *
36995 * This source code is licensed under the MIT license found in the
36996 * LICENSE file in the root directory of this source tree.
36997 *
36998 *
36999 */
37000
37001function reportGraphQLError(error) {
37002 if (error instanceof _GraphQLError.GraphQLError) {
37003 return { errors: [error] };
37004 }
37005 throw error;
37006}
37007
37008function subscribeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
37009 var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver);
37010
37011 // For each payload yielded from a subscription, map it over the normal
37012 // GraphQL `execute` function, with `payload` as the rootValue.
37013 // This implements the "MapSourceToResponseEvent" algorithm described in
37014 // the GraphQL specification. The `execute` function provides the
37015 // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the
37016 // "ExecuteQuery" algorithm, for which `execute` is also used.
37017 var mapSourceToResponse = function mapSourceToResponse(payload) {
37018 return (0, _execute.execute)(schema, document, payload, contextValue, variableValues, operationName, fieldResolver);
37019 };
37020
37021 // Resolve the Source Stream, then map every source value to a
37022 // ExecutionResult value as described above.
37023 return sourcePromise.then(function (sourceStream) {
37024 return (0, _mapAsyncIterator2.default)(sourceStream, mapSourceToResponse, reportGraphQLError);
37025 }, reportGraphQLError);
37026}
37027
37028/**
37029 * Implements the "CreateSourceEventStream" algorithm described in the
37030 * GraphQL specification, resolving the subscription source event stream.
37031 *
37032 * Returns a Promise<AsyncIterable>.
37033 *
37034 * If the client-provided invalid arguments, the source stream could not be
37035 * created, or the resolver did not return an AsyncIterable, this function will
37036 * will throw an error, which should be caught and handled by the caller.
37037 *
37038 * A Source Event Stream represents a sequence of events, each of which triggers
37039 * a GraphQL execution for that event.
37040 *
37041 * This may be useful when hosting the stateful subscription service in a
37042 * different process or machine than the stateless GraphQL execution engine,
37043 * or otherwise separating these two steps. For more on this, see the
37044 * "Supporting Subscriptions at Scale" information in the GraphQL specification.
37045 */
37046function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
37047 // If arguments are missing or incorrectly typed, this is an internal
37048 // developer mistake which should throw an early error.
37049 (0, _execute.assertValidExecutionArguments)(schema, document, variableValues);
37050
37051 return new Promise(function (resolve, reject) {
37052 // If a valid context cannot be created due to incorrect arguments,
37053 // this will throw an error.
37054 var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
37055
37056 var type = (0, _execute.getOperationRootType)(schema, exeContext.operation);
37057 var fields = (0, _execute.collectFields)(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));
37058 var responseNames = Object.keys(fields);
37059 var responseName = responseNames[0];
37060 var fieldNodes = fields[responseName];
37061 var fieldNode = fieldNodes[0];
37062 var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldNode.name.value);
37063 !fieldDef ? (0, _invariant2.default)(0, 'This subscription is not defined by the schema.') : void 0;
37064
37065 // Call the `subscribe()` resolver or the default resolver to produce an
37066 // AsyncIterable yielding raw payloads.
37067 var resolveFn = fieldDef.subscribe || exeContext.fieldResolver;
37068
37069 var path = (0, _execute.addPath)(undefined, responseName);
37070
37071 var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path);
37072
37073 // resolveFieldValueOrError implements the "ResolveFieldEventStream"
37074 // algorithm from GraphQL specification. It differs from
37075 // "ResolveFieldValue" due to providing a different `resolveFn`.
37076 Promise.resolve((0, _execute.resolveFieldValueOrError)(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info)).then(function (subscription) {
37077 // Reject with a located GraphQLError if subscription source fails
37078 // to resolve.
37079 if (subscription instanceof Error) {
37080 var error = (0, _locatedError.locatedError)(subscription, fieldNodes, (0, _execute.responsePathAsArray)(path));
37081 reject(error);
37082 }
37083
37084 if (!(0, _iterall.isAsyncIterable)(subscription)) {
37085 reject(new Error('Subscription must return Async Iterable. ' + 'Received: ' + String(subscription)));
37086 }
37087
37088 resolve(subscription);
37089 }).catch(reject);
37090 });
37091}
37092
37093/***/ }),
37094/* 570 */
37095/***/ (function(module, exports, __webpack_require__) {
37096
37097"use strict";
37098
37099
37100Object.defineProperty(exports, "__esModule", {
37101 value: true
37102});
37103exports.default = mapAsyncIterator;
37104
37105var _iterall = __webpack_require__(39);
37106
37107function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /**
37108 * Copyright (c) 2017-present, Facebook, Inc.
37109 *
37110 * This source code is licensed under the MIT license found in the
37111 * LICENSE file in the root directory of this source tree.
37112 *
37113 *
37114 */
37115
37116/**
37117 * Given an AsyncIterable and a callback function, return an AsyncIterator
37118 * which produces values mapped via calling the callback function.
37119 */
37120function mapAsyncIterator(iterable, callback, rejectCallback) {
37121 var iterator = (0, _iterall.getAsyncIterator)(iterable);
37122 var $return = void 0;
37123 var abruptClose = void 0;
37124 if (typeof iterator.return === 'function') {
37125 $return = iterator.return;
37126 abruptClose = function abruptClose(error) {
37127 var rethrow = function rethrow() {
37128 return Promise.reject(error);
37129 };
37130 return $return.call(iterator).then(rethrow, rethrow);
37131 };
37132 }
37133
37134 function mapResult(result) {
37135 return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
37136 }
37137
37138 var mapReject = void 0;
37139 if (rejectCallback) {
37140 // Capture rejectCallback to ensure it cannot be null.
37141 var reject = rejectCallback;
37142 mapReject = function mapReject(error) {
37143 return asyncMapValue(error, reject).then(iteratorResult, abruptClose);
37144 };
37145 }
37146
37147 /* TODO: Flow doesn't support symbols as keys:
37148 https://github.com/facebook/flow/issues/3258 */
37149 return _defineProperty({
37150 next: function next() {
37151 return iterator.next().then(mapResult, mapReject);
37152 },
37153 return: function _return() {
37154 return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({ value: undefined, done: true });
37155 },
37156 throw: function _throw(error) {
37157 if (typeof iterator.throw === 'function') {
37158 return iterator.throw(error).then(mapResult, mapReject);
37159 }
37160 return Promise.reject(error).catch(abruptClose);
37161 }
37162 }, _iterall.$$asyncIterator, function () {
37163 return this;
37164 });
37165}
37166
37167function asyncMapValue(value, callback) {
37168 return new Promise(function (resolve) {
37169 return resolve(callback(value));
37170 });
37171}
37172
37173function iteratorResult(value) {
37174 return { value: value, done: false };
37175}
37176
37177/***/ }),
37178/* 571 */
37179/***/ (function(module, exports, __webpack_require__) {
37180
37181"use strict";
37182
37183
37184Object.defineProperty(exports, "__esModule", {
37185 value: true
37186});
37187
37188var _validate = __webpack_require__(250);
37189
37190Object.defineProperty(exports, 'validate', {
37191 enumerable: true,
37192 get: function get() {
37193 return _validate.validate;
37194 }
37195});
37196Object.defineProperty(exports, 'ValidationContext', {
37197 enumerable: true,
37198 get: function get() {
37199 return _validate.ValidationContext;
37200 }
37201});
37202
37203var _specifiedRules = __webpack_require__(251);
37204
37205Object.defineProperty(exports, 'specifiedRules', {
37206 enumerable: true,
37207 get: function get() {
37208 return _specifiedRules.specifiedRules;
37209 }
37210});
37211
37212var _ArgumentsOfCorrectType = __webpack_require__(272);
37213
37214Object.defineProperty(exports, 'ArgumentsOfCorrectTypeRule', {
37215 enumerable: true,
37216 get: function get() {
37217 return _ArgumentsOfCorrectType.ArgumentsOfCorrectType;
37218 }
37219});
37220
37221var _DefaultValuesOfCorrectType = __webpack_require__(274);
37222
37223Object.defineProperty(exports, 'DefaultValuesOfCorrectTypeRule', {
37224 enumerable: true,
37225 get: function get() {
37226 return _DefaultValuesOfCorrectType.DefaultValuesOfCorrectType;
37227 }
37228});
37229
37230var _FieldsOnCorrectType = __webpack_require__(259);
37231
37232Object.defineProperty(exports, 'FieldsOnCorrectTypeRule', {
37233 enumerable: true,
37234 get: function get() {
37235 return _FieldsOnCorrectType.FieldsOnCorrectType;
37236 }
37237});
37238
37239var _FragmentsOnCompositeTypes = __webpack_require__(256);
37240
37241Object.defineProperty(exports, 'FragmentsOnCompositeTypesRule', {
37242 enumerable: true,
37243 get: function get() {
37244 return _FragmentsOnCompositeTypes.FragmentsOnCompositeTypes;
37245 }
37246});
37247
37248var _KnownArgumentNames = __webpack_require__(270);
37249
37250Object.defineProperty(exports, 'KnownArgumentNamesRule', {
37251 enumerable: true,
37252 get: function get() {
37253 return _KnownArgumentNames.KnownArgumentNames;
37254 }
37255});
37256
37257var _KnownDirectives = __webpack_require__(268);
37258
37259Object.defineProperty(exports, 'KnownDirectivesRule', {
37260 enumerable: true,
37261 get: function get() {
37262 return _KnownDirectives.KnownDirectives;
37263 }
37264});
37265
37266var _KnownFragmentNames = __webpack_require__(261);
37267
37268Object.defineProperty(exports, 'KnownFragmentNamesRule', {
37269 enumerable: true,
37270 get: function get() {
37271 return _KnownFragmentNames.KnownFragmentNames;
37272 }
37273});
37274
37275var _KnownTypeNames = __webpack_require__(255);
37276
37277Object.defineProperty(exports, 'KnownTypeNamesRule', {
37278 enumerable: true,
37279 get: function get() {
37280 return _KnownTypeNames.KnownTypeNames;
37281 }
37282});
37283
37284var _LoneAnonymousOperation = __webpack_require__(253);
37285
37286Object.defineProperty(exports, 'LoneAnonymousOperationRule', {
37287 enumerable: true,
37288 get: function get() {
37289 return _LoneAnonymousOperation.LoneAnonymousOperation;
37290 }
37291});
37292
37293var _NoFragmentCycles = __webpack_require__(264);
37294
37295Object.defineProperty(exports, 'NoFragmentCyclesRule', {
37296 enumerable: true,
37297 get: function get() {
37298 return _NoFragmentCycles.NoFragmentCycles;
37299 }
37300});
37301
37302var _NoUndefinedVariables = __webpack_require__(266);
37303
37304Object.defineProperty(exports, 'NoUndefinedVariablesRule', {
37305 enumerable: true,
37306 get: function get() {
37307 return _NoUndefinedVariables.NoUndefinedVariables;
37308 }
37309});
37310
37311var _NoUnusedFragments = __webpack_require__(262);
37312
37313Object.defineProperty(exports, 'NoUnusedFragmentsRule', {
37314 enumerable: true,
37315 get: function get() {
37316 return _NoUnusedFragments.NoUnusedFragments;
37317 }
37318});
37319
37320var _NoUnusedVariables = __webpack_require__(267);
37321
37322Object.defineProperty(exports, 'NoUnusedVariablesRule', {
37323 enumerable: true,
37324 get: function get() {
37325 return _NoUnusedVariables.NoUnusedVariables;
37326 }
37327});
37328
37329var _OverlappingFieldsCanBeMerged = __webpack_require__(276);
37330
37331Object.defineProperty(exports, 'OverlappingFieldsCanBeMergedRule', {
37332 enumerable: true,
37333 get: function get() {
37334 return _OverlappingFieldsCanBeMerged.OverlappingFieldsCanBeMerged;
37335 }
37336});
37337
37338var _PossibleFragmentSpreads = __webpack_require__(263);
37339
37340Object.defineProperty(exports, 'PossibleFragmentSpreadsRule', {
37341 enumerable: true,
37342 get: function get() {
37343 return _PossibleFragmentSpreads.PossibleFragmentSpreads;
37344 }
37345});
37346
37347var _ProvidedNonNullArguments = __webpack_require__(273);
37348
37349Object.defineProperty(exports, 'ProvidedNonNullArgumentsRule', {
37350 enumerable: true,
37351 get: function get() {
37352 return _ProvidedNonNullArguments.ProvidedNonNullArguments;
37353 }
37354});
37355
37356var _ScalarLeafs = __webpack_require__(258);
37357
37358Object.defineProperty(exports, 'ScalarLeafsRule', {
37359 enumerable: true,
37360 get: function get() {
37361 return _ScalarLeafs.ScalarLeafs;
37362 }
37363});
37364
37365var _SingleFieldSubscriptions = __webpack_require__(254);
37366
37367Object.defineProperty(exports, 'SingleFieldSubscriptionsRule', {
37368 enumerable: true,
37369 get: function get() {
37370 return _SingleFieldSubscriptions.SingleFieldSubscriptions;
37371 }
37372});
37373
37374var _UniqueArgumentNames = __webpack_require__(271);
37375
37376Object.defineProperty(exports, 'UniqueArgumentNamesRule', {
37377 enumerable: true,
37378 get: function get() {
37379 return _UniqueArgumentNames.UniqueArgumentNames;
37380 }
37381});
37382
37383var _UniqueDirectivesPerLocation = __webpack_require__(269);
37384
37385Object.defineProperty(exports, 'UniqueDirectivesPerLocationRule', {
37386 enumerable: true,
37387 get: function get() {
37388 return _UniqueDirectivesPerLocation.UniqueDirectivesPerLocation;
37389 }
37390});
37391
37392var _UniqueFragmentNames = __webpack_require__(260);
37393
37394Object.defineProperty(exports, 'UniqueFragmentNamesRule', {
37395 enumerable: true,
37396 get: function get() {
37397 return _UniqueFragmentNames.UniqueFragmentNames;
37398 }
37399});
37400
37401var _UniqueInputFieldNames = __webpack_require__(277);
37402
37403Object.defineProperty(exports, 'UniqueInputFieldNamesRule', {
37404 enumerable: true,
37405 get: function get() {
37406 return _UniqueInputFieldNames.UniqueInputFieldNames;
37407 }
37408});
37409
37410var _UniqueOperationNames = __webpack_require__(252);
37411
37412Object.defineProperty(exports, 'UniqueOperationNamesRule', {
37413 enumerable: true,
37414 get: function get() {
37415 return _UniqueOperationNames.UniqueOperationNames;
37416 }
37417});
37418
37419var _UniqueVariableNames = __webpack_require__(265);
37420
37421Object.defineProperty(exports, 'UniqueVariableNamesRule', {
37422 enumerable: true,
37423 get: function get() {
37424 return _UniqueVariableNames.UniqueVariableNames;
37425 }
37426});
37427
37428var _VariablesAreInputTypes = __webpack_require__(257);
37429
37430Object.defineProperty(exports, 'VariablesAreInputTypesRule', {
37431 enumerable: true,
37432 get: function get() {
37433 return _VariablesAreInputTypes.VariablesAreInputTypes;
37434 }
37435});
37436
37437var _VariablesInAllowedPosition = __webpack_require__(275);
37438
37439Object.defineProperty(exports, 'VariablesInAllowedPositionRule', {
37440 enumerable: true,
37441 get: function get() {
37442 return _VariablesInAllowedPosition.VariablesInAllowedPosition;
37443 }
37444});
37445
37446/***/ }),
37447/* 572 */
37448/***/ (function(module, exports, __webpack_require__) {
37449
37450"use strict";
37451
37452
37453Object.defineProperty(exports, "__esModule", {
37454 value: true
37455});
37456
37457var _introspectionQuery = __webpack_require__(573);
37458
37459Object.defineProperty(exports, 'introspectionQuery', {
37460 enumerable: true,
37461 get: function get() {
37462 return _introspectionQuery.introspectionQuery;
37463 }
37464});
37465
37466var _getOperationAST = __webpack_require__(279);
37467
37468Object.defineProperty(exports, 'getOperationAST', {
37469 enumerable: true,
37470 get: function get() {
37471 return _getOperationAST.getOperationAST;
37472 }
37473});
37474
37475var _buildClientSchema = __webpack_require__(574);
37476
37477Object.defineProperty(exports, 'buildClientSchema', {
37478 enumerable: true,
37479 get: function get() {
37480 return _buildClientSchema.buildClientSchema;
37481 }
37482});
37483
37484var _buildASTSchema = __webpack_require__(280);
37485
37486Object.defineProperty(exports, 'buildASTSchema', {
37487 enumerable: true,
37488 get: function get() {
37489 return _buildASTSchema.buildASTSchema;
37490 }
37491});
37492Object.defineProperty(exports, 'buildSchema', {
37493 enumerable: true,
37494 get: function get() {
37495 return _buildASTSchema.buildSchema;
37496 }
37497});
37498
37499var _extendSchema = __webpack_require__(575);
37500
37501Object.defineProperty(exports, 'extendSchema', {
37502 enumerable: true,
37503 get: function get() {
37504 return _extendSchema.extendSchema;
37505 }
37506});
37507
37508var _schemaPrinter = __webpack_require__(576);
37509
37510Object.defineProperty(exports, 'printSchema', {
37511 enumerable: true,
37512 get: function get() {
37513 return _schemaPrinter.printSchema;
37514 }
37515});
37516Object.defineProperty(exports, 'printType', {
37517 enumerable: true,
37518 get: function get() {
37519 return _schemaPrinter.printType;
37520 }
37521});
37522Object.defineProperty(exports, 'printIntrospectionSchema', {
37523 enumerable: true,
37524 get: function get() {
37525 return _schemaPrinter.printIntrospectionSchema;
37526 }
37527});
37528
37529var _typeFromAST = __webpack_require__(46);
37530
37531Object.defineProperty(exports, 'typeFromAST', {
37532 enumerable: true,
37533 get: function get() {
37534 return _typeFromAST.typeFromAST;
37535 }
37536});
37537
37538var _valueFromAST = __webpack_require__(87);
37539
37540Object.defineProperty(exports, 'valueFromAST', {
37541 enumerable: true,
37542 get: function get() {
37543 return _valueFromAST.valueFromAST;
37544 }
37545});
37546
37547var _astFromValue = __webpack_require__(177);
37548
37549Object.defineProperty(exports, 'astFromValue', {
37550 enumerable: true,
37551 get: function get() {
37552 return _astFromValue.astFromValue;
37553 }
37554});
37555
37556var _TypeInfo = __webpack_require__(178);
37557
37558Object.defineProperty(exports, 'TypeInfo', {
37559 enumerable: true,
37560 get: function get() {
37561 return _TypeInfo.TypeInfo;
37562 }
37563});
37564
37565var _isValidJSValue = __webpack_require__(278);
37566
37567Object.defineProperty(exports, 'isValidJSValue', {
37568 enumerable: true,
37569 get: function get() {
37570 return _isValidJSValue.isValidJSValue;
37571 }
37572});
37573
37574var _isValidLiteralValue = __webpack_require__(117);
37575
37576Object.defineProperty(exports, 'isValidLiteralValue', {
37577 enumerable: true,
37578 get: function get() {
37579 return _isValidLiteralValue.isValidLiteralValue;
37580 }
37581});
37582
37583var _concatAST = __webpack_require__(577);
37584
37585Object.defineProperty(exports, 'concatAST', {
37586 enumerable: true,
37587 get: function get() {
37588 return _concatAST.concatAST;
37589 }
37590});
37591
37592var _separateOperations = __webpack_require__(578);
37593
37594Object.defineProperty(exports, 'separateOperations', {
37595 enumerable: true,
37596 get: function get() {
37597 return _separateOperations.separateOperations;
37598 }
37599});
37600
37601var _typeComparators = __webpack_require__(116);
37602
37603Object.defineProperty(exports, 'isEqualType', {
37604 enumerable: true,
37605 get: function get() {
37606 return _typeComparators.isEqualType;
37607 }
37608});
37609Object.defineProperty(exports, 'isTypeSubTypeOf', {
37610 enumerable: true,
37611 get: function get() {
37612 return _typeComparators.isTypeSubTypeOf;
37613 }
37614});
37615Object.defineProperty(exports, 'doTypesOverlap', {
37616 enumerable: true,
37617 get: function get() {
37618 return _typeComparators.doTypesOverlap;
37619 }
37620});
37621
37622var _assertValidName = __webpack_require__(176);
37623
37624Object.defineProperty(exports, 'assertValidName', {
37625 enumerable: true,
37626 get: function get() {
37627 return _assertValidName.assertValidName;
37628 }
37629});
37630
37631var _findBreakingChanges = __webpack_require__(579);
37632
37633Object.defineProperty(exports, 'BreakingChangeType', {
37634 enumerable: true,
37635 get: function get() {
37636 return _findBreakingChanges.BreakingChangeType;
37637 }
37638});
37639Object.defineProperty(exports, 'DangerousChangeType', {
37640 enumerable: true,
37641 get: function get() {
37642 return _findBreakingChanges.DangerousChangeType;
37643 }
37644});
37645Object.defineProperty(exports, 'findBreakingChanges', {
37646 enumerable: true,
37647 get: function get() {
37648 return _findBreakingChanges.findBreakingChanges;
37649 }
37650});
37651Object.defineProperty(exports, 'findDangerousChanges', {
37652 enumerable: true,
37653 get: function get() {
37654 return _findBreakingChanges.findDangerousChanges;
37655 }
37656});
37657
37658var _findDeprecatedUsages = __webpack_require__(580);
37659
37660Object.defineProperty(exports, 'findDeprecatedUsages', {
37661 enumerable: true,
37662 get: function get() {
37663 return _findDeprecatedUsages.findDeprecatedUsages;
37664 }
37665});
37666
37667/***/ }),
37668/* 573 */
37669/***/ (function(module, exports, __webpack_require__) {
37670
37671"use strict";
37672
37673
37674Object.defineProperty(exports, "__esModule", {
37675 value: true
37676});
37677var introspectionQuery = exports.introspectionQuery = '\n query IntrospectionQuery {\n __schema {\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n description\n locations\n args {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n description\n fields(includeDeprecated: true) {\n name\n description\n args {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n description\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n description\n type { ...TypeRef }\n defaultValue\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n'; /**
37678 * Copyright (c) 2015-present, Facebook, Inc.
37679 *
37680 * This source code is licensed under the MIT license found in the
37681 * LICENSE file in the root directory of this source tree.
37682 *
37683 *
37684 */
37685
37686/***/ }),
37687/* 574 */
37688/***/ (function(module, exports, __webpack_require__) {
37689
37690"use strict";
37691
37692
37693Object.defineProperty(exports, "__esModule", {
37694 value: true
37695});
37696exports.buildClientSchema = buildClientSchema;
37697
37698var _invariant = __webpack_require__(11);
37699
37700var _invariant2 = _interopRequireDefault(_invariant);
37701
37702var _keyMap = __webpack_require__(77);
37703
37704var _keyMap2 = _interopRequireDefault(_keyMap);
37705
37706var _keyValMap = __webpack_require__(183);
37707
37708var _keyValMap2 = _interopRequireDefault(_keyValMap);
37709
37710var _valueFromAST = __webpack_require__(87);
37711
37712var _parser = __webpack_require__(115);
37713
37714var _schema = __webpack_require__(44);
37715
37716var _definition = __webpack_require__(6);
37717
37718var _introspection = __webpack_require__(67);
37719
37720var _scalars = __webpack_require__(52);
37721
37722var _directives = __webpack_require__(45);
37723
37724function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37725
37726/**
37727 * Build a GraphQLSchema for use by client tools.
37728 *
37729 * Given the result of a client running the introspection query, creates and
37730 * returns a GraphQLSchema instance which can be then used with all graphql-js
37731 * tools, but cannot be used to execute a query, as introspection does not
37732 * represent the "resolver", "parse" or "serialize" functions or any other
37733 * server-internal mechanisms.
37734 */
37735function buildClientSchema(introspection) {
37736
37737 // Get the schema from the introspection result.
37738 var schemaIntrospection = introspection.__schema;
37739
37740 // Converts the list of types into a keyMap based on the type names.
37741 var typeIntrospectionMap = (0, _keyMap2.default)(schemaIntrospection.types, function (type) {
37742 return type.name;
37743 });
37744
37745 // A cache to use to store the actual GraphQLType definition objects by name.
37746 // Initialize to the GraphQL built in scalars. All functions below are inline
37747 // so that this type def cache is within the scope of the closure.
37748 var typeDefCache = {
37749 String: _scalars.GraphQLString,
37750 Int: _scalars.GraphQLInt,
37751 Float: _scalars.GraphQLFloat,
37752 Boolean: _scalars.GraphQLBoolean,
37753 ID: _scalars.GraphQLID,
37754 __Schema: _introspection.__Schema,
37755 __Directive: _introspection.__Directive,
37756 __DirectiveLocation: _introspection.__DirectiveLocation,
37757 __Type: _introspection.__Type,
37758 __Field: _introspection.__Field,
37759 __InputValue: _introspection.__InputValue,
37760 __EnumValue: _introspection.__EnumValue,
37761 __TypeKind: _introspection.__TypeKind
37762 };
37763
37764 // Given a type reference in introspection, return the GraphQLType instance.
37765 // preferring cached instances before building new instances.
37766 function getType(typeRef) {
37767 if (typeRef.kind === _introspection.TypeKind.LIST) {
37768 var itemRef = typeRef.ofType;
37769 if (!itemRef) {
37770 throw new Error('Decorated type deeper than introspection query.');
37771 }
37772 return new _definition.GraphQLList(getType(itemRef));
37773 }
37774 if (typeRef.kind === _introspection.TypeKind.NON_NULL) {
37775 var nullableRef = typeRef.ofType;
37776 if (!nullableRef) {
37777 throw new Error('Decorated type deeper than introspection query.');
37778 }
37779 var nullableType = getType(nullableRef);
37780 !!(nullableType instanceof _definition.GraphQLNonNull) ? (0, _invariant2.default)(0, 'No nesting nonnull.') : void 0;
37781 return new _definition.GraphQLNonNull(nullableType);
37782 }
37783 return getNamedType(typeRef.name);
37784 }
37785
37786 function getNamedType(typeName) {
37787 if (typeDefCache[typeName]) {
37788 return typeDefCache[typeName];
37789 }
37790 var typeIntrospection = typeIntrospectionMap[typeName];
37791 if (!typeIntrospection) {
37792 throw new Error('Invalid or incomplete schema, unknown type: ' + typeName + '. Ensure ' + 'that a full introspection query is used in order to build a ' + 'client schema.');
37793 }
37794 var typeDef = buildType(typeIntrospection);
37795 typeDefCache[typeName] = typeDef;
37796 return typeDef;
37797 }
37798
37799 function getInputType(typeRef) {
37800 var type = getType(typeRef);
37801 !(0, _definition.isInputType)(type) ? (0, _invariant2.default)(0, 'Introspection must provide input type for arguments.') : void 0;
37802 return type;
37803 }
37804
37805 function getOutputType(typeRef) {
37806 var type = getType(typeRef);
37807 !(0, _definition.isOutputType)(type) ? (0, _invariant2.default)(0, 'Introspection must provide output type for fields.') : void 0;
37808 return type;
37809 }
37810
37811 function getObjectType(typeRef) {
37812 var type = getType(typeRef);
37813 !(type instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Introspection must provide object type for possibleTypes.') : void 0;
37814 return type;
37815 }
37816
37817 function getInterfaceType(typeRef) {
37818 var type = getType(typeRef);
37819 !(type instanceof _definition.GraphQLInterfaceType) ? (0, _invariant2.default)(0, 'Introspection must provide interface type for interfaces.') : void 0;
37820 return type;
37821 }
37822
37823 // Given a type's introspection result, construct the correct
37824 // GraphQLType instance.
37825 function buildType(type) {
37826 switch (type.kind) {
37827 case _introspection.TypeKind.SCALAR:
37828 return buildScalarDef(type);
37829 case _introspection.TypeKind.OBJECT:
37830 return buildObjectDef(type);
37831 case _introspection.TypeKind.INTERFACE:
37832 return buildInterfaceDef(type);
37833 case _introspection.TypeKind.UNION:
37834 return buildUnionDef(type);
37835 case _introspection.TypeKind.ENUM:
37836 return buildEnumDef(type);
37837 case _introspection.TypeKind.INPUT_OBJECT:
37838 return buildInputObjectDef(type);
37839 default:
37840 throw new Error('Invalid or incomplete schema, unknown kind: ' + type.kind + '. Ensure ' + 'that a full introspection query is used in order to build a ' + 'client schema.');
37841 }
37842 }
37843
37844 function buildScalarDef(scalarIntrospection) {
37845 return new _definition.GraphQLScalarType({
37846 name: scalarIntrospection.name,
37847 description: scalarIntrospection.description,
37848 serialize: function serialize(id) {
37849 return id;
37850 },
37851 // Note: validation calls the parse functions to determine if a
37852 // literal value is correct. Returning null would cause use of custom
37853 // scalars to always fail validation. Returning false causes them to
37854 // always pass validation.
37855 parseValue: function parseValue() {
37856 return false;
37857 },
37858 parseLiteral: function parseLiteral() {
37859 return false;
37860 }
37861 });
37862 }
37863
37864 function buildObjectDef(objectIntrospection) {
37865 return new _definition.GraphQLObjectType({
37866 name: objectIntrospection.name,
37867 description: objectIntrospection.description,
37868 interfaces: objectIntrospection.interfaces.map(getInterfaceType),
37869 fields: function fields() {
37870 return buildFieldDefMap(objectIntrospection);
37871 }
37872 });
37873 }
37874
37875 function buildInterfaceDef(interfaceIntrospection) {
37876 return new _definition.GraphQLInterfaceType({
37877 name: interfaceIntrospection.name,
37878 description: interfaceIntrospection.description,
37879 fields: function fields() {
37880 return buildFieldDefMap(interfaceIntrospection);
37881 },
37882 resolveType: cannotExecuteClientSchema
37883 });
37884 }
37885
37886 function buildUnionDef(unionIntrospection) {
37887 return new _definition.GraphQLUnionType({
37888 name: unionIntrospection.name,
37889 description: unionIntrospection.description,
37890 types: unionIntrospection.possibleTypes.map(getObjectType),
37891 resolveType: cannotExecuteClientSchema
37892 });
37893 }
37894
37895 function buildEnumDef(enumIntrospection) {
37896 return new _definition.GraphQLEnumType({
37897 name: enumIntrospection.name,
37898 description: enumIntrospection.description,
37899 values: (0, _keyValMap2.default)(enumIntrospection.enumValues, function (valueIntrospection) {
37900 return valueIntrospection.name;
37901 }, function (valueIntrospection) {
37902 return {
37903 description: valueIntrospection.description,
37904 deprecationReason: valueIntrospection.deprecationReason
37905 };
37906 })
37907 });
37908 }
37909
37910 function buildInputObjectDef(inputObjectIntrospection) {
37911 return new _definition.GraphQLInputObjectType({
37912 name: inputObjectIntrospection.name,
37913 description: inputObjectIntrospection.description,
37914 fields: function fields() {
37915 return buildInputValueDefMap(inputObjectIntrospection.inputFields);
37916 }
37917 });
37918 }
37919
37920 function buildFieldDefMap(typeIntrospection) {
37921 return (0, _keyValMap2.default)(typeIntrospection.fields, function (fieldIntrospection) {
37922 return fieldIntrospection.name;
37923 }, function (fieldIntrospection) {
37924 return {
37925 description: fieldIntrospection.description,
37926 deprecationReason: fieldIntrospection.deprecationReason,
37927 type: getOutputType(fieldIntrospection.type),
37928 args: buildInputValueDefMap(fieldIntrospection.args)
37929 };
37930 });
37931 }
37932
37933 function buildInputValueDefMap(inputValueIntrospections) {
37934 return (0, _keyValMap2.default)(inputValueIntrospections, function (inputValue) {
37935 return inputValue.name;
37936 }, buildInputValue);
37937 }
37938
37939 function buildInputValue(inputValueIntrospection) {
37940 var type = getInputType(inputValueIntrospection.type);
37941 var defaultValue = inputValueIntrospection.defaultValue ? (0, _valueFromAST.valueFromAST)((0, _parser.parseValue)(inputValueIntrospection.defaultValue), type) : undefined;
37942 return {
37943 name: inputValueIntrospection.name,
37944 description: inputValueIntrospection.description,
37945 type: type,
37946 defaultValue: defaultValue
37947 };
37948 }
37949
37950 function buildDirective(directiveIntrospection) {
37951 // Support deprecated `on****` fields for building `locations`, as this
37952 // is used by GraphiQL which may need to support outdated servers.
37953 var locations = directiveIntrospection.locations ? directiveIntrospection.locations.slice() : [].concat(!directiveIntrospection.onField ? [] : [_directives.DirectiveLocation.FIELD], !directiveIntrospection.onOperation ? [] : [_directives.DirectiveLocation.QUERY, _directives.DirectiveLocation.MUTATION, _directives.DirectiveLocation.SUBSCRIPTION], !directiveIntrospection.onFragment ? [] : [_directives.DirectiveLocation.FRAGMENT_DEFINITION, _directives.DirectiveLocation.FRAGMENT_SPREAD, _directives.DirectiveLocation.INLINE_FRAGMENT]);
37954 return new _directives.GraphQLDirective({
37955 name: directiveIntrospection.name,
37956 description: directiveIntrospection.description,
37957 locations: locations,
37958 args: buildInputValueDefMap(directiveIntrospection.args)
37959 });
37960 }
37961
37962 // Iterate through all types, getting the type definition for each, ensuring
37963 // that any type not directly referenced by a field will get created.
37964 var types = schemaIntrospection.types.map(function (typeIntrospection) {
37965 return getNamedType(typeIntrospection.name);
37966 });
37967
37968 // Get the root Query, Mutation, and Subscription types.
37969 var queryType = getObjectType(schemaIntrospection.queryType);
37970
37971 var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;
37972
37973 var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null;
37974
37975 // Get the directives supported by Introspection, assuming empty-set if
37976 // directives were not queried for.
37977 var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : [];
37978
37979 // Then produce and return a Schema with these types.
37980 return new _schema.GraphQLSchema({
37981 query: queryType,
37982 mutation: mutationType,
37983 subscription: subscriptionType,
37984 types: types,
37985 directives: directives
37986 });
37987} /**
37988 * Copyright (c) 2015-present, Facebook, Inc.
37989 *
37990 * This source code is licensed under the MIT license found in the
37991 * LICENSE file in the root directory of this source tree.
37992 *
37993 *
37994 */
37995
37996function cannotExecuteClientSchema() {
37997 throw new Error('Client Schema cannot use Interface or Union types for execution.');
37998}
37999
38000/***/ }),
38001/* 575 */
38002/***/ (function(module, exports, __webpack_require__) {
38003
38004"use strict";
38005
38006
38007Object.defineProperty(exports, "__esModule", {
38008 value: true
38009});
38010exports.extendSchema = extendSchema;
38011
38012var _invariant = __webpack_require__(11);
38013
38014var _invariant2 = _interopRequireDefault(_invariant);
38015
38016var _keyMap = __webpack_require__(77);
38017
38018var _keyMap2 = _interopRequireDefault(_keyMap);
38019
38020var _keyValMap = __webpack_require__(183);
38021
38022var _keyValMap2 = _interopRequireDefault(_keyValMap);
38023
38024var _buildASTSchema = __webpack_require__(280);
38025
38026var _valueFromAST = __webpack_require__(87);
38027
38028var _GraphQLError = __webpack_require__(75);
38029
38030var _schema = __webpack_require__(44);
38031
38032var _definition = __webpack_require__(6);
38033
38034var _directives = __webpack_require__(45);
38035
38036var _introspection = __webpack_require__(67);
38037
38038var _scalars = __webpack_require__(52);
38039
38040var _kinds = __webpack_require__(12);
38041
38042var Kind = _interopRequireWildcard(_kinds);
38043
38044function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
38045
38046function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38047
38048/**
38049 * Produces a new schema given an existing schema and a document which may
38050 * contain GraphQL type extensions and definitions. The original schema will
38051 * remain unaltered.
38052 *
38053 * Because a schema represents a graph of references, a schema cannot be
38054 * extended without effectively making an entire copy. We do not know until it's
38055 * too late if subgraphs remain unchanged.
38056 *
38057 * This algorithm copies the provided schema, applying extensions while
38058 * producing the copy. The original schema remains unaltered.
38059 */
38060/**
38061 * Copyright (c) 2015-present, Facebook, Inc.
38062 *
38063 * This source code is licensed under the MIT license found in the
38064 * LICENSE file in the root directory of this source tree.
38065 *
38066 *
38067 */
38068
38069function extendSchema(schema, documentAST) {
38070 !(schema instanceof _schema.GraphQLSchema) ? (0, _invariant2.default)(0, 'Must provide valid GraphQLSchema') : void 0;
38071
38072 !(documentAST && documentAST.kind === Kind.DOCUMENT) ? (0, _invariant2.default)(0, 'Must provide valid Document AST') : void 0;
38073
38074 // Collect the type definitions and extensions found in the document.
38075 var typeDefinitionMap = Object.create(null);
38076 var typeExtensionsMap = Object.create(null);
38077
38078 // New directives and types are separate because a directives and types can
38079 // have the same name. For example, a type named "skip".
38080 var directiveDefinitions = [];
38081
38082 for (var i = 0; i < documentAST.definitions.length; i++) {
38083 var def = documentAST.definitions[i];
38084 switch (def.kind) {
38085 case Kind.OBJECT_TYPE_DEFINITION:
38086 case Kind.INTERFACE_TYPE_DEFINITION:
38087 case Kind.ENUM_TYPE_DEFINITION:
38088 case Kind.UNION_TYPE_DEFINITION:
38089 case Kind.SCALAR_TYPE_DEFINITION:
38090 case Kind.INPUT_OBJECT_TYPE_DEFINITION:
38091 // Sanity check that none of the defined types conflict with the
38092 // schema's existing types.
38093 var typeName = def.name.value;
38094 if (schema.getType(typeName)) {
38095 throw new _GraphQLError.GraphQLError('Type "' + typeName + '" already exists in the schema. It cannot also ' + 'be defined in this type definition.', [def]);
38096 }
38097 typeDefinitionMap[typeName] = def;
38098 break;
38099 case Kind.TYPE_EXTENSION_DEFINITION:
38100 // Sanity check that this type extension exists within the
38101 // schema's existing types.
38102 var extendedTypeName = def.definition.name.value;
38103 var existingType = schema.getType(extendedTypeName);
38104 if (!existingType) {
38105 throw new _GraphQLError.GraphQLError('Cannot extend type "' + extendedTypeName + '" because it does not ' + 'exist in the existing schema.', [def.definition]);
38106 }
38107 if (!(existingType instanceof _definition.GraphQLObjectType)) {
38108 throw new _GraphQLError.GraphQLError('Cannot extend non-object type "' + extendedTypeName + '".', [def.definition]);
38109 }
38110 var extensions = typeExtensionsMap[extendedTypeName];
38111 if (extensions) {
38112 extensions.push(def);
38113 } else {
38114 extensions = [def];
38115 }
38116 typeExtensionsMap[extendedTypeName] = extensions;
38117 break;
38118 case Kind.DIRECTIVE_DEFINITION:
38119 var directiveName = def.name.value;
38120 var existingDirective = schema.getDirective(directiveName);
38121 if (existingDirective) {
38122 throw new _GraphQLError.GraphQLError('Directive "' + directiveName + '" already exists in the schema. It ' + 'cannot be redefined.', [def]);
38123 }
38124 directiveDefinitions.push(def);
38125 break;
38126 }
38127 }
38128
38129 // If this document contains no new types, extensions, or directives then
38130 // return the same unmodified GraphQLSchema instance.
38131 if (Object.keys(typeExtensionsMap).length === 0 && Object.keys(typeDefinitionMap).length === 0 && directiveDefinitions.length === 0) {
38132 return schema;
38133 }
38134
38135 // A cache to use to store the actual GraphQLType definition objects by name.
38136 // Initialize to the GraphQL built in scalars and introspection types. All
38137 // functions below are inline so that this type def cache is within the scope
38138 // of the closure.
38139 var typeDefCache = {
38140 String: _scalars.GraphQLString,
38141 Int: _scalars.GraphQLInt,
38142 Float: _scalars.GraphQLFloat,
38143 Boolean: _scalars.GraphQLBoolean,
38144 ID: _scalars.GraphQLID,
38145 __Schema: _introspection.__Schema,
38146 __Directive: _introspection.__Directive,
38147 __DirectiveLocation: _introspection.__DirectiveLocation,
38148 __Type: _introspection.__Type,
38149 __Field: _introspection.__Field,
38150 __InputValue: _introspection.__InputValue,
38151 __EnumValue: _introspection.__EnumValue,
38152 __TypeKind: _introspection.__TypeKind
38153 };
38154
38155 // Get the root Query, Mutation, and Subscription object types.
38156 var queryType = getTypeFromDef(schema.getQueryType());
38157
38158 var existingMutationType = schema.getMutationType();
38159 var mutationType = existingMutationType ? getTypeFromDef(existingMutationType) : null;
38160
38161 var existingSubscriptionType = schema.getSubscriptionType();
38162 var subscriptionType = existingSubscriptionType ? getTypeFromDef(existingSubscriptionType) : null;
38163
38164 // Iterate through all types, getting the type definition for each, ensuring
38165 // that any type not directly referenced by a field will get created.
38166 var typeMap = schema.getTypeMap();
38167 var types = Object.keys(typeMap).map(function (typeName) {
38168 return getTypeFromDef(typeMap[typeName]);
38169 });
38170
38171 // Do the same with new types, appending to the list of defined types.
38172 Object.keys(typeDefinitionMap).forEach(function (typeName) {
38173 types.push(getTypeFromAST(typeDefinitionMap[typeName]));
38174 });
38175
38176 // Then produce and return a Schema with these types.
38177 return new _schema.GraphQLSchema({
38178 query: queryType,
38179 mutation: mutationType,
38180 subscription: subscriptionType,
38181 types: types,
38182 directives: getMergedDirectives(),
38183 astNode: schema.astNode
38184 });
38185
38186 // Below are functions used for producing this schema that have closed over
38187 // this scope and have access to the schema, cache, and newly defined types.
38188
38189 function getMergedDirectives() {
38190 var existingDirectives = schema.getDirectives();
38191 !existingDirectives ? (0, _invariant2.default)(0, 'schema must have default directives') : void 0;
38192
38193 var newDirectives = directiveDefinitions.map(function (directiveNode) {
38194 return getDirective(directiveNode);
38195 });
38196 return existingDirectives.concat(newDirectives);
38197 }
38198
38199 function getTypeFromDef(typeDef) {
38200 var type = _getNamedType(typeDef.name);
38201 !type ? (0, _invariant2.default)(0, 'Missing type from schema') : void 0;
38202 return type;
38203 }
38204
38205 function getTypeFromAST(node) {
38206 var type = _getNamedType(node.name.value);
38207 if (!type) {
38208 throw new _GraphQLError.GraphQLError('Unknown type: "' + node.name.value + '". Ensure that this type exists ' + 'either in the original schema, or is added in a type definition.', [node]);
38209 }
38210 return type;
38211 }
38212
38213 function getObjectTypeFromAST(node) {
38214 var type = getTypeFromAST(node);
38215 !(type instanceof _definition.GraphQLObjectType) ? (0, _invariant2.default)(0, 'Must be Object type.') : void 0;
38216 return type;
38217 }
38218
38219 function getInterfaceTypeFromAST(node) {
38220 var type = getTypeFromAST(node);
38221 !(type instanceof _definition.GraphQLInterfaceType) ? (0, _invariant2.default)(0, 'Must be Interface type.') : void 0;
38222 return type;
38223 }
38224
38225 function getInputTypeFromAST(node) {
38226 return (0, _definition.assertInputType)(getTypeFromAST(node));
38227 }
38228
38229 function getOutputTypeFromAST(node) {
38230 return (0, _definition.assertOutputType)(getTypeFromAST(node));
38231 }
38232
38233 // Given a name, returns a type from either the existing schema or an
38234 // added type.
38235 function _getNamedType(typeName) {
38236 var cachedTypeDef = typeDefCache[typeName];
38237 if (cachedTypeDef) {
38238 return cachedTypeDef;
38239 }
38240
38241 var existingType = schema.getType(typeName);
38242 if (existingType) {
38243 var typeDef = extendType(existingType);
38244 typeDefCache[typeName] = typeDef;
38245 return typeDef;
38246 }
38247
38248 var typeNode = typeDefinitionMap[typeName];
38249 if (typeNode) {
38250 var _typeDef = buildType(typeNode);
38251 typeDefCache[typeName] = _typeDef;
38252 return _typeDef;
38253 }
38254 }
38255
38256 // Given a type's introspection result, construct the correct
38257 // GraphQLType instance.
38258 function extendType(type) {
38259 if (type instanceof _definition.GraphQLObjectType) {
38260 return extendObjectType(type);
38261 }
38262 if (type instanceof _definition.GraphQLInterfaceType) {
38263 return extendInterfaceType(type);
38264 }
38265 if (type instanceof _definition.GraphQLUnionType) {
38266 return extendUnionType(type);
38267 }
38268 return type;
38269 }
38270
38271 function extendObjectType(type) {
38272 var name = type.name;
38273 var extensionASTNodes = type.extensionASTNodes;
38274 if (typeExtensionsMap[name]) {
38275 extensionASTNodes = extensionASTNodes.concat(typeExtensionsMap[name]);
38276 }
38277
38278 return new _definition.GraphQLObjectType({
38279 name: name,
38280 description: type.description,
38281 interfaces: function interfaces() {
38282 return extendImplementedInterfaces(type);
38283 },
38284 fields: function fields() {
38285 return extendFieldMap(type);
38286 },
38287 astNode: type.astNode,
38288 extensionASTNodes: extensionASTNodes,
38289 isTypeOf: type.isTypeOf
38290 });
38291 }
38292
38293 function extendInterfaceType(type) {
38294 return new _definition.GraphQLInterfaceType({
38295 name: type.name,
38296 description: type.description,
38297 fields: function fields() {
38298 return extendFieldMap(type);
38299 },
38300 astNode: type.astNode,
38301 resolveType: type.resolveType
38302 });
38303 }
38304
38305 function extendUnionType(type) {
38306 return new _definition.GraphQLUnionType({
38307 name: type.name,
38308 description: type.description,
38309 types: type.getTypes().map(getTypeFromDef),
38310 astNode: type.astNode,
38311 resolveType: type.resolveType
38312 });
38313 }
38314
38315 function extendImplementedInterfaces(type) {
38316 var interfaces = type.getInterfaces().map(getTypeFromDef);
38317
38318 // If there are any extensions to the interfaces, apply those here.
38319 var extensions = typeExtensionsMap[type.name];
38320 if (extensions) {
38321 extensions.forEach(function (extension) {
38322 extension.definition.interfaces.forEach(function (namedType) {
38323 var interfaceName = namedType.name.value;
38324 if (interfaces.some(function (def) {
38325 return def.name === interfaceName;
38326 })) {
38327 throw new _GraphQLError.GraphQLError('Type "' + type.name + '" already implements "' + interfaceName + '". ' + 'It cannot also be implemented in this type extension.', [namedType]);
38328 }
38329 interfaces.push(getInterfaceTypeFromAST(namedType));
38330 });
38331 });
38332 }
38333
38334 return interfaces;
38335 }
38336
38337 function extendFieldMap(type) {
38338 var newFieldMap = Object.create(null);
38339 var oldFieldMap = type.getFields();
38340 Object.keys(oldFieldMap).forEach(function (fieldName) {
38341 var field = oldFieldMap[fieldName];
38342 newFieldMap[fieldName] = {
38343 description: field.description,
38344 deprecationReason: field.deprecationReason,
38345 type: extendFieldType(field.type),
38346 args: (0, _keyMap2.default)(field.args, function (arg) {
38347 return arg.name;
38348 }),
38349 astNode: field.astNode,
38350 resolve: field.resolve
38351 };
38352 });
38353
38354 // If there are any extensions to the fields, apply those here.
38355 var extensions = typeExtensionsMap[type.name];
38356 if (extensions) {
38357 extensions.forEach(function (extension) {
38358 extension.definition.fields.forEach(function (field) {
38359 var fieldName = field.name.value;
38360 if (oldFieldMap[fieldName]) {
38361 throw new _GraphQLError.GraphQLError('Field "' + type.name + '.' + fieldName + '" already exists in the ' + 'schema. It cannot also be defined in this type extension.', [field]);
38362 }
38363 newFieldMap[fieldName] = {
38364 description: (0, _buildASTSchema.getDescription)(field),
38365 type: buildOutputFieldType(field.type),
38366 args: buildInputValues(field.arguments),
38367 deprecationReason: (0, _buildASTSchema.getDeprecationReason)(field),
38368 astNode: field
38369 };
38370 });
38371 });
38372 }
38373
38374 return newFieldMap;
38375 }
38376
38377 function extendFieldType(typeDef) {
38378 if (typeDef instanceof _definition.GraphQLList) {
38379 return new _definition.GraphQLList(extendFieldType(typeDef.ofType));
38380 }
38381 if (typeDef instanceof _definition.GraphQLNonNull) {
38382 return new _definition.GraphQLNonNull(extendFieldType(typeDef.ofType));
38383 }
38384 return getTypeFromDef(typeDef);
38385 }
38386
38387 function buildType(typeNode) {
38388 switch (typeNode.kind) {
38389 case Kind.OBJECT_TYPE_DEFINITION:
38390 return buildObjectType(typeNode);
38391 case Kind.INTERFACE_TYPE_DEFINITION:
38392 return buildInterfaceType(typeNode);
38393 case Kind.UNION_TYPE_DEFINITION:
38394 return buildUnionType(typeNode);
38395 case Kind.SCALAR_TYPE_DEFINITION:
38396 return buildScalarType(typeNode);
38397 case Kind.ENUM_TYPE_DEFINITION:
38398 return buildEnumType(typeNode);
38399 case Kind.INPUT_OBJECT_TYPE_DEFINITION:
38400 return buildInputObjectType(typeNode);
38401 }
38402 throw new TypeError('Unknown type kind ' + typeNode.kind);
38403 }
38404
38405 function buildObjectType(typeNode) {
38406 return new _definition.GraphQLObjectType({
38407 name: typeNode.name.value,
38408 description: (0, _buildASTSchema.getDescription)(typeNode),
38409 interfaces: function interfaces() {
38410 return buildImplementedInterfaces(typeNode);
38411 },
38412 fields: function fields() {
38413 return buildFieldMap(typeNode);
38414 },
38415 astNode: typeNode
38416 });
38417 }
38418
38419 function buildInterfaceType(typeNode) {
38420 return new _definition.GraphQLInterfaceType({
38421 name: typeNode.name.value,
38422 description: (0, _buildASTSchema.getDescription)(typeNode),
38423 fields: function fields() {
38424 return buildFieldMap(typeNode);
38425 },
38426 astNode: typeNode,
38427 resolveType: cannotExecuteExtendedSchema
38428 });
38429 }
38430
38431 function buildUnionType(typeNode) {
38432 return new _definition.GraphQLUnionType({
38433 name: typeNode.name.value,
38434 description: (0, _buildASTSchema.getDescription)(typeNode),
38435 types: typeNode.types.map(getObjectTypeFromAST),
38436 astNode: typeNode,
38437 resolveType: cannotExecuteExtendedSchema
38438 });
38439 }
38440
38441 function buildScalarType(typeNode) {
38442 return new _definition.GraphQLScalarType({
38443 name: typeNode.name.value,
38444 description: (0, _buildASTSchema.getDescription)(typeNode),
38445 astNode: typeNode,
38446 serialize: function serialize(id) {
38447 return id;
38448 },
38449 // Note: validation calls the parse functions to determine if a
38450 // literal value is correct. Returning null would cause use of custom
38451 // scalars to always fail validation. Returning false causes them to
38452 // always pass validation.
38453 parseValue: function parseValue() {
38454 return false;
38455 },
38456 parseLiteral: function parseLiteral() {
38457 return false;
38458 }
38459 });
38460 }
38461
38462 function buildEnumType(typeNode) {
38463 return new _definition.GraphQLEnumType({
38464 name: typeNode.name.value,
38465 description: (0, _buildASTSchema.getDescription)(typeNode),
38466 values: (0, _keyValMap2.default)(typeNode.values, function (enumValue) {
38467 return enumValue.name.value;
38468 }, function (enumValue) {
38469 return {
38470 description: (0, _buildASTSchema.getDescription)(enumValue),
38471 deprecationReason: (0, _buildASTSchema.getDeprecationReason)(enumValue),
38472 astNode: enumValue
38473 };
38474 }),
38475 astNode: typeNode
38476 });
38477 }
38478
38479 function buildInputObjectType(typeNode) {
38480 return new _definition.GraphQLInputObjectType({
38481 name: typeNode.name.value,
38482 description: (0, _buildASTSchema.getDescription)(typeNode),
38483 fields: function fields() {
38484 return buildInputValues(typeNode.fields);
38485 },
38486 astNode: typeNode
38487 });
38488 }
38489
38490 function getDirective(directiveNode) {
38491 return new _directives.GraphQLDirective({
38492 name: directiveNode.name.value,
38493 description: (0, _buildASTSchema.getDescription)(directiveNode),
38494 locations: directiveNode.locations.map(function (node) {
38495 return node.value;
38496 }),
38497 args: directiveNode.arguments && buildInputValues(directiveNode.arguments),
38498 astNode: directiveNode
38499 });
38500 }
38501
38502 function buildImplementedInterfaces(typeNode) {
38503 return typeNode.interfaces && typeNode.interfaces.map(getInterfaceTypeFromAST);
38504 }
38505
38506 function buildFieldMap(typeNode) {
38507 return (0, _keyValMap2.default)(typeNode.fields, function (field) {
38508 return field.name.value;
38509 }, function (field) {
38510 return {
38511 type: buildOutputFieldType(field.type),
38512 description: (0, _buildASTSchema.getDescription)(field),
38513 args: buildInputValues(field.arguments),
38514 deprecationReason: (0, _buildASTSchema.getDeprecationReason)(field),
38515 astNode: field
38516 };
38517 });
38518 }
38519
38520 function buildInputValues(values) {
38521 return (0, _keyValMap2.default)(values, function (value) {
38522 return value.name.value;
38523 }, function (value) {
38524 var type = buildInputFieldType(value.type);
38525 return {
38526 type: type,
38527 description: (0, _buildASTSchema.getDescription)(value),
38528 defaultValue: (0, _valueFromAST.valueFromAST)(value.defaultValue, type),
38529 astNode: value
38530 };
38531 });
38532 }
38533
38534 function buildInputFieldType(typeNode) {
38535 if (typeNode.kind === Kind.LIST_TYPE) {
38536 return new _definition.GraphQLList(buildInputFieldType(typeNode.type));
38537 }
38538 if (typeNode.kind === Kind.NON_NULL_TYPE) {
38539 var nullableType = buildInputFieldType(typeNode.type);
38540 !!(nullableType instanceof _definition.GraphQLNonNull) ? (0, _invariant2.default)(0, 'Must be nullable') : void 0;
38541 return new _definition.GraphQLNonNull(nullableType);
38542 }
38543 return getInputTypeFromAST(typeNode);
38544 }
38545
38546 function buildOutputFieldType(typeNode) {
38547 if (typeNode.kind === Kind.LIST_TYPE) {
38548 return new _definition.GraphQLList(buildOutputFieldType(typeNode.type));
38549 }
38550 if (typeNode.kind === Kind.NON_NULL_TYPE) {
38551 var nullableType = buildOutputFieldType(typeNode.type);
38552 !!(nullableType instanceof _definition.GraphQLNonNull) ? (0, _invariant2.default)(0, 'Must be nullable') : void 0;
38553 return new _definition.GraphQLNonNull(nullableType);
38554 }
38555 return getOutputTypeFromAST(typeNode);
38556 }
38557}
38558
38559function cannotExecuteExtendedSchema() {
38560 throw new Error('Extended Schema cannot use Interface or Union types for execution.');
38561}
38562
38563/***/ }),
38564/* 576 */
38565/***/ (function(module, exports, __webpack_require__) {
38566
38567"use strict";
38568
38569
38570Object.defineProperty(exports, "__esModule", {
38571 value: true
38572});
38573exports.printSchema = printSchema;
38574exports.printIntrospectionSchema = printIntrospectionSchema;
38575exports.printType = printType;
38576
38577var _invariant = __webpack_require__(11);
38578
38579var _invariant2 = _interopRequireDefault(_invariant);
38580
38581var _isNullish = __webpack_require__(66);
38582
38583var _isNullish2 = _interopRequireDefault(_isNullish);
38584
38585var _isInvalid = __webpack_require__(86);
38586
38587var _isInvalid2 = _interopRequireDefault(_isInvalid);
38588
38589var _astFromValue = __webpack_require__(177);
38590
38591var _printer = __webpack_require__(28);
38592
38593var _definition = __webpack_require__(6);
38594
38595var _scalars = __webpack_require__(52);
38596
38597var _directives = __webpack_require__(45);
38598
38599function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38600
38601/**
38602 * Copyright (c) 2015-present, Facebook, Inc.
38603 *
38604 * This source code is licensed under the MIT license found in the
38605 * LICENSE file in the root directory of this source tree.
38606 *
38607 *
38608 */
38609
38610function printSchema(schema) {
38611 return printFilteredSchema(schema, function (n) {
38612 return !isSpecDirective(n);
38613 }, isDefinedType);
38614}
38615
38616function printIntrospectionSchema(schema) {
38617 return printFilteredSchema(schema, isSpecDirective, isIntrospectionType);
38618}
38619
38620function isSpecDirective(directiveName) {
38621 return directiveName === 'skip' || directiveName === 'include' || directiveName === 'deprecated';
38622}
38623
38624function isDefinedType(typename) {
38625 return !isIntrospectionType(typename) && !isBuiltInScalar(typename);
38626}
38627
38628function isIntrospectionType(typename) {
38629 return typename.indexOf('__') === 0;
38630}
38631
38632function isBuiltInScalar(typename) {
38633 return typename === 'String' || typename === 'Boolean' || typename === 'Int' || typename === 'Float' || typename === 'ID';
38634}
38635
38636function printFilteredSchema(schema, directiveFilter, typeFilter) {
38637 var directives = schema.getDirectives().filter(function (directive) {
38638 return directiveFilter(directive.name);
38639 });
38640 var typeMap = schema.getTypeMap();
38641 var types = Object.keys(typeMap).filter(typeFilter).sort(function (name1, name2) {
38642 return name1.localeCompare(name2);
38643 }).map(function (typeName) {
38644 return typeMap[typeName];
38645 });
38646
38647 return [printSchemaDefinition(schema)].concat(directives.map(printDirective), types.map(printType)).filter(Boolean).join('\n\n') + '\n';
38648}
38649
38650function printSchemaDefinition(schema) {
38651 if (isSchemaOfCommonNames(schema)) {
38652 return;
38653 }
38654
38655 var operationTypes = [];
38656
38657 var queryType = schema.getQueryType();
38658 if (queryType) {
38659 operationTypes.push(' query: ' + queryType.name);
38660 }
38661
38662 var mutationType = schema.getMutationType();
38663 if (mutationType) {
38664 operationTypes.push(' mutation: ' + mutationType.name);
38665 }
38666
38667 var subscriptionType = schema.getSubscriptionType();
38668 if (subscriptionType) {
38669 operationTypes.push(' subscription: ' + subscriptionType.name);
38670 }
38671
38672 return 'schema {\n' + operationTypes.join('\n') + '\n}';
38673}
38674
38675/**
38676 * GraphQL schema define root types for each type of operation. These types are
38677 * the same as any other type and can be named in any manner, however there is
38678 * a common naming convention:
38679 *
38680 * schema {
38681 * query: Query
38682 * mutation: Mutation
38683 * }
38684 *
38685 * When using this naming convention, the schema description can be omitted.
38686 */
38687function isSchemaOfCommonNames(schema) {
38688 var queryType = schema.getQueryType();
38689 if (queryType && queryType.name !== 'Query') {
38690 return false;
38691 }
38692
38693 var mutationType = schema.getMutationType();
38694 if (mutationType && mutationType.name !== 'Mutation') {
38695 return false;
38696 }
38697
38698 var subscriptionType = schema.getSubscriptionType();
38699 if (subscriptionType && subscriptionType.name !== 'Subscription') {
38700 return false;
38701 }
38702
38703 return true;
38704}
38705
38706function printType(type) {
38707 if (type instanceof _definition.GraphQLScalarType) {
38708 return printScalar(type);
38709 } else if (type instanceof _definition.GraphQLObjectType) {
38710 return printObject(type);
38711 } else if (type instanceof _definition.GraphQLInterfaceType) {
38712 return printInterface(type);
38713 } else if (type instanceof _definition.GraphQLUnionType) {
38714 return printUnion(type);
38715 } else if (type instanceof _definition.GraphQLEnumType) {
38716 return printEnum(type);
38717 }
38718 !(type instanceof _definition.GraphQLInputObjectType) ? (0, _invariant2.default)(0) : void 0;
38719 return printInputObject(type);
38720}
38721
38722function printScalar(type) {
38723 return printDescription(type) + ('scalar ' + type.name);
38724}
38725
38726function printObject(type) {
38727 var interfaces = type.getInterfaces();
38728 var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) {
38729 return i.name;
38730 }).join(', ') : '';
38731 return printDescription(type) + ('type ' + type.name + implementedInterfaces + ' {\n') + printFields(type) + '\n' + '}';
38732}
38733
38734function printInterface(type) {
38735 return printDescription(type) + ('interface ' + type.name + ' {\n') + printFields(type) + '\n' + '}';
38736}
38737
38738function printUnion(type) {
38739 return printDescription(type) + ('union ' + type.name + ' = ' + type.getTypes().join(' | '));
38740}
38741
38742function printEnum(type) {
38743 return printDescription(type) + ('enum ' + type.name + ' {\n') + printEnumValues(type.getValues()) + '\n' + '}';
38744}
38745
38746function printEnumValues(values) {
38747 return values.map(function (value, i) {
38748 return printDescription(value, ' ', !i) + ' ' + value.name + printDeprecated(value);
38749 }).join('\n');
38750}
38751
38752function printInputObject(type) {
38753 var fieldMap = type.getFields();
38754 var fields = Object.keys(fieldMap).map(function (fieldName) {
38755 return fieldMap[fieldName];
38756 });
38757 return printDescription(type) + ('input ' + type.name + ' {\n') + fields.map(function (f, i) {
38758 return printDescription(f, ' ', !i) + ' ' + printInputValue(f);
38759 }).join('\n') + '\n' + '}';
38760}
38761
38762function printFields(type) {
38763 var fieldMap = type.getFields();
38764 var fields = Object.keys(fieldMap).map(function (fieldName) {
38765 return fieldMap[fieldName];
38766 });
38767 return fields.map(function (f, i) {
38768 return printDescription(f, ' ', !i) + ' ' + f.name + printArgs(f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);
38769 }).join('\n');
38770}
38771
38772function printArgs(args) {
38773 var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
38774
38775 if (args.length === 0) {
38776 return '';
38777 }
38778
38779 // If every arg does not have a description, print them on one line.
38780 if (args.every(function (arg) {
38781 return !arg.description;
38782 })) {
38783 return '(' + args.map(printInputValue).join(', ') + ')';
38784 }
38785
38786 return '(\n' + args.map(function (arg, i) {
38787 return printDescription(arg, ' ' + indentation, !i) + ' ' + indentation + printInputValue(arg);
38788 }).join('\n') + '\n' + indentation + ')';
38789}
38790
38791function printInputValue(arg) {
38792 var argDecl = arg.name + ': ' + String(arg.type);
38793 if (!(0, _isInvalid2.default)(arg.defaultValue)) {
38794 argDecl += ' = ' + (0, _printer.print)((0, _astFromValue.astFromValue)(arg.defaultValue, arg.type));
38795 }
38796 return argDecl;
38797}
38798
38799function printDirective(directive) {
38800 return printDescription(directive) + 'directive @' + directive.name + printArgs(directive.args) + ' on ' + directive.locations.join(' | ');
38801}
38802
38803function printDeprecated(fieldOrEnumVal) {
38804 var reason = fieldOrEnumVal.deprecationReason;
38805 if ((0, _isNullish2.default)(reason)) {
38806 return '';
38807 }
38808 if (reason === '' || reason === _directives.DEFAULT_DEPRECATION_REASON) {
38809 return ' @deprecated';
38810 }
38811 return ' @deprecated(reason: ' + (0, _printer.print)((0, _astFromValue.astFromValue)(reason, _scalars.GraphQLString)) + ')';
38812}
38813
38814function printDescription(def) {
38815 var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
38816 var firstInBlock = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
38817
38818 if (!def.description) {
38819 return '';
38820 }
38821 var lines = def.description.split('\n');
38822 var description = indentation && !firstInBlock ? '\n' : '';
38823 for (var i = 0; i < lines.length; i++) {
38824 if (lines[i] === '') {
38825 description += indentation + '#\n';
38826 } else {
38827 // For > 120 character long lines, cut at space boundaries into sublines
38828 // of ~80 chars.
38829 var sublines = breakLine(lines[i], 120 - indentation.length);
38830 for (var j = 0; j < sublines.length; j++) {
38831 description += indentation + '# ' + sublines[j] + '\n';
38832 }
38833 }
38834 }
38835 return description;
38836}
38837
38838function breakLine(line, len) {
38839 if (line.length < len + 5) {
38840 return [line];
38841 }
38842 var parts = line.split(new RegExp('((?: |^).{15,' + (len - 40) + '}(?= |$))'));
38843 if (parts.length < 4) {
38844 return [line];
38845 }
38846 var sublines = [parts[0] + parts[1] + parts[2]];
38847 for (var i = 3; i < parts.length; i += 2) {
38848 sublines.push(parts[i].slice(1) + parts[i + 1]);
38849 }
38850 return sublines;
38851}
38852
38853/***/ }),
38854/* 577 */
38855/***/ (function(module, exports, __webpack_require__) {
38856
38857"use strict";
38858
38859
38860Object.defineProperty(exports, "__esModule", {
38861 value: true
38862});
38863exports.concatAST = concatAST;
38864
38865
38866/**
38867 * Provided a collection of ASTs, presumably each from different files,
38868 * concatenate the ASTs together into batched AST, useful for validating many
38869 * GraphQL source files which together represent one conceptual application.
38870 */
38871function concatAST(asts) {
38872 var batchDefinitions = [];
38873 for (var i = 0; i < asts.length; i++) {
38874 var definitions = asts[i].definitions;
38875 for (var j = 0; j < definitions.length; j++) {
38876 batchDefinitions.push(definitions[j]);
38877 }
38878 }
38879 return {
38880 kind: 'Document',
38881 definitions: batchDefinitions
38882 };
38883} /**
38884 * Copyright (c) 2015-present, Facebook, Inc.
38885 *
38886 * This source code is licensed under the MIT license found in the
38887 * LICENSE file in the root directory of this source tree.
38888 *
38889 *
38890 */
38891
38892/***/ }),
38893/* 578 */
38894/***/ (function(module, exports, __webpack_require__) {
38895
38896"use strict";
38897
38898
38899Object.defineProperty(exports, "__esModule", {
38900 value: true
38901});
38902exports.separateOperations = separateOperations;
38903
38904var _visitor = __webpack_require__(85);
38905
38906/**
38907 * separateOperations accepts a single AST document which may contain many
38908 * operations and fragments and returns a collection of AST documents each of
38909 * which contains a single operation as well the fragment definitions it
38910 * refers to.
38911 */
38912function separateOperations(documentAST) {
38913 var operations = [];
38914 var fragments = Object.create(null);
38915 var positions = new Map();
38916 var depGraph = Object.create(null);
38917 var fromName = void 0;
38918 var idx = 0;
38919
38920 // Populate metadata and build a dependency graph.
38921 (0, _visitor.visit)(documentAST, {
38922 OperationDefinition: function OperationDefinition(node) {
38923 fromName = opName(node);
38924 operations.push(node);
38925 positions.set(node, idx++);
38926 },
38927 FragmentDefinition: function FragmentDefinition(node) {
38928 fromName = node.name.value;
38929 fragments[fromName] = node;
38930 positions.set(node, idx++);
38931 },
38932 FragmentSpread: function FragmentSpread(node) {
38933 var toName = node.name.value;
38934 (depGraph[fromName] || (depGraph[fromName] = Object.create(null)))[toName] = true;
38935 }
38936 });
38937
38938 // For each operation, produce a new synthesized AST which includes only what
38939 // is necessary for completing that operation.
38940 var separatedDocumentASTs = Object.create(null);
38941 operations.forEach(function (operation) {
38942 var operationName = opName(operation);
38943 var dependencies = Object.create(null);
38944 collectTransitiveDependencies(dependencies, depGraph, operationName);
38945
38946 // The list of definition nodes to be included for this operation, sorted
38947 // to retain the same order as the original document.
38948 var definitions = [operation];
38949 Object.keys(dependencies).forEach(function (name) {
38950 definitions.push(fragments[name]);
38951 });
38952 definitions.sort(function (n1, n2) {
38953 return (positions.get(n1) || 0) - (positions.get(n2) || 0);
38954 });
38955
38956 separatedDocumentASTs[operationName] = {
38957 kind: 'Document',
38958 definitions: definitions
38959 };
38960 });
38961
38962 return separatedDocumentASTs;
38963} /**
38964 * Copyright (c) 2015-present, Facebook, Inc.
38965 *
38966 * This source code is licensed under the MIT license found in the
38967 * LICENSE file in the root directory of this source tree.
38968 *
38969 *
38970 */
38971
38972// Provides the empty string for anonymous operations.
38973function opName(operation) {
38974 return operation.name ? operation.name.value : '';
38975}
38976
38977// From a dependency graph, collects a list of transitive dependencies by
38978// recursing through a dependency graph.
38979function collectTransitiveDependencies(collected, depGraph, fromName) {
38980 var immediateDeps = depGraph[fromName];
38981 if (immediateDeps) {
38982 Object.keys(immediateDeps).forEach(function (toName) {
38983 if (!collected[toName]) {
38984 collected[toName] = true;
38985 collectTransitiveDependencies(collected, depGraph, toName);
38986 }
38987 });
38988 }
38989}
38990
38991/***/ }),
38992/* 579 */
38993/***/ (function(module, exports, __webpack_require__) {
38994
38995"use strict";
38996
38997
38998Object.defineProperty(exports, "__esModule", {
38999 value: true
39000});
39001exports.DangerousChangeType = exports.BreakingChangeType = undefined;
39002exports.findBreakingChanges = findBreakingChanges;
39003exports.findDangerousChanges = findDangerousChanges;
39004exports.findRemovedTypes = findRemovedTypes;
39005exports.findTypesThatChangedKind = findTypesThatChangedKind;
39006exports.findArgChanges = findArgChanges;
39007exports.findFieldsThatChangedType = findFieldsThatChangedType;
39008exports.findFieldsThatChangedTypeOnInputObjectTypes = findFieldsThatChangedTypeOnInputObjectTypes;
39009exports.findTypesRemovedFromUnions = findTypesRemovedFromUnions;
39010exports.findTypesAddedToUnions = findTypesAddedToUnions;
39011exports.findValuesRemovedFromEnums = findValuesRemovedFromEnums;
39012exports.findValuesAddedToEnums = findValuesAddedToEnums;
39013exports.findInterfacesRemovedFromObjectTypes = findInterfacesRemovedFromObjectTypes;
39014
39015var _definition = __webpack_require__(6);
39016
39017var _schema = __webpack_require__(44);
39018
39019/**
39020 * Copyright (c) 2016-present, Facebook, Inc.
39021 *
39022 * This source code is licensed under the MIT license found in the
39023 * LICENSE file in the root directory of this source tree.
39024 *
39025 *
39026 */
39027
39028var BreakingChangeType = exports.BreakingChangeType = {
39029 FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',
39030 FIELD_REMOVED: 'FIELD_REMOVED',
39031 TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',
39032 TYPE_REMOVED: 'TYPE_REMOVED',
39033 TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',
39034 VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',
39035 ARG_REMOVED: 'ARG_REMOVED',
39036 ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',
39037 NON_NULL_ARG_ADDED: 'NON_NULL_ARG_ADDED',
39038 NON_NULL_INPUT_FIELD_ADDED: 'NON_NULL_INPUT_FIELD_ADDED',
39039 INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT'
39040};
39041
39042var DangerousChangeType = exports.DangerousChangeType = {
39043 ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE',
39044 VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',
39045 TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION'
39046};
39047
39048/**
39049 * Given two schemas, returns an Array containing descriptions of all the types
39050 * of breaking changes covered by the other functions down below.
39051 */
39052function findBreakingChanges(oldSchema, newSchema) {
39053 return [].concat(findRemovedTypes(oldSchema, newSchema), findTypesThatChangedKind(oldSchema, newSchema), findFieldsThatChangedType(oldSchema, newSchema), findTypesRemovedFromUnions(oldSchema, newSchema), findValuesRemovedFromEnums(oldSchema, newSchema), findArgChanges(oldSchema, newSchema).breakingChanges, findInterfacesRemovedFromObjectTypes(oldSchema, newSchema));
39054}
39055
39056/**
39057 * Given two schemas, returns an Array containing descriptions of all the types
39058 * of potentially dangerous changes covered by the other functions down below.
39059 */
39060function findDangerousChanges(oldSchema, newSchema) {
39061 return [].concat(findArgChanges(oldSchema, newSchema).dangerousChanges, findValuesAddedToEnums(oldSchema, newSchema), findTypesAddedToUnions(oldSchema, newSchema));
39062}
39063
39064/**
39065 * Given two schemas, returns an Array containing descriptions of any breaking
39066 * changes in the newSchema related to removing an entire type.
39067 */
39068function findRemovedTypes(oldSchema, newSchema) {
39069 var oldTypeMap = oldSchema.getTypeMap();
39070 var newTypeMap = newSchema.getTypeMap();
39071
39072 var breakingChanges = [];
39073 Object.keys(oldTypeMap).forEach(function (typeName) {
39074 if (!newTypeMap[typeName]) {
39075 breakingChanges.push({
39076 type: BreakingChangeType.TYPE_REMOVED,
39077 description: typeName + ' was removed.'
39078 });
39079 }
39080 });
39081 return breakingChanges;
39082}
39083
39084/**
39085 * Given two schemas, returns an Array containing descriptions of any breaking
39086 * changes in the newSchema related to changing the type of a type.
39087 */
39088function findTypesThatChangedKind(oldSchema, newSchema) {
39089 var oldTypeMap = oldSchema.getTypeMap();
39090 var newTypeMap = newSchema.getTypeMap();
39091
39092 var breakingChanges = [];
39093 Object.keys(oldTypeMap).forEach(function (typeName) {
39094 if (!newTypeMap[typeName]) {
39095 return;
39096 }
39097 var oldType = oldTypeMap[typeName];
39098 var newType = newTypeMap[typeName];
39099 if (!(oldType instanceof newType.constructor)) {
39100 breakingChanges.push({
39101 type: BreakingChangeType.TYPE_CHANGED_KIND,
39102 description: typeName + ' changed from ' + (typeKindName(oldType) + ' to ' + typeKindName(newType) + '.')
39103 });
39104 }
39105 });
39106 return breakingChanges;
39107}
39108
39109/**
39110 * Given two schemas, returns an Array containing descriptions of any
39111 * breaking or dangerous changes in the newSchema related to arguments
39112 * (such as removal or change of type of an argument, or a change in an
39113 * argument's default value).
39114 */
39115function findArgChanges(oldSchema, newSchema) {
39116 var oldTypeMap = oldSchema.getTypeMap();
39117 var newTypeMap = newSchema.getTypeMap();
39118
39119 var breakingChanges = [];
39120 var dangerousChanges = [];
39121
39122 Object.keys(oldTypeMap).forEach(function (typeName) {
39123 var oldType = oldTypeMap[typeName];
39124 var newType = newTypeMap[typeName];
39125 if (!(oldType instanceof _definition.GraphQLObjectType || oldType instanceof _definition.GraphQLInterfaceType) || !(newType instanceof oldType.constructor)) {
39126 return;
39127 }
39128
39129 var oldTypeFields = oldType.getFields();
39130 var newTypeFields = newType.getFields();
39131
39132 Object.keys(oldTypeFields).forEach(function (fieldName) {
39133 if (!newTypeFields[fieldName]) {
39134 return;
39135 }
39136
39137 oldTypeFields[fieldName].args.forEach(function (oldArgDef) {
39138 var newArgs = newTypeFields[fieldName].args;
39139 var newArgDef = newArgs.find(function (arg) {
39140 return arg.name === oldArgDef.name;
39141 });
39142
39143 // Arg not present
39144 if (!newArgDef) {
39145 breakingChanges.push({
39146 type: BreakingChangeType.ARG_REMOVED,
39147 description: oldType.name + '.' + fieldName + ' arg ' + (oldArgDef.name + ' was removed')
39148 });
39149 } else {
39150 var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(oldArgDef.type, newArgDef.type);
39151 if (!isSafe) {
39152 breakingChanges.push({
39153 type: BreakingChangeType.ARG_CHANGED_KIND,
39154 description: oldType.name + '.' + fieldName + ' arg ' + (oldArgDef.name + ' has changed type from ') + (oldArgDef.type.toString() + ' to ' + newArgDef.type.toString())
39155 });
39156 } else if (oldArgDef.defaultValue !== undefined && oldArgDef.defaultValue !== newArgDef.defaultValue) {
39157 dangerousChanges.push({
39158 type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
39159 description: oldType.name + '.' + fieldName + ' arg ' + (oldArgDef.name + ' has changed defaultValue')
39160 });
39161 }
39162 }
39163 });
39164 // Check if a non-null arg was added to the field
39165 newTypeFields[fieldName].args.forEach(function (newArgDef) {
39166 var oldArgs = oldTypeFields[fieldName].args;
39167 var oldArgDef = oldArgs.find(function (arg) {
39168 return arg.name === newArgDef.name;
39169 });
39170 if (!oldArgDef && newArgDef.type instanceof _definition.GraphQLNonNull) {
39171 breakingChanges.push({
39172 type: BreakingChangeType.NON_NULL_ARG_ADDED,
39173 description: 'A non-null arg ' + newArgDef.name + ' on ' + (newType.name + '.' + fieldName + ' was added')
39174 });
39175 }
39176 });
39177 });
39178 });
39179
39180 return {
39181 breakingChanges: breakingChanges,
39182 dangerousChanges: dangerousChanges
39183 };
39184}
39185
39186function typeKindName(type) {
39187 if (type instanceof _definition.GraphQLScalarType) {
39188 return 'a Scalar type';
39189 }
39190 if (type instanceof _definition.GraphQLObjectType) {
39191 return 'an Object type';
39192 }
39193 if (type instanceof _definition.GraphQLInterfaceType) {
39194 return 'an Interface type';
39195 }
39196 if (type instanceof _definition.GraphQLUnionType) {
39197 return 'a Union type';
39198 }
39199 if (type instanceof _definition.GraphQLEnumType) {
39200 return 'an Enum type';
39201 }
39202 if (type instanceof _definition.GraphQLInputObjectType) {
39203 return 'an Input type';
39204 }
39205 throw new TypeError('Unknown type ' + type.constructor.name);
39206}
39207
39208/**
39209 * Given two schemas, returns an Array containing descriptions of any breaking
39210 * changes in the newSchema related to the fields on a type. This includes if
39211 * a field has been removed from a type, if a field has changed type, or if
39212 * a non-null field is added to an input type.
39213 */
39214function findFieldsThatChangedType(oldSchema, newSchema) {
39215 return [].concat(findFieldsThatChangedTypeOnObjectOrInterfaceTypes(oldSchema, newSchema), findFieldsThatChangedTypeOnInputObjectTypes(oldSchema, newSchema));
39216}
39217
39218function findFieldsThatChangedTypeOnObjectOrInterfaceTypes(oldSchema, newSchema) {
39219 var oldTypeMap = oldSchema.getTypeMap();
39220 var newTypeMap = newSchema.getTypeMap();
39221
39222 var breakingFieldChanges = [];
39223 Object.keys(oldTypeMap).forEach(function (typeName) {
39224 var oldType = oldTypeMap[typeName];
39225 var newType = newTypeMap[typeName];
39226 if (!(oldType instanceof _definition.GraphQLObjectType || oldType instanceof _definition.GraphQLInterfaceType) || !(newType instanceof oldType.constructor)) {
39227 return;
39228 }
39229
39230 var oldTypeFieldsDef = oldType.getFields();
39231 var newTypeFieldsDef = newType.getFields();
39232 Object.keys(oldTypeFieldsDef).forEach(function (fieldName) {
39233 // Check if the field is missing on the type in the new schema.
39234 if (!(fieldName in newTypeFieldsDef)) {
39235 breakingFieldChanges.push({
39236 type: BreakingChangeType.FIELD_REMOVED,
39237 description: typeName + '.' + fieldName + ' was removed.'
39238 });
39239 } else {
39240 var oldFieldType = oldTypeFieldsDef[fieldName].type;
39241 var newFieldType = newTypeFieldsDef[fieldName].type;
39242 var isSafe = isChangeSafeForObjectOrInterfaceField(oldFieldType, newFieldType);
39243 if (!isSafe) {
39244 var oldFieldTypeString = (0, _definition.isNamedType)(oldFieldType) ? oldFieldType.name : oldFieldType.toString();
39245 var newFieldTypeString = (0, _definition.isNamedType)(newFieldType) ? newFieldType.name : newFieldType.toString();
39246 breakingFieldChanges.push({
39247 type: BreakingChangeType.FIELD_CHANGED_KIND,
39248 description: typeName + '.' + fieldName + ' changed type from ' + (oldFieldTypeString + ' to ' + newFieldTypeString + '.')
39249 });
39250 }
39251 }
39252 });
39253 });
39254 return breakingFieldChanges;
39255}
39256
39257function findFieldsThatChangedTypeOnInputObjectTypes(oldSchema, newSchema) {
39258 var oldTypeMap = oldSchema.getTypeMap();
39259 var newTypeMap = newSchema.getTypeMap();
39260
39261 var breakingFieldChanges = [];
39262 Object.keys(oldTypeMap).forEach(function (typeName) {
39263 var oldType = oldTypeMap[typeName];
39264 var newType = newTypeMap[typeName];
39265 if (!(oldType instanceof _definition.GraphQLInputObjectType) || !(newType instanceof _definition.GraphQLInputObjectType)) {
39266 return;
39267 }
39268
39269 var oldTypeFieldsDef = oldType.getFields();
39270 var newTypeFieldsDef = newType.getFields();
39271 Object.keys(oldTypeFieldsDef).forEach(function (fieldName) {
39272 // Check if the field is missing on the type in the new schema.
39273 if (!(fieldName in newTypeFieldsDef)) {
39274 breakingFieldChanges.push({
39275 type: BreakingChangeType.FIELD_REMOVED,
39276 description: typeName + '.' + fieldName + ' was removed.'
39277 });
39278 } else {
39279 var oldFieldType = oldTypeFieldsDef[fieldName].type;
39280 var newFieldType = newTypeFieldsDef[fieldName].type;
39281
39282 var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(oldFieldType, newFieldType);
39283 if (!isSafe) {
39284 var oldFieldTypeString = (0, _definition.isNamedType)(oldFieldType) ? oldFieldType.name : oldFieldType.toString();
39285 var newFieldTypeString = (0, _definition.isNamedType)(newFieldType) ? newFieldType.name : newFieldType.toString();
39286 breakingFieldChanges.push({
39287 type: BreakingChangeType.FIELD_CHANGED_KIND,
39288 description: typeName + '.' + fieldName + ' changed type from ' + (oldFieldTypeString + ' to ' + newFieldTypeString + '.')
39289 });
39290 }
39291 }
39292 });
39293 // Check if a non-null field was added to the input object type
39294 Object.keys(newTypeFieldsDef).forEach(function (fieldName) {
39295 if (!(fieldName in oldTypeFieldsDef) && newTypeFieldsDef[fieldName].type instanceof _definition.GraphQLNonNull) {
39296 breakingFieldChanges.push({
39297 type: BreakingChangeType.NON_NULL_INPUT_FIELD_ADDED,
39298 description: 'A non-null field ' + fieldName + ' on ' + ('input type ' + newType.name + ' was added.')
39299 });
39300 }
39301 });
39302 });
39303 return breakingFieldChanges;
39304}
39305
39306function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
39307 if ((0, _definition.isNamedType)(oldType)) {
39308 return (
39309 // if they're both named types, see if their names are equivalent
39310 (0, _definition.isNamedType)(newType) && oldType.name === newType.name ||
39311 // moving from nullable to non-null of the same underlying type is safe
39312 newType instanceof _definition.GraphQLNonNull && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
39313 );
39314 } else if (oldType instanceof _definition.GraphQLList) {
39315 return (
39316 // if they're both lists, make sure the underlying types are compatible
39317 newType instanceof _definition.GraphQLList && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) ||
39318 // moving from nullable to non-null of the same underlying type is safe
39319 newType instanceof _definition.GraphQLNonNull && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
39320 );
39321 } else if (oldType instanceof _definition.GraphQLNonNull) {
39322 // if they're both non-null, make sure the underlying types are compatible
39323 return newType instanceof _definition.GraphQLNonNull && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);
39324 }
39325 return false;
39326}
39327
39328function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
39329 if ((0, _definition.isNamedType)(oldType)) {
39330 // if they're both named types, see if their names are equivalent
39331 return (0, _definition.isNamedType)(newType) && oldType.name === newType.name;
39332 } else if (oldType instanceof _definition.GraphQLList) {
39333 // if they're both lists, make sure the underlying types are compatible
39334 return newType instanceof _definition.GraphQLList && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);
39335 } else if (oldType instanceof _definition.GraphQLNonNull) {
39336 return (
39337 // if they're both non-null, make sure the underlying types are
39338 // compatible
39339 newType instanceof _definition.GraphQLNonNull && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) ||
39340 // moving from non-null to nullable of the same underlying type is safe
39341 !(newType instanceof _definition.GraphQLNonNull) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)
39342 );
39343 }
39344 return false;
39345}
39346
39347/**
39348 * Given two schemas, returns an Array containing descriptions of any breaking
39349 * changes in the newSchema related to removing types from a union type.
39350 */
39351function findTypesRemovedFromUnions(oldSchema, newSchema) {
39352 var oldTypeMap = oldSchema.getTypeMap();
39353 var newTypeMap = newSchema.getTypeMap();
39354
39355 var typesRemovedFromUnion = [];
39356 Object.keys(oldTypeMap).forEach(function (typeName) {
39357 var oldType = oldTypeMap[typeName];
39358 var newType = newTypeMap[typeName];
39359 if (!(oldType instanceof _definition.GraphQLUnionType) || !(newType instanceof _definition.GraphQLUnionType)) {
39360 return;
39361 }
39362 var typeNamesInNewUnion = Object.create(null);
39363 newType.getTypes().forEach(function (type) {
39364 typeNamesInNewUnion[type.name] = true;
39365 });
39366 oldType.getTypes().forEach(function (type) {
39367 if (!typeNamesInNewUnion[type.name]) {
39368 typesRemovedFromUnion.push({
39369 type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
39370 description: type.name + ' was removed from union type ' + typeName + '.'
39371 });
39372 }
39373 });
39374 });
39375 return typesRemovedFromUnion;
39376}
39377
39378/**
39379 * Given two schemas, returns an Array containing descriptions of any dangerous
39380 * changes in the newSchema related to adding types to a union type.
39381 */
39382function findTypesAddedToUnions(oldSchema, newSchema) {
39383 var oldTypeMap = oldSchema.getTypeMap();
39384 var newTypeMap = newSchema.getTypeMap();
39385
39386 var typesAddedToUnion = [];
39387 Object.keys(newTypeMap).forEach(function (typeName) {
39388 var oldType = oldTypeMap[typeName];
39389 var newType = newTypeMap[typeName];
39390 if (!(oldType instanceof _definition.GraphQLUnionType) || !(newType instanceof _definition.GraphQLUnionType)) {
39391 return;
39392 }
39393 var typeNamesInOldUnion = Object.create(null);
39394 oldType.getTypes().forEach(function (type) {
39395 typeNamesInOldUnion[type.name] = true;
39396 });
39397 newType.getTypes().forEach(function (type) {
39398 if (!typeNamesInOldUnion[type.name]) {
39399 typesAddedToUnion.push({
39400 type: DangerousChangeType.TYPE_ADDED_TO_UNION,
39401 description: type.name + ' was added to union type ' + typeName + '.'
39402 });
39403 }
39404 });
39405 });
39406 return typesAddedToUnion;
39407}
39408/**
39409 * Given two schemas, returns an Array containing descriptions of any breaking
39410 * changes in the newSchema related to removing values from an enum type.
39411 */
39412function findValuesRemovedFromEnums(oldSchema, newSchema) {
39413 var oldTypeMap = oldSchema.getTypeMap();
39414 var newTypeMap = newSchema.getTypeMap();
39415
39416 var valuesRemovedFromEnums = [];
39417 Object.keys(oldTypeMap).forEach(function (typeName) {
39418 var oldType = oldTypeMap[typeName];
39419 var newType = newTypeMap[typeName];
39420 if (!(oldType instanceof _definition.GraphQLEnumType) || !(newType instanceof _definition.GraphQLEnumType)) {
39421 return;
39422 }
39423 var valuesInNewEnum = Object.create(null);
39424 newType.getValues().forEach(function (value) {
39425 valuesInNewEnum[value.name] = true;
39426 });
39427 oldType.getValues().forEach(function (value) {
39428 if (!valuesInNewEnum[value.name]) {
39429 valuesRemovedFromEnums.push({
39430 type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
39431 description: value.name + ' was removed from enum type ' + typeName + '.'
39432 });
39433 }
39434 });
39435 });
39436 return valuesRemovedFromEnums;
39437}
39438
39439/**
39440 * Given two schemas, returns an Array containing descriptions of any dangerous
39441 * changes in the newSchema related to adding values to an enum type.
39442 */
39443function findValuesAddedToEnums(oldSchema, newSchema) {
39444 var oldTypeMap = oldSchema.getTypeMap();
39445 var newTypeMap = newSchema.getTypeMap();
39446
39447 var valuesAddedToEnums = [];
39448 Object.keys(oldTypeMap).forEach(function (typeName) {
39449 var oldType = oldTypeMap[typeName];
39450 var newType = newTypeMap[typeName];
39451 if (!(oldType instanceof _definition.GraphQLEnumType) || !(newType instanceof _definition.GraphQLEnumType)) {
39452 return;
39453 }
39454
39455 var valuesInOldEnum = Object.create(null);
39456 oldType.getValues().forEach(function (value) {
39457 valuesInOldEnum[value.name] = true;
39458 });
39459 newType.getValues().forEach(function (value) {
39460 if (!valuesInOldEnum[value.name]) {
39461 valuesAddedToEnums.push({
39462 type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
39463 description: value.name + ' was added to enum type ' + typeName + '.'
39464 });
39465 }
39466 });
39467 });
39468 return valuesAddedToEnums;
39469}
39470
39471function findInterfacesRemovedFromObjectTypes(oldSchema, newSchema) {
39472 var oldTypeMap = oldSchema.getTypeMap();
39473 var newTypeMap = newSchema.getTypeMap();
39474 var breakingChanges = [];
39475
39476 Object.keys(oldTypeMap).forEach(function (typeName) {
39477 var oldType = oldTypeMap[typeName];
39478 var newType = newTypeMap[typeName];
39479 if (!(oldType instanceof _definition.GraphQLObjectType) || !(newType instanceof _definition.GraphQLObjectType)) {
39480 return;
39481 }
39482
39483 var oldInterfaces = oldType.getInterfaces();
39484 var newInterfaces = newType.getInterfaces();
39485 oldInterfaces.forEach(function (oldInterface) {
39486 if (!newInterfaces.some(function (int) {
39487 return int.name === oldInterface.name;
39488 })) {
39489 breakingChanges.push({
39490 type: BreakingChangeType.INTERFACE_REMOVED_FROM_OBJECT,
39491 description: typeName + ' no longer implements interface ' + (oldInterface.name + '.')
39492 });
39493 }
39494 });
39495 });
39496 return breakingChanges;
39497}
39498
39499/***/ }),
39500/* 580 */
39501/***/ (function(module, exports, __webpack_require__) {
39502
39503"use strict";
39504
39505
39506Object.defineProperty(exports, "__esModule", {
39507 value: true
39508});
39509exports.findDeprecatedUsages = findDeprecatedUsages;
39510
39511var _GraphQLError = __webpack_require__(75);
39512
39513var _visitor = __webpack_require__(85);
39514
39515var _definition = __webpack_require__(6);
39516
39517var _schema = __webpack_require__(44);
39518
39519var _TypeInfo = __webpack_require__(178);
39520
39521/**
39522 * A validation rule which reports deprecated usages.
39523 *
39524 * Returns a list of GraphQLError instances describing each deprecated use.
39525 */
39526function findDeprecatedUsages(schema, ast) {
39527 var errors = [];
39528 var typeInfo = new _TypeInfo.TypeInfo(schema);
39529
39530 (0, _visitor.visit)(ast, (0, _visitor.visitWithTypeInfo)(typeInfo, {
39531 Field: function Field(node) {
39532 var fieldDef = typeInfo.getFieldDef();
39533 if (fieldDef && fieldDef.isDeprecated) {
39534 var parentType = typeInfo.getParentType();
39535 if (parentType) {
39536 var reason = fieldDef.deprecationReason;
39537 errors.push(new _GraphQLError.GraphQLError('The field ' + parentType.name + '.' + fieldDef.name + ' is deprecated.' + (reason ? ' ' + reason : ''), [node]));
39538 }
39539 }
39540 },
39541 EnumValue: function EnumValue(node) {
39542 var enumVal = typeInfo.getEnumValue();
39543 if (enumVal && enumVal.isDeprecated) {
39544 var type = (0, _definition.getNamedType)(typeInfo.getInputType());
39545 if (type) {
39546 var reason = enumVal.deprecationReason;
39547 errors.push(new _GraphQLError.GraphQLError('The enum value ' + type.name + '.' + enumVal.name + ' is deprecated.' + (reason ? ' ' + reason : ''), [node]));
39548 }
39549 }
39550 }
39551 }));
39552
39553 return errors;
39554} /**
39555 * Copyright (c) 2015-present, Facebook, Inc.
39556 *
39557 * This source code is licensed under the MIT license found in the
39558 * LICENSE file in the root directory of this source tree.
39559 *
39560 *
39561 */
39562
39563/***/ }),
39564/* 581 */
39565/***/ (function(module, exports, __webpack_require__) {
39566
39567"use strict";
39568
39569function __export(m) {
39570 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
39571}
39572Object.defineProperty(exports, "__esModule", { value: true });
39573__export(__webpack_require__(582));
39574//# sourceMappingURL=index.js.map
39575
39576/***/ }),
39577/* 582 */
39578/***/ (function(module, exports, __webpack_require__) {
39579
39580"use strict";
39581
39582Object.defineProperty(exports, "__esModule", { value: true });
39583var expressApollo_1 = __webpack_require__(281);
39584exports.graphqlExpress = expressApollo_1.graphqlExpress;
39585exports.graphiqlExpress = expressApollo_1.graphiqlExpress;
39586var connectApollo_1 = __webpack_require__(590);
39587exports.graphqlConnect = connectApollo_1.graphqlConnect;
39588exports.graphiqlConnect = connectApollo_1.graphiqlConnect;
39589//# sourceMappingURL=index.js.map
39590
39591/***/ }),
39592/* 583 */
39593/***/ (function(module, exports, __webpack_require__) {
39594
39595"use strict";
39596
39597Object.defineProperty(exports, "__esModule", { value: true });
39598var runQuery_1 = __webpack_require__(282);
39599exports.runQuery = runQuery_1.runQuery;
39600exports.LogStep = runQuery_1.LogStep;
39601exports.LogAction = runQuery_1.LogAction;
39602var runHttpQuery_1 = __webpack_require__(587);
39603exports.runHttpQuery = runHttpQuery_1.runHttpQuery;
39604exports.HttpQueryError = runHttpQuery_1.HttpQueryError;
39605var graphqlOptions_1 = __webpack_require__(283);
39606exports.resolveGraphqlOptions = graphqlOptions_1.resolveGraphqlOptions;
39607//# sourceMappingURL=index.js.map
39608
39609/***/ }),
39610/* 584 */
39611/***/ (function(module, exports, __webpack_require__) {
39612
39613"use strict";
39614
39615Object.defineProperty(exports, "__esModule", { value: true });
39616var graphql_1 = __webpack_require__(14);
39617var GraphQLExtension = /** @class */ (function () {
39618 function GraphQLExtension() {
39619 }
39620 return GraphQLExtension;
39621}());
39622exports.GraphQLExtension = GraphQLExtension;
39623var GraphQLExtensionStack = /** @class */ (function () {
39624 function GraphQLExtensionStack(extensions) {
39625 this.extensions = extensions.map(function (extension) {
39626 return typeof extension === 'function' ? new extension() : extension;
39627 });
39628 }
39629 GraphQLExtensionStack.prototype.requestDidStart = function () {
39630 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39631 var extension = _a[_i];
39632 if (extension.requestDidStart) {
39633 extension.requestDidStart();
39634 }
39635 }
39636 };
39637 GraphQLExtensionStack.prototype.parsingDidStart = function () {
39638 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39639 var extension = _a[_i];
39640 if (extension.requestDidStart) {
39641 extension.requestDidStart();
39642 }
39643 }
39644 };
39645 GraphQLExtensionStack.prototype.parsingDidEnd = function () {
39646 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39647 var extension = _a[_i];
39648 if (extension.requestDidStart) {
39649 extension.requestDidStart();
39650 }
39651 }
39652 };
39653 GraphQLExtensionStack.prototype.validationDidStart = function () {
39654 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39655 var extension = _a[_i];
39656 if (extension.requestDidStart) {
39657 extension.requestDidStart();
39658 }
39659 }
39660 };
39661 GraphQLExtensionStack.prototype.validationDidEnd = function () {
39662 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39663 var extension = _a[_i];
39664 if (extension.requestDidStart) {
39665 extension.requestDidStart();
39666 }
39667 }
39668 };
39669 GraphQLExtensionStack.prototype.willResolveField = function (source, args, context, info) {
39670 var handlers = this.extensions
39671 .map(function (extension) { return extension.willResolveField && extension.willResolveField(source, args, context, info); })
39672 .filter(function (x) { return x; });
39673 return function (result) {
39674 for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {
39675 var handler = handlers_1[_i];
39676 handler(result);
39677 }
39678 };
39679 };
39680 GraphQLExtensionStack.prototype.executionDidStart = function () {
39681 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39682 var extension = _a[_i];
39683 if (extension.requestDidStart) {
39684 extension.requestDidStart();
39685 }
39686 }
39687 };
39688 GraphQLExtensionStack.prototype.executionDidEnd = function () {
39689 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39690 var extension = _a[_i];
39691 if (extension.executionDidEnd) {
39692 extension.executionDidEnd();
39693 }
39694 }
39695 };
39696 GraphQLExtensionStack.prototype.requestDidEnd = function () {
39697 for (var _i = 0, _a = this.extensions; _i < _a.length; _i++) {
39698 var extension = _a[_i];
39699 if (extension.requestDidEnd) {
39700 extension.requestDidEnd();
39701 }
39702 }
39703 };
39704 GraphQLExtensionStack.prototype.format = function () {
39705 return this.extensions.map(function (extension) { return extension.format && extension.format(); }).filter(function (x) { return x; }).reduce(function (extensions, _a) {
39706 var key = _a[0], value = _a[1];
39707 return Object.assign(extensions, (_b = {}, _b[key] = value, _b));
39708 var _b;
39709 }, {});
39710 };
39711 return GraphQLExtensionStack;
39712}());
39713exports.GraphQLExtensionStack = GraphQLExtensionStack;
39714function enableGraphQLExtensions(schema) {
39715 if (schema._extensionsEnabled) {
39716 return schema;
39717 }
39718 schema._extensionsEnabled = true;
39719 forEachField(schema, wrapField);
39720 return schema;
39721}
39722exports.enableGraphQLExtensions = enableGraphQLExtensions;
39723function wrapField(field) {
39724 var fieldResolver = field.resolve;
39725 field.resolve = function (source, args, context, info) {
39726 var extensionStack = context && context._extensionStack;
39727 var handler = extensionStack && extensionStack.willResolveField(source, args, context, info);
39728 // If no resolver has been defined for a field, use the default field resolver
39729 // (which matches the behavior of graphql-js when there is no explicit resolve function defined).
39730 // TODO: Find a way to respect custom field resolvers, see https://github.com/graphql/graphql-js/pull/865
39731 try {
39732 var result_1 = (fieldResolver || graphql_1.defaultFieldResolver)(source, args, context, info);
39733 whenResultIsFinished(result_1, function () {
39734 handler && handler(result_1);
39735 });
39736 return result_1;
39737 }
39738 catch (error) {
39739 handler && handler();
39740 throw error;
39741 }
39742 };
39743}
39744function whenResultIsFinished(result, callback) {
39745 if (result === null || typeof result === 'undefined') {
39746 callback();
39747 }
39748 else if (typeof result.then === 'function') {
39749 result.then(callback, callback);
39750 }
39751 else if (Array.isArray(result)) {
39752 var promises_1 = [];
39753 result.forEach(function (value) {
39754 if (value && typeof value.then === 'function') {
39755 promises_1.push(value);
39756 }
39757 });
39758 if (promises_1.length > 0) {
39759 Promise.all(promises_1).then(callback, callback);
39760 }
39761 else {
39762 callback();
39763 }
39764 }
39765 else {
39766 callback();
39767 }
39768}
39769function forEachField(schema, fn) {
39770 var typeMap = schema.getTypeMap();
39771 Object.keys(typeMap).forEach(function (typeName) {
39772 var type = typeMap[typeName];
39773 if (!graphql_1.getNamedType(type).name.startsWith('__') && type instanceof graphql_1.GraphQLObjectType) {
39774 var fields_1 = type.getFields();
39775 Object.keys(fields_1).forEach(function (fieldName) {
39776 var field = fields_1[fieldName];
39777 fn(field, typeName, fieldName);
39778 });
39779 }
39780 });
39781}
39782//# sourceMappingURL=index.js.map
39783
39784/***/ }),
39785/* 585 */
39786/***/ (function(module, exports, __webpack_require__) {
39787
39788"use strict";
39789
39790Object.defineProperty(exports, "__esModule", { value: true });
39791var graphql_1 = __webpack_require__(14);
39792var TracingExtension = /** @class */ (function () {
39793 function TracingExtension() {
39794 this.resolverCalls = [];
39795 }
39796 TracingExtension.prototype.requestDidStart = function () {
39797 this.startWallTime = new Date();
39798 this.startHrTime = process.hrtime();
39799 };
39800 TracingExtension.prototype.executionDidStart = function () { };
39801 TracingExtension.prototype.willResolveField = function (_source, _args, _context, info) {
39802 var _this = this;
39803 var resolverCall = {
39804 path: info.path,
39805 fieldName: info.fieldName,
39806 parentType: info.parentType,
39807 returnType: info.returnType,
39808 startOffset: process.hrtime(this.startHrTime)
39809 };
39810 this.resolverCalls.push(resolverCall);
39811 return function () {
39812 resolverCall.endOffset = process.hrtime(_this.startHrTime);
39813 };
39814 };
39815 TracingExtension.prototype.didResolveField = function (_source, _args, _context, info) { };
39816 TracingExtension.prototype.requestDidEnd = function () {
39817 this.duration = process.hrtime(this.startHrTime);
39818 this.endWallTime = new Date();
39819 };
39820 TracingExtension.prototype.format = function () {
39821 return [
39822 "tracing",
39823 {
39824 version: 1,
39825 startTime: this.startWallTime.toISOString(),
39826 endTime: this.endWallTime.toISOString(),
39827 duration: durationHrTimeToNanos(this.duration),
39828 execution: {
39829 resolvers: this.resolverCalls.map(function (resolverCall) {
39830 var startOffset = durationHrTimeToNanos(resolverCall.startOffset);
39831 var duration = resolverCall.endOffset
39832 ? durationHrTimeToNanos(resolverCall.endOffset) - startOffset
39833 : 0;
39834 return {
39835 path: graphql_1.responsePathAsArray(resolverCall.path),
39836 parentType: resolverCall.parentType.toString(),
39837 fieldName: resolverCall.fieldName,
39838 returnType: resolverCall.returnType.toString(),
39839 startOffset: startOffset,
39840 duration: duration
39841 };
39842 })
39843 }
39844 }
39845 ];
39846 };
39847 return TracingExtension;
39848}());
39849exports.TracingExtension = TracingExtension;
39850// Converts an hrtime array (as returned from process.hrtime) to nanoseconds.
39851//
39852// ONLY CALL THIS ON VALUES REPRESENTING DELTAS, NOT ON THE RAW RETURN VALUE
39853// FROM process.hrtime() WITH NO ARGUMENTS.
39854//
39855// The entire point of the hrtime data structure is that the JavaScript Number
39856// type can't represent all int64 values without loss of precision:
39857// Number.MAX_SAFE_INTEGER nanoseconds is about 104 days. Calling this function
39858// on a duration that represents a value less than 104 days is fine. Calling
39859// this function on an absolute time (which is generally roughly time since
39860// system boot) is not a good idea.
39861function durationHrTimeToNanos(hrtime) {
39862 return hrtime[0] * 1e9 + hrtime[1];
39863}
39864//# sourceMappingURL=index.js.map
39865
39866/***/ }),
39867/* 586 */
39868/***/ (function(module, exports, __webpack_require__) {
39869
39870"use strict";
39871
39872var __assign = (this && this.__assign) || Object.assign || function(t) {
39873 for (var s, i = 1, n = arguments.length; i < n; i++) {
39874 s = arguments[i];
39875 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
39876 t[p] = s[p];
39877 }
39878 return t;
39879};
39880Object.defineProperty(exports, "__esModule", { value: true });
39881var graphql_1 = __webpack_require__(14);
39882var CacheScope;
39883(function (CacheScope) {
39884 CacheScope["Public"] = "PUBLIC";
39885 CacheScope["Private"] = "PRIVATE";
39886})(CacheScope = exports.CacheScope || (exports.CacheScope = {}));
39887var CacheControlExtension = /** @class */ (function () {
39888 function CacheControlExtension() {
39889 this.hints = new Map();
39890 }
39891 CacheControlExtension.prototype.willResolveField = function (_source, _args, _context, info) {
39892 var _this = this;
39893 var hint = {};
39894 var targetType = graphql_1.getNamedType(info.returnType);
39895 if (targetType instanceof graphql_1.GraphQLObjectType
39896 || targetType instanceof graphql_1.GraphQLInterfaceType) {
39897 if (targetType.astNode) {
39898 hint = mergeHints(hint, cacheHintFromDirectives(targetType.astNode.directives));
39899 }
39900 }
39901 var parentType = info.parentType;
39902 if (parentType instanceof graphql_1.GraphQLObjectType) {
39903 var fieldDef = parentType.getFields()[info.fieldName];
39904 if (fieldDef.astNode) {
39905 hint = mergeHints(hint, cacheHintFromDirectives(fieldDef.astNode.directives));
39906 }
39907 }
39908 if (targetType instanceof graphql_1.GraphQLObjectType && hint.maxAge === undefined) {
39909 hint.maxAge = 0;
39910 }
39911 if (hint.maxAge !== undefined || hint.scope !== undefined) {
39912 this.addHint(info.path, hint);
39913 }
39914 info.cacheControl = {
39915 setCacheHint: function (hint) {
39916 _this.addHint(info.path, hint);
39917 }
39918 };
39919 };
39920 CacheControlExtension.prototype.addHint = function (path, hint) {
39921 var existingCacheHint = this.hints.get(path);
39922 if (existingCacheHint) {
39923 this.hints.set(path, mergeHints(existingCacheHint, hint));
39924 }
39925 else {
39926 this.hints.set(path, hint);
39927 }
39928 };
39929 CacheControlExtension.prototype.format = function () {
39930 return [
39931 'cacheControl',
39932 {
39933 version: 1,
39934 hints: Array.from(this.hints).map(function (_a) {
39935 var path = _a[0], hint = _a[1];
39936 return (__assign({ path: graphql_1.responsePathAsArray(path) }, hint));
39937 })
39938 }
39939 ];
39940 };
39941 return CacheControlExtension;
39942}());
39943exports.CacheControlExtension = CacheControlExtension;
39944function cacheHintFromDirectives(directives) {
39945 if (!directives)
39946 return undefined;
39947 var cacheControlDirective = directives.find(function (directive) { return directive.name.value === 'cacheControl'; });
39948 if (!cacheControlDirective)
39949 return undefined;
39950 if (!cacheControlDirective.arguments)
39951 return undefined;
39952 var maxAgeArgument = cacheControlDirective.arguments.find(function (argument) { return argument.name.value === 'maxAge'; });
39953 var scopeArgument = cacheControlDirective.arguments.find(function (argument) { return argument.name.value === 'scope'; });
39954 // TODO: Add proper typechecking of arguments
39955 return {
39956 maxAge: maxAgeArgument && maxAgeArgument.value && maxAgeArgument.value.kind === 'IntValue'
39957 ? parseInt(maxAgeArgument.value.value)
39958 : undefined,
39959 scope: scopeArgument && scopeArgument.value && scopeArgument.value.kind === 'EnumValue'
39960 ? scopeArgument.value.value
39961 : undefined
39962 };
39963}
39964function mergeHints(hint, otherHint) {
39965 if (!otherHint)
39966 return hint;
39967 return {
39968 maxAge: otherHint.maxAge || hint.maxAge,
39969 scope: otherHint.scope || hint.scope
39970 };
39971}
39972//# sourceMappingURL=index.js.map
39973
39974/***/ }),
39975/* 587 */
39976/***/ (function(module, exports, __webpack_require__) {
39977
39978"use strict";
39979
39980var __extends = (this && this.__extends) || (function () {
39981 var extendStatics = Object.setPrototypeOf ||
39982 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39983 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39984 return function (d, b) {
39985 extendStatics(d, b);
39986 function __() { this.constructor = d; }
39987 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39988 };
39989})();
39990var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39991 return new (P || (P = Promise))(function (resolve, reject) {
39992 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39993 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
39994 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
39995 step((generator = generator.apply(thisArg, _arguments || [])).next());
39996 });
39997};
39998var __generator = (this && this.__generator) || function (thisArg, body) {
39999 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
40000 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40001 function verb(n) { return function (v) { return step([n, v]); }; }
40002 function step(op) {
40003 if (f) throw new TypeError("Generator is already executing.");
40004 while (_) try {
40005 if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
40006 if (y = 0, t) op = [0, t.value];
40007 switch (op[0]) {
40008 case 0: case 1: t = op; break;
40009 case 4: _.label++; return { value: op[1], done: false };
40010 case 5: _.label++; y = op[1]; op = [0]; continue;
40011 case 7: op = _.ops.pop(); _.trys.pop(); continue;
40012 default:
40013 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40014 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40015 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40016 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40017 if (t[2]) _.ops.pop();
40018 _.trys.pop(); continue;
40019 }
40020 op = body.call(thisArg, _);
40021 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40022 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40023 }
40024};
40025Object.defineProperty(exports, "__esModule", { value: true });
40026var graphql_1 = __webpack_require__(14);
40027var runQuery_1 = __webpack_require__(282);
40028var graphqlOptions_1 = __webpack_require__(283);
40029var HttpQueryError = (function (_super) {
40030 __extends(HttpQueryError, _super);
40031 function HttpQueryError(statusCode, message, isGraphQLError, headers) {
40032 if (isGraphQLError === void 0) { isGraphQLError = false; }
40033 var _this = _super.call(this, message) || this;
40034 _this.name = 'HttpQueryError';
40035 _this.statusCode = statusCode;
40036 _this.isGraphQLError = isGraphQLError;
40037 _this.headers = headers;
40038 return _this;
40039 }
40040 return HttpQueryError;
40041}(Error));
40042exports.HttpQueryError = HttpQueryError;
40043function isQueryOperation(query, operationName) {
40044 var operationAST = graphql_1.getOperationAST(query, operationName);
40045 return operationAST.operation === 'query';
40046}
40047function isFunction(arg) {
40048 return typeof arg === 'function';
40049}
40050function runHttpQuery(handlerArguments, request) {
40051 return __awaiter(this, void 0, void 0, function () {
40052 var isGetRequest, optionsObject, e_1, formatErrorFn, requestPayload, isBatch, requests, responses, gqlResponse;
40053 return __generator(this, function (_a) {
40054 switch (_a.label) {
40055 case 0:
40056 isGetRequest = false;
40057 _a.label = 1;
40058 case 1:
40059 _a.trys.push([1, 3, , 4]);
40060 return [4, graphqlOptions_1.resolveGraphqlOptions.apply(void 0, [request.options].concat(handlerArguments))];
40061 case 2:
40062 optionsObject = _a.sent();
40063 return [3, 4];
40064 case 3:
40065 e_1 = _a.sent();
40066 throw new HttpQueryError(500, e_1.message);
40067 case 4:
40068 formatErrorFn = optionsObject.formatError || graphql_1.formatError;
40069 switch (request.method) {
40070 case 'POST':
40071 if (!request.query || (Object.keys(request.query).length === 0)) {
40072 throw new HttpQueryError(500, 'POST body missing. Did you forget use body-parser middleware?');
40073 }
40074 requestPayload = request.query;
40075 break;
40076 case 'GET':
40077 if (!request.query || (Object.keys(request.query).length === 0)) {
40078 throw new HttpQueryError(400, 'GET query missing.');
40079 }
40080 isGetRequest = true;
40081 requestPayload = request.query;
40082 break;
40083 default:
40084 throw new HttpQueryError(405, 'Apollo Server supports only GET/POST requests.', false, {
40085 'Allow': 'GET, POST',
40086 });
40087 }
40088 isBatch = true;
40089 if (!Array.isArray(requestPayload)) {
40090 isBatch = false;
40091 requestPayload = [requestPayload];
40092 }
40093 requests = requestPayload.map(function (requestParams) {
40094 try {
40095 var query = requestParams.query;
40096 if (isGetRequest) {
40097 if (typeof query === 'string') {
40098 query = graphql_1.parse(query);
40099 }
40100 if (!isQueryOperation(query, requestParams.operationName)) {
40101 throw new HttpQueryError(405, "GET supports only query operation", false, {
40102 'Allow': 'POST',
40103 });
40104 }
40105 }
40106 var operationName = requestParams.operationName;
40107 var variables = requestParams.variables;
40108 if (typeof variables === 'string') {
40109 try {
40110 variables = JSON.parse(variables);
40111 }
40112 catch (error) {
40113 throw new HttpQueryError(400, 'Variables are invalid JSON.');
40114 }
40115 }
40116 var context_1 = optionsObject.context || {};
40117 if (isFunction(context_1)) {
40118 context_1 = context_1();
40119 }
40120 else if (isBatch) {
40121 context_1 = Object.assign(Object.create(Object.getPrototypeOf(context_1)), context_1);
40122 }
40123 var params = {
40124 schema: optionsObject.schema,
40125 query: query,
40126 variables: variables,
40127 context: context_1,
40128 rootValue: optionsObject.rootValue,
40129 operationName: operationName,
40130 logFunction: optionsObject.logFunction,
40131 validationRules: optionsObject.validationRules,
40132 formatError: formatErrorFn,
40133 formatResponse: optionsObject.formatResponse,
40134 fieldResolver: optionsObject.fieldResolver,
40135 debug: optionsObject.debug,
40136 tracing: optionsObject.tracing,
40137 cacheControl: optionsObject.cacheControl,
40138 };
40139 if (optionsObject.formatParams) {
40140 params = optionsObject.formatParams(params);
40141 }
40142 return runQuery_1.runQuery(params);
40143 }
40144 catch (e) {
40145 if (e.name === 'HttpQueryError') {
40146 return Promise.reject(e);
40147 }
40148 return Promise.resolve({ errors: [formatErrorFn(e)] });
40149 }
40150 });
40151 return [4, Promise.all(requests)];
40152 case 5:
40153 responses = _a.sent();
40154 if (!isBatch) {
40155 gqlResponse = responses[0];
40156 if (gqlResponse.errors && typeof gqlResponse.data === 'undefined') {
40157 throw new HttpQueryError(400, JSON.stringify(gqlResponse), true, {
40158 'Content-Type': 'application/json',
40159 });
40160 }
40161 return [2, JSON.stringify(gqlResponse)];
40162 }
40163 return [2, JSON.stringify(responses)];
40164 }
40165 });
40166 });
40167}
40168exports.runHttpQuery = runHttpQuery;
40169//# sourceMappingURL=runHttpQuery.js.map
40170
40171/***/ }),
40172/* 588 */
40173/***/ (function(module, exports, __webpack_require__) {
40174
40175"use strict";
40176
40177Object.defineProperty(exports, "__esModule", { value: true });
40178var renderGraphiQL_1 = __webpack_require__(284);
40179exports.renderGraphiQL = renderGraphiQL_1.renderGraphiQL;
40180var resolveGraphiQLString_1 = __webpack_require__(589);
40181exports.resolveGraphiQLString = resolveGraphiQLString_1.resolveGraphiQLString;
40182//# sourceMappingURL=index.js.map
40183
40184/***/ }),
40185/* 589 */
40186/***/ (function(module, exports, __webpack_require__) {
40187
40188"use strict";
40189
40190var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
40191 return new (P || (P = Promise))(function (resolve, reject) {
40192 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40193 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40194 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
40195 step((generator = generator.apply(thisArg, _arguments || [])).next());
40196 });
40197};
40198var __generator = (this && this.__generator) || function (thisArg, body) {
40199 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
40200 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40201 function verb(n) { return function (v) { return step([n, v]); }; }
40202 function step(op) {
40203 if (f) throw new TypeError("Generator is already executing.");
40204 while (_) try {
40205 if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
40206 if (y = 0, t) op = [0, t.value];
40207 switch (op[0]) {
40208 case 0: case 1: t = op; break;
40209 case 4: _.label++; return { value: op[1], done: false };
40210 case 5: _.label++; y = op[1]; op = [0]; continue;
40211 case 7: op = _.ops.pop(); _.trys.pop(); continue;
40212 default:
40213 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40214 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40215 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40216 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40217 if (t[2]) _.ops.pop();
40218 _.trys.pop(); continue;
40219 }
40220 op = body.call(thisArg, _);
40221 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40222 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40223 }
40224};
40225Object.defineProperty(exports, "__esModule", { value: true });
40226var renderGraphiQL_1 = __webpack_require__(284);
40227function isOptionsFunction(arg) {
40228 return typeof arg === 'function';
40229}
40230function resolveGraphiQLOptions(options) {
40231 var args = [];
40232 for (var _i = 1; _i < arguments.length; _i++) {
40233 args[_i - 1] = arguments[_i];
40234 }
40235 return __awaiter(this, void 0, void 0, function () {
40236 var e_1;
40237 return __generator(this, function (_a) {
40238 switch (_a.label) {
40239 case 0:
40240 if (!isOptionsFunction(options)) return [3, 5];
40241 _a.label = 1;
40242 case 1:
40243 _a.trys.push([1, 3, , 4]);
40244 return [4, options.apply(void 0, args)];
40245 case 2: return [2, _a.sent()];
40246 case 3:
40247 e_1 = _a.sent();
40248 throw new Error("Invalid options provided for GraphiQL: " + e_1.message);
40249 case 4: return [3, 6];
40250 case 5: return [2, options];
40251 case 6: return [2];
40252 }
40253 });
40254 });
40255}
40256function createGraphiQLParams(query) {
40257 var queryObject = query || {};
40258 return {
40259 query: queryObject.query || '',
40260 variables: queryObject.variables,
40261 operationName: queryObject.operationName || '',
40262 };
40263}
40264function createGraphiQLData(params, options) {
40265 return {
40266 endpointURL: options.endpointURL,
40267 subscriptionsEndpoint: options.subscriptionsEndpoint,
40268 query: params.query || options.query,
40269 variables: params.variables && JSON.parse(params.variables) || options.variables,
40270 operationName: params.operationName || options.operationName,
40271 passHeader: options.passHeader,
40272 editorTheme: options.editorTheme,
40273 websocketConnectionParams: options.websocketConnectionParams,
40274 };
40275}
40276function resolveGraphiQLString(query, options) {
40277 if (query === void 0) { query = {}; }
40278 var args = [];
40279 for (var _i = 2; _i < arguments.length; _i++) {
40280 args[_i - 2] = arguments[_i];
40281 }
40282 return __awaiter(this, void 0, void 0, function () {
40283 var graphiqlParams, graphiqlOptions, graphiqlData;
40284 return __generator(this, function (_a) {
40285 switch (_a.label) {
40286 case 0:
40287 graphiqlParams = createGraphiQLParams(query);
40288 return [4, resolveGraphiQLOptions.apply(void 0, [options].concat(args))];
40289 case 1:
40290 graphiqlOptions = _a.sent();
40291 graphiqlData = createGraphiQLData(graphiqlParams, graphiqlOptions);
40292 return [2, renderGraphiQL_1.renderGraphiQL(graphiqlData)];
40293 }
40294 });
40295 });
40296}
40297exports.resolveGraphiQLString = resolveGraphiQLString;
40298//# sourceMappingURL=resolveGraphiQLString.js.map
40299
40300/***/ }),
40301/* 590 */
40302/***/ (function(module, exports, __webpack_require__) {
40303
40304"use strict";
40305
40306Object.defineProperty(exports, "__esModule", { value: true });
40307var expressApollo_1 = __webpack_require__(281);
40308exports.graphqlConnect = expressApollo_1.graphqlExpress;
40309exports.graphiqlConnect = expressApollo_1.graphiqlExpress;
40310//# sourceMappingURL=connectApollo.js.map
40311
40312/***/ }),
40313/* 591 */
40314/***/ (function(module, exports, __webpack_require__) {
40315
40316"use strict";
40317
40318function __export(m) {
40319 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
40320}
40321Object.defineProperty(exports, "__esModule", { value: true });
40322__export(__webpack_require__(592));
40323__export(__webpack_require__(599));
40324__export(__webpack_require__(118));
40325__export(__webpack_require__(184));
40326//# sourceMappingURL=index.js.map
40327
40328/***/ }),
40329/* 592 */
40330/***/ (function(module, exports, __webpack_require__) {
40331
40332"use strict";
40333
40334var __assign = (this && this.__assign) || Object.assign || function(t) {
40335 for (var s, i = 1, n = arguments.length; i < n; i++) {
40336 s = arguments[i];
40337 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
40338 t[p] = s[p];
40339 }
40340 return t;
40341};
40342Object.defineProperty(exports, "__esModule", { value: true });
40343var _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
40344var NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
40345var Backoff = __webpack_require__(593);
40346var eventemitter3_1 = __webpack_require__(594);
40347var isString = __webpack_require__(285);
40348var isObject = __webpack_require__(286);
40349var printer_1 = __webpack_require__(28);
40350var getOperationAST_1 = __webpack_require__(279);
40351var symbol_observable_1 = __webpack_require__(595);
40352var protocol_1 = __webpack_require__(184);
40353var defaults_1 = __webpack_require__(598);
40354var message_types_1 = __webpack_require__(118);
40355var SubscriptionClient = (function () {
40356 function SubscriptionClient(url, options, webSocketImpl) {
40357 var _a = (options || {}), _b = _a.connectionCallback, connectionCallback = _b === void 0 ? undefined : _b, _c = _a.connectionParams, connectionParams = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? defaults_1.WS_TIMEOUT : _d, _e = _a.reconnect, reconnect = _e === void 0 ? false : _e, _f = _a.reconnectionAttempts, reconnectionAttempts = _f === void 0 ? Infinity : _f, _g = _a.lazy, lazy = _g === void 0 ? false : _g;
40358 this.wsImpl = webSocketImpl || NativeWebSocket;
40359 if (!this.wsImpl) {
40360 throw new Error('Unable to find native implementation, or alternative implementation for WebSocket!');
40361 }
40362 this.connectionParams = connectionParams;
40363 this.connectionCallback = connectionCallback;
40364 this.url = url;
40365 this.operations = {};
40366 this.nextOperationId = 0;
40367 this.wsTimeout = timeout;
40368 this.unsentMessagesQueue = [];
40369 this.reconnect = reconnect;
40370 this.reconnecting = false;
40371 this.reconnectionAttempts = reconnectionAttempts;
40372 this.lazy = !!lazy;
40373 this.closedByUser = false;
40374 this.backoff = new Backoff({ jitter: 0.5 });
40375 this.eventEmitter = new eventemitter3_1.EventEmitter();
40376 this.middlewares = [];
40377 this.client = null;
40378 this.maxConnectTimeGenerator = this.createMaxConnectTimeGenerator();
40379 if (!this.lazy) {
40380 this.connect();
40381 }
40382 }
40383 Object.defineProperty(SubscriptionClient.prototype, "status", {
40384 get: function () {
40385 if (this.client === null) {
40386 return this.wsImpl.CLOSED;
40387 }
40388 return this.client.readyState;
40389 },
40390 enumerable: true,
40391 configurable: true
40392 });
40393 SubscriptionClient.prototype.close = function (isForced, closedByUser) {
40394 if (isForced === void 0) { isForced = true; }
40395 if (closedByUser === void 0) { closedByUser = true; }
40396 if (this.client !== null) {
40397 this.closedByUser = closedByUser;
40398 if (isForced) {
40399 this.clearCheckConnectionInterval();
40400 this.clearMaxConnectTimeout();
40401 this.clearTryReconnectTimeout();
40402 this.unsubscribeAll();
40403 this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_TERMINATE, null);
40404 }
40405 this.client.close();
40406 this.client = null;
40407 this.eventEmitter.emit('disconnected');
40408 if (!isForced) {
40409 this.tryReconnect();
40410 }
40411 }
40412 };
40413 SubscriptionClient.prototype.request = function (request) {
40414 var getObserver = this.getObserver.bind(this);
40415 var executeOperation = this.executeOperation.bind(this);
40416 var unsubscribe = this.unsubscribe.bind(this);
40417 var opId;
40418 return _a = {},
40419 _a[symbol_observable_1.default] = function () {
40420 return this;
40421 },
40422 _a.subscribe = function (observerOrNext, onError, onComplete) {
40423 var observer = getObserver(observerOrNext, onError, onComplete);
40424 opId = executeOperation(request, function (error, result) {
40425 if (error === null && result === null) {
40426 if (observer.complete) {
40427 observer.complete();
40428 }
40429 }
40430 else if (error) {
40431 if (observer.error) {
40432 observer.error(error[0]);
40433 }
40434 }
40435 else {
40436 if (observer.next) {
40437 observer.next(result);
40438 }
40439 }
40440 });
40441 return {
40442 unsubscribe: function () {
40443 if (opId) {
40444 unsubscribe(opId);
40445 opId = null;
40446 }
40447 },
40448 };
40449 },
40450 _a;
40451 var _a;
40452 };
40453 SubscriptionClient.prototype.on = function (eventName, callback, context) {
40454 var handler = this.eventEmitter.on(eventName, callback, context);
40455 return function () {
40456 handler.off(eventName, callback, context);
40457 };
40458 };
40459 SubscriptionClient.prototype.onConnected = function (callback, context) {
40460 return this.on('connected', callback, context);
40461 };
40462 SubscriptionClient.prototype.onConnecting = function (callback, context) {
40463 return this.on('connecting', callback, context);
40464 };
40465 SubscriptionClient.prototype.onDisconnected = function (callback, context) {
40466 return this.on('disconnected', callback, context);
40467 };
40468 SubscriptionClient.prototype.onReconnected = function (callback, context) {
40469 return this.on('reconnected', callback, context);
40470 };
40471 SubscriptionClient.prototype.onReconnecting = function (callback, context) {
40472 return this.on('reconnecting', callback, context);
40473 };
40474 SubscriptionClient.prototype.unsubscribeAll = function () {
40475 var _this = this;
40476 Object.keys(this.operations).forEach(function (subId) {
40477 _this.unsubscribe(subId);
40478 });
40479 };
40480 SubscriptionClient.prototype.applyMiddlewares = function (options) {
40481 var _this = this;
40482 return new Promise(function (resolve, reject) {
40483 var queue = function (funcs, scope) {
40484 var next = function (error) {
40485 if (error) {
40486 reject(error);
40487 }
40488 else {
40489 if (funcs.length > 0) {
40490 var f = funcs.shift();
40491 if (f) {
40492 f.applyMiddleware.apply(scope, [options, next]);
40493 }
40494 }
40495 else {
40496 resolve(options);
40497 }
40498 }
40499 };
40500 next();
40501 };
40502 queue(_this.middlewares.slice(), _this);
40503 });
40504 };
40505 SubscriptionClient.prototype.use = function (middlewares) {
40506 var _this = this;
40507 middlewares.map(function (middleware) {
40508 if (typeof middleware.applyMiddleware === 'function') {
40509 _this.middlewares.push(middleware);
40510 }
40511 else {
40512 throw new Error('Middleware must implement the applyMiddleware function.');
40513 }
40514 });
40515 return this;
40516 };
40517 SubscriptionClient.prototype.executeOperation = function (options, handler) {
40518 var _this = this;
40519 if (this.client === null) {
40520 this.connect();
40521 }
40522 var opId = this.generateOperationId();
40523 this.operations[opId] = { options: options, handler: handler };
40524 this.applyMiddlewares(options)
40525 .then(function (processedOptions) {
40526 _this.checkOperationOptions(processedOptions, handler);
40527 if (_this.operations[opId]) {
40528 _this.operations[opId] = { options: processedOptions, handler: handler };
40529 _this.sendMessage(opId, message_types_1.default.GQL_START, processedOptions);
40530 }
40531 })
40532 .catch(function (error) {
40533 _this.unsubscribe(opId);
40534 handler(_this.formatErrors(error));
40535 });
40536 return opId;
40537 };
40538 SubscriptionClient.prototype.getObserver = function (observerOrNext, error, complete) {
40539 if (typeof observerOrNext === 'function') {
40540 return {
40541 next: function (v) { return observerOrNext(v); },
40542 error: function (e) { return error && error(e); },
40543 complete: function () { return complete && complete(); },
40544 };
40545 }
40546 return observerOrNext;
40547 };
40548 SubscriptionClient.prototype.createMaxConnectTimeGenerator = function () {
40549 var minValue = 1000;
40550 var maxValue = this.wsTimeout;
40551 return new Backoff({
40552 min: minValue,
40553 max: maxValue,
40554 factor: 1.2,
40555 });
40556 };
40557 SubscriptionClient.prototype.clearCheckConnectionInterval = function () {
40558 if (this.checkConnectionIntervalId) {
40559 clearInterval(this.checkConnectionIntervalId);
40560 this.checkConnectionIntervalId = null;
40561 }
40562 };
40563 SubscriptionClient.prototype.clearMaxConnectTimeout = function () {
40564 if (this.maxConnectTimeoutId) {
40565 clearTimeout(this.maxConnectTimeoutId);
40566 this.maxConnectTimeoutId = null;
40567 }
40568 };
40569 SubscriptionClient.prototype.clearTryReconnectTimeout = function () {
40570 if (this.tryReconnectTimeoutId) {
40571 clearTimeout(this.tryReconnectTimeoutId);
40572 this.tryReconnectTimeoutId = null;
40573 }
40574 };
40575 SubscriptionClient.prototype.checkOperationOptions = function (options, handler) {
40576 var query = options.query, variables = options.variables, operationName = options.operationName;
40577 if (!query) {
40578 throw new Error('Must provide a query.');
40579 }
40580 if (!handler) {
40581 throw new Error('Must provide an handler.');
40582 }
40583 if ((!isString(query) && !getOperationAST_1.getOperationAST(query, operationName)) ||
40584 (operationName && !isString(operationName)) ||
40585 (variables && !isObject(variables))) {
40586 throw new Error('Incorrect option types. query must be a string or a document,' +
40587 '`operationName` must be a string, and `variables` must be an object.');
40588 }
40589 };
40590 SubscriptionClient.prototype.buildMessage = function (id, type, payload) {
40591 var payloadToReturn = payload && payload.query ? __assign({}, payload, { query: typeof payload.query === 'string' ? payload.query : printer_1.print(payload.query) }) :
40592 payload;
40593 return {
40594 id: id,
40595 type: type,
40596 payload: payloadToReturn,
40597 };
40598 };
40599 SubscriptionClient.prototype.formatErrors = function (errors) {
40600 if (Array.isArray(errors)) {
40601 return errors;
40602 }
40603 if (errors && errors.errors) {
40604 return this.formatErrors(errors.errors);
40605 }
40606 if (errors && errors.message) {
40607 return [errors];
40608 }
40609 return [{
40610 name: 'FormatedError',
40611 message: 'Unknown error',
40612 originalError: errors,
40613 }];
40614 };
40615 SubscriptionClient.prototype.sendMessage = function (id, type, payload) {
40616 this.sendMessageRaw(this.buildMessage(id, type, payload));
40617 };
40618 SubscriptionClient.prototype.sendMessageRaw = function (message) {
40619 switch (this.status) {
40620 case this.wsImpl.OPEN:
40621 var serializedMessage = JSON.stringify(message);
40622 try {
40623 JSON.parse(serializedMessage);
40624 }
40625 catch (e) {
40626 throw new Error("Message must be JSON-serializable. Got: " + message);
40627 }
40628 this.client.send(serializedMessage);
40629 break;
40630 case this.wsImpl.CONNECTING:
40631 this.unsentMessagesQueue.push(message);
40632 break;
40633 default:
40634 if (!this.reconnecting) {
40635 throw new Error('A message was not sent because socket is not connected, is closing or ' +
40636 'is already closed. Message was: ' + JSON.stringify(message));
40637 }
40638 }
40639 };
40640 SubscriptionClient.prototype.generateOperationId = function () {
40641 return String(++this.nextOperationId);
40642 };
40643 SubscriptionClient.prototype.tryReconnect = function () {
40644 var _this = this;
40645 if (!this.reconnect || this.backoff.attempts >= this.reconnectionAttempts) {
40646 return;
40647 }
40648 if (!this.reconnecting) {
40649 Object.keys(this.operations).forEach(function (key) {
40650 _this.unsentMessagesQueue.push(_this.buildMessage(key, message_types_1.default.GQL_START, _this.operations[key].options));
40651 });
40652 this.reconnecting = true;
40653 }
40654 this.clearTryReconnectTimeout();
40655 var delay = this.backoff.duration();
40656 this.tryReconnectTimeoutId = setTimeout(function () {
40657 _this.connect();
40658 }, delay);
40659 };
40660 SubscriptionClient.prototype.flushUnsentMessagesQueue = function () {
40661 var _this = this;
40662 this.unsentMessagesQueue.forEach(function (message) {
40663 _this.sendMessageRaw(message);
40664 });
40665 this.unsentMessagesQueue = [];
40666 };
40667 SubscriptionClient.prototype.checkConnection = function () {
40668 if (this.wasKeepAliveReceived) {
40669 this.wasKeepAliveReceived = false;
40670 return;
40671 }
40672 if (!this.reconnecting) {
40673 this.close(false, true);
40674 }
40675 };
40676 SubscriptionClient.prototype.checkMaxConnectTimeout = function () {
40677 var _this = this;
40678 this.clearMaxConnectTimeout();
40679 this.maxConnectTimeoutId = setTimeout(function () {
40680 if (_this.status !== _this.wsImpl.OPEN) {
40681 _this.close(false, true);
40682 }
40683 }, this.maxConnectTimeGenerator.duration());
40684 };
40685 SubscriptionClient.prototype.connect = function () {
40686 var _this = this;
40687 this.client = new this.wsImpl(this.url, protocol_1.GRAPHQL_WS);
40688 this.checkMaxConnectTimeout();
40689 this.client.onopen = function () {
40690 _this.clearMaxConnectTimeout();
40691 _this.closedByUser = false;
40692 _this.eventEmitter.emit(_this.reconnecting ? 'reconnecting' : 'connecting');
40693 var payload = typeof _this.connectionParams === 'function' ? _this.connectionParams() : _this.connectionParams;
40694 _this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_INIT, payload);
40695 _this.flushUnsentMessagesQueue();
40696 };
40697 this.client.onclose = function () {
40698 if (!_this.closedByUser) {
40699 _this.close(false, false);
40700 }
40701 };
40702 this.client.onerror = function () {
40703 };
40704 this.client.onmessage = function (_a) {
40705 var data = _a.data;
40706 _this.processReceivedData(data);
40707 };
40708 };
40709 SubscriptionClient.prototype.processReceivedData = function (receivedData) {
40710 var parsedMessage;
40711 var opId;
40712 try {
40713 parsedMessage = JSON.parse(receivedData);
40714 opId = parsedMessage.id;
40715 }
40716 catch (e) {
40717 throw new Error("Message must be JSON-parseable. Got: " + receivedData);
40718 }
40719 if ([message_types_1.default.GQL_DATA,
40720 message_types_1.default.GQL_COMPLETE,
40721 message_types_1.default.GQL_ERROR,
40722 ].indexOf(parsedMessage.type) !== -1 && !this.operations[opId]) {
40723 this.unsubscribe(opId);
40724 return;
40725 }
40726 switch (parsedMessage.type) {
40727 case message_types_1.default.GQL_CONNECTION_ERROR:
40728 if (this.connectionCallback) {
40729 this.connectionCallback(parsedMessage.payload);
40730 }
40731 break;
40732 case message_types_1.default.GQL_CONNECTION_ACK:
40733 this.eventEmitter.emit(this.reconnecting ? 'reconnected' : 'connected');
40734 this.reconnecting = false;
40735 this.backoff.reset();
40736 this.maxConnectTimeGenerator.reset();
40737 if (this.connectionCallback) {
40738 this.connectionCallback();
40739 }
40740 break;
40741 case message_types_1.default.GQL_COMPLETE:
40742 this.operations[opId].handler(null, null);
40743 delete this.operations[opId];
40744 break;
40745 case message_types_1.default.GQL_ERROR:
40746 this.operations[opId].handler(this.formatErrors(parsedMessage.payload), null);
40747 delete this.operations[opId];
40748 break;
40749 case message_types_1.default.GQL_DATA:
40750 var parsedPayload = !parsedMessage.payload.errors ?
40751 parsedMessage.payload : __assign({}, parsedMessage.payload, { errors: this.formatErrors(parsedMessage.payload.errors) });
40752 this.operations[opId].handler(null, parsedPayload);
40753 break;
40754 case message_types_1.default.GQL_CONNECTION_KEEP_ALIVE:
40755 var firstKA = typeof this.wasKeepAliveReceived === 'undefined';
40756 this.wasKeepAliveReceived = true;
40757 if (firstKA) {
40758 this.checkConnection();
40759 }
40760 if (this.checkConnectionIntervalId) {
40761 clearInterval(this.checkConnectionIntervalId);
40762 this.checkConnection();
40763 }
40764 this.checkConnectionIntervalId = setInterval(this.checkConnection.bind(this), this.wsTimeout);
40765 break;
40766 default:
40767 throw new Error('Invalid message type!');
40768 }
40769 };
40770 SubscriptionClient.prototype.unsubscribe = function (opId) {
40771 if (this.operations[opId]) {
40772 delete this.operations[opId];
40773 this.sendMessage(opId, message_types_1.default.GQL_STOP, undefined);
40774 }
40775 };
40776 return SubscriptionClient;
40777}());
40778exports.SubscriptionClient = SubscriptionClient;
40779//# sourceMappingURL=client.js.map
40780
40781/***/ }),
40782/* 593 */
40783/***/ (function(module, exports) {
40784
40785
40786/**
40787 * Expose `Backoff`.
40788 */
40789
40790module.exports = Backoff;
40791
40792/**
40793 * Initialize backoff timer with `opts`.
40794 *
40795 * - `min` initial timeout in milliseconds [100]
40796 * - `max` max timeout [10000]
40797 * - `jitter` [0]
40798 * - `factor` [2]
40799 *
40800 * @param {Object} opts
40801 * @api public
40802 */
40803
40804function Backoff(opts) {
40805 opts = opts || {};
40806 this.ms = opts.min || 100;
40807 this.max = opts.max || 10000;
40808 this.factor = opts.factor || 2;
40809 this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
40810 this.attempts = 0;
40811}
40812
40813/**
40814 * Return the backoff duration.
40815 *
40816 * @return {Number}
40817 * @api public
40818 */
40819
40820Backoff.prototype.duration = function(){
40821 var ms = this.ms * Math.pow(this.factor, this.attempts++);
40822 if (this.jitter) {
40823 var rand = Math.random();
40824 var deviation = Math.floor(rand * this.jitter * ms);
40825 ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;
40826 }
40827 return Math.min(ms, this.max) | 0;
40828};
40829
40830/**
40831 * Reset the number of attempts.
40832 *
40833 * @api public
40834 */
40835
40836Backoff.prototype.reset = function(){
40837 this.attempts = 0;
40838};
40839
40840/**
40841 * Set the minimum duration
40842 *
40843 * @api public
40844 */
40845
40846Backoff.prototype.setMin = function(min){
40847 this.ms = min;
40848};
40849
40850/**
40851 * Set the maximum duration
40852 *
40853 * @api public
40854 */
40855
40856Backoff.prototype.setMax = function(max){
40857 this.max = max;
40858};
40859
40860/**
40861 * Set the jitter
40862 *
40863 * @api public
40864 */
40865
40866Backoff.prototype.setJitter = function(jitter){
40867 this.jitter = jitter;
40868};
40869
40870
40871
40872/***/ }),
40873/* 594 */
40874/***/ (function(module, exports, __webpack_require__) {
40875
40876"use strict";
40877
40878
40879var has = Object.prototype.hasOwnProperty
40880 , prefix = '~';
40881
40882/**
40883 * Constructor to create a storage for our `EE` objects.
40884 * An `Events` instance is a plain object whose properties are event names.
40885 *
40886 * @constructor
40887 * @api private
40888 */
40889function Events() {}
40890
40891//
40892// We try to not inherit from `Object.prototype`. In some engines creating an
40893// instance in this way is faster than calling `Object.create(null)` directly.
40894// If `Object.create(null)` is not supported we prefix the event names with a
40895// character to make sure that the built-in object properties are not
40896// overridden or used as an attack vector.
40897//
40898if (Object.create) {
40899 Events.prototype = Object.create(null);
40900
40901 //
40902 // This hack is needed because the `__proto__` property is still inherited in
40903 // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
40904 //
40905 if (!new Events().__proto__) prefix = false;
40906}
40907
40908/**
40909 * Representation of a single event listener.
40910 *
40911 * @param {Function} fn The listener function.
40912 * @param {Mixed} context The context to invoke the listener with.
40913 * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
40914 * @constructor
40915 * @api private
40916 */
40917function EE(fn, context, once) {
40918 this.fn = fn;
40919 this.context = context;
40920 this.once = once || false;
40921}
40922
40923/**
40924 * Minimal `EventEmitter` interface that is molded against the Node.js
40925 * `EventEmitter` interface.
40926 *
40927 * @constructor
40928 * @api public
40929 */
40930function EventEmitter() {
40931 this._events = new Events();
40932 this._eventsCount = 0;
40933}
40934
40935/**
40936 * Return an array listing the events for which the emitter has registered
40937 * listeners.
40938 *
40939 * @returns {Array}
40940 * @api public
40941 */
40942EventEmitter.prototype.eventNames = function eventNames() {
40943 var names = []
40944 , events
40945 , name;
40946
40947 if (this._eventsCount === 0) return names;
40948
40949 for (name in (events = this._events)) {
40950 if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
40951 }
40952
40953 if (Object.getOwnPropertySymbols) {
40954 return names.concat(Object.getOwnPropertySymbols(events));
40955 }
40956
40957 return names;
40958};
40959
40960/**
40961 * Return the listeners registered for a given event.
40962 *
40963 * @param {String|Symbol} event The event name.
40964 * @param {Boolean} exists Only check if there are listeners.
40965 * @returns {Array|Boolean}
40966 * @api public
40967 */
40968EventEmitter.prototype.listeners = function listeners(event, exists) {
40969 var evt = prefix ? prefix + event : event
40970 , available = this._events[evt];
40971
40972 if (exists) return !!available;
40973 if (!available) return [];
40974 if (available.fn) return [available.fn];
40975
40976 for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {
40977 ee[i] = available[i].fn;
40978 }
40979
40980 return ee;
40981};
40982
40983/**
40984 * Calls each of the listeners registered for a given event.
40985 *
40986 * @param {String|Symbol} event The event name.
40987 * @returns {Boolean} `true` if the event had listeners, else `false`.
40988 * @api public
40989 */
40990EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
40991 var evt = prefix ? prefix + event : event;
40992
40993 if (!this._events[evt]) return false;
40994
40995 var listeners = this._events[evt]
40996 , len = arguments.length
40997 , args
40998 , i;
40999
41000 if (listeners.fn) {
41001 if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);
41002
41003 switch (len) {
41004 case 1: return listeners.fn.call(listeners.context), true;
41005 case 2: return listeners.fn.call(listeners.context, a1), true;
41006 case 3: return listeners.fn.call(listeners.context, a1, a2), true;
41007 case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
41008 case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
41009 case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
41010 }
41011
41012 for (i = 1, args = new Array(len -1); i < len; i++) {
41013 args[i - 1] = arguments[i];
41014 }
41015
41016 listeners.fn.apply(listeners.context, args);
41017 } else {
41018 var length = listeners.length
41019 , j;
41020
41021 for (i = 0; i < length; i++) {
41022 if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);
41023
41024 switch (len) {
41025 case 1: listeners[i].fn.call(listeners[i].context); break;
41026 case 2: listeners[i].fn.call(listeners[i].context, a1); break;
41027 case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
41028 case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
41029 default:
41030 if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
41031 args[j - 1] = arguments[j];
41032 }
41033
41034 listeners[i].fn.apply(listeners[i].context, args);
41035 }
41036 }
41037 }
41038
41039 return true;
41040};
41041
41042/**
41043 * Add a listener for a given event.
41044 *
41045 * @param {String|Symbol} event The event name.
41046 * @param {Function} fn The listener function.
41047 * @param {Mixed} [context=this] The context to invoke the listener with.
41048 * @returns {EventEmitter} `this`.
41049 * @api public
41050 */
41051EventEmitter.prototype.on = function on(event, fn, context) {
41052 var listener = new EE(fn, context || this)
41053 , evt = prefix ? prefix + event : event;
41054
41055 if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;
41056 else if (!this._events[evt].fn) this._events[evt].push(listener);
41057 else this._events[evt] = [this._events[evt], listener];
41058
41059 return this;
41060};
41061
41062/**
41063 * Add a one-time listener for a given event.
41064 *
41065 * @param {String|Symbol} event The event name.
41066 * @param {Function} fn The listener function.
41067 * @param {Mixed} [context=this] The context to invoke the listener with.
41068 * @returns {EventEmitter} `this`.
41069 * @api public
41070 */
41071EventEmitter.prototype.once = function once(event, fn, context) {
41072 var listener = new EE(fn, context || this, true)
41073 , evt = prefix ? prefix + event : event;
41074
41075 if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;
41076 else if (!this._events[evt].fn) this._events[evt].push(listener);
41077 else this._events[evt] = [this._events[evt], listener];
41078
41079 return this;
41080};
41081
41082/**
41083 * Remove the listeners of a given event.
41084 *
41085 * @param {String|Symbol} event The event name.
41086 * @param {Function} fn Only remove the listeners that match this function.
41087 * @param {Mixed} context Only remove the listeners that have this context.
41088 * @param {Boolean} once Only remove one-time listeners.
41089 * @returns {EventEmitter} `this`.
41090 * @api public
41091 */
41092EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
41093 var evt = prefix ? prefix + event : event;
41094
41095 if (!this._events[evt]) return this;
41096 if (!fn) {
41097 if (--this._eventsCount === 0) this._events = new Events();
41098 else delete this._events[evt];
41099 return this;
41100 }
41101
41102 var listeners = this._events[evt];
41103
41104 if (listeners.fn) {
41105 if (
41106 listeners.fn === fn
41107 && (!once || listeners.once)
41108 && (!context || listeners.context === context)
41109 ) {
41110 if (--this._eventsCount === 0) this._events = new Events();
41111 else delete this._events[evt];
41112 }
41113 } else {
41114 for (var i = 0, events = [], length = listeners.length; i < length; i++) {
41115 if (
41116 listeners[i].fn !== fn
41117 || (once && !listeners[i].once)
41118 || (context && listeners[i].context !== context)
41119 ) {
41120 events.push(listeners[i]);
41121 }
41122 }
41123
41124 //
41125 // Reset the array, or remove it completely if we have no more listeners.
41126 //
41127 if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
41128 else if (--this._eventsCount === 0) this._events = new Events();
41129 else delete this._events[evt];
41130 }
41131
41132 return this;
41133};
41134
41135/**
41136 * Remove all listeners, or those of the specified event.
41137 *
41138 * @param {String|Symbol} [event] The event name.
41139 * @returns {EventEmitter} `this`.
41140 * @api public
41141 */
41142EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
41143 var evt;
41144
41145 if (event) {
41146 evt = prefix ? prefix + event : event;
41147 if (this._events[evt]) {
41148 if (--this._eventsCount === 0) this._events = new Events();
41149 else delete this._events[evt];
41150 }
41151 } else {
41152 this._events = new Events();
41153 this._eventsCount = 0;
41154 }
41155
41156 return this;
41157};
41158
41159//
41160// Alias methods names because people roll like that.
41161//
41162EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
41163EventEmitter.prototype.addListener = EventEmitter.prototype.on;
41164
41165//
41166// This function doesn't apply anymore.
41167//
41168EventEmitter.prototype.setMaxListeners = function setMaxListeners() {
41169 return this;
41170};
41171
41172//
41173// Expose the prefix.
41174//
41175EventEmitter.prefixed = prefix;
41176
41177//
41178// Allow `EventEmitter` to be imported as module namespace.
41179//
41180EventEmitter.EventEmitter = EventEmitter;
41181
41182//
41183// Expose the module.
41184//
41185if (true) {
41186 module.exports = EventEmitter;
41187}
41188
41189
41190/***/ }),
41191/* 595 */
41192/***/ (function(module, __webpack_exports__, __webpack_require__) {
41193
41194"use strict";
41195Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
41196/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ponyfill_js__ = __webpack_require__(597);
41197/* global window */
41198
41199
41200var root;
41201
41202if (typeof self !== 'undefined') {
41203 root = self;
41204} else if (typeof window !== 'undefined') {
41205 root = window;
41206} else if (typeof global !== 'undefined') {
41207 root = global;
41208} else if (true) {
41209 root = module;
41210} else {
41211 root = Function('return this')();
41212}
41213
41214var result = Object(__WEBPACK_IMPORTED_MODULE_0__ponyfill_js__["a" /* default */])(root);
41215/* harmony default export */ __webpack_exports__["default"] = (result);
41216
41217/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(596)(module)))
41218
41219/***/ }),
41220/* 596 */
41221/***/ (function(module, exports) {
41222
41223module.exports = function(originalModule) {
41224 if(!originalModule.webpackPolyfill) {
41225 var module = Object.create(originalModule);
41226 // module.parent = undefined by default
41227 if(!module.children) module.children = [];
41228 Object.defineProperty(module, "loaded", {
41229 enumerable: true,
41230 get: function() {
41231 return module.l;
41232 }
41233 });
41234 Object.defineProperty(module, "id", {
41235 enumerable: true,
41236 get: function() {
41237 return module.i;
41238 }
41239 });
41240 Object.defineProperty(module, "exports", {
41241 enumerable: true,
41242 });
41243 module.webpackPolyfill = 1;
41244 }
41245 return module;
41246};
41247
41248
41249/***/ }),
41250/* 597 */
41251/***/ (function(module, __webpack_exports__, __webpack_require__) {
41252
41253"use strict";
41254/* harmony export (immutable) */ __webpack_exports__["a"] = symbolObservablePonyfill;
41255function symbolObservablePonyfill(root) {
41256 var result;
41257 var Symbol = root.Symbol;
41258
41259 if (typeof Symbol === 'function') {
41260 if (Symbol.observable) {
41261 result = Symbol.observable;
41262 } else {
41263 result = Symbol('observable');
41264 Symbol.observable = result;
41265 }
41266 } else {
41267 result = '@@observable';
41268 }
41269
41270 return result;
41271};
41272
41273
41274/***/ }),
41275/* 598 */
41276/***/ (function(module, exports, __webpack_require__) {
41277
41278"use strict";
41279
41280Object.defineProperty(exports, "__esModule", { value: true });
41281var WS_TIMEOUT = 10000;
41282exports.WS_TIMEOUT = WS_TIMEOUT;
41283//# sourceMappingURL=defaults.js.map
41284
41285/***/ }),
41286/* 599 */
41287/***/ (function(module, exports, __webpack_require__) {
41288
41289"use strict";
41290
41291Object.defineProperty(exports, "__esModule", { value: true });
41292var WebSocket = __webpack_require__(600);
41293var message_types_1 = __webpack_require__(118);
41294var protocol_1 = __webpack_require__(184);
41295var isObject = __webpack_require__(286);
41296var graphql_1 = __webpack_require__(14);
41297var empty_iterable_1 = __webpack_require__(605);
41298var iterall_1 = __webpack_require__(39);
41299var is_subscriptions_1 = __webpack_require__(606);
41300var parse_legacy_protocol_1 = __webpack_require__(607);
41301var SubscriptionServer = (function () {
41302 function SubscriptionServer(options, socketOptions) {
41303 var _this = this;
41304 var onOperation = options.onOperation, onOperationComplete = options.onOperationComplete, onConnect = options.onConnect, onDisconnect = options.onDisconnect, keepAlive = options.keepAlive;
41305 this.specifiedRules = options.validationRules || graphql_1.specifiedRules;
41306 this.loadExecutor(options);
41307 this.onOperation = onOperation;
41308 this.onOperationComplete = onOperationComplete;
41309 this.onConnect = onConnect;
41310 this.onDisconnect = onDisconnect;
41311 this.keepAlive = keepAlive;
41312 this.wsServer = new WebSocket.Server(socketOptions || {});
41313 var connectionHandler = (function (socket, request) {
41314 socket.upgradeReq = request;
41315 if (socket.protocol === undefined ||
41316 (socket.protocol.indexOf(protocol_1.GRAPHQL_WS) === -1 && socket.protocol.indexOf(protocol_1.GRAPHQL_SUBSCRIPTIONS) === -1)) {
41317 socket.close(1002);
41318 return;
41319 }
41320 var connectionContext = Object.create(null);
41321 connectionContext.initPromise = Promise.resolve(true);
41322 connectionContext.isLegacy = false;
41323 connectionContext.socket = socket;
41324 connectionContext.operations = {};
41325 var connectionClosedHandler = function (error) {
41326 if (error) {
41327 _this.sendError(connectionContext, '', { message: error.message ? error.message : error }, message_types_1.default.GQL_CONNECTION_ERROR);
41328 setTimeout(function () {
41329 connectionContext.socket.close(1011);
41330 }, 10);
41331 }
41332 _this.onClose(connectionContext);
41333 if (_this.onDisconnect) {
41334 _this.onDisconnect(socket);
41335 }
41336 };
41337 socket.on('error', connectionClosedHandler);
41338 socket.on('close', connectionClosedHandler);
41339 socket.on('message', _this.onMessage(connectionContext));
41340 });
41341 this.wsServer.on('connection', connectionHandler);
41342 this.closeHandler = function () {
41343 _this.wsServer.removeListener('connection', connectionHandler);
41344 _this.wsServer.close();
41345 };
41346 }
41347 SubscriptionServer.create = function (options, socketOptions) {
41348 return new SubscriptionServer(options, socketOptions);
41349 };
41350 Object.defineProperty(SubscriptionServer.prototype, "server", {
41351 get: function () {
41352 return this.wsServer;
41353 },
41354 enumerable: true,
41355 configurable: true
41356 });
41357 SubscriptionServer.prototype.close = function () {
41358 this.closeHandler();
41359 };
41360 SubscriptionServer.prototype.loadExecutor = function (options) {
41361 var execute = options.execute, subscribe = options.subscribe, schema = options.schema, rootValue = options.rootValue;
41362 if (!execute) {
41363 throw new Error('Must provide `execute` for websocket server constructor.');
41364 }
41365 if (!schema) {
41366 throw new Error('`schema` is missing');
41367 }
41368 this.schema = schema;
41369 this.rootValue = rootValue;
41370 this.execute = execute;
41371 this.subscribe = subscribe;
41372 };
41373 SubscriptionServer.prototype.unsubscribe = function (connectionContext, opId) {
41374 if (connectionContext.operations && connectionContext.operations[opId]) {
41375 if (connectionContext.operations[opId].return) {
41376 connectionContext.operations[opId].return();
41377 }
41378 delete connectionContext.operations[opId];
41379 if (this.onOperationComplete) {
41380 this.onOperationComplete(connectionContext.socket, opId);
41381 }
41382 }
41383 };
41384 SubscriptionServer.prototype.onClose = function (connectionContext) {
41385 var _this = this;
41386 Object.keys(connectionContext.operations).forEach(function (opId) {
41387 _this.unsubscribe(connectionContext, opId);
41388 });
41389 };
41390 SubscriptionServer.prototype.onMessage = function (connectionContext) {
41391 var _this = this;
41392 return function (message) {
41393 var parsedMessage;
41394 try {
41395 parsedMessage = parse_legacy_protocol_1.parseLegacyProtocolMessage(connectionContext, JSON.parse(message));
41396 }
41397 catch (e) {
41398 _this.sendError(connectionContext, null, { message: e.message }, message_types_1.default.GQL_CONNECTION_ERROR);
41399 return;
41400 }
41401 var opId = parsedMessage.id;
41402 switch (parsedMessage.type) {
41403 case message_types_1.default.GQL_CONNECTION_INIT:
41404 if (_this.onConnect) {
41405 connectionContext.initPromise = new Promise(function (resolve, reject) {
41406 try {
41407 resolve(_this.onConnect(parsedMessage.payload, connectionContext.socket, connectionContext));
41408 }
41409 catch (e) {
41410 reject(e);
41411 }
41412 });
41413 }
41414 connectionContext.initPromise.then(function (result) {
41415 if (result === false) {
41416 throw new Error('Prohibited connection!');
41417 }
41418 _this.sendMessage(connectionContext, undefined, message_types_1.default.GQL_CONNECTION_ACK, undefined);
41419 if (_this.keepAlive) {
41420 _this.sendKeepAlive(connectionContext);
41421 var keepAliveTimer_1 = setInterval(function () {
41422 if (connectionContext.socket.readyState === WebSocket.OPEN) {
41423 _this.sendKeepAlive(connectionContext);
41424 }
41425 else {
41426 clearInterval(keepAliveTimer_1);
41427 }
41428 }, _this.keepAlive);
41429 }
41430 }).catch(function (error) {
41431 _this.sendError(connectionContext, opId, { message: error.message }, message_types_1.default.GQL_CONNECTION_ERROR);
41432 setTimeout(function () {
41433 connectionContext.socket.close(1011);
41434 }, 10);
41435 });
41436 break;
41437 case message_types_1.default.GQL_CONNECTION_TERMINATE:
41438 connectionContext.socket.close();
41439 break;
41440 case message_types_1.default.GQL_START:
41441 connectionContext.initPromise.then(function (initResult) {
41442 if (connectionContext.operations && connectionContext.operations[opId]) {
41443 _this.unsubscribe(connectionContext, opId);
41444 }
41445 var baseParams = {
41446 query: parsedMessage.payload.query,
41447 variables: parsedMessage.payload.variables,
41448 operationName: parsedMessage.payload.operationName,
41449 context: isObject(initResult) ? Object.assign(Object.create(Object.getPrototypeOf(initResult)), initResult) : {},
41450 formatResponse: undefined,
41451 formatError: undefined,
41452 callback: undefined,
41453 };
41454 var promisedParams = Promise.resolve(baseParams);
41455 connectionContext.operations[opId] = empty_iterable_1.createEmptyIterable();
41456 if (_this.onOperation) {
41457 var messageForCallback = parsedMessage;
41458 promisedParams = Promise.resolve(_this.onOperation(messageForCallback, baseParams, connectionContext.socket));
41459 }
41460 promisedParams.then(function (params) {
41461 if (typeof params !== 'object') {
41462 var error = "Invalid params returned from onOperation! return values must be an object!";
41463 _this.sendError(connectionContext, opId, { message: error });
41464 throw new Error(error);
41465 }
41466 var document = typeof baseParams.query !== 'string' ? baseParams.query : graphql_1.parse(baseParams.query);
41467 var executionPromise;
41468 var validationErrors = graphql_1.validate(_this.schema, document, _this.specifiedRules);
41469 if (validationErrors.length > 0) {
41470 executionPromise = Promise.resolve({ errors: validationErrors });
41471 }
41472 else {
41473 var executor = _this.execute;
41474 if (_this.subscribe && is_subscriptions_1.isASubscriptionOperation(document, params.operationName)) {
41475 executor = _this.subscribe;
41476 }
41477 executionPromise = Promise.resolve(executor(_this.schema, document, _this.rootValue, params.context, params.variables, params.operationName));
41478 }
41479 return executionPromise.then(function (executionResult) { return ({
41480 executionIterable: iterall_1.isAsyncIterable(executionResult) ?
41481 executionResult : iterall_1.createAsyncIterator([executionResult]),
41482 params: params,
41483 }); });
41484 }).then(function (_a) {
41485 var executionIterable = _a.executionIterable, params = _a.params;
41486 iterall_1.forAwaitEach(executionIterable, function (value) {
41487 var result = value;
41488 if (params.formatResponse) {
41489 try {
41490 result = params.formatResponse(value, params);
41491 }
41492 catch (err) {
41493 console.error('Error in formatError function:', err);
41494 }
41495 }
41496 _this.sendMessage(connectionContext, opId, message_types_1.default.GQL_DATA, result);
41497 })
41498 .then(function () {
41499 _this.sendMessage(connectionContext, opId, message_types_1.default.GQL_COMPLETE, null);
41500 })
41501 .catch(function (e) {
41502 var error = e;
41503 if (params.formatError) {
41504 try {
41505 error = params.formatError(e, params);
41506 }
41507 catch (err) {
41508 console.error('Error in formatError function: ', err);
41509 }
41510 }
41511 if (Object.keys(e).length === 0) {
41512 error = { name: e.name, message: e.message };
41513 }
41514 _this.sendError(connectionContext, opId, error);
41515 });
41516 return executionIterable;
41517 }).then(function (subscription) {
41518 connectionContext.operations[opId] = subscription;
41519 }).then(function () {
41520 _this.sendMessage(connectionContext, opId, message_types_1.default.SUBSCRIPTION_SUCCESS, undefined);
41521 }).catch(function (e) {
41522 if (e.errors) {
41523 _this.sendMessage(connectionContext, opId, message_types_1.default.GQL_DATA, { errors: e.errors });
41524 }
41525 else {
41526 _this.sendError(connectionContext, opId, { message: e.message });
41527 }
41528 _this.unsubscribe(connectionContext, opId);
41529 return;
41530 });
41531 return promisedParams;
41532 }).catch(function (error) {
41533 _this.sendError(connectionContext, opId, { message: error.message });
41534 _this.unsubscribe(connectionContext, opId);
41535 });
41536 break;
41537 case message_types_1.default.GQL_STOP:
41538 _this.unsubscribe(connectionContext, opId);
41539 break;
41540 default:
41541 _this.sendError(connectionContext, opId, { message: 'Invalid message type!' });
41542 }
41543 };
41544 };
41545 SubscriptionServer.prototype.sendKeepAlive = function (connectionContext) {
41546 if (connectionContext.isLegacy) {
41547 this.sendMessage(connectionContext, undefined, message_types_1.default.KEEP_ALIVE, undefined);
41548 }
41549 else {
41550 this.sendMessage(connectionContext, undefined, message_types_1.default.GQL_CONNECTION_KEEP_ALIVE, undefined);
41551 }
41552 };
41553 SubscriptionServer.prototype.sendMessage = function (connectionContext, opId, type, payload) {
41554 var parsedMessage = parse_legacy_protocol_1.parseLegacyProtocolMessage(connectionContext, {
41555 type: type,
41556 id: opId,
41557 payload: payload,
41558 });
41559 if (parsedMessage && connectionContext.socket.readyState === WebSocket.OPEN) {
41560 connectionContext.socket.send(JSON.stringify(parsedMessage));
41561 }
41562 };
41563 SubscriptionServer.prototype.sendError = function (connectionContext, opId, errorPayload, overrideDefaultErrorType) {
41564 var sanitizedOverrideDefaultErrorType = overrideDefaultErrorType || message_types_1.default.GQL_ERROR;
41565 if ([
41566 message_types_1.default.GQL_CONNECTION_ERROR,
41567 message_types_1.default.GQL_ERROR,
41568 ].indexOf(sanitizedOverrideDefaultErrorType) === -1) {
41569 throw new Error('overrideDefaultErrorType should be one of the allowed error messages' +
41570 ' GQL_CONNECTION_ERROR or GQL_ERROR');
41571 }
41572 this.sendMessage(connectionContext, opId, sanitizedOverrideDefaultErrorType, errorPayload);
41573 };
41574 return SubscriptionServer;
41575}());
41576exports.SubscriptionServer = SubscriptionServer;
41577//# sourceMappingURL=server.js.map
41578
41579/***/ }),
41580/* 600 */
41581/***/ (function(module, exports, __webpack_require__) {
41582
41583"use strict";
41584/*!
41585 * ws: a node.js websocket client
41586 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
41587 * MIT Licensed
41588 */
41589
41590
41591
41592const WebSocket = __webpack_require__(287);
41593
41594WebSocket.Server = __webpack_require__(604);
41595WebSocket.Receiver = __webpack_require__(291);
41596WebSocket.Sender = __webpack_require__(293);
41597
41598module.exports = WebSocket;
41599
41600
41601/***/ }),
41602/* 601 */
41603/***/ (function(module, exports, __webpack_require__) {
41604
41605"use strict";
41606
41607
41608function Queue(options) {
41609 if (!(this instanceof Queue)) {
41610 return new Queue(options);
41611 }
41612
41613 options = options || {};
41614 this.concurrency = options.concurrency || Infinity;
41615 this.pending = 0;
41616 this.jobs = [];
41617 this.cbs = [];
41618 this._done = done.bind(this);
41619}
41620
41621var arrayAddMethods = [
41622 'push',
41623 'unshift',
41624 'splice'
41625];
41626
41627arrayAddMethods.forEach(function(method) {
41628 Queue.prototype[method] = function() {
41629 var methodResult = Array.prototype[method].apply(this.jobs, arguments);
41630 this._run();
41631 return methodResult;
41632 };
41633});
41634
41635Object.defineProperty(Queue.prototype, 'length', {
41636 get: function() {
41637 return this.pending + this.jobs.length;
41638 }
41639});
41640
41641Queue.prototype._run = function() {
41642 if (this.pending === this.concurrency) {
41643 return;
41644 }
41645 if (this.jobs.length) {
41646 var job = this.jobs.shift();
41647 this.pending++;
41648 job(this._done);
41649 this._run();
41650 }
41651
41652 if (this.pending === 0) {
41653 while (this.cbs.length !== 0) {
41654 var cb = this.cbs.pop();
41655 process.nextTick(cb);
41656 }
41657 }
41658};
41659
41660Queue.prototype.onDone = function(cb) {
41661 if (typeof cb === 'function') {
41662 this.cbs.push(cb);
41663 this._run();
41664 }
41665};
41666
41667function done() {
41668 this.pending--;
41669 this._run();
41670}
41671
41672module.exports = Queue;
41673
41674
41675/***/ }),
41676/* 602 */
41677/***/ (function(module, exports, __webpack_require__) {
41678
41679"use strict";
41680
41681
41682/**
41683 * Class representing an event.
41684 *
41685 * @private
41686 */
41687class Event {
41688 /**
41689 * Create a new `Event`.
41690 *
41691 * @param {String} type The name of the event
41692 * @param {Object} target A reference to the target to which the event was dispatched
41693 */
41694 constructor (type, target) {
41695 this.target = target;
41696 this.type = type;
41697 }
41698}
41699
41700/**
41701 * Class representing a message event.
41702 *
41703 * @extends Event
41704 * @private
41705 */
41706class MessageEvent extends Event {
41707 /**
41708 * Create a new `MessageEvent`.
41709 *
41710 * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data
41711 * @param {WebSocket} target A reference to the target to which the event was dispatched
41712 */
41713 constructor (data, target) {
41714 super('message', target);
41715
41716 this.data = data;
41717 }
41718}
41719
41720/**
41721 * Class representing a close event.
41722 *
41723 * @extends Event
41724 * @private
41725 */
41726class CloseEvent extends Event {
41727 /**
41728 * Create a new `CloseEvent`.
41729 *
41730 * @param {Number} code The status code explaining why the connection is being closed
41731 * @param {String} reason A human-readable string explaining why the connection is closing
41732 * @param {WebSocket} target A reference to the target to which the event was dispatched
41733 */
41734 constructor (code, reason, target) {
41735 super('close', target);
41736
41737 this.wasClean = target._closeFrameReceived && target._closeFrameSent;
41738 this.reason = reason;
41739 this.code = code;
41740 }
41741}
41742
41743/**
41744 * Class representing an open event.
41745 *
41746 * @extends Event
41747 * @private
41748 */
41749class OpenEvent extends Event {
41750 /**
41751 * Create a new `OpenEvent`.
41752 *
41753 * @param {WebSocket} target A reference to the target to which the event was dispatched
41754 */
41755 constructor (target) {
41756 super('open', target);
41757 }
41758}
41759
41760/**
41761 * This provides methods for emulating the `EventTarget` interface. It's not
41762 * meant to be used directly.
41763 *
41764 * @mixin
41765 */
41766const EventTarget = {
41767 /**
41768 * Register an event listener.
41769 *
41770 * @param {String} method A string representing the event type to listen for
41771 * @param {Function} listener The listener to add
41772 * @public
41773 */
41774 addEventListener (method, listener) {
41775 if (typeof listener !== 'function') return;
41776
41777 function onMessage (data) {
41778 listener.call(this, new MessageEvent(data, this));
41779 }
41780
41781 function onClose (code, message) {
41782 listener.call(this, new CloseEvent(code, message, this));
41783 }
41784
41785 function onError (event) {
41786 event.type = 'error';
41787 event.target = this;
41788 listener.call(this, event);
41789 }
41790
41791 function onOpen () {
41792 listener.call(this, new OpenEvent(this));
41793 }
41794
41795 if (method === 'message') {
41796 onMessage._listener = listener;
41797 this.on(method, onMessage);
41798 } else if (method === 'close') {
41799 onClose._listener = listener;
41800 this.on(method, onClose);
41801 } else if (method === 'error') {
41802 onError._listener = listener;
41803 this.on(method, onError);
41804 } else if (method === 'open') {
41805 onOpen._listener = listener;
41806 this.on(method, onOpen);
41807 } else {
41808 this.on(method, listener);
41809 }
41810 },
41811
41812 /**
41813 * Remove an event listener.
41814 *
41815 * @param {String} method A string representing the event type to remove
41816 * @param {Function} listener The listener to remove
41817 * @public
41818 */
41819 removeEventListener (method, listener) {
41820 const listeners = this.listeners(method);
41821
41822 for (var i = 0; i < listeners.length; i++) {
41823 if (listeners[i] === listener || listeners[i]._listener === listener) {
41824 this.removeListener(method, listeners[i]);
41825 }
41826 }
41827 }
41828};
41829
41830module.exports = EventTarget;
41831
41832
41833/***/ }),
41834/* 603 */
41835/***/ (function(module, exports, __webpack_require__) {
41836
41837"use strict";
41838/*!
41839 * ws: a node.js websocket client
41840 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
41841 * MIT Licensed
41842 */
41843
41844
41845
41846try {
41847 const isValidUTF8 = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"utf-8-validate\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
41848
41849 module.exports = typeof isValidUTF8 === 'object'
41850 ? isValidUTF8.Validation.isValidUTF8 // utf-8-validate@<3.0.0
41851 : isValidUTF8;
41852} catch (e) /* istanbul ignore next */ {
41853 module.exports = () => true;
41854}
41855
41856
41857/***/ }),
41858/* 604 */
41859/***/ (function(module, exports, __webpack_require__) {
41860
41861"use strict";
41862/*!
41863 * ws: a node.js websocket client
41864 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
41865 * MIT Licensed
41866 */
41867
41868
41869
41870const safeBuffer = __webpack_require__(29);
41871const EventEmitter = __webpack_require__(88);
41872const crypto = __webpack_require__(78);
41873const Ultron = __webpack_require__(288);
41874const http = __webpack_require__(43);
41875const url = __webpack_require__(53);
41876
41877const PerMessageDeflate = __webpack_require__(119);
41878const Extensions = __webpack_require__(290);
41879const constants = __webpack_require__(120);
41880const WebSocket = __webpack_require__(287);
41881
41882const Buffer = safeBuffer.Buffer;
41883
41884/**
41885 * Class representing a WebSocket server.
41886 *
41887 * @extends EventEmitter
41888 */
41889class WebSocketServer extends EventEmitter {
41890 /**
41891 * Create a `WebSocketServer` instance.
41892 *
41893 * @param {Object} options Configuration options
41894 * @param {String} options.host The hostname where to bind the server
41895 * @param {Number} options.port The port where to bind the server
41896 * @param {http.Server} options.server A pre-created HTTP/S server to use
41897 * @param {Function} options.verifyClient An hook to reject connections
41898 * @param {Function} options.handleProtocols An hook to handle protocols
41899 * @param {String} options.path Accept only connections matching this path
41900 * @param {Boolean} options.noServer Enable no server mode
41901 * @param {Boolean} options.clientTracking Specifies whether or not to track clients
41902 * @param {(Boolean|Object)} options.perMessageDeflate Enable/disable permessage-deflate
41903 * @param {Number} options.maxPayload The maximum allowed message size
41904 * @param {Function} callback A listener for the `listening` event
41905 */
41906 constructor (options, callback) {
41907 super();
41908
41909 options = Object.assign({
41910 maxPayload: 100 * 1024 * 1024,
41911 perMessageDeflate: false,
41912 handleProtocols: null,
41913 clientTracking: true,
41914 verifyClient: null,
41915 noServer: false,
41916 backlog: null, // use default (511 as implemented in net.js)
41917 server: null,
41918 host: null,
41919 path: null,
41920 port: null
41921 }, options);
41922
41923 if (options.port == null && !options.server && !options.noServer) {
41924 throw new TypeError('missing or invalid options');
41925 }
41926
41927 if (options.port != null) {
41928 this._server = http.createServer((req, res) => {
41929 const body = http.STATUS_CODES[426];
41930
41931 res.writeHead(426, {
41932 'Content-Length': body.length,
41933 'Content-Type': 'text/plain'
41934 });
41935 res.end(body);
41936 });
41937 this._server.listen(options.port, options.host, options.backlog, callback);
41938 } else if (options.server) {
41939 this._server = options.server;
41940 }
41941
41942 if (this._server) {
41943 this._ultron = new Ultron(this._server);
41944 this._ultron.on('listening', () => this.emit('listening'));
41945 this._ultron.on('error', (err) => this.emit('error', err));
41946 this._ultron.on('upgrade', (req, socket, head) => {
41947 this.handleUpgrade(req, socket, head, (client) => {
41948 this.emit('connection', client, req);
41949 });
41950 });
41951 }
41952
41953 if (options.perMessageDeflate === true) options.perMessageDeflate = {};
41954 if (options.clientTracking) this.clients = new Set();
41955 this.options = options;
41956 }
41957
41958 /**
41959 * Close the server.
41960 *
41961 * @param {Function} cb Callback
41962 * @public
41963 */
41964 close (cb) {
41965 //
41966 // Terminate all associated clients.
41967 //
41968 if (this.clients) {
41969 for (const client of this.clients) client.terminate();
41970 }
41971
41972 const server = this._server;
41973
41974 if (server) {
41975 this._ultron.destroy();
41976 this._ultron = this._server = null;
41977
41978 //
41979 // Close the http server if it was internally created.
41980 //
41981 if (this.options.port != null) return server.close(cb);
41982 }
41983
41984 if (cb) cb();
41985 }
41986
41987 /**
41988 * See if a given request should be handled by this server instance.
41989 *
41990 * @param {http.IncomingMessage} req Request object to inspect
41991 * @return {Boolean} `true` if the request is valid, else `false`
41992 * @public
41993 */
41994 shouldHandle (req) {
41995 if (this.options.path && url.parse(req.url).pathname !== this.options.path) {
41996 return false;
41997 }
41998
41999 return true;
42000 }
42001
42002 /**
42003 * Handle a HTTP Upgrade request.
42004 *
42005 * @param {http.IncomingMessage} req The request object
42006 * @param {net.Socket} socket The network socket between the server and client
42007 * @param {Buffer} head The first packet of the upgraded stream
42008 * @param {Function} cb Callback
42009 * @public
42010 */
42011 handleUpgrade (req, socket, head, cb) {
42012 socket.on('error', socketError);
42013
42014 const version = +req.headers['sec-websocket-version'];
42015 const extensions = {};
42016
42017 if (
42018 req.method !== 'GET' || req.headers.upgrade.toLowerCase() !== 'websocket' ||
42019 !req.headers['sec-websocket-key'] || (version !== 8 && version !== 13) ||
42020 !this.shouldHandle(req)
42021 ) {
42022 return abortConnection(socket, 400);
42023 }
42024
42025 if (this.options.perMessageDeflate) {
42026 const perMessageDeflate = new PerMessageDeflate(
42027 this.options.perMessageDeflate,
42028 true,
42029 this.options.maxPayload
42030 );
42031
42032 try {
42033 const offers = Extensions.parse(
42034 req.headers['sec-websocket-extensions']
42035 );
42036
42037 if (offers[PerMessageDeflate.extensionName]) {
42038 perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
42039 extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
42040 }
42041 } catch (err) {
42042 return abortConnection(socket, 400);
42043 }
42044 }
42045
42046 var protocol = (req.headers['sec-websocket-protocol'] || '').split(/, */);
42047
42048 //
42049 // Optionally call external protocol selection handler.
42050 //
42051 if (this.options.handleProtocols) {
42052 protocol = this.options.handleProtocols(protocol, req);
42053 if (protocol === false) return abortConnection(socket, 401);
42054 } else {
42055 protocol = protocol[0];
42056 }
42057
42058 //
42059 // Optionally call external client verification handler.
42060 //
42061 if (this.options.verifyClient) {
42062 const info = {
42063 origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],
42064 secure: !!(req.connection.authorized || req.connection.encrypted),
42065 req
42066 };
42067
42068 if (this.options.verifyClient.length === 2) {
42069 this.options.verifyClient(info, (verified, code, message) => {
42070 if (!verified) return abortConnection(socket, code || 401, message);
42071
42072 this.completeUpgrade(
42073 protocol,
42074 extensions,
42075 version,
42076 req,
42077 socket,
42078 head,
42079 cb
42080 );
42081 });
42082 return;
42083 }
42084
42085 if (!this.options.verifyClient(info)) return abortConnection(socket, 401);
42086 }
42087
42088 this.completeUpgrade(protocol, extensions, version, req, socket, head, cb);
42089 }
42090
42091 /**
42092 * Upgrade the connection to WebSocket.
42093 *
42094 * @param {String} protocol The chosen subprotocol
42095 * @param {Object} extensions The accepted extensions
42096 * @param {Number} version The WebSocket protocol version
42097 * @param {http.IncomingMessage} req The request object
42098 * @param {net.Socket} socket The network socket between the server and client
42099 * @param {Buffer} head The first packet of the upgraded stream
42100 * @param {Function} cb Callback
42101 * @private
42102 */
42103 completeUpgrade (protocol, extensions, version, req, socket, head, cb) {
42104 //
42105 // Destroy the socket if the client has already sent a FIN packet.
42106 //
42107 if (!socket.readable || !socket.writable) return socket.destroy();
42108
42109 const key = crypto.createHash('sha1')
42110 .update(req.headers['sec-websocket-key'] + constants.GUID, 'binary')
42111 .digest('base64');
42112
42113 const headers = [
42114 'HTTP/1.1 101 Switching Protocols',
42115 'Upgrade: websocket',
42116 'Connection: Upgrade',
42117 `Sec-WebSocket-Accept: ${key}`
42118 ];
42119
42120 if (protocol) headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
42121 if (extensions[PerMessageDeflate.extensionName]) {
42122 const params = extensions[PerMessageDeflate.extensionName].params;
42123 const value = Extensions.format({
42124 [PerMessageDeflate.extensionName]: [params]
42125 });
42126 headers.push(`Sec-WebSocket-Extensions: ${value}`);
42127 }
42128
42129 //
42130 // Allow external modification/inspection of handshake headers.
42131 //
42132 this.emit('headers', headers, req);
42133
42134 socket.write(headers.concat('\r\n').join('\r\n'));
42135
42136 const client = new WebSocket([socket, head], null, {
42137 maxPayload: this.options.maxPayload,
42138 protocolVersion: version,
42139 extensions,
42140 protocol
42141 });
42142
42143 if (this.clients) {
42144 this.clients.add(client);
42145 client.on('close', () => this.clients.delete(client));
42146 }
42147
42148 socket.removeListener('error', socketError);
42149 cb(client);
42150 }
42151}
42152
42153module.exports = WebSocketServer;
42154
42155/**
42156 * Handle premature socket errors.
42157 *
42158 * @private
42159 */
42160function socketError () {
42161 this.destroy();
42162}
42163
42164/**
42165 * Close the connection when preconditions are not fulfilled.
42166 *
42167 * @param {net.Socket} socket The socket of the upgrade request
42168 * @param {Number} code The HTTP response status code
42169 * @param {String} [message] The HTTP response body
42170 * @private
42171 */
42172function abortConnection (socket, code, message) {
42173 if (socket.writable) {
42174 message = message || http.STATUS_CODES[code];
42175 socket.write(
42176 `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` +
42177 'Connection: close\r\n' +
42178 'Content-type: text/html\r\n' +
42179 `Content-Length: ${Buffer.byteLength(message)}\r\n` +
42180 '\r\n' +
42181 message
42182 );
42183 }
42184
42185 socket.removeListener('error', socketError);
42186 socket.destroy();
42187}
42188
42189
42190/***/ }),
42191/* 605 */
42192/***/ (function(module, exports, __webpack_require__) {
42193
42194"use strict";
42195
42196Object.defineProperty(exports, "__esModule", { value: true });
42197var iterall_1 = __webpack_require__(39);
42198exports.createEmptyIterable = function () {
42199 return _a = {
42200 next: function () {
42201 return Promise.resolve({ value: undefined, done: true });
42202 },
42203 return: function () {
42204 return Promise.resolve({ value: undefined, done: true });
42205 },
42206 throw: function (e) {
42207 return Promise.reject(e);
42208 }
42209 },
42210 _a[iterall_1.$$asyncIterator] = function () {
42211 return this;
42212 },
42213 _a;
42214 var _a;
42215};
42216//# sourceMappingURL=empty-iterable.js.map
42217
42218/***/ }),
42219/* 606 */
42220/***/ (function(module, exports, __webpack_require__) {
42221
42222"use strict";
42223
42224Object.defineProperty(exports, "__esModule", { value: true });
42225var graphql_1 = __webpack_require__(14);
42226exports.isASubscriptionOperation = function (document, operationName) {
42227 var operationAST = graphql_1.getOperationAST(document, operationName);
42228 return !!operationAST && operationAST.operation === 'subscription';
42229};
42230//# sourceMappingURL=is-subscriptions.js.map
42231
42232/***/ }),
42233/* 607 */
42234/***/ (function(module, exports, __webpack_require__) {
42235
42236"use strict";
42237
42238var __assign = (this && this.__assign) || Object.assign || function(t) {
42239 for (var s, i = 1, n = arguments.length; i < n; i++) {
42240 s = arguments[i];
42241 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
42242 t[p] = s[p];
42243 }
42244 return t;
42245};
42246Object.defineProperty(exports, "__esModule", { value: true });
42247var message_types_1 = __webpack_require__(118);
42248exports.parseLegacyProtocolMessage = function (connectionContext, message) {
42249 var messageToReturn = message;
42250 switch (message.type) {
42251 case message_types_1.default.INIT:
42252 connectionContext.isLegacy = true;
42253 messageToReturn = __assign({}, message, { type: message_types_1.default.GQL_CONNECTION_INIT });
42254 break;
42255 case message_types_1.default.SUBSCRIPTION_START:
42256 messageToReturn = {
42257 id: message.id,
42258 type: message_types_1.default.GQL_START,
42259 payload: {
42260 query: message.query,
42261 operationName: message.operationName,
42262 variables: message.variables,
42263 },
42264 };
42265 break;
42266 case message_types_1.default.SUBSCRIPTION_END:
42267 messageToReturn = __assign({}, message, { type: message_types_1.default.GQL_STOP });
42268 break;
42269 case message_types_1.default.GQL_CONNECTION_ACK:
42270 if (connectionContext.isLegacy) {
42271 messageToReturn = __assign({}, message, { type: message_types_1.default.INIT_SUCCESS });
42272 }
42273 break;
42274 case message_types_1.default.GQL_CONNECTION_ERROR:
42275 if (connectionContext.isLegacy) {
42276 messageToReturn = __assign({}, message, { type: message_types_1.default.INIT_FAIL, payload: message.payload.message ? { error: message.payload.message } : message.payload });
42277 }
42278 break;
42279 case message_types_1.default.GQL_ERROR:
42280 if (connectionContext.isLegacy) {
42281 messageToReturn = __assign({}, message, { type: message_types_1.default.SUBSCRIPTION_FAIL });
42282 }
42283 break;
42284 case message_types_1.default.GQL_DATA:
42285 if (connectionContext.isLegacy) {
42286 messageToReturn = __assign({}, message, { type: message_types_1.default.SUBSCRIPTION_DATA });
42287 }
42288 break;
42289 case message_types_1.default.GQL_COMPLETE:
42290 if (connectionContext.isLegacy) {
42291 messageToReturn = null;
42292 }
42293 break;
42294 case message_types_1.default.SUBSCRIPTION_SUCCESS:
42295 if (!connectionContext.isLegacy) {
42296 messageToReturn = null;
42297 }
42298 break;
42299 default:
42300 break;
42301 }
42302 return messageToReturn;
42303};
42304//# sourceMappingURL=parse-legacy-protocol.js.map
42305
42306/***/ }),
42307/* 608 */
42308/***/ (function(module, exports, __webpack_require__) {
42309
42310"use strict";
42311/*!
42312 * depd
42313 * Copyright(c) 2014 Douglas Christopher Wilson
42314 * MIT Licensed
42315 */
42316
42317
42318
42319/**
42320 * Module exports.
42321 */
42322
42323module.exports = callSiteToString
42324
42325/**
42326 * Format a CallSite file location to a string.
42327 */
42328
42329function callSiteFileLocation (callSite) {
42330 var fileName
42331 var fileLocation = ''
42332
42333 if (callSite.isNative()) {
42334 fileLocation = 'native'
42335 } else if (callSite.isEval()) {
42336 fileName = callSite.getScriptNameOrSourceURL()
42337 if (!fileName) {
42338 fileLocation = callSite.getEvalOrigin()
42339 }
42340 } else {
42341 fileName = callSite.getFileName()
42342 }
42343
42344 if (fileName) {
42345 fileLocation += fileName
42346
42347 var lineNumber = callSite.getLineNumber()
42348 if (lineNumber != null) {
42349 fileLocation += ':' + lineNumber
42350
42351 var columnNumber = callSite.getColumnNumber()
42352 if (columnNumber) {
42353 fileLocation += ':' + columnNumber
42354 }
42355 }
42356 }
42357
42358 return fileLocation || 'unknown source'
42359}
42360
42361/**
42362 * Format a CallSite to a string.
42363 */
42364
42365function callSiteToString (callSite) {
42366 var addSuffix = true
42367 var fileLocation = callSiteFileLocation(callSite)
42368 var functionName = callSite.getFunctionName()
42369 var isConstructor = callSite.isConstructor()
42370 var isMethodCall = !(callSite.isToplevel() || isConstructor)
42371 var line = ''
42372
42373 if (isMethodCall) {
42374 var methodName = callSite.getMethodName()
42375 var typeName = getConstructorName(callSite)
42376
42377 if (functionName) {
42378 if (typeName && functionName.indexOf(typeName) !== 0) {
42379 line += typeName + '.'
42380 }
42381
42382 line += functionName
42383
42384 if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) {
42385 line += ' [as ' + methodName + ']'
42386 }
42387 } else {
42388 line += typeName + '.' + (methodName || '<anonymous>')
42389 }
42390 } else if (isConstructor) {
42391 line += 'new ' + (functionName || '<anonymous>')
42392 } else if (functionName) {
42393 line += functionName
42394 } else {
42395 addSuffix = false
42396 line += fileLocation
42397 }
42398
42399 if (addSuffix) {
42400 line += ' (' + fileLocation + ')'
42401 }
42402
42403 return line
42404}
42405
42406/**
42407 * Get constructor name of reviver.
42408 */
42409
42410function getConstructorName (obj) {
42411 var receiver = obj.receiver
42412 return (receiver.constructor && receiver.constructor.name) || null
42413}
42414
42415
42416/***/ }),
42417/* 609 */
42418/***/ (function(module, exports, __webpack_require__) {
42419
42420"use strict";
42421/*!
42422 * depd
42423 * Copyright(c) 2015 Douglas Christopher Wilson
42424 * MIT Licensed
42425 */
42426
42427
42428
42429/**
42430 * Module exports.
42431 * @public
42432 */
42433
42434module.exports = eventListenerCount
42435
42436/**
42437 * Get the count of listeners on an event emitter of a specific type.
42438 */
42439
42440function eventListenerCount (emitter, type) {
42441 return emitter.listeners(type).length
42442}
42443
42444
42445/***/ }),
42446/* 610 */
42447/***/ (function(module, exports, __webpack_require__) {
42448
42449"use strict";
42450/*!
42451 * body-parser
42452 * Copyright(c) 2014 Jonathan Ong
42453 * Copyright(c) 2014-2015 Douglas Christopher Wilson
42454 * MIT Licensed
42455 */
42456
42457
42458
42459/**
42460 * Module dependencies.
42461 * @private
42462 */
42463
42464var bytes = __webpack_require__(89)
42465var contentType = __webpack_require__(121)
42466var createError = __webpack_require__(90)
42467var debug = __webpack_require__(30)('body-parser:json')
42468var read = __webpack_require__(124)
42469var typeis = __webpack_require__(91)
42470
42471/**
42472 * Module exports.
42473 */
42474
42475module.exports = json
42476
42477/**
42478 * RegExp to match the first non-space in a string.
42479 *
42480 * Allowed whitespace is defined in RFC 7159:
42481 *
42482 * ws = *(
42483 * %x20 / ; Space
42484 * %x09 / ; Horizontal tab
42485 * %x0A / ; Line feed or New line
42486 * %x0D ) ; Carriage return
42487 */
42488
42489var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex
42490
42491/**
42492 * Create a middleware to parse JSON bodies.
42493 *
42494 * @param {object} [options]
42495 * @return {function}
42496 * @public
42497 */
42498
42499function json (options) {
42500 var opts = options || {}
42501
42502 var limit = typeof opts.limit !== 'number'
42503 ? bytes.parse(opts.limit || '100kb')
42504 : opts.limit
42505 var inflate = opts.inflate !== false
42506 var reviver = opts.reviver
42507 var strict = opts.strict !== false
42508 var type = opts.type || 'application/json'
42509 var verify = opts.verify || false
42510
42511 if (verify !== false && typeof verify !== 'function') {
42512 throw new TypeError('option verify must be function')
42513 }
42514
42515 // create the appropriate type checking function
42516 var shouldParse = typeof type !== 'function'
42517 ? typeChecker(type)
42518 : type
42519
42520 function parse (body) {
42521 if (body.length === 0) {
42522 // special-case empty json body, as it's a common client-side mistake
42523 // TODO: maybe make this configurable or part of "strict" option
42524 return {}
42525 }
42526
42527 if (strict) {
42528 var first = firstchar(body)
42529
42530 if (first !== '{' && first !== '[') {
42531 debug('strict violation')
42532 throw createStrictSyntaxError(body, first)
42533 }
42534 }
42535
42536 try {
42537 debug('parse json')
42538 return JSON.parse(body, reviver)
42539 } catch (e) {
42540 throw normalizeJsonSyntaxError(e, {
42541 stack: e.stack
42542 })
42543 }
42544 }
42545
42546 return function jsonParser (req, res, next) {
42547 if (req._body) {
42548 debug('body already parsed')
42549 next()
42550 return
42551 }
42552
42553 req.body = req.body || {}
42554
42555 // skip requests without bodies
42556 if (!typeis.hasBody(req)) {
42557 debug('skip empty body')
42558 next()
42559 return
42560 }
42561
42562 debug('content-type %j', req.headers['content-type'])
42563
42564 // determine if request should be parsed
42565 if (!shouldParse(req)) {
42566 debug('skip parsing')
42567 next()
42568 return
42569 }
42570
42571 // assert charset per RFC 7159 sec 8.1
42572 var charset = getCharset(req) || 'utf-8'
42573 if (charset.substr(0, 4) !== 'utf-') {
42574 debug('invalid charset')
42575 next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
42576 charset: charset,
42577 type: 'charset.unsupported'
42578 }))
42579 return
42580 }
42581
42582 // read
42583 read(req, res, next, parse, debug, {
42584 encoding: charset,
42585 inflate: inflate,
42586 limit: limit,
42587 verify: verify
42588 })
42589 }
42590}
42591
42592/**
42593 * Create strict violation syntax error matching native error.
42594 *
42595 * @param {string} str
42596 * @param {string} char
42597 * @return {Error}
42598 * @private
42599 */
42600
42601function createStrictSyntaxError (str, char) {
42602 var index = str.indexOf(char)
42603 var partial = str.substring(0, index) + '#'
42604
42605 try {
42606 JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation')
42607 } catch (e) {
42608 return normalizeJsonSyntaxError(e, {
42609 message: e.message.replace('#', char),
42610 stack: e.stack
42611 })
42612 }
42613}
42614
42615/**
42616 * Get the first non-whitespace character in a string.
42617 *
42618 * @param {string} str
42619 * @return {function}
42620 * @private
42621 */
42622
42623function firstchar (str) {
42624 return FIRST_CHAR_REGEXP.exec(str)[1]
42625}
42626
42627/**
42628 * Get the charset of a request.
42629 *
42630 * @param {object} req
42631 * @api private
42632 */
42633
42634function getCharset (req) {
42635 try {
42636 return (contentType.parse(req).parameters.charset || '').toLowerCase()
42637 } catch (e) {
42638 return undefined
42639 }
42640}
42641
42642/**
42643 * Normalize a SyntaxError for JSON.parse.
42644 *
42645 * @param {SyntaxError} error
42646 * @param {object} obj
42647 * @return {SyntaxError}
42648 */
42649
42650function normalizeJsonSyntaxError (error, obj) {
42651 var keys = Object.getOwnPropertyNames(error)
42652
42653 for (var i = 0; i < keys.length; i++) {
42654 var key = keys[i]
42655 if (key !== 'stack' && key !== 'message') {
42656 delete error[key]
42657 }
42658 }
42659
42660 var props = Object.keys(obj)
42661
42662 for (var j = 0; j < props.length; j++) {
42663 var prop = props[j]
42664 error[prop] = obj[prop]
42665 }
42666
42667 return error
42668}
42669
42670/**
42671 * Get the simple type checker.
42672 *
42673 * @param {string} type
42674 * @return {function}
42675 */
42676
42677function typeChecker (type) {
42678 return function checkType (req) {
42679 return Boolean(typeis(req, type))
42680 }
42681}
42682
42683
42684/***/ }),
42685/* 611 */
42686/***/ (function(module, exports) {
42687
42688module.exports = {"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","306":"(Unused)","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}
42689
42690/***/ }),
42691/* 612 */
42692/***/ (function(module, exports, __webpack_require__) {
42693
42694try {
42695 var util = __webpack_require__(54);
42696 if (typeof util.inherits !== 'function') throw '';
42697 module.exports = util.inherits;
42698} catch (e) {
42699 module.exports = __webpack_require__(613);
42700}
42701
42702
42703/***/ }),
42704/* 613 */
42705/***/ (function(module, exports) {
42706
42707if (typeof Object.create === 'function') {
42708 // implementation from standard node.js 'util' module
42709 module.exports = function inherits(ctor, superCtor) {
42710 ctor.super_ = superCtor
42711 ctor.prototype = Object.create(superCtor.prototype, {
42712 constructor: {
42713 value: ctor,
42714 enumerable: false,
42715 writable: true,
42716 configurable: true
42717 }
42718 });
42719 };
42720} else {
42721 // old school shim for old browsers
42722 module.exports = function inherits(ctor, superCtor) {
42723 ctor.super_ = superCtor
42724 var TempCtor = function () {}
42725 TempCtor.prototype = superCtor.prototype
42726 ctor.prototype = new TempCtor()
42727 ctor.prototype.constructor = ctor
42728 }
42729}
42730
42731
42732/***/ }),
42733/* 614 */
42734/***/ (function(module, exports, __webpack_require__) {
42735
42736/**
42737 * This is the web browser implementation of `debug()`.
42738 *
42739 * Expose `debug()` as the module.
42740 */
42741
42742exports = module.exports = __webpack_require__(296);
42743exports.log = log;
42744exports.formatArgs = formatArgs;
42745exports.save = save;
42746exports.load = load;
42747exports.useColors = useColors;
42748exports.storage = 'undefined' != typeof chrome
42749 && 'undefined' != typeof chrome.storage
42750 ? chrome.storage.local
42751 : localstorage();
42752
42753/**
42754 * Colors.
42755 */
42756
42757exports.colors = [
42758 'lightseagreen',
42759 'forestgreen',
42760 'goldenrod',
42761 'dodgerblue',
42762 'darkorchid',
42763 'crimson'
42764];
42765
42766/**
42767 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
42768 * and the Firebug extension (any Firefox version) are known
42769 * to support "%c" CSS customizations.
42770 *
42771 * TODO: add a `localStorage` variable to explicitly enable/disable colors
42772 */
42773
42774function useColors() {
42775 // NB: In an Electron preload script, document will be defined but not fully
42776 // initialized. Since we know we're in Chrome, we'll just detect this case
42777 // explicitly
42778 if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
42779 return true;
42780 }
42781
42782 // is webkit? http://stackoverflow.com/a/16459606/376773
42783 // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
42784 return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
42785 // is firebug? http://stackoverflow.com/a/398120/376773
42786 (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
42787 // is firefox >= v31?
42788 // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
42789 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
42790 // double check webkit in userAgent just in case we are in a worker
42791 (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
42792}
42793
42794/**
42795 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
42796 */
42797
42798exports.formatters.j = function(v) {
42799 try {
42800 return JSON.stringify(v);
42801 } catch (err) {
42802 return '[UnexpectedJSONParseError]: ' + err.message;
42803 }
42804};
42805
42806
42807/**
42808 * Colorize log arguments if enabled.
42809 *
42810 * @api public
42811 */
42812
42813function formatArgs(args) {
42814 var useColors = this.useColors;
42815
42816 args[0] = (useColors ? '%c' : '')
42817 + this.namespace
42818 + (useColors ? ' %c' : ' ')
42819 + args[0]
42820 + (useColors ? '%c ' : ' ')
42821 + '+' + exports.humanize(this.diff);
42822
42823 if (!useColors) return;
42824
42825 var c = 'color: ' + this.color;
42826 args.splice(1, 0, c, 'color: inherit')
42827
42828 // the final "%c" is somewhat tricky, because there could be other
42829 // arguments passed either before or after the %c, so we need to
42830 // figure out the correct index to insert the CSS into
42831 var index = 0;
42832 var lastC = 0;
42833 args[0].replace(/%[a-zA-Z%]/g, function(match) {
42834 if ('%%' === match) return;
42835 index++;
42836 if ('%c' === match) {
42837 // we only are interested in the *last* %c
42838 // (the user may have provided their own)
42839 lastC = index;
42840 }
42841 });
42842
42843 args.splice(lastC, 0, c);
42844}
42845
42846/**
42847 * Invokes `console.log()` when available.
42848 * No-op when `console.log` is not a "function".
42849 *
42850 * @api public
42851 */
42852
42853function log() {
42854 // this hackery is required for IE8/9, where
42855 // the `console.log` function doesn't have 'apply'
42856 return 'object' === typeof console
42857 && console.log
42858 && Function.prototype.apply.call(console.log, console, arguments);
42859}
42860
42861/**
42862 * Save `namespaces`.
42863 *
42864 * @param {String} namespaces
42865 * @api private
42866 */
42867
42868function save(namespaces) {
42869 try {
42870 if (null == namespaces) {
42871 exports.storage.removeItem('debug');
42872 } else {
42873 exports.storage.debug = namespaces;
42874 }
42875 } catch(e) {}
42876}
42877
42878/**
42879 * Load `namespaces`.
42880 *
42881 * @return {String} returns the previously persisted debug modes
42882 * @api private
42883 */
42884
42885function load() {
42886 var r;
42887 try {
42888 r = exports.storage.debug;
42889 } catch(e) {}
42890
42891 // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
42892 if (!r && typeof process !== 'undefined' && 'env' in process) {
42893 r = process.env.DEBUG;
42894 }
42895
42896 return r;
42897}
42898
42899/**
42900 * Enable namespaces listed in `localStorage.debug` initially.
42901 */
42902
42903exports.enable(load());
42904
42905/**
42906 * Localstorage attempts to return the localstorage.
42907 *
42908 * This is necessary because safari throws
42909 * when a user disables cookies/localstorage
42910 * and you attempt to access it.
42911 *
42912 * @return {LocalStorage}
42913 * @api private
42914 */
42915
42916function localstorage() {
42917 try {
42918 return window.localStorage;
42919 } catch (e) {}
42920}
42921
42922
42923/***/ }),
42924/* 615 */
42925/***/ (function(module, exports, __webpack_require__) {
42926
42927/**
42928 * Module dependencies.
42929 */
42930
42931var tty = __webpack_require__(616);
42932var util = __webpack_require__(54);
42933
42934/**
42935 * This is the Node.js implementation of `debug()`.
42936 *
42937 * Expose `debug()` as the module.
42938 */
42939
42940exports = module.exports = __webpack_require__(296);
42941exports.init = init;
42942exports.log = log;
42943exports.formatArgs = formatArgs;
42944exports.save = save;
42945exports.load = load;
42946exports.useColors = useColors;
42947
42948/**
42949 * Colors.
42950 */
42951
42952exports.colors = [6, 2, 3, 4, 5, 1];
42953
42954/**
42955 * Build up the default `inspectOpts` object from the environment variables.
42956 *
42957 * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
42958 */
42959
42960exports.inspectOpts = Object.keys(process.env).filter(function (key) {
42961 return /^debug_/i.test(key);
42962}).reduce(function (obj, key) {
42963 // camel-case
42964 var prop = key
42965 .substring(6)
42966 .toLowerCase()
42967 .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
42968
42969 // coerce string value into JS value
42970 var val = process.env[key];
42971 if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
42972 else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
42973 else if (val === 'null') val = null;
42974 else val = Number(val);
42975
42976 obj[prop] = val;
42977 return obj;
42978}, {});
42979
42980/**
42981 * The file descriptor to write the `debug()` calls to.
42982 * Set the `DEBUG_FD` env variable to override with another value. i.e.:
42983 *
42984 * $ DEBUG_FD=3 node script.js 3>debug.log
42985 */
42986
42987var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
42988
42989if (1 !== fd && 2 !== fd) {
42990 util.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)')()
42991}
42992
42993var stream = 1 === fd ? process.stdout :
42994 2 === fd ? process.stderr :
42995 createWritableStdioStream(fd);
42996
42997/**
42998 * Is stdout a TTY? Colored output is enabled when `true`.
42999 */
43000
43001function useColors() {
43002 return 'colors' in exports.inspectOpts
43003 ? Boolean(exports.inspectOpts.colors)
43004 : tty.isatty(fd);
43005}
43006
43007/**
43008 * Map %o to `util.inspect()`, all on a single line.
43009 */
43010
43011exports.formatters.o = function(v) {
43012 this.inspectOpts.colors = this.useColors;
43013 return util.inspect(v, this.inspectOpts)
43014 .split('\n').map(function(str) {
43015 return str.trim()
43016 }).join(' ');
43017};
43018
43019/**
43020 * Map %o to `util.inspect()`, allowing multiple lines if needed.
43021 */
43022
43023exports.formatters.O = function(v) {
43024 this.inspectOpts.colors = this.useColors;
43025 return util.inspect(v, this.inspectOpts);
43026};
43027
43028/**
43029 * Adds ANSI color escape codes if enabled.
43030 *
43031 * @api public
43032 */
43033
43034function formatArgs(args) {
43035 var name = this.namespace;
43036 var useColors = this.useColors;
43037
43038 if (useColors) {
43039 var c = this.color;
43040 var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
43041
43042 args[0] = prefix + args[0].split('\n').join('\n' + prefix);
43043 args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
43044 } else {
43045 args[0] = new Date().toUTCString()
43046 + ' ' + name + ' ' + args[0];
43047 }
43048}
43049
43050/**
43051 * Invokes `util.format()` with the specified arguments and writes to `stream`.
43052 */
43053
43054function log() {
43055 return stream.write(util.format.apply(util, arguments) + '\n');
43056}
43057
43058/**
43059 * Save `namespaces`.
43060 *
43061 * @param {String} namespaces
43062 * @api private
43063 */
43064
43065function save(namespaces) {
43066 if (null == namespaces) {
43067 // If you set a process.env field to null or undefined, it gets cast to the
43068 // string 'null' or 'undefined'. Just delete instead.
43069 delete process.env.DEBUG;
43070 } else {
43071 process.env.DEBUG = namespaces;
43072 }
43073}
43074
43075/**
43076 * Load `namespaces`.
43077 *
43078 * @return {String} returns the previously persisted debug modes
43079 * @api private
43080 */
43081
43082function load() {
43083 return process.env.DEBUG;
43084}
43085
43086/**
43087 * Copied from `node/src/node.js`.
43088 *
43089 * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
43090 * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
43091 */
43092
43093function createWritableStdioStream (fd) {
43094 var stream;
43095 var tty_wrap = process.binding('tty_wrap');
43096
43097 // Note stream._type is used for test-module-load-list.js
43098
43099 switch (tty_wrap.guessHandleType(fd)) {
43100 case 'TTY':
43101 stream = new tty.WriteStream(fd);
43102 stream._type = 'tty';
43103
43104 // Hack to have stream not keep the event loop alive.
43105 // See https://github.com/joyent/node/issues/1726
43106 if (stream._handle && stream._handle.unref) {
43107 stream._handle.unref();
43108 }
43109 break;
43110
43111 case 'FILE':
43112 var fs = __webpack_require__(68);
43113 stream = new fs.SyncWriteStream(fd, { autoClose: false });
43114 stream._type = 'fs';
43115 break;
43116
43117 case 'PIPE':
43118 case 'TCP':
43119 var net = __webpack_require__(297);
43120 stream = new net.Socket({
43121 fd: fd,
43122 readable: false,
43123 writable: true
43124 });
43125
43126 // FIXME Should probably have an option in net.Socket to create a
43127 // stream from an existing fd which is writable only. But for now
43128 // we'll just add this hack and set the `readable` member to false.
43129 // Test: ./node test/fixtures/echo.js < /etc/passwd
43130 stream.readable = false;
43131 stream.read = null;
43132 stream._type = 'pipe';
43133
43134 // FIXME Hack to have stream not keep the event loop alive.
43135 // See https://github.com/joyent/node/issues/1726
43136 if (stream._handle && stream._handle.unref) {
43137 stream._handle.unref();
43138 }
43139 break;
43140
43141 default:
43142 // Probably an error on in uv_guess_handle()
43143 throw new Error('Implement me. Unknown stream file type!');
43144 }
43145
43146 // For supporting legacy API we put the FD here.
43147 stream.fd = fd;
43148
43149 stream._isStdio = true;
43150
43151 return stream;
43152}
43153
43154/**
43155 * Init logic for `debug` instances.
43156 *
43157 * Create a new `inspectOpts` object in case `useColors` is set
43158 * differently for a particular `debug` instance.
43159 */
43160
43161function init (debug) {
43162 debug.inspectOpts = {};
43163
43164 var keys = Object.keys(exports.inspectOpts);
43165 for (var i = 0; i < keys.length; i++) {
43166 debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
43167 }
43168}
43169
43170/**
43171 * Enable namespaces listed in `process.env.DEBUG` initially.
43172 */
43173
43174exports.enable(load());
43175
43176
43177/***/ }),
43178/* 616 */
43179/***/ (function(module, exports) {
43180
43181module.exports = require("tty");
43182
43183/***/ }),
43184/* 617 */
43185/***/ (function(module, exports, __webpack_require__) {
43186
43187"use strict";
43188/*!
43189 * raw-body
43190 * Copyright(c) 2013-2014 Jonathan Ong
43191 * Copyright(c) 2014-2015 Douglas Christopher Wilson
43192 * MIT Licensed
43193 */
43194
43195
43196
43197/**
43198 * Module dependencies.
43199 * @private
43200 */
43201
43202var bytes = __webpack_require__(89)
43203var createError = __webpack_require__(90)
43204var iconv = __webpack_require__(188)
43205var unpipe = __webpack_require__(300)
43206
43207/**
43208 * Module exports.
43209 * @public
43210 */
43211
43212module.exports = getRawBody
43213
43214/**
43215 * Module variables.
43216 * @private
43217 */
43218
43219var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /
43220
43221/**
43222 * Get the decoder for a given encoding.
43223 *
43224 * @param {string} encoding
43225 * @private
43226 */
43227
43228function getDecoder (encoding) {
43229 if (!encoding) return null
43230
43231 try {
43232 return iconv.getDecoder(encoding)
43233 } catch (e) {
43234 // error getting decoder
43235 if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e
43236
43237 // the encoding was not found
43238 throw createError(415, 'specified encoding unsupported', {
43239 encoding: encoding,
43240 type: 'encoding.unsupported'
43241 })
43242 }
43243}
43244
43245/**
43246 * Get the raw body of a stream (typically HTTP).
43247 *
43248 * @param {object} stream
43249 * @param {object|string|function} [options]
43250 * @param {function} [callback]
43251 * @public
43252 */
43253
43254function getRawBody (stream, options, callback) {
43255 var done = callback
43256 var opts = options || {}
43257
43258 if (options === true || typeof options === 'string') {
43259 // short cut for encoding
43260 opts = {
43261 encoding: options
43262 }
43263 }
43264
43265 if (typeof options === 'function') {
43266 done = options
43267 opts = {}
43268 }
43269
43270 // validate callback is a function, if provided
43271 if (done !== undefined && typeof done !== 'function') {
43272 throw new TypeError('argument callback must be a function')
43273 }
43274
43275 // require the callback without promises
43276 if (!done && !global.Promise) {
43277 throw new TypeError('argument callback is required')
43278 }
43279
43280 // get encoding
43281 var encoding = opts.encoding !== true
43282 ? opts.encoding
43283 : 'utf-8'
43284
43285 // convert the limit to an integer
43286 var limit = bytes.parse(opts.limit)
43287
43288 // convert the expected length to an integer
43289 var length = opts.length != null && !isNaN(opts.length)
43290 ? parseInt(opts.length, 10)
43291 : null
43292
43293 if (done) {
43294 // classic callback style
43295 return readStream(stream, encoding, length, limit, done)
43296 }
43297
43298 return new Promise(function executor (resolve, reject) {
43299 readStream(stream, encoding, length, limit, function onRead (err, buf) {
43300 if (err) return reject(err)
43301 resolve(buf)
43302 })
43303 })
43304}
43305
43306/**
43307 * Halt a stream.
43308 *
43309 * @param {Object} stream
43310 * @private
43311 */
43312
43313function halt (stream) {
43314 // unpipe everything from the stream
43315 unpipe(stream)
43316
43317 // pause stream
43318 if (typeof stream.pause === 'function') {
43319 stream.pause()
43320 }
43321}
43322
43323/**
43324 * Read the data from the stream.
43325 *
43326 * @param {object} stream
43327 * @param {string} encoding
43328 * @param {number} length
43329 * @param {number} limit
43330 * @param {function} callback
43331 * @public
43332 */
43333
43334function readStream (stream, encoding, length, limit, callback) {
43335 var complete = false
43336 var sync = true
43337
43338 // check the length and limit options.
43339 // note: we intentionally leave the stream paused,
43340 // so users should handle the stream themselves.
43341 if (limit !== null && length !== null && length > limit) {
43342 return done(createError(413, 'request entity too large', {
43343 expected: length,
43344 length: length,
43345 limit: limit,
43346 type: 'entity.too.large'
43347 }))
43348 }
43349
43350 // streams1: assert request encoding is buffer.
43351 // streams2+: assert the stream encoding is buffer.
43352 // stream._decoder: streams1
43353 // state.encoding: streams2
43354 // state.decoder: streams2, specifically < 0.10.6
43355 var state = stream._readableState
43356 if (stream._decoder || (state && (state.encoding || state.decoder))) {
43357 // developer error
43358 return done(createError(500, 'stream encoding should not be set', {
43359 type: 'stream.encoding.set'
43360 }))
43361 }
43362
43363 var received = 0
43364 var decoder
43365
43366 try {
43367 decoder = getDecoder(encoding)
43368 } catch (err) {
43369 return done(err)
43370 }
43371
43372 var buffer = decoder
43373 ? ''
43374 : []
43375
43376 // attach listeners
43377 stream.on('aborted', onAborted)
43378 stream.on('close', cleanup)
43379 stream.on('data', onData)
43380 stream.on('end', onEnd)
43381 stream.on('error', onEnd)
43382
43383 // mark sync section complete
43384 sync = false
43385
43386 function done () {
43387 var args = new Array(arguments.length)
43388
43389 // copy arguments
43390 for (var i = 0; i < args.length; i++) {
43391 args[i] = arguments[i]
43392 }
43393
43394 // mark complete
43395 complete = true
43396
43397 if (sync) {
43398 process.nextTick(invokeCallback)
43399 } else {
43400 invokeCallback()
43401 }
43402
43403 function invokeCallback () {
43404 cleanup()
43405
43406 if (args[0]) {
43407 // halt the stream on error
43408 halt(stream)
43409 }
43410
43411 callback.apply(null, args)
43412 }
43413 }
43414
43415 function onAborted () {
43416 if (complete) return
43417
43418 done(createError(400, 'request aborted', {
43419 code: 'ECONNABORTED',
43420 expected: length,
43421 length: length,
43422 received: received,
43423 type: 'request.aborted'
43424 }))
43425 }
43426
43427 function onData (chunk) {
43428 if (complete) return
43429
43430 received += chunk.length
43431
43432 if (limit !== null && received > limit) {
43433 done(createError(413, 'request entity too large', {
43434 limit: limit,
43435 received: received,
43436 type: 'entity.too.large'
43437 }))
43438 } else if (decoder) {
43439 buffer += decoder.write(chunk)
43440 } else {
43441 buffer.push(chunk)
43442 }
43443 }
43444
43445 function onEnd (err) {
43446 if (complete) return
43447 if (err) return done(err)
43448
43449 if (length !== null && received !== length) {
43450 done(createError(400, 'request size did not match content length', {
43451 expected: length,
43452 length: length,
43453 received: received,
43454 type: 'request.size.invalid'
43455 }))
43456 } else {
43457 var string = decoder
43458 ? buffer + (decoder.end() || '')
43459 : Buffer.concat(buffer)
43460 done(null, string)
43461 }
43462 }
43463
43464 function cleanup () {
43465 buffer = null
43466
43467 stream.removeListener('aborted', onAborted)
43468 stream.removeListener('data', onData)
43469 stream.removeListener('end', onEnd)
43470 stream.removeListener('error', onEnd)
43471 stream.removeListener('close', cleanup)
43472 }
43473}
43474
43475
43476/***/ }),
43477/* 618 */
43478/***/ (function(module, exports, __webpack_require__) {
43479
43480"use strict";
43481
43482
43483var BOMChar = '\uFEFF';
43484
43485exports.PrependBOM = PrependBOMWrapper
43486function PrependBOMWrapper(encoder, options) {
43487 this.encoder = encoder;
43488 this.addBOM = true;
43489}
43490
43491PrependBOMWrapper.prototype.write = function(str) {
43492 if (this.addBOM) {
43493 str = BOMChar + str;
43494 this.addBOM = false;
43495 }
43496
43497 return this.encoder.write(str);
43498}
43499
43500PrependBOMWrapper.prototype.end = function() {
43501 return this.encoder.end();
43502}
43503
43504
43505//------------------------------------------------------------------------------
43506
43507exports.StripBOM = StripBOMWrapper;
43508function StripBOMWrapper(decoder, options) {
43509 this.decoder = decoder;
43510 this.pass = false;
43511 this.options = options || {};
43512}
43513
43514StripBOMWrapper.prototype.write = function(buf) {
43515 var res = this.decoder.write(buf);
43516 if (this.pass || !res)
43517 return res;
43518
43519 if (res[0] === BOMChar) {
43520 res = res.slice(1);
43521 if (typeof this.options.stripBOM === 'function')
43522 this.options.stripBOM();
43523 }
43524
43525 this.pass = true;
43526 return res;
43527}
43528
43529StripBOMWrapper.prototype.end = function() {
43530 return this.decoder.end();
43531}
43532
43533
43534
43535/***/ }),
43536/* 619 */
43537/***/ (function(module, exports, __webpack_require__) {
43538
43539"use strict";
43540
43541
43542// Update this array if you add/rename/remove files in this directory.
43543// We support Browserify by skipping automatic module discovery and requiring modules directly.
43544var modules = [
43545 __webpack_require__(620),
43546 __webpack_require__(622),
43547 __webpack_require__(623),
43548 __webpack_require__(624),
43549 __webpack_require__(625),
43550 __webpack_require__(626),
43551 __webpack_require__(627),
43552 __webpack_require__(628),
43553];
43554
43555// Put all encoding/alias/codec definitions to single object and export it.
43556for (var i = 0; i < modules.length; i++) {
43557 var module = modules[i];
43558 for (var enc in module)
43559 if (Object.prototype.hasOwnProperty.call(module, enc))
43560 exports[enc] = module[enc];
43561}
43562
43563
43564/***/ }),
43565/* 620 */
43566/***/ (function(module, exports, __webpack_require__) {
43567
43568"use strict";
43569
43570var Buffer = __webpack_require__(16).Buffer;
43571
43572// Export Node.js internal encodings.
43573
43574module.exports = {
43575 // Encodings
43576 utf8: { type: "_internal", bomAware: true},
43577 cesu8: { type: "_internal", bomAware: true},
43578 unicode11utf8: "utf8",
43579
43580 ucs2: { type: "_internal", bomAware: true},
43581 utf16le: "ucs2",
43582
43583 binary: { type: "_internal" },
43584 base64: { type: "_internal" },
43585 hex: { type: "_internal" },
43586
43587 // Codec.
43588 _internal: InternalCodec,
43589};
43590
43591//------------------------------------------------------------------------------
43592
43593function InternalCodec(codecOptions, iconv) {
43594 this.enc = codecOptions.encodingName;
43595 this.bomAware = codecOptions.bomAware;
43596
43597 if (this.enc === "base64")
43598 this.encoder = InternalEncoderBase64;
43599 else if (this.enc === "cesu8") {
43600 this.enc = "utf8"; // Use utf8 for decoding.
43601 this.encoder = InternalEncoderCesu8;
43602
43603 // Add decoder for versions of Node not supporting CESU-8
43604 if (new Buffer('eda0bdedb2a9', 'hex').toString() !== '💩') {
43605 this.decoder = InternalDecoderCesu8;
43606 this.defaultCharUnicode = iconv.defaultCharUnicode;
43607 }
43608 }
43609}
43610
43611InternalCodec.prototype.encoder = InternalEncoder;
43612InternalCodec.prototype.decoder = InternalDecoder;
43613
43614//------------------------------------------------------------------------------
43615
43616// We use node.js internal decoder. Its signature is the same as ours.
43617var StringDecoder = __webpack_require__(621).StringDecoder;
43618
43619if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
43620 StringDecoder.prototype.end = function() {};
43621
43622
43623function InternalDecoder(options, codec) {
43624 StringDecoder.call(this, codec.enc);
43625}
43626
43627InternalDecoder.prototype = StringDecoder.prototype;
43628
43629
43630//------------------------------------------------------------------------------
43631// Encoder is mostly trivial
43632
43633function InternalEncoder(options, codec) {
43634 this.enc = codec.enc;
43635}
43636
43637InternalEncoder.prototype.write = function(str) {
43638 return new Buffer(str, this.enc);
43639}
43640
43641InternalEncoder.prototype.end = function() {
43642}
43643
43644
43645//------------------------------------------------------------------------------
43646// Except base64 encoder, which must keep its state.
43647
43648function InternalEncoderBase64(options, codec) {
43649 this.prevStr = '';
43650}
43651
43652InternalEncoderBase64.prototype.write = function(str) {
43653 str = this.prevStr + str;
43654 var completeQuads = str.length - (str.length % 4);
43655 this.prevStr = str.slice(completeQuads);
43656 str = str.slice(0, completeQuads);
43657
43658 return new Buffer(str, "base64");
43659}
43660
43661InternalEncoderBase64.prototype.end = function() {
43662 return new Buffer(this.prevStr, "base64");
43663}
43664
43665
43666//------------------------------------------------------------------------------
43667// CESU-8 encoder is also special.
43668
43669function InternalEncoderCesu8(options, codec) {
43670}
43671
43672InternalEncoderCesu8.prototype.write = function(str) {
43673 var buf = new Buffer(str.length * 3), bufIdx = 0;
43674 for (var i = 0; i < str.length; i++) {
43675 var charCode = str.charCodeAt(i);
43676 // Naive implementation, but it works because CESU-8 is especially easy
43677 // to convert from UTF-16 (which all JS strings are encoded in).
43678 if (charCode < 0x80)
43679 buf[bufIdx++] = charCode;
43680 else if (charCode < 0x800) {
43681 buf[bufIdx++] = 0xC0 + (charCode >>> 6);
43682 buf[bufIdx++] = 0x80 + (charCode & 0x3f);
43683 }
43684 else { // charCode will always be < 0x10000 in javascript.
43685 buf[bufIdx++] = 0xE0 + (charCode >>> 12);
43686 buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
43687 buf[bufIdx++] = 0x80 + (charCode & 0x3f);
43688 }
43689 }
43690 return buf.slice(0, bufIdx);
43691}
43692
43693InternalEncoderCesu8.prototype.end = function() {
43694}
43695
43696//------------------------------------------------------------------------------
43697// CESU-8 decoder is not implemented in Node v4.0+
43698
43699function InternalDecoderCesu8(options, codec) {
43700 this.acc = 0;
43701 this.contBytes = 0;
43702 this.accBytes = 0;
43703 this.defaultCharUnicode = codec.defaultCharUnicode;
43704}
43705
43706InternalDecoderCesu8.prototype.write = function(buf) {
43707 var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes,
43708 res = '';
43709 for (var i = 0; i < buf.length; i++) {
43710 var curByte = buf[i];
43711 if ((curByte & 0xC0) !== 0x80) { // Leading byte
43712 if (contBytes > 0) { // Previous code is invalid
43713 res += this.defaultCharUnicode;
43714 contBytes = 0;
43715 }
43716
43717 if (curByte < 0x80) { // Single-byte code
43718 res += String.fromCharCode(curByte);
43719 } else if (curByte < 0xE0) { // Two-byte code
43720 acc = curByte & 0x1F;
43721 contBytes = 1; accBytes = 1;
43722 } else if (curByte < 0xF0) { // Three-byte code
43723 acc = curByte & 0x0F;
43724 contBytes = 2; accBytes = 1;
43725 } else { // Four or more are not supported for CESU-8.
43726 res += this.defaultCharUnicode;
43727 }
43728 } else { // Continuation byte
43729 if (contBytes > 0) { // We're waiting for it.
43730 acc = (acc << 6) | (curByte & 0x3f);
43731 contBytes--; accBytes++;
43732 if (contBytes === 0) {
43733 // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
43734 if (accBytes === 2 && acc < 0x80 && acc > 0)
43735 res += this.defaultCharUnicode;
43736 else if (accBytes === 3 && acc < 0x800)
43737 res += this.defaultCharUnicode;
43738 else
43739 // Actually add character.
43740 res += String.fromCharCode(acc);
43741 }
43742 } else { // Unexpected continuation byte
43743 res += this.defaultCharUnicode;
43744 }
43745 }
43746 }
43747 this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
43748 return res;
43749}
43750
43751InternalDecoderCesu8.prototype.end = function() {
43752 var res = 0;
43753 if (this.contBytes > 0)
43754 res += this.defaultCharUnicode;
43755 return res;
43756}
43757
43758
43759/***/ }),
43760/* 621 */
43761/***/ (function(module, exports) {
43762
43763module.exports = require("string_decoder");
43764
43765/***/ }),
43766/* 622 */
43767/***/ (function(module, exports, __webpack_require__) {
43768
43769"use strict";
43770
43771var Buffer = __webpack_require__(16).Buffer;
43772
43773// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
43774
43775// == UTF16-BE codec. ==========================================================
43776
43777exports.utf16be = Utf16BECodec;
43778function Utf16BECodec() {
43779}
43780
43781Utf16BECodec.prototype.encoder = Utf16BEEncoder;
43782Utf16BECodec.prototype.decoder = Utf16BEDecoder;
43783Utf16BECodec.prototype.bomAware = true;
43784
43785
43786// -- Encoding
43787
43788function Utf16BEEncoder() {
43789}
43790
43791Utf16BEEncoder.prototype.write = function(str) {
43792 var buf = new Buffer(str, 'ucs2');
43793 for (var i = 0; i < buf.length; i += 2) {
43794 var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
43795 }
43796 return buf;
43797}
43798
43799Utf16BEEncoder.prototype.end = function() {
43800}
43801
43802
43803// -- Decoding
43804
43805function Utf16BEDecoder() {
43806 this.overflowByte = -1;
43807}
43808
43809Utf16BEDecoder.prototype.write = function(buf) {
43810 if (buf.length == 0)
43811 return '';
43812
43813 var buf2 = new Buffer(buf.length + 1),
43814 i = 0, j = 0;
43815
43816 if (this.overflowByte !== -1) {
43817 buf2[0] = buf[0];
43818 buf2[1] = this.overflowByte;
43819 i = 1; j = 2;
43820 }
43821
43822 for (; i < buf.length-1; i += 2, j+= 2) {
43823 buf2[j] = buf[i+1];
43824 buf2[j+1] = buf[i];
43825 }
43826
43827 this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
43828
43829 return buf2.slice(0, j).toString('ucs2');
43830}
43831
43832Utf16BEDecoder.prototype.end = function() {
43833}
43834
43835
43836// == UTF-16 codec =============================================================
43837// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
43838// Defaults to UTF-16LE, as it's prevalent and default in Node.
43839// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
43840// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
43841
43842// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
43843
43844exports.utf16 = Utf16Codec;
43845function Utf16Codec(codecOptions, iconv) {
43846 this.iconv = iconv;
43847}
43848
43849Utf16Codec.prototype.encoder = Utf16Encoder;
43850Utf16Codec.prototype.decoder = Utf16Decoder;
43851
43852
43853// -- Encoding (pass-through)
43854
43855function Utf16Encoder(options, codec) {
43856 options = options || {};
43857 if (options.addBOM === undefined)
43858 options.addBOM = true;
43859 this.encoder = codec.iconv.getEncoder('utf-16le', options);
43860}
43861
43862Utf16Encoder.prototype.write = function(str) {
43863 return this.encoder.write(str);
43864}
43865
43866Utf16Encoder.prototype.end = function() {
43867 return this.encoder.end();
43868}
43869
43870
43871// -- Decoding
43872
43873function Utf16Decoder(options, codec) {
43874 this.decoder = null;
43875 this.initialBytes = [];
43876 this.initialBytesLen = 0;
43877
43878 this.options = options || {};
43879 this.iconv = codec.iconv;
43880}
43881
43882Utf16Decoder.prototype.write = function(buf) {
43883 if (!this.decoder) {
43884 // Codec is not chosen yet. Accumulate initial bytes.
43885 this.initialBytes.push(buf);
43886 this.initialBytesLen += buf.length;
43887
43888 if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
43889 return '';
43890
43891 // We have enough bytes -> detect endianness.
43892 var buf = Buffer.concat(this.initialBytes),
43893 encoding = detectEncoding(buf, this.options.defaultEncoding);
43894 this.decoder = this.iconv.getDecoder(encoding, this.options);
43895 this.initialBytes.length = this.initialBytesLen = 0;
43896 }
43897
43898 return this.decoder.write(buf);
43899}
43900
43901Utf16Decoder.prototype.end = function() {
43902 if (!this.decoder) {
43903 var buf = Buffer.concat(this.initialBytes),
43904 encoding = detectEncoding(buf, this.options.defaultEncoding);
43905 this.decoder = this.iconv.getDecoder(encoding, this.options);
43906
43907 var res = this.decoder.write(buf),
43908 trail = this.decoder.end();
43909
43910 return trail ? (res + trail) : res;
43911 }
43912 return this.decoder.end();
43913}
43914
43915function detectEncoding(buf, defaultEncoding) {
43916 var enc = defaultEncoding || 'utf-16le';
43917
43918 if (buf.length >= 2) {
43919 // Check BOM.
43920 if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
43921 enc = 'utf-16be';
43922 else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
43923 enc = 'utf-16le';
43924 else {
43925 // No BOM found. Try to deduce encoding from initial content.
43926 // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
43927 // So, we count ASCII as if it was LE or BE, and decide from that.
43928 var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
43929 _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
43930
43931 for (var i = 0; i < _len; i += 2) {
43932 if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
43933 if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
43934 }
43935
43936 if (asciiCharsBE > asciiCharsLE)
43937 enc = 'utf-16be';
43938 else if (asciiCharsBE < asciiCharsLE)
43939 enc = 'utf-16le';
43940 }
43941 }
43942
43943 return enc;
43944}
43945
43946
43947
43948
43949/***/ }),
43950/* 623 */
43951/***/ (function(module, exports, __webpack_require__) {
43952
43953"use strict";
43954
43955var Buffer = __webpack_require__(16).Buffer;
43956
43957// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
43958// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
43959
43960exports.utf7 = Utf7Codec;
43961exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
43962function Utf7Codec(codecOptions, iconv) {
43963 this.iconv = iconv;
43964};
43965
43966Utf7Codec.prototype.encoder = Utf7Encoder;
43967Utf7Codec.prototype.decoder = Utf7Decoder;
43968Utf7Codec.prototype.bomAware = true;
43969
43970
43971// -- Encoding
43972
43973var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
43974
43975function Utf7Encoder(options, codec) {
43976 this.iconv = codec.iconv;
43977}
43978
43979Utf7Encoder.prototype.write = function(str) {
43980 // Naive implementation.
43981 // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
43982 return new Buffer(str.replace(nonDirectChars, function(chunk) {
43983 return "+" + (chunk === '+' ? '' :
43984 this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
43985 + "-";
43986 }.bind(this)));
43987}
43988
43989Utf7Encoder.prototype.end = function() {
43990}
43991
43992
43993// -- Decoding
43994
43995function Utf7Decoder(options, codec) {
43996 this.iconv = codec.iconv;
43997 this.inBase64 = false;
43998 this.base64Accum = '';
43999}
44000
44001var base64Regex = /[A-Za-z0-9\/+]/;
44002var base64Chars = [];
44003for (var i = 0; i < 256; i++)
44004 base64Chars[i] = base64Regex.test(String.fromCharCode(i));
44005
44006var plusChar = '+'.charCodeAt(0),
44007 minusChar = '-'.charCodeAt(0),
44008 andChar = '&'.charCodeAt(0);
44009
44010Utf7Decoder.prototype.write = function(buf) {
44011 var res = "", lastI = 0,
44012 inBase64 = this.inBase64,
44013 base64Accum = this.base64Accum;
44014
44015 // The decoder is more involved as we must handle chunks in stream.
44016
44017 for (var i = 0; i < buf.length; i++) {
44018 if (!inBase64) { // We're in direct mode.
44019 // Write direct chars until '+'
44020 if (buf[i] == plusChar) {
44021 res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
44022 lastI = i+1;
44023 inBase64 = true;
44024 }
44025 } else { // We decode base64.
44026 if (!base64Chars[buf[i]]) { // Base64 ended.
44027 if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
44028 res += "+";
44029 } else {
44030 var b64str = base64Accum + buf.slice(lastI, i).toString();
44031 res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
44032 }
44033
44034 if (buf[i] != minusChar) // Minus is absorbed after base64.
44035 i--;
44036
44037 lastI = i+1;
44038 inBase64 = false;
44039 base64Accum = '';
44040 }
44041 }
44042 }
44043
44044 if (!inBase64) {
44045 res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
44046 } else {
44047 var b64str = base64Accum + buf.slice(lastI).toString();
44048
44049 var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
44050 base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
44051 b64str = b64str.slice(0, canBeDecoded);
44052
44053 res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
44054 }
44055
44056 this.inBase64 = inBase64;
44057 this.base64Accum = base64Accum;
44058
44059 return res;
44060}
44061
44062Utf7Decoder.prototype.end = function() {
44063 var res = "";
44064 if (this.inBase64 && this.base64Accum.length > 0)
44065 res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
44066
44067 this.inBase64 = false;
44068 this.base64Accum = '';
44069 return res;
44070}
44071
44072
44073// UTF-7-IMAP codec.
44074// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
44075// Differences:
44076// * Base64 part is started by "&" instead of "+"
44077// * Direct characters are 0x20-0x7E, except "&" (0x26)
44078// * In Base64, "," is used instead of "/"
44079// * Base64 must not be used to represent direct characters.
44080// * No implicit shift back from Base64 (should always end with '-')
44081// * String must end in non-shifted position.
44082// * "-&" while in base64 is not allowed.
44083
44084
44085exports.utf7imap = Utf7IMAPCodec;
44086function Utf7IMAPCodec(codecOptions, iconv) {
44087 this.iconv = iconv;
44088};
44089
44090Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
44091Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
44092Utf7IMAPCodec.prototype.bomAware = true;
44093
44094
44095// -- Encoding
44096
44097function Utf7IMAPEncoder(options, codec) {
44098 this.iconv = codec.iconv;
44099 this.inBase64 = false;
44100 this.base64Accum = new Buffer(6);
44101 this.base64AccumIdx = 0;
44102}
44103
44104Utf7IMAPEncoder.prototype.write = function(str) {
44105 var inBase64 = this.inBase64,
44106 base64Accum = this.base64Accum,
44107 base64AccumIdx = this.base64AccumIdx,
44108 buf = new Buffer(str.length*5 + 10), bufIdx = 0;
44109
44110 for (var i = 0; i < str.length; i++) {
44111 var uChar = str.charCodeAt(i);
44112 if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
44113 if (inBase64) {
44114 if (base64AccumIdx > 0) {
44115 bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
44116 base64AccumIdx = 0;
44117 }
44118
44119 buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
44120 inBase64 = false;
44121 }
44122
44123 if (!inBase64) {
44124 buf[bufIdx++] = uChar; // Write direct character
44125
44126 if (uChar === andChar) // Ampersand -> '&-'
44127 buf[bufIdx++] = minusChar;
44128 }
44129
44130 } else { // Non-direct character
44131 if (!inBase64) {
44132 buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
44133 inBase64 = true;
44134 }
44135 if (inBase64) {
44136 base64Accum[base64AccumIdx++] = uChar >> 8;
44137 base64Accum[base64AccumIdx++] = uChar & 0xFF;
44138
44139 if (base64AccumIdx == base64Accum.length) {
44140 bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
44141 base64AccumIdx = 0;
44142 }
44143 }
44144 }
44145 }
44146
44147 this.inBase64 = inBase64;
44148 this.base64AccumIdx = base64AccumIdx;
44149
44150 return buf.slice(0, bufIdx);
44151}
44152
44153Utf7IMAPEncoder.prototype.end = function() {
44154 var buf = new Buffer(10), bufIdx = 0;
44155 if (this.inBase64) {
44156 if (this.base64AccumIdx > 0) {
44157 bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
44158 this.base64AccumIdx = 0;
44159 }
44160
44161 buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
44162 this.inBase64 = false;
44163 }
44164
44165 return buf.slice(0, bufIdx);
44166}
44167
44168
44169// -- Decoding
44170
44171function Utf7IMAPDecoder(options, codec) {
44172 this.iconv = codec.iconv;
44173 this.inBase64 = false;
44174 this.base64Accum = '';
44175}
44176
44177var base64IMAPChars = base64Chars.slice();
44178base64IMAPChars[','.charCodeAt(0)] = true;
44179
44180Utf7IMAPDecoder.prototype.write = function(buf) {
44181 var res = "", lastI = 0,
44182 inBase64 = this.inBase64,
44183 base64Accum = this.base64Accum;
44184
44185 // The decoder is more involved as we must handle chunks in stream.
44186 // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
44187
44188 for (var i = 0; i < buf.length; i++) {
44189 if (!inBase64) { // We're in direct mode.
44190 // Write direct chars until '&'
44191 if (buf[i] == andChar) {
44192 res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
44193 lastI = i+1;
44194 inBase64 = true;
44195 }
44196 } else { // We decode base64.
44197 if (!base64IMAPChars[buf[i]]) { // Base64 ended.
44198 if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
44199 res += "&";
44200 } else {
44201 var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
44202 res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
44203 }
44204
44205 if (buf[i] != minusChar) // Minus may be absorbed after base64.
44206 i--;
44207
44208 lastI = i+1;
44209 inBase64 = false;
44210 base64Accum = '';
44211 }
44212 }
44213 }
44214
44215 if (!inBase64) {
44216 res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
44217 } else {
44218 var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
44219
44220 var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
44221 base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
44222 b64str = b64str.slice(0, canBeDecoded);
44223
44224 res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
44225 }
44226
44227 this.inBase64 = inBase64;
44228 this.base64Accum = base64Accum;
44229
44230 return res;
44231}
44232
44233Utf7IMAPDecoder.prototype.end = function() {
44234 var res = "";
44235 if (this.inBase64 && this.base64Accum.length > 0)
44236 res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
44237
44238 this.inBase64 = false;
44239 this.base64Accum = '';
44240 return res;
44241}
44242
44243
44244
44245
44246/***/ }),
44247/* 624 */
44248/***/ (function(module, exports, __webpack_require__) {
44249
44250"use strict";
44251
44252var Buffer = __webpack_require__(16).Buffer;
44253
44254// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
44255// correspond to encoded bytes (if 128 - then lower half is ASCII).
44256
44257exports._sbcs = SBCSCodec;
44258function SBCSCodec(codecOptions, iconv) {
44259 if (!codecOptions)
44260 throw new Error("SBCS codec is called without the data.")
44261
44262 // Prepare char buffer for decoding.
44263 if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
44264 throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
44265
44266 if (codecOptions.chars.length === 128) {
44267 var asciiString = "";
44268 for (var i = 0; i < 128; i++)
44269 asciiString += String.fromCharCode(i);
44270 codecOptions.chars = asciiString + codecOptions.chars;
44271 }
44272
44273 this.decodeBuf = new Buffer(codecOptions.chars, 'ucs2');
44274
44275 // Encoding buffer.
44276 var encodeBuf = new Buffer(65536);
44277 encodeBuf.fill(iconv.defaultCharSingleByte.charCodeAt(0));
44278
44279 for (var i = 0; i < codecOptions.chars.length; i++)
44280 encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
44281
44282 this.encodeBuf = encodeBuf;
44283}
44284
44285SBCSCodec.prototype.encoder = SBCSEncoder;
44286SBCSCodec.prototype.decoder = SBCSDecoder;
44287
44288
44289function SBCSEncoder(options, codec) {
44290 this.encodeBuf = codec.encodeBuf;
44291}
44292
44293SBCSEncoder.prototype.write = function(str) {
44294 var buf = new Buffer(str.length);
44295 for (var i = 0; i < str.length; i++)
44296 buf[i] = this.encodeBuf[str.charCodeAt(i)];
44297
44298 return buf;
44299}
44300
44301SBCSEncoder.prototype.end = function() {
44302}
44303
44304
44305function SBCSDecoder(options, codec) {
44306 this.decodeBuf = codec.decodeBuf;
44307}
44308
44309SBCSDecoder.prototype.write = function(buf) {
44310 // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
44311 var decodeBuf = this.decodeBuf;
44312 var newBuf = new Buffer(buf.length*2);
44313 var idx1 = 0, idx2 = 0;
44314 for (var i = 0; i < buf.length; i++) {
44315 idx1 = buf[i]*2; idx2 = i*2;
44316 newBuf[idx2] = decodeBuf[idx1];
44317 newBuf[idx2+1] = decodeBuf[idx1+1];
44318 }
44319 return newBuf.toString('ucs2');
44320}
44321
44322SBCSDecoder.prototype.end = function() {
44323}
44324
44325
44326/***/ }),
44327/* 625 */
44328/***/ (function(module, exports, __webpack_require__) {
44329
44330"use strict";
44331
44332
44333// Manually added data to be used by sbcs codec in addition to generated one.
44334
44335module.exports = {
44336 // Not supported by iconv, not sure why.
44337 "10029": "maccenteuro",
44338 "maccenteuro": {
44339 "type": "_sbcs",
44340 "chars": "ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"
44341 },
44342
44343 "808": "cp808",
44344 "ibm808": "cp808",
44345 "cp808": {
44346 "type": "_sbcs",
44347 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "
44348 },
44349
44350 // Aliases of generated encodings.
44351 "ascii8bit": "ascii",
44352 "usascii": "ascii",
44353 "ansix34": "ascii",
44354 "ansix341968": "ascii",
44355 "ansix341986": "ascii",
44356 "csascii": "ascii",
44357 "cp367": "ascii",
44358 "ibm367": "ascii",
44359 "isoir6": "ascii",
44360 "iso646us": "ascii",
44361 "iso646irv": "ascii",
44362 "us": "ascii",
44363
44364 "latin1": "iso88591",
44365 "latin2": "iso88592",
44366 "latin3": "iso88593",
44367 "latin4": "iso88594",
44368 "latin5": "iso88599",
44369 "latin6": "iso885910",
44370 "latin7": "iso885913",
44371 "latin8": "iso885914",
44372 "latin9": "iso885915",
44373 "latin10": "iso885916",
44374
44375 "csisolatin1": "iso88591",
44376 "csisolatin2": "iso88592",
44377 "csisolatin3": "iso88593",
44378 "csisolatin4": "iso88594",
44379 "csisolatincyrillic": "iso88595",
44380 "csisolatinarabic": "iso88596",
44381 "csisolatingreek" : "iso88597",
44382 "csisolatinhebrew": "iso88598",
44383 "csisolatin5": "iso88599",
44384 "csisolatin6": "iso885910",
44385
44386 "l1": "iso88591",
44387 "l2": "iso88592",
44388 "l3": "iso88593",
44389 "l4": "iso88594",
44390 "l5": "iso88599",
44391 "l6": "iso885910",
44392 "l7": "iso885913",
44393 "l8": "iso885914",
44394 "l9": "iso885915",
44395 "l10": "iso885916",
44396
44397 "isoir14": "iso646jp",
44398 "isoir57": "iso646cn",
44399 "isoir100": "iso88591",
44400 "isoir101": "iso88592",
44401 "isoir109": "iso88593",
44402 "isoir110": "iso88594",
44403 "isoir144": "iso88595",
44404 "isoir127": "iso88596",
44405 "isoir126": "iso88597",
44406 "isoir138": "iso88598",
44407 "isoir148": "iso88599",
44408 "isoir157": "iso885910",
44409 "isoir166": "tis620",
44410 "isoir179": "iso885913",
44411 "isoir199": "iso885914",
44412 "isoir203": "iso885915",
44413 "isoir226": "iso885916",
44414
44415 "cp819": "iso88591",
44416 "ibm819": "iso88591",
44417
44418 "cyrillic": "iso88595",
44419
44420 "arabic": "iso88596",
44421 "arabic8": "iso88596",
44422 "ecma114": "iso88596",
44423 "asmo708": "iso88596",
44424
44425 "greek" : "iso88597",
44426 "greek8" : "iso88597",
44427 "ecma118" : "iso88597",
44428 "elot928" : "iso88597",
44429
44430 "hebrew": "iso88598",
44431 "hebrew8": "iso88598",
44432
44433 "turkish": "iso88599",
44434 "turkish8": "iso88599",
44435
44436 "thai": "iso885911",
44437 "thai8": "iso885911",
44438
44439 "celtic": "iso885914",
44440 "celtic8": "iso885914",
44441 "isoceltic": "iso885914",
44442
44443 "tis6200": "tis620",
44444 "tis62025291": "tis620",
44445 "tis62025330": "tis620",
44446
44447 "10000": "macroman",
44448 "10006": "macgreek",
44449 "10007": "maccyrillic",
44450 "10079": "maciceland",
44451 "10081": "macturkish",
44452
44453 "cspc8codepage437": "cp437",
44454 "cspc775baltic": "cp775",
44455 "cspc850multilingual": "cp850",
44456 "cspcp852": "cp852",
44457 "cspc862latinhebrew": "cp862",
44458 "cpgr": "cp869",
44459
44460 "msee": "cp1250",
44461 "mscyrl": "cp1251",
44462 "msansi": "cp1252",
44463 "msgreek": "cp1253",
44464 "msturk": "cp1254",
44465 "mshebr": "cp1255",
44466 "msarab": "cp1256",
44467 "winbaltrim": "cp1257",
44468
44469 "cp20866": "koi8r",
44470 "20866": "koi8r",
44471 "ibm878": "koi8r",
44472 "cskoi8r": "koi8r",
44473
44474 "cp21866": "koi8u",
44475 "21866": "koi8u",
44476 "ibm1168": "koi8u",
44477
44478 "strk10482002": "rk1048",
44479
44480 "tcvn5712": "tcvn",
44481 "tcvn57121": "tcvn",
44482
44483 "gb198880": "iso646cn",
44484 "cn": "iso646cn",
44485
44486 "csiso14jisc6220ro": "iso646jp",
44487 "jisc62201969ro": "iso646jp",
44488 "jp": "iso646jp",
44489
44490 "cshproman8": "hproman8",
44491 "r8": "hproman8",
44492 "roman8": "hproman8",
44493 "xroman8": "hproman8",
44494 "ibm1051": "hproman8",
44495
44496 "mac": "macintosh",
44497 "csmacintosh": "macintosh",
44498};
44499
44500
44501
44502/***/ }),
44503/* 626 */
44504/***/ (function(module, exports, __webpack_require__) {
44505
44506"use strict";
44507
44508
44509// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.
44510module.exports = {
44511 "437": "cp437",
44512 "737": "cp737",
44513 "775": "cp775",
44514 "850": "cp850",
44515 "852": "cp852",
44516 "855": "cp855",
44517 "856": "cp856",
44518 "857": "cp857",
44519 "858": "cp858",
44520 "860": "cp860",
44521 "861": "cp861",
44522 "862": "cp862",
44523 "863": "cp863",
44524 "864": "cp864",
44525 "865": "cp865",
44526 "866": "cp866",
44527 "869": "cp869",
44528 "874": "windows874",
44529 "922": "cp922",
44530 "1046": "cp1046",
44531 "1124": "cp1124",
44532 "1125": "cp1125",
44533 "1129": "cp1129",
44534 "1133": "cp1133",
44535 "1161": "cp1161",
44536 "1162": "cp1162",
44537 "1163": "cp1163",
44538 "1250": "windows1250",
44539 "1251": "windows1251",
44540 "1252": "windows1252",
44541 "1253": "windows1253",
44542 "1254": "windows1254",
44543 "1255": "windows1255",
44544 "1256": "windows1256",
44545 "1257": "windows1257",
44546 "1258": "windows1258",
44547 "28591": "iso88591",
44548 "28592": "iso88592",
44549 "28593": "iso88593",
44550 "28594": "iso88594",
44551 "28595": "iso88595",
44552 "28596": "iso88596",
44553 "28597": "iso88597",
44554 "28598": "iso88598",
44555 "28599": "iso88599",
44556 "28600": "iso885910",
44557 "28601": "iso885911",
44558 "28603": "iso885913",
44559 "28604": "iso885914",
44560 "28605": "iso885915",
44561 "28606": "iso885916",
44562 "windows874": {
44563 "type": "_sbcs",
44564 "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
44565 },
44566 "win874": "windows874",
44567 "cp874": "windows874",
44568 "windows1250": {
44569 "type": "_sbcs",
44570 "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
44571 },
44572 "win1250": "windows1250",
44573 "cp1250": "windows1250",
44574 "windows1251": {
44575 "type": "_sbcs",
44576 "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
44577 },
44578 "win1251": "windows1251",
44579 "cp1251": "windows1251",
44580 "windows1252": {
44581 "type": "_sbcs",
44582 "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
44583 },
44584 "win1252": "windows1252",
44585 "cp1252": "windows1252",
44586 "windows1253": {
44587 "type": "_sbcs",
44588 "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
44589 },
44590 "win1253": "windows1253",
44591 "cp1253": "windows1253",
44592 "windows1254": {
44593 "type": "_sbcs",
44594 "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
44595 },
44596 "win1254": "windows1254",
44597 "cp1254": "windows1254",
44598 "windows1255": {
44599 "type": "_sbcs",
44600 "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
44601 },
44602 "win1255": "windows1255",
44603 "cp1255": "windows1255",
44604 "windows1256": {
44605 "type": "_sbcs",
44606 "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"
44607 },
44608 "win1256": "windows1256",
44609 "cp1256": "windows1256",
44610 "windows1257": {
44611 "type": "_sbcs",
44612 "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
44613 },
44614 "win1257": "windows1257",
44615 "cp1257": "windows1257",
44616 "windows1258": {
44617 "type": "_sbcs",
44618 "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
44619 },
44620 "win1258": "windows1258",
44621 "cp1258": "windows1258",
44622 "iso88591": {
44623 "type": "_sbcs",
44624 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
44625 },
44626 "cp28591": "iso88591",
44627 "iso88592": {
44628 "type": "_sbcs",
44629 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
44630 },
44631 "cp28592": "iso88592",
44632 "iso88593": {
44633 "type": "_sbcs",
44634 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"
44635 },
44636 "cp28593": "iso88593",
44637 "iso88594": {
44638 "type": "_sbcs",
44639 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"
44640 },
44641 "cp28594": "iso88594",
44642 "iso88595": {
44643 "type": "_sbcs",
44644 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"
44645 },
44646 "cp28595": "iso88595",
44647 "iso88596": {
44648 "type": "_sbcs",
44649 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"
44650 },
44651 "cp28596": "iso88596",
44652 "iso88597": {
44653 "type": "_sbcs",
44654 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
44655 },
44656 "cp28597": "iso88597",
44657 "iso88598": {
44658 "type": "_sbcs",
44659 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
44660 },
44661 "cp28598": "iso88598",
44662 "iso88599": {
44663 "type": "_sbcs",
44664 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
44665 },
44666 "cp28599": "iso88599",
44667 "iso885910": {
44668 "type": "_sbcs",
44669 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"
44670 },
44671 "cp28600": "iso885910",
44672 "iso885911": {
44673 "type": "_sbcs",
44674 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
44675 },
44676 "cp28601": "iso885911",
44677 "iso885913": {
44678 "type": "_sbcs",
44679 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"
44680 },
44681 "cp28603": "iso885913",
44682 "iso885914": {
44683 "type": "_sbcs",
44684 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"
44685 },
44686 "cp28604": "iso885914",
44687 "iso885915": {
44688 "type": "_sbcs",
44689 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
44690 },
44691 "cp28605": "iso885915",
44692 "iso885916": {
44693 "type": "_sbcs",
44694 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"
44695 },
44696 "cp28606": "iso885916",
44697 "cp437": {
44698 "type": "_sbcs",
44699 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44700 },
44701 "ibm437": "cp437",
44702 "csibm437": "cp437",
44703 "cp737": {
44704 "type": "_sbcs",
44705 "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
44706 },
44707 "ibm737": "cp737",
44708 "csibm737": "cp737",
44709 "cp775": {
44710 "type": "_sbcs",
44711 "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "
44712 },
44713 "ibm775": "cp775",
44714 "csibm775": "cp775",
44715 "cp850": {
44716 "type": "_sbcs",
44717 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "
44718 },
44719 "ibm850": "cp850",
44720 "csibm850": "cp850",
44721 "cp852": {
44722 "type": "_sbcs",
44723 "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "
44724 },
44725 "ibm852": "cp852",
44726 "csibm852": "cp852",
44727 "cp855": {
44728 "type": "_sbcs",
44729 "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "
44730 },
44731 "ibm855": "cp855",
44732 "csibm855": "cp855",
44733 "cp856": {
44734 "type": "_sbcs",
44735 "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "
44736 },
44737 "ibm856": "cp856",
44738 "csibm856": "cp856",
44739 "cp857": {
44740 "type": "_sbcs",
44741 "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "
44742 },
44743 "ibm857": "cp857",
44744 "csibm857": "cp857",
44745 "cp858": {
44746 "type": "_sbcs",
44747 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "
44748 },
44749 "ibm858": "cp858",
44750 "csibm858": "cp858",
44751 "cp860": {
44752 "type": "_sbcs",
44753 "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44754 },
44755 "ibm860": "cp860",
44756 "csibm860": "cp860",
44757 "cp861": {
44758 "type": "_sbcs",
44759 "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44760 },
44761 "ibm861": "cp861",
44762 "csibm861": "cp861",
44763 "cp862": {
44764 "type": "_sbcs",
44765 "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44766 },
44767 "ibm862": "cp862",
44768 "csibm862": "cp862",
44769 "cp863": {
44770 "type": "_sbcs",
44771 "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44772 },
44773 "ibm863": "cp863",
44774 "csibm863": "cp863",
44775 "cp864": {
44776 "type": "_sbcs",
44777 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"
44778 },
44779 "ibm864": "cp864",
44780 "csibm864": "cp864",
44781 "cp865": {
44782 "type": "_sbcs",
44783 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
44784 },
44785 "ibm865": "cp865",
44786 "csibm865": "cp865",
44787 "cp866": {
44788 "type": "_sbcs",
44789 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
44790 },
44791 "ibm866": "cp866",
44792 "csibm866": "cp866",
44793 "cp869": {
44794 "type": "_sbcs",
44795 "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "
44796 },
44797 "ibm869": "cp869",
44798 "csibm869": "cp869",
44799 "cp922": {
44800 "type": "_sbcs",
44801 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"
44802 },
44803 "ibm922": "cp922",
44804 "csibm922": "cp922",
44805 "cp1046": {
44806 "type": "_sbcs",
44807 "chars": "ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"
44808 },
44809 "ibm1046": "cp1046",
44810 "csibm1046": "cp1046",
44811 "cp1124": {
44812 "type": "_sbcs",
44813 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"
44814 },
44815 "ibm1124": "cp1124",
44816 "csibm1124": "cp1124",
44817 "cp1125": {
44818 "type": "_sbcs",
44819 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "
44820 },
44821 "ibm1125": "cp1125",
44822 "csibm1125": "cp1125",
44823 "cp1129": {
44824 "type": "_sbcs",
44825 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
44826 },
44827 "ibm1129": "cp1129",
44828 "csibm1129": "cp1129",
44829 "cp1133": {
44830 "type": "_sbcs",
44831 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"
44832 },
44833 "ibm1133": "cp1133",
44834 "csibm1133": "cp1133",
44835 "cp1161": {
44836 "type": "_sbcs",
44837 "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "
44838 },
44839 "ibm1161": "cp1161",
44840 "csibm1161": "cp1161",
44841 "cp1162": {
44842 "type": "_sbcs",
44843 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
44844 },
44845 "ibm1162": "cp1162",
44846 "csibm1162": "cp1162",
44847 "cp1163": {
44848 "type": "_sbcs",
44849 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
44850 },
44851 "ibm1163": "cp1163",
44852 "csibm1163": "cp1163",
44853 "maccroatian": {
44854 "type": "_sbcs",
44855 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"
44856 },
44857 "maccyrillic": {
44858 "type": "_sbcs",
44859 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
44860 },
44861 "macgreek": {
44862 "type": "_sbcs",
44863 "chars": "Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
44864 },
44865 "maciceland": {
44866 "type": "_sbcs",
44867 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
44868 },
44869 "macroman": {
44870 "type": "_sbcs",
44871 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
44872 },
44873 "macromania": {
44874 "type": "_sbcs",
44875 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
44876 },
44877 "macthai": {
44878 "type": "_sbcs",
44879 "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"
44880 },
44881 "macturkish": {
44882 "type": "_sbcs",
44883 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
44884 },
44885 "macukraine": {
44886 "type": "_sbcs",
44887 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
44888 },
44889 "koi8r": {
44890 "type": "_sbcs",
44891 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
44892 },
44893 "koi8u": {
44894 "type": "_sbcs",
44895 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
44896 },
44897 "koi8ru": {
44898 "type": "_sbcs",
44899 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
44900 },
44901 "koi8t": {
44902 "type": "_sbcs",
44903 "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
44904 },
44905 "armscii8": {
44906 "type": "_sbcs",
44907 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"
44908 },
44909 "rk1048": {
44910 "type": "_sbcs",
44911 "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
44912 },
44913 "tcvn": {
44914 "type": "_sbcs",
44915 "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"
44916 },
44917 "georgianacademy": {
44918 "type": "_sbcs",
44919 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
44920 },
44921 "georgianps": {
44922 "type": "_sbcs",
44923 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
44924 },
44925 "pt154": {
44926 "type": "_sbcs",
44927 "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
44928 },
44929 "viscii": {
44930 "type": "_sbcs",
44931 "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"
44932 },
44933 "iso646cn": {
44934 "type": "_sbcs",
44935 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
44936 },
44937 "iso646jp": {
44938 "type": "_sbcs",
44939 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
44940 },
44941 "hproman8": {
44942 "type": "_sbcs",
44943 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"
44944 },
44945 "macintosh": {
44946 "type": "_sbcs",
44947 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
44948 },
44949 "ascii": {
44950 "type": "_sbcs",
44951 "chars": "��������������������������������������������������������������������������������������������������������������������������������"
44952 },
44953 "tis620": {
44954 "type": "_sbcs",
44955 "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
44956 }
44957}
44958
44959/***/ }),
44960/* 627 */
44961/***/ (function(module, exports, __webpack_require__) {
44962
44963"use strict";
44964
44965var Buffer = __webpack_require__(16).Buffer;
44966
44967// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
44968// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
44969// To save memory and loading time, we read table files only when requested.
44970
44971exports._dbcs = DBCSCodec;
44972
44973var UNASSIGNED = -1,
44974 GB18030_CODE = -2,
44975 SEQ_START = -10,
44976 NODE_START = -1000,
44977 UNASSIGNED_NODE = new Array(0x100),
44978 DEF_CHAR = -1;
44979
44980for (var i = 0; i < 0x100; i++)
44981 UNASSIGNED_NODE[i] = UNASSIGNED;
44982
44983
44984// Class DBCSCodec reads and initializes mapping tables.
44985function DBCSCodec(codecOptions, iconv) {
44986 this.encodingName = codecOptions.encodingName;
44987 if (!codecOptions)
44988 throw new Error("DBCS codec is called without the data.")
44989 if (!codecOptions.table)
44990 throw new Error("Encoding '" + this.encodingName + "' has no data.");
44991
44992 // Load tables.
44993 var mappingTable = codecOptions.table();
44994
44995
44996 // Decode tables: MBCS -> Unicode.
44997
44998 // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
44999 // Trie root is decodeTables[0].
45000 // Values: >= 0 -> unicode character code. can be > 0xFFFF
45001 // == UNASSIGNED -> unknown/unassigned sequence.
45002 // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
45003 // <= NODE_START -> index of the next node in our trie to process next byte.
45004 // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
45005 this.decodeTables = [];
45006 this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
45007
45008 // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
45009 this.decodeTableSeq = [];
45010
45011 // Actual mapping tables consist of chunks. Use them to fill up decode tables.
45012 for (var i = 0; i < mappingTable.length; i++)
45013 this._addDecodeChunk(mappingTable[i]);
45014
45015 this.defaultCharUnicode = iconv.defaultCharUnicode;
45016
45017
45018 // Encode tables: Unicode -> DBCS.
45019
45020 // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
45021 // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
45022 // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
45023 // == UNASSIGNED -> no conversion found. Output a default char.
45024 // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
45025 this.encodeTable = [];
45026
45027 // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
45028 // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
45029 // means end of sequence (needed when one sequence is a strict subsequence of another).
45030 // Objects are kept separately from encodeTable to increase performance.
45031 this.encodeTableSeq = [];
45032
45033 // Some chars can be decoded, but need not be encoded.
45034 var skipEncodeChars = {};
45035 if (codecOptions.encodeSkipVals)
45036 for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
45037 var val = codecOptions.encodeSkipVals[i];
45038 if (typeof val === 'number')
45039 skipEncodeChars[val] = true;
45040 else
45041 for (var j = val.from; j <= val.to; j++)
45042 skipEncodeChars[j] = true;
45043 }
45044
45045 // Use decode trie to recursively fill out encode tables.
45046 this._fillEncodeTable(0, 0, skipEncodeChars);
45047
45048 // Add more encoding pairs when needed.
45049 if (codecOptions.encodeAdd) {
45050 for (var uChar in codecOptions.encodeAdd)
45051 if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
45052 this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
45053 }
45054
45055 this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
45056 if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
45057 if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
45058
45059
45060 // Load & create GB18030 tables when needed.
45061 if (typeof codecOptions.gb18030 === 'function') {
45062 this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
45063
45064 // Add GB18030 decode tables.
45065 var thirdByteNodeIdx = this.decodeTables.length;
45066 var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
45067
45068 var fourthByteNodeIdx = this.decodeTables.length;
45069 var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
45070
45071 for (var i = 0x81; i <= 0xFE; i++) {
45072 var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
45073 var secondByteNode = this.decodeTables[secondByteNodeIdx];
45074 for (var j = 0x30; j <= 0x39; j++)
45075 secondByteNode[j] = NODE_START - thirdByteNodeIdx;
45076 }
45077 for (var i = 0x81; i <= 0xFE; i++)
45078 thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
45079 for (var i = 0x30; i <= 0x39; i++)
45080 fourthByteNode[i] = GB18030_CODE
45081 }
45082}
45083
45084DBCSCodec.prototype.encoder = DBCSEncoder;
45085DBCSCodec.prototype.decoder = DBCSDecoder;
45086
45087// Decoder helpers
45088DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
45089 var bytes = [];
45090 for (; addr > 0; addr >>= 8)
45091 bytes.push(addr & 0xFF);
45092 if (bytes.length == 0)
45093 bytes.push(0);
45094
45095 var node = this.decodeTables[0];
45096 for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
45097 var val = node[bytes[i]];
45098
45099 if (val == UNASSIGNED) { // Create new node.
45100 node[bytes[i]] = NODE_START - this.decodeTables.length;
45101 this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
45102 }
45103 else if (val <= NODE_START) { // Existing node.
45104 node = this.decodeTables[NODE_START - val];
45105 }
45106 else
45107 throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
45108 }
45109 return node;
45110}
45111
45112
45113DBCSCodec.prototype._addDecodeChunk = function(chunk) {
45114 // First element of chunk is the hex mbcs code where we start.
45115 var curAddr = parseInt(chunk[0], 16);
45116
45117 // Choose the decoding node where we'll write our chars.
45118 var writeTable = this._getDecodeTrieNode(curAddr);
45119 curAddr = curAddr & 0xFF;
45120
45121 // Write all other elements of the chunk to the table.
45122 for (var k = 1; k < chunk.length; k++) {
45123 var part = chunk[k];
45124 if (typeof part === "string") { // String, write as-is.
45125 for (var l = 0; l < part.length;) {
45126 var code = part.charCodeAt(l++);
45127 if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
45128 var codeTrail = part.charCodeAt(l++);
45129 if (0xDC00 <= codeTrail && codeTrail < 0xE000)
45130 writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
45131 else
45132 throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
45133 }
45134 else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
45135 var len = 0xFFF - code + 2;
45136 var seq = [];
45137 for (var m = 0; m < len; m++)
45138 seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
45139
45140 writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
45141 this.decodeTableSeq.push(seq);
45142 }
45143 else
45144 writeTable[curAddr++] = code; // Basic char
45145 }
45146 }
45147 else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
45148 var charCode = writeTable[curAddr - 1] + 1;
45149 for (var l = 0; l < part; l++)
45150 writeTable[curAddr++] = charCode++;
45151 }
45152 else
45153 throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
45154 }
45155 if (curAddr > 0xFF)
45156 throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
45157}
45158
45159// Encoder helpers
45160DBCSCodec.prototype._getEncodeBucket = function(uCode) {
45161 var high = uCode >> 8; // This could be > 0xFF because of astral characters.
45162 if (this.encodeTable[high] === undefined)
45163 this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
45164 return this.encodeTable[high];
45165}
45166
45167DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
45168 var bucket = this._getEncodeBucket(uCode);
45169 var low = uCode & 0xFF;
45170 if (bucket[low] <= SEQ_START)
45171 this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
45172 else if (bucket[low] == UNASSIGNED)
45173 bucket[low] = dbcsCode;
45174}
45175
45176DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
45177
45178 // Get the root of character tree according to first character of the sequence.
45179 var uCode = seq[0];
45180 var bucket = this._getEncodeBucket(uCode);
45181 var low = uCode & 0xFF;
45182
45183 var node;
45184 if (bucket[low] <= SEQ_START) {
45185 // There's already a sequence with - use it.
45186 node = this.encodeTableSeq[SEQ_START-bucket[low]];
45187 }
45188 else {
45189 // There was no sequence object - allocate a new one.
45190 node = {};
45191 if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
45192 bucket[low] = SEQ_START - this.encodeTableSeq.length;
45193 this.encodeTableSeq.push(node);
45194 }
45195
45196 // Traverse the character tree, allocating new nodes as needed.
45197 for (var j = 1; j < seq.length-1; j++) {
45198 var oldVal = node[uCode];
45199 if (typeof oldVal === 'object')
45200 node = oldVal;
45201 else {
45202 node = node[uCode] = {}
45203 if (oldVal !== undefined)
45204 node[DEF_CHAR] = oldVal
45205 }
45206 }
45207
45208 // Set the leaf to given dbcsCode.
45209 uCode = seq[seq.length-1];
45210 node[uCode] = dbcsCode;
45211}
45212
45213DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
45214 var node = this.decodeTables[nodeIdx];
45215 for (var i = 0; i < 0x100; i++) {
45216 var uCode = node[i];
45217 var mbCode = prefix + i;
45218 if (skipEncodeChars[mbCode])
45219 continue;
45220
45221 if (uCode >= 0)
45222 this._setEncodeChar(uCode, mbCode);
45223 else if (uCode <= NODE_START)
45224 this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
45225 else if (uCode <= SEQ_START)
45226 this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
45227 }
45228}
45229
45230
45231
45232// == Encoder ==================================================================
45233
45234function DBCSEncoder(options, codec) {
45235 // Encoder state
45236 this.leadSurrogate = -1;
45237 this.seqObj = undefined;
45238
45239 // Static data
45240 this.encodeTable = codec.encodeTable;
45241 this.encodeTableSeq = codec.encodeTableSeq;
45242 this.defaultCharSingleByte = codec.defCharSB;
45243 this.gb18030 = codec.gb18030;
45244}
45245
45246DBCSEncoder.prototype.write = function(str) {
45247 var newBuf = new Buffer(str.length * (this.gb18030 ? 4 : 3)),
45248 leadSurrogate = this.leadSurrogate,
45249 seqObj = this.seqObj, nextChar = -1,
45250 i = 0, j = 0;
45251
45252 while (true) {
45253 // 0. Get next character.
45254 if (nextChar === -1) {
45255 if (i == str.length) break;
45256 var uCode = str.charCodeAt(i++);
45257 }
45258 else {
45259 var uCode = nextChar;
45260 nextChar = -1;
45261 }
45262
45263 // 1. Handle surrogates.
45264 if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
45265 if (uCode < 0xDC00) { // We've got lead surrogate.
45266 if (leadSurrogate === -1) {
45267 leadSurrogate = uCode;
45268 continue;
45269 } else {
45270 leadSurrogate = uCode;
45271 // Double lead surrogate found.
45272 uCode = UNASSIGNED;
45273 }
45274 } else { // We've got trail surrogate.
45275 if (leadSurrogate !== -1) {
45276 uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
45277 leadSurrogate = -1;
45278 } else {
45279 // Incomplete surrogate pair - only trail surrogate found.
45280 uCode = UNASSIGNED;
45281 }
45282
45283 }
45284 }
45285 else if (leadSurrogate !== -1) {
45286 // Incomplete surrogate pair - only lead surrogate found.
45287 nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
45288 leadSurrogate = -1;
45289 }
45290
45291 // 2. Convert uCode character.
45292 var dbcsCode = UNASSIGNED;
45293 if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
45294 var resCode = seqObj[uCode];
45295 if (typeof resCode === 'object') { // Sequence continues.
45296 seqObj = resCode;
45297 continue;
45298
45299 } else if (typeof resCode == 'number') { // Sequence finished. Write it.
45300 dbcsCode = resCode;
45301
45302 } else if (resCode == undefined) { // Current character is not part of the sequence.
45303
45304 // Try default character for this sequence
45305 resCode = seqObj[DEF_CHAR];
45306 if (resCode !== undefined) {
45307 dbcsCode = resCode; // Found. Write it.
45308 nextChar = uCode; // Current character will be written too in the next iteration.
45309
45310 } else {
45311 // TODO: What if we have no default? (resCode == undefined)
45312 // Then, we should write first char of the sequence as-is and try the rest recursively.
45313 // Didn't do it for now because no encoding has this situation yet.
45314 // Currently, just skip the sequence and write current char.
45315 }
45316 }
45317 seqObj = undefined;
45318 }
45319 else if (uCode >= 0) { // Regular character
45320 var subtable = this.encodeTable[uCode >> 8];
45321 if (subtable !== undefined)
45322 dbcsCode = subtable[uCode & 0xFF];
45323
45324 if (dbcsCode <= SEQ_START) { // Sequence start
45325 seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
45326 continue;
45327 }
45328
45329 if (dbcsCode == UNASSIGNED && this.gb18030) {
45330 // Use GB18030 algorithm to find character(s) to write.
45331 var idx = findIdx(this.gb18030.uChars, uCode);
45332 if (idx != -1) {
45333 var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
45334 newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
45335 newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
45336 newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
45337 newBuf[j++] = 0x30 + dbcsCode;
45338 continue;
45339 }
45340 }
45341 }
45342
45343 // 3. Write dbcsCode character.
45344 if (dbcsCode === UNASSIGNED)
45345 dbcsCode = this.defaultCharSingleByte;
45346
45347 if (dbcsCode < 0x100) {
45348 newBuf[j++] = dbcsCode;
45349 }
45350 else if (dbcsCode < 0x10000) {
45351 newBuf[j++] = dbcsCode >> 8; // high byte
45352 newBuf[j++] = dbcsCode & 0xFF; // low byte
45353 }
45354 else {
45355 newBuf[j++] = dbcsCode >> 16;
45356 newBuf[j++] = (dbcsCode >> 8) & 0xFF;
45357 newBuf[j++] = dbcsCode & 0xFF;
45358 }
45359 }
45360
45361 this.seqObj = seqObj;
45362 this.leadSurrogate = leadSurrogate;
45363 return newBuf.slice(0, j);
45364}
45365
45366DBCSEncoder.prototype.end = function() {
45367 if (this.leadSurrogate === -1 && this.seqObj === undefined)
45368 return; // All clean. Most often case.
45369
45370 var newBuf = new Buffer(10), j = 0;
45371
45372 if (this.seqObj) { // We're in the sequence.
45373 var dbcsCode = this.seqObj[DEF_CHAR];
45374 if (dbcsCode !== undefined) { // Write beginning of the sequence.
45375 if (dbcsCode < 0x100) {
45376 newBuf[j++] = dbcsCode;
45377 }
45378 else {
45379 newBuf[j++] = dbcsCode >> 8; // high byte
45380 newBuf[j++] = dbcsCode & 0xFF; // low byte
45381 }
45382 } else {
45383 // See todo above.
45384 }
45385 this.seqObj = undefined;
45386 }
45387
45388 if (this.leadSurrogate !== -1) {
45389 // Incomplete surrogate pair - only lead surrogate found.
45390 newBuf[j++] = this.defaultCharSingleByte;
45391 this.leadSurrogate = -1;
45392 }
45393
45394 return newBuf.slice(0, j);
45395}
45396
45397// Export for testing
45398DBCSEncoder.prototype.findIdx = findIdx;
45399
45400
45401// == Decoder ==================================================================
45402
45403function DBCSDecoder(options, codec) {
45404 // Decoder state
45405 this.nodeIdx = 0;
45406 this.prevBuf = new Buffer(0);
45407
45408 // Static data
45409 this.decodeTables = codec.decodeTables;
45410 this.decodeTableSeq = codec.decodeTableSeq;
45411 this.defaultCharUnicode = codec.defaultCharUnicode;
45412 this.gb18030 = codec.gb18030;
45413}
45414
45415DBCSDecoder.prototype.write = function(buf) {
45416 var newBuf = new Buffer(buf.length*2),
45417 nodeIdx = this.nodeIdx,
45418 prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
45419 seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
45420 uCode;
45421
45422 if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
45423 prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
45424
45425 for (var i = 0, j = 0; i < buf.length; i++) {
45426 var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];
45427
45428 // Lookup in current trie node.
45429 var uCode = this.decodeTables[nodeIdx][curByte];
45430
45431 if (uCode >= 0) {
45432 // Normal character, just use it.
45433 }
45434 else if (uCode === UNASSIGNED) { // Unknown char.
45435 // TODO: Callback with seq.
45436 //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
45437 i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
45438 uCode = this.defaultCharUnicode.charCodeAt(0);
45439 }
45440 else if (uCode === GB18030_CODE) {
45441 var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
45442 var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
45443 var idx = findIdx(this.gb18030.gbChars, ptr);
45444 uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
45445 }
45446 else if (uCode <= NODE_START) { // Go to next trie node.
45447 nodeIdx = NODE_START - uCode;
45448 continue;
45449 }
45450 else if (uCode <= SEQ_START) { // Output a sequence of chars.
45451 var seq = this.decodeTableSeq[SEQ_START - uCode];
45452 for (var k = 0; k < seq.length - 1; k++) {
45453 uCode = seq[k];
45454 newBuf[j++] = uCode & 0xFF;
45455 newBuf[j++] = uCode >> 8;
45456 }
45457 uCode = seq[seq.length-1];
45458 }
45459 else
45460 throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
45461
45462 // Write the character to buffer, handling higher planes using surrogate pair.
45463 if (uCode > 0xFFFF) {
45464 uCode -= 0x10000;
45465 var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
45466 newBuf[j++] = uCodeLead & 0xFF;
45467 newBuf[j++] = uCodeLead >> 8;
45468
45469 uCode = 0xDC00 + uCode % 0x400;
45470 }
45471 newBuf[j++] = uCode & 0xFF;
45472 newBuf[j++] = uCode >> 8;
45473
45474 // Reset trie node.
45475 nodeIdx = 0; seqStart = i+1;
45476 }
45477
45478 this.nodeIdx = nodeIdx;
45479 this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
45480 return newBuf.slice(0, j).toString('ucs2');
45481}
45482
45483DBCSDecoder.prototype.end = function() {
45484 var ret = '';
45485
45486 // Try to parse all remaining chars.
45487 while (this.prevBuf.length > 0) {
45488 // Skip 1 character in the buffer.
45489 ret += this.defaultCharUnicode;
45490 var buf = this.prevBuf.slice(1);
45491
45492 // Parse remaining as usual.
45493 this.prevBuf = new Buffer(0);
45494 this.nodeIdx = 0;
45495 if (buf.length > 0)
45496 ret += this.write(buf);
45497 }
45498
45499 this.nodeIdx = 0;
45500 return ret;
45501}
45502
45503// Binary search for GB18030. Returns largest i such that table[i] <= val.
45504function findIdx(table, val) {
45505 if (table[0] > val)
45506 return -1;
45507
45508 var l = 0, r = table.length;
45509 while (l < r-1) { // always table[l] <= val < table[r]
45510 var mid = l + Math.floor((r-l+1)/2);
45511 if (table[mid] <= val)
45512 l = mid;
45513 else
45514 r = mid;
45515 }
45516 return l;
45517}
45518
45519
45520
45521/***/ }),
45522/* 628 */
45523/***/ (function(module, exports, __webpack_require__) {
45524
45525"use strict";
45526
45527
45528// Description of supported double byte encodings and aliases.
45529// Tables are not require()-d until they are needed to speed up library load.
45530// require()-s are direct to support Browserify.
45531
45532module.exports = {
45533
45534 // == Japanese/ShiftJIS ====================================================
45535 // All japanese encodings are based on JIS X set of standards:
45536 // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
45537 // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
45538 // Has several variations in 1978, 1983, 1990 and 1997.
45539 // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
45540 // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
45541 // 2 planes, first is superset of 0208, second - revised 0212.
45542 // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
45543
45544 // Byte encodings are:
45545 // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
45546 // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
45547 // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
45548 // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
45549 // 0x00-0x7F - lower part of 0201
45550 // 0x8E, 0xA1-0xDF - upper part of 0201
45551 // (0xA1-0xFE)x2 - 0208 plane (94x94).
45552 // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
45553 // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
45554 // Used as-is in ISO2022 family.
45555 // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
45556 // 0201-1976 Roman, 0208-1978, 0208-1983.
45557 // * ISO2022-JP-1: Adds esc seq for 0212-1990.
45558 // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
45559 // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
45560 // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
45561 //
45562 // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
45563 //
45564 // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
45565
45566 'shiftjis': {
45567 type: '_dbcs',
45568 table: function() { return __webpack_require__(629) },
45569 encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
45570 encodeSkipVals: [{from: 0xED40, to: 0xF940}],
45571 },
45572 'csshiftjis': 'shiftjis',
45573 'mskanji': 'shiftjis',
45574 'sjis': 'shiftjis',
45575 'windows31j': 'shiftjis',
45576 'ms31j': 'shiftjis',
45577 'xsjis': 'shiftjis',
45578 'windows932': 'shiftjis',
45579 'ms932': 'shiftjis',
45580 '932': 'shiftjis',
45581 'cp932': 'shiftjis',
45582
45583 'eucjp': {
45584 type: '_dbcs',
45585 table: function() { return __webpack_require__(630) },
45586 encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
45587 },
45588
45589 // TODO: KDDI extension to Shift_JIS
45590 // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
45591 // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
45592
45593
45594 // == Chinese/GBK ==========================================================
45595 // http://en.wikipedia.org/wiki/GBK
45596 // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
45597
45598 // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
45599 'gb2312': 'cp936',
45600 'gb231280': 'cp936',
45601 'gb23121980': 'cp936',
45602 'csgb2312': 'cp936',
45603 'csiso58gb231280': 'cp936',
45604 'euccn': 'cp936',
45605
45606 // Microsoft's CP936 is a subset and approximation of GBK.
45607 'windows936': 'cp936',
45608 'ms936': 'cp936',
45609 '936': 'cp936',
45610 'cp936': {
45611 type: '_dbcs',
45612 table: function() { return __webpack_require__(189) },
45613 },
45614
45615 // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
45616 'gbk': {
45617 type: '_dbcs',
45618 table: function() { return __webpack_require__(189).concat(__webpack_require__(298)) },
45619 },
45620 'xgbk': 'gbk',
45621 'isoir58': 'gbk',
45622
45623 // GB18030 is an algorithmic extension of GBK.
45624 // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
45625 // http://icu-project.org/docs/papers/gb18030.html
45626 // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
45627 // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
45628 'gb18030': {
45629 type: '_dbcs',
45630 table: function() { return __webpack_require__(189).concat(__webpack_require__(298)) },
45631 gb18030: function() { return __webpack_require__(631) },
45632 encodeSkipVals: [0x80],
45633 encodeAdd: {'€': 0xA2E3},
45634 },
45635
45636 'chinese': 'gb18030',
45637
45638
45639 // == Korean ===============================================================
45640 // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
45641 'windows949': 'cp949',
45642 'ms949': 'cp949',
45643 '949': 'cp949',
45644 'cp949': {
45645 type: '_dbcs',
45646 table: function() { return __webpack_require__(632) },
45647 },
45648
45649 'cseuckr': 'cp949',
45650 'csksc56011987': 'cp949',
45651 'euckr': 'cp949',
45652 'isoir149': 'cp949',
45653 'korean': 'cp949',
45654 'ksc56011987': 'cp949',
45655 'ksc56011989': 'cp949',
45656 'ksc5601': 'cp949',
45657
45658
45659 // == Big5/Taiwan/Hong Kong ================================================
45660 // There are lots of tables for Big5 and cp950. Please see the following links for history:
45661 // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
45662 // Variations, in roughly number of defined chars:
45663 // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
45664 // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
45665 // * Big5-2003 (Taiwan standard) almost superset of cp950.
45666 // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
45667 // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
45668 // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
45669 // Plus, it has 4 combining sequences.
45670 // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
45671 // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
45672 // Implementations are not consistent within browsers; sometimes labeled as just big5.
45673 // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
45674 // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
45675 // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
45676 // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
45677 // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
45678 //
45679 // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
45680 // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
45681
45682 'windows950': 'cp950',
45683 'ms950': 'cp950',
45684 '950': 'cp950',
45685 'cp950': {
45686 type: '_dbcs',
45687 table: function() { return __webpack_require__(299) },
45688 },
45689
45690 // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
45691 'big5': 'big5hkscs',
45692 'big5hkscs': {
45693 type: '_dbcs',
45694 table: function() { return __webpack_require__(299).concat(__webpack_require__(633)) },
45695 encodeSkipVals: [0xa2cc],
45696 },
45697
45698 'cnbig5': 'big5hkscs',
45699 'csbig5': 'big5hkscs',
45700 'xxbig5': 'big5hkscs',
45701};
45702
45703
45704/***/ }),
45705/* 629 */
45706/***/ (function(module, exports) {
45707
45708module.exports = [["0","\u0000",128],["a1","。",62],["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"],["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨¬⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","ʼn♯♭♪†‡¶"],["81fc","◯"],["824f","0",9],["8260","A",25],["8281","a",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"¬¦'""],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]
45709
45710/***/ }),
45711/* 630 */
45712/***/ (function(module, exports) {
45713
45714module.exports = [["0","\u0000",127],["8ea1","。",62],["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨¬⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","ʼn♯♭♪†‡¶"],["a2fe","◯"],["a3b0","0",9],["a3c1","A",25],["a3e1","a",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"¬¦'""],["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","IJ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]
45715
45716/***/ }),
45717/* 631 */
45718/***/ (function(module, exports) {
45719
45720module.exports = {"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}
45721
45722/***/ }),
45723/* 632 */
45724/***/ (function(module, exports) {
45725
45726module.exports = [["0","\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆЪĦ"],["a8a6","IJ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]
45727
45728/***/ }),
45729/* 633 */
45730/***/ (function(module, exports) {
45731
45732module.exports = [["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","■"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]
45733
45734/***/ }),
45735/* 634 */
45736/***/ (function(module, exports, __webpack_require__) {
45737
45738"use strict";
45739
45740
45741var Buffer = __webpack_require__(16).Buffer,
45742 Transform = __webpack_require__(40).Transform;
45743
45744
45745// == Exports ==================================================================
45746module.exports = function(iconv) {
45747
45748 // Additional Public API.
45749 iconv.encodeStream = function encodeStream(encoding, options) {
45750 return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
45751 }
45752
45753 iconv.decodeStream = function decodeStream(encoding, options) {
45754 return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
45755 }
45756
45757 iconv.supportsStreams = true;
45758
45759
45760 // Not published yet.
45761 iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
45762 iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
45763 iconv._collect = IconvLiteDecoderStream.prototype.collect;
45764};
45765
45766
45767// == Encoder stream =======================================================
45768function IconvLiteEncoderStream(conv, options) {
45769 this.conv = conv;
45770 options = options || {};
45771 options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
45772 Transform.call(this, options);
45773}
45774
45775IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
45776 constructor: { value: IconvLiteEncoderStream }
45777});
45778
45779IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
45780 if (typeof chunk != 'string')
45781 return done(new Error("Iconv encoding stream needs strings as its input."));
45782 try {
45783 var res = this.conv.write(chunk);
45784 if (res && res.length) this.push(res);
45785 done();
45786 }
45787 catch (e) {
45788 done(e);
45789 }
45790}
45791
45792IconvLiteEncoderStream.prototype._flush = function(done) {
45793 try {
45794 var res = this.conv.end();
45795 if (res && res.length) this.push(res);
45796 done();
45797 }
45798 catch (e) {
45799 done(e);
45800 }
45801}
45802
45803IconvLiteEncoderStream.prototype.collect = function(cb) {
45804 var chunks = [];
45805 this.on('error', cb);
45806 this.on('data', function(chunk) { chunks.push(chunk); });
45807 this.on('end', function() {
45808 cb(null, Buffer.concat(chunks));
45809 });
45810 return this;
45811}
45812
45813
45814// == Decoder stream =======================================================
45815function IconvLiteDecoderStream(conv, options) {
45816 this.conv = conv;
45817 options = options || {};
45818 options.encoding = this.encoding = 'utf8'; // We output strings.
45819 Transform.call(this, options);
45820}
45821
45822IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
45823 constructor: { value: IconvLiteDecoderStream }
45824});
45825
45826IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
45827 if (!Buffer.isBuffer(chunk))
45828 return done(new Error("Iconv decoding stream needs buffers as its input."));
45829 try {
45830 var res = this.conv.write(chunk);
45831 if (res && res.length) this.push(res, this.encoding);
45832 done();
45833 }
45834 catch (e) {
45835 done(e);
45836 }
45837}
45838
45839IconvLiteDecoderStream.prototype._flush = function(done) {
45840 try {
45841 var res = this.conv.end();
45842 if (res && res.length) this.push(res, this.encoding);
45843 done();
45844 }
45845 catch (e) {
45846 done(e);
45847 }
45848}
45849
45850IconvLiteDecoderStream.prototype.collect = function(cb) {
45851 var res = '';
45852 this.on('error', cb);
45853 this.on('data', function(chunk) { res += chunk; });
45854 this.on('end', function() {
45855 cb(null, res);
45856 });
45857 return this;
45858}
45859
45860
45861
45862/***/ }),
45863/* 635 */
45864/***/ (function(module, exports, __webpack_require__) {
45865
45866"use strict";
45867
45868var Buffer = __webpack_require__(16).Buffer;
45869
45870// == Extend Node primitives to use iconv-lite =================================
45871
45872module.exports = function (iconv) {
45873 var original = undefined; // Place to keep original methods.
45874
45875 // Node authors rewrote Buffer internals to make it compatible with
45876 // Uint8Array and we cannot patch key functions since then.
45877 iconv.supportsNodeEncodingsExtension = !(new Buffer(0) instanceof Uint8Array);
45878
45879 iconv.extendNodeEncodings = function extendNodeEncodings() {
45880 if (original) return;
45881 original = {};
45882
45883 if (!iconv.supportsNodeEncodingsExtension) {
45884 console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
45885 console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
45886 return;
45887 }
45888
45889 var nodeNativeEncodings = {
45890 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
45891 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
45892 };
45893
45894 Buffer.isNativeEncoding = function(enc) {
45895 return enc && nodeNativeEncodings[enc.toLowerCase()];
45896 }
45897
45898 // -- SlowBuffer -----------------------------------------------------------
45899 var SlowBuffer = __webpack_require__(16).SlowBuffer;
45900
45901 original.SlowBufferToString = SlowBuffer.prototype.toString;
45902 SlowBuffer.prototype.toString = function(encoding, start, end) {
45903 encoding = String(encoding || 'utf8').toLowerCase();
45904
45905 // Use native conversion when possible
45906 if (Buffer.isNativeEncoding(encoding))
45907 return original.SlowBufferToString.call(this, encoding, start, end);
45908
45909 // Otherwise, use our decoding method.
45910 if (typeof start == 'undefined') start = 0;
45911 if (typeof end == 'undefined') end = this.length;
45912 return iconv.decode(this.slice(start, end), encoding);
45913 }
45914
45915 original.SlowBufferWrite = SlowBuffer.prototype.write;
45916 SlowBuffer.prototype.write = function(string, offset, length, encoding) {
45917 // Support both (string, offset, length, encoding)
45918 // and the legacy (string, encoding, offset, length)
45919 if (isFinite(offset)) {
45920 if (!isFinite(length)) {
45921 encoding = length;
45922 length = undefined;
45923 }
45924 } else { // legacy
45925 var swap = encoding;
45926 encoding = offset;
45927 offset = length;
45928 length = swap;
45929 }
45930
45931 offset = +offset || 0;
45932 var remaining = this.length - offset;
45933 if (!length) {
45934 length = remaining;
45935 } else {
45936 length = +length;
45937 if (length > remaining) {
45938 length = remaining;
45939 }
45940 }
45941 encoding = String(encoding || 'utf8').toLowerCase();
45942
45943 // Use native conversion when possible
45944 if (Buffer.isNativeEncoding(encoding))
45945 return original.SlowBufferWrite.call(this, string, offset, length, encoding);
45946
45947 if (string.length > 0 && (length < 0 || offset < 0))
45948 throw new RangeError('attempt to write beyond buffer bounds');
45949
45950 // Otherwise, use our encoding method.
45951 var buf = iconv.encode(string, encoding);
45952 if (buf.length < length) length = buf.length;
45953 buf.copy(this, offset, 0, length);
45954 return length;
45955 }
45956
45957 // -- Buffer ---------------------------------------------------------------
45958
45959 original.BufferIsEncoding = Buffer.isEncoding;
45960 Buffer.isEncoding = function(encoding) {
45961 return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
45962 }
45963
45964 original.BufferByteLength = Buffer.byteLength;
45965 Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
45966 encoding = String(encoding || 'utf8').toLowerCase();
45967
45968 // Use native conversion when possible
45969 if (Buffer.isNativeEncoding(encoding))
45970 return original.BufferByteLength.call(this, str, encoding);
45971
45972 // Slow, I know, but we don't have a better way yet.
45973 return iconv.encode(str, encoding).length;
45974 }
45975
45976 original.BufferToString = Buffer.prototype.toString;
45977 Buffer.prototype.toString = function(encoding, start, end) {
45978 encoding = String(encoding || 'utf8').toLowerCase();
45979
45980 // Use native conversion when possible
45981 if (Buffer.isNativeEncoding(encoding))
45982 return original.BufferToString.call(this, encoding, start, end);
45983
45984 // Otherwise, use our decoding method.
45985 if (typeof start == 'undefined') start = 0;
45986 if (typeof end == 'undefined') end = this.length;
45987 return iconv.decode(this.slice(start, end), encoding);
45988 }
45989
45990 original.BufferWrite = Buffer.prototype.write;
45991 Buffer.prototype.write = function(string, offset, length, encoding) {
45992 var _offset = offset, _length = length, _encoding = encoding;
45993 // Support both (string, offset, length, encoding)
45994 // and the legacy (string, encoding, offset, length)
45995 if (isFinite(offset)) {
45996 if (!isFinite(length)) {
45997 encoding = length;
45998 length = undefined;
45999 }
46000 } else { // legacy
46001 var swap = encoding;
46002 encoding = offset;
46003 offset = length;
46004 length = swap;
46005 }
46006
46007 encoding = String(encoding || 'utf8').toLowerCase();
46008
46009 // Use native conversion when possible
46010 if (Buffer.isNativeEncoding(encoding))
46011 return original.BufferWrite.call(this, string, _offset, _length, _encoding);
46012
46013 offset = +offset || 0;
46014 var remaining = this.length - offset;
46015 if (!length) {
46016 length = remaining;
46017 } else {
46018 length = +length;
46019 if (length > remaining) {
46020 length = remaining;
46021 }
46022 }
46023
46024 if (string.length > 0 && (length < 0 || offset < 0))
46025 throw new RangeError('attempt to write beyond buffer bounds');
46026
46027 // Otherwise, use our encoding method.
46028 var buf = iconv.encode(string, encoding);
46029 if (buf.length < length) length = buf.length;
46030 buf.copy(this, offset, 0, length);
46031 return length;
46032
46033 // TODO: Set _charsWritten.
46034 }
46035
46036
46037 // -- Readable -------------------------------------------------------------
46038 if (iconv.supportsStreams) {
46039 var Readable = __webpack_require__(40).Readable;
46040
46041 original.ReadableSetEncoding = Readable.prototype.setEncoding;
46042 Readable.prototype.setEncoding = function setEncoding(enc, options) {
46043 // Use our own decoder, it has the same interface.
46044 // We cannot use original function as it doesn't handle BOM-s.
46045 this._readableState.decoder = iconv.getDecoder(enc, options);
46046 this._readableState.encoding = enc;
46047 }
46048
46049 Readable.prototype.collect = iconv._collect;
46050 }
46051 }
46052
46053 // Remove iconv-lite Node primitive extensions.
46054 iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
46055 if (!iconv.supportsNodeEncodingsExtension)
46056 return;
46057 if (!original)
46058 throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
46059
46060 delete Buffer.isNativeEncoding;
46061
46062 var SlowBuffer = __webpack_require__(16).SlowBuffer;
46063
46064 SlowBuffer.prototype.toString = original.SlowBufferToString;
46065 SlowBuffer.prototype.write = original.SlowBufferWrite;
46066
46067 Buffer.isEncoding = original.BufferIsEncoding;
46068 Buffer.byteLength = original.BufferByteLength;
46069 Buffer.prototype.toString = original.BufferToString;
46070 Buffer.prototype.write = original.BufferWrite;
46071
46072 if (iconv.supportsStreams) {
46073 var Readable = __webpack_require__(40).Readable;
46074
46075 Readable.prototype.setEncoding = original.ReadableSetEncoding;
46076 delete Readable.prototype.collect;
46077 }
46078
46079 original = undefined;
46080 }
46081}
46082
46083
46084/***/ }),
46085/* 636 */
46086/***/ (function(module, exports, __webpack_require__) {
46087
46088"use strict";
46089/*!
46090 * ee-first
46091 * Copyright(c) 2014 Jonathan Ong
46092 * MIT Licensed
46093 */
46094
46095
46096
46097/**
46098 * Module exports.
46099 * @public
46100 */
46101
46102module.exports = first
46103
46104/**
46105 * Get the first event in a set of event emitters and event pairs.
46106 *
46107 * @param {array} stuff
46108 * @param {function} done
46109 * @public
46110 */
46111
46112function first(stuff, done) {
46113 if (!Array.isArray(stuff))
46114 throw new TypeError('arg must be an array of [ee, events...] arrays')
46115
46116 var cleanups = []
46117
46118 for (var i = 0; i < stuff.length; i++) {
46119 var arr = stuff[i]
46120
46121 if (!Array.isArray(arr) || arr.length < 2)
46122 throw new TypeError('each array member must be [ee, events...]')
46123
46124 var ee = arr[0]
46125
46126 for (var j = 1; j < arr.length; j++) {
46127 var event = arr[j]
46128 var fn = listener(event, callback)
46129
46130 // listen to the event
46131 ee.on(event, fn)
46132 // push this listener to the list of cleanups
46133 cleanups.push({
46134 ee: ee,
46135 event: event,
46136 fn: fn,
46137 })
46138 }
46139 }
46140
46141 function callback() {
46142 cleanup()
46143 done.apply(null, arguments)
46144 }
46145
46146 function cleanup() {
46147 var x
46148 for (var i = 0; i < cleanups.length; i++) {
46149 x = cleanups[i]
46150 x.ee.removeListener(x.event, x.fn)
46151 }
46152 }
46153
46154 function thunk(fn) {
46155 done = fn
46156 }
46157
46158 thunk.cancel = cleanup
46159
46160 return thunk
46161}
46162
46163/**
46164 * Create the event listener.
46165 * @private
46166 */
46167
46168function listener(event, done) {
46169 return function onevent(arg1) {
46170 var args = new Array(arguments.length)
46171 var ee = this
46172 var err = event === 'error'
46173 ? arg1
46174 : null
46175
46176 // copy args to prevent arguments escaping scope
46177 for (var i = 0; i < args.length; i++) {
46178 args[i] = arguments[i]
46179 }
46180
46181 done(err, ee, event, args)
46182 }
46183}
46184
46185
46186/***/ }),
46187/* 637 */
46188/***/ (function(module, exports) {
46189
46190/*!
46191 * media-typer
46192 * Copyright(c) 2014 Douglas Christopher Wilson
46193 * MIT Licensed
46194 */
46195
46196/**
46197 * RegExp to match *( ";" parameter ) in RFC 2616 sec 3.7
46198 *
46199 * parameter = token "=" ( token | quoted-string )
46200 * token = 1*<any CHAR except CTLs or separators>
46201 * separators = "(" | ")" | "<" | ">" | "@"
46202 * | "," | ";" | ":" | "\" | <">
46203 * | "/" | "[" | "]" | "?" | "="
46204 * | "{" | "}" | SP | HT
46205 * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
46206 * qdtext = <any TEXT except <">>
46207 * quoted-pair = "\" CHAR
46208 * CHAR = <any US-ASCII character (octets 0 - 127)>
46209 * TEXT = <any OCTET except CTLs, but including LWS>
46210 * LWS = [CRLF] 1*( SP | HT )
46211 * CRLF = CR LF
46212 * CR = <US-ASCII CR, carriage return (13)>
46213 * LF = <US-ASCII LF, linefeed (10)>
46214 * SP = <US-ASCII SP, space (32)>
46215 * SHT = <US-ASCII HT, horizontal-tab (9)>
46216 * CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
46217 * OCTET = <any 8-bit sequence of data>
46218 */
46219var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
46220var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/
46221var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/
46222
46223/**
46224 * RegExp to match quoted-pair in RFC 2616
46225 *
46226 * quoted-pair = "\" CHAR
46227 * CHAR = <any US-ASCII character (octets 0 - 127)>
46228 */
46229var qescRegExp = /\\([\u0000-\u007f])/g;
46230
46231/**
46232 * RegExp to match chars that must be quoted-pair in RFC 2616
46233 */
46234var quoteRegExp = /([\\"])/g;
46235
46236/**
46237 * RegExp to match type in RFC 6838
46238 *
46239 * type-name = restricted-name
46240 * subtype-name = restricted-name
46241 * restricted-name = restricted-name-first *126restricted-name-chars
46242 * restricted-name-first = ALPHA / DIGIT
46243 * restricted-name-chars = ALPHA / DIGIT / "!" / "#" /
46244 * "$" / "&" / "-" / "^" / "_"
46245 * restricted-name-chars =/ "." ; Characters before first dot always
46246 * ; specify a facet name
46247 * restricted-name-chars =/ "+" ; Characters after last plus always
46248 * ; specify a structured syntax suffix
46249 * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
46250 * DIGIT = %x30-39 ; 0-9
46251 */
46252var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/
46253var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/
46254var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
46255
46256/**
46257 * Module exports.
46258 */
46259
46260exports.format = format
46261exports.parse = parse
46262
46263/**
46264 * Format object to media type.
46265 *
46266 * @param {object} obj
46267 * @return {string}
46268 * @api public
46269 */
46270
46271function format(obj) {
46272 if (!obj || typeof obj !== 'object') {
46273 throw new TypeError('argument obj is required')
46274 }
46275
46276 var parameters = obj.parameters
46277 var subtype = obj.subtype
46278 var suffix = obj.suffix
46279 var type = obj.type
46280
46281 if (!type || !typeNameRegExp.test(type)) {
46282 throw new TypeError('invalid type')
46283 }
46284
46285 if (!subtype || !subtypeNameRegExp.test(subtype)) {
46286 throw new TypeError('invalid subtype')
46287 }
46288
46289 // format as type/subtype
46290 var string = type + '/' + subtype
46291
46292 // append +suffix
46293 if (suffix) {
46294 if (!typeNameRegExp.test(suffix)) {
46295 throw new TypeError('invalid suffix')
46296 }
46297
46298 string += '+' + suffix
46299 }
46300
46301 // append parameters
46302 if (parameters && typeof parameters === 'object') {
46303 var param
46304 var params = Object.keys(parameters).sort()
46305
46306 for (var i = 0; i < params.length; i++) {
46307 param = params[i]
46308
46309 if (!tokenRegExp.test(param)) {
46310 throw new TypeError('invalid parameter name')
46311 }
46312
46313 string += '; ' + param + '=' + qstring(parameters[param])
46314 }
46315 }
46316
46317 return string
46318}
46319
46320/**
46321 * Parse media type to object.
46322 *
46323 * @param {string|object} string
46324 * @return {Object}
46325 * @api public
46326 */
46327
46328function parse(string) {
46329 if (!string) {
46330 throw new TypeError('argument string is required')
46331 }
46332
46333 // support req/res-like objects as argument
46334 if (typeof string === 'object') {
46335 string = getcontenttype(string)
46336 }
46337
46338 if (typeof string !== 'string') {
46339 throw new TypeError('argument string is required to be a string')
46340 }
46341
46342 var index = string.indexOf(';')
46343 var type = index !== -1
46344 ? string.substr(0, index)
46345 : string
46346
46347 var key
46348 var match
46349 var obj = splitType(type)
46350 var params = {}
46351 var value
46352
46353 paramRegExp.lastIndex = index
46354
46355 while (match = paramRegExp.exec(string)) {
46356 if (match.index !== index) {
46357 throw new TypeError('invalid parameter format')
46358 }
46359
46360 index += match[0].length
46361 key = match[1].toLowerCase()
46362 value = match[2]
46363
46364 if (value[0] === '"') {
46365 // remove quotes and escapes
46366 value = value
46367 .substr(1, value.length - 2)
46368 .replace(qescRegExp, '$1')
46369 }
46370
46371 params[key] = value
46372 }
46373
46374 if (index !== -1 && index !== string.length) {
46375 throw new TypeError('invalid parameter format')
46376 }
46377
46378 obj.parameters = params
46379
46380 return obj
46381}
46382
46383/**
46384 * Get content-type from req/res objects.
46385 *
46386 * @param {object}
46387 * @return {Object}
46388 * @api private
46389 */
46390
46391function getcontenttype(obj) {
46392 if (typeof obj.getHeader === 'function') {
46393 // res-like
46394 return obj.getHeader('content-type')
46395 }
46396
46397 if (typeof obj.headers === 'object') {
46398 // req-like
46399 return obj.headers && obj.headers['content-type']
46400 }
46401}
46402
46403/**
46404 * Quote a string if necessary.
46405 *
46406 * @param {string} val
46407 * @return {string}
46408 * @api private
46409 */
46410
46411function qstring(val) {
46412 var str = String(val)
46413
46414 // no need to quote tokens
46415 if (tokenRegExp.test(str)) {
46416 return str
46417 }
46418
46419 if (str.length > 0 && !textRegExp.test(str)) {
46420 throw new TypeError('invalid parameter value')
46421 }
46422
46423 return '"' + str.replace(quoteRegExp, '\\$1') + '"'
46424}
46425
46426/**
46427 * Simply "type/subtype+siffx" into parts.
46428 *
46429 * @param {string} string
46430 * @return {Object}
46431 * @api private
46432 */
46433
46434function splitType(string) {
46435 var match = typeRegExp.exec(string.toLowerCase())
46436
46437 if (!match) {
46438 throw new TypeError('invalid media type')
46439 }
46440
46441 var type = match[1]
46442 var subtype = match[2]
46443 var suffix
46444
46445 // suffix after last +
46446 var index = subtype.lastIndexOf('+')
46447 if (index !== -1) {
46448 suffix = subtype.substr(index + 1)
46449 subtype = subtype.substr(0, index)
46450 }
46451
46452 var obj = {
46453 type: type,
46454 subtype: subtype,
46455 suffix: suffix
46456 }
46457
46458 return obj
46459}
46460
46461
46462/***/ }),
46463/* 638 */
46464/***/ (function(module, exports, __webpack_require__) {
46465
46466/*!
46467 * mime-db
46468 * Copyright(c) 2014 Jonathan Ong
46469 * MIT Licensed
46470 */
46471
46472/**
46473 * Module exports.
46474 */
46475
46476module.exports = __webpack_require__(639)
46477
46478
46479/***/ }),
46480/* 639 */
46481/***/ (function(module, exports) {
46482
46483module.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":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"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":true,"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":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana"},"application/calendar+json":{"source":"iana","compressible":true},"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":true},"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":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"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":true},"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":true,"extensions":["ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"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":true},"application/fits":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false,"extensions":["woff"]},"application/framework-attributes+xml":{"source":"iana"},"application/geo+json":{"source":"iana","compressible":true,"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":false,"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":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana"},"application/kpml-response+xml":{"source":"iana"},"application/ld+json":{"source":"iana","compressible":true,"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":true,"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":true},"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":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"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":false,"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":false,"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":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"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":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"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":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"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":true},"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":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"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":true},"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":true},"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":true},"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":true},"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":true},"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":false,"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":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","extensions":["mpkg"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.pkpass":{"compressible":false,"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":true},"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":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"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":true},"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":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"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":true},"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":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"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":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"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":true},"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":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"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":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"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":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"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":true},"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":true},"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":true},"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":true},"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":true,"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":false,"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":true,"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":true},"application/vnd.ms-outlook":{"compressible":false,"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":false,"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":false,"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":true},"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":false,"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":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"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":true},"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":true},"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":false,"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":false,"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":false,"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":true},"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":true},"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":true},"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":true},"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":true,"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":true},"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":true},"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":true},"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":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana"},"application/webpush-options+json":{"source":"iana","compressible":true},"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":false,"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":false,"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":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"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":false},"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":false,"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":true,"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":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-latex":{"source":"apache","compressible":false,"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":false},"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":true,"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":false,"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":false,"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":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"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":true,"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":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"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":false,"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":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache"},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"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":true,"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":true},"application/yang-data+xml":{"source":"iana"},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana"},"application/yin+xml":{"source":"iana","extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"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":false,"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":false},"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":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"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":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"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":true,"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":false,"extensions":["apng"]},"image/bmp":{"source":"iana","compressible":true,"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":false,"extensions":["gif"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana"},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"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":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana"},"image/tiff":{"source":"iana","compressible":false,"extensions":["tiff","tif"]},"image/tiff-fx":{"source":"iana"},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"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":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"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":false},"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":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"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":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"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":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana"},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana"},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana","compressible":false},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"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":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"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":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"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":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"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":true,"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":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"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":true,"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":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"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":true,"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":true,"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":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"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":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"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":false,"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":true},"x-shader/x-vertex":{"compressible":true}}
46484
46485/***/ }),
46486/* 640 */
46487/***/ (function(module, exports, __webpack_require__) {
46488
46489"use strict";
46490/*!
46491 * body-parser
46492 * Copyright(c) 2014-2015 Douglas Christopher Wilson
46493 * MIT Licensed
46494 */
46495
46496
46497
46498/**
46499 * Module dependencies.
46500 */
46501
46502var bytes = __webpack_require__(89)
46503var debug = __webpack_require__(30)('body-parser:raw')
46504var read = __webpack_require__(124)
46505var typeis = __webpack_require__(91)
46506
46507/**
46508 * Module exports.
46509 */
46510
46511module.exports = raw
46512
46513/**
46514 * Create a middleware to parse raw bodies.
46515 *
46516 * @param {object} [options]
46517 * @return {function}
46518 * @api public
46519 */
46520
46521function raw (options) {
46522 var opts = options || {}
46523
46524 var inflate = opts.inflate !== false
46525 var limit = typeof opts.limit !== 'number'
46526 ? bytes.parse(opts.limit || '100kb')
46527 : opts.limit
46528 var type = opts.type || 'application/octet-stream'
46529 var verify = opts.verify || false
46530
46531 if (verify !== false && typeof verify !== 'function') {
46532 throw new TypeError('option verify must be function')
46533 }
46534
46535 // create the appropriate type checking function
46536 var shouldParse = typeof type !== 'function'
46537 ? typeChecker(type)
46538 : type
46539
46540 function parse (buf) {
46541 return buf
46542 }
46543
46544 return function rawParser (req, res, next) {
46545 if (req._body) {
46546 debug('body already parsed')
46547 next()
46548 return
46549 }
46550
46551 req.body = req.body || {}
46552
46553 // skip requests without bodies
46554 if (!typeis.hasBody(req)) {
46555 debug('skip empty body')
46556 next()
46557 return
46558 }
46559
46560 debug('content-type %j', req.headers['content-type'])
46561
46562 // determine if request should be parsed
46563 if (!shouldParse(req)) {
46564 debug('skip parsing')
46565 next()
46566 return
46567 }
46568
46569 // read
46570 read(req, res, next, parse, debug, {
46571 encoding: null,
46572 inflate: inflate,
46573 limit: limit,
46574 verify: verify
46575 })
46576 }
46577}
46578
46579/**
46580 * Get the simple type checker.
46581 *
46582 * @param {string} type
46583 * @return {function}
46584 */
46585
46586function typeChecker (type) {
46587 return function checkType (req) {
46588 return Boolean(typeis(req, type))
46589 }
46590}
46591
46592
46593/***/ }),
46594/* 641 */
46595/***/ (function(module, exports, __webpack_require__) {
46596
46597"use strict";
46598/*!
46599 * body-parser
46600 * Copyright(c) 2014-2015 Douglas Christopher Wilson
46601 * MIT Licensed
46602 */
46603
46604
46605
46606/**
46607 * Module dependencies.
46608 */
46609
46610var bytes = __webpack_require__(89)
46611var contentType = __webpack_require__(121)
46612var debug = __webpack_require__(30)('body-parser:text')
46613var read = __webpack_require__(124)
46614var typeis = __webpack_require__(91)
46615
46616/**
46617 * Module exports.
46618 */
46619
46620module.exports = text
46621
46622/**
46623 * Create a middleware to parse text bodies.
46624 *
46625 * @param {object} [options]
46626 * @return {function}
46627 * @api public
46628 */
46629
46630function text (options) {
46631 var opts = options || {}
46632
46633 var defaultCharset = opts.defaultCharset || 'utf-8'
46634 var inflate = opts.inflate !== false
46635 var limit = typeof opts.limit !== 'number'
46636 ? bytes.parse(opts.limit || '100kb')
46637 : opts.limit
46638 var type = opts.type || 'text/plain'
46639 var verify = opts.verify || false
46640
46641 if (verify !== false && typeof verify !== 'function') {
46642 throw new TypeError('option verify must be function')
46643 }
46644
46645 // create the appropriate type checking function
46646 var shouldParse = typeof type !== 'function'
46647 ? typeChecker(type)
46648 : type
46649
46650 function parse (buf) {
46651 return buf
46652 }
46653
46654 return function textParser (req, res, next) {
46655 if (req._body) {
46656 debug('body already parsed')
46657 next()
46658 return
46659 }
46660
46661 req.body = req.body || {}
46662
46663 // skip requests without bodies
46664 if (!typeis.hasBody(req)) {
46665 debug('skip empty body')
46666 next()
46667 return
46668 }
46669
46670 debug('content-type %j', req.headers['content-type'])
46671
46672 // determine if request should be parsed
46673 if (!shouldParse(req)) {
46674 debug('skip parsing')
46675 next()
46676 return
46677 }
46678
46679 // get charset
46680 var charset = getCharset(req) || defaultCharset
46681
46682 // read
46683 read(req, res, next, parse, debug, {
46684 encoding: charset,
46685 inflate: inflate,
46686 limit: limit,
46687 verify: verify
46688 })
46689 }
46690}
46691
46692/**
46693 * Get the charset of a request.
46694 *
46695 * @param {object} req
46696 * @api private
46697 */
46698
46699function getCharset (req) {
46700 try {
46701 return (contentType.parse(req).parameters.charset || '').toLowerCase()
46702 } catch (e) {
46703 return undefined
46704 }
46705}
46706
46707/**
46708 * Get the simple type checker.
46709 *
46710 * @param {string} type
46711 * @return {function}
46712 */
46713
46714function typeChecker (type) {
46715 return function checkType (req) {
46716 return Boolean(typeis(req, type))
46717 }
46718}
46719
46720
46721/***/ }),
46722/* 642 */
46723/***/ (function(module, exports, __webpack_require__) {
46724
46725"use strict";
46726/*!
46727 * body-parser
46728 * Copyright(c) 2014 Jonathan Ong
46729 * Copyright(c) 2014-2015 Douglas Christopher Wilson
46730 * MIT Licensed
46731 */
46732
46733
46734
46735/**
46736 * Module dependencies.
46737 * @private
46738 */
46739
46740var bytes = __webpack_require__(89)
46741var contentType = __webpack_require__(121)
46742var createError = __webpack_require__(90)
46743var debug = __webpack_require__(30)('body-parser:urlencoded')
46744var deprecate = __webpack_require__(47)('body-parser')
46745var read = __webpack_require__(124)
46746var typeis = __webpack_require__(91)
46747
46748/**
46749 * Module exports.
46750 */
46751
46752module.exports = urlencoded
46753
46754/**
46755 * Cache of parser modules.
46756 */
46757
46758var parsers = Object.create(null)
46759
46760/**
46761 * Create a middleware to parse urlencoded bodies.
46762 *
46763 * @param {object} [options]
46764 * @return {function}
46765 * @public
46766 */
46767
46768function urlencoded (options) {
46769 var opts = options || {}
46770
46771 // notice because option default will flip in next major
46772 if (opts.extended === undefined) {
46773 deprecate('undefined extended: provide extended option')
46774 }
46775
46776 var extended = opts.extended !== false
46777 var inflate = opts.inflate !== false
46778 var limit = typeof opts.limit !== 'number'
46779 ? bytes.parse(opts.limit || '100kb')
46780 : opts.limit
46781 var type = opts.type || 'application/x-www-form-urlencoded'
46782 var verify = opts.verify || false
46783
46784 if (verify !== false && typeof verify !== 'function') {
46785 throw new TypeError('option verify must be function')
46786 }
46787
46788 // create the appropriate query parser
46789 var queryparse = extended
46790 ? extendedparser(opts)
46791 : simpleparser(opts)
46792
46793 // create the appropriate type checking function
46794 var shouldParse = typeof type !== 'function'
46795 ? typeChecker(type)
46796 : type
46797
46798 function parse (body) {
46799 return body.length
46800 ? queryparse(body)
46801 : {}
46802 }
46803
46804 return function urlencodedParser (req, res, next) {
46805 if (req._body) {
46806 debug('body already parsed')
46807 next()
46808 return
46809 }
46810
46811 req.body = req.body || {}
46812
46813 // skip requests without bodies
46814 if (!typeis.hasBody(req)) {
46815 debug('skip empty body')
46816 next()
46817 return
46818 }
46819
46820 debug('content-type %j', req.headers['content-type'])
46821
46822 // determine if request should be parsed
46823 if (!shouldParse(req)) {
46824 debug('skip parsing')
46825 next()
46826 return
46827 }
46828
46829 // assert charset
46830 var charset = getCharset(req) || 'utf-8'
46831 if (charset !== 'utf-8') {
46832 debug('invalid charset')
46833 next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
46834 charset: charset,
46835 type: 'charset.unsupported'
46836 }))
46837 return
46838 }
46839
46840 // read
46841 read(req, res, next, parse, debug, {
46842 debug: debug,
46843 encoding: charset,
46844 inflate: inflate,
46845 limit: limit,
46846 verify: verify
46847 })
46848 }
46849}
46850
46851/**
46852 * Get the extended query parser.
46853 *
46854 * @param {object} options
46855 */
46856
46857function extendedparser (options) {
46858 var parameterLimit = options.parameterLimit !== undefined
46859 ? options.parameterLimit
46860 : 1000
46861 var parse = parser('qs')
46862
46863 if (isNaN(parameterLimit) || parameterLimit < 1) {
46864 throw new TypeError('option parameterLimit must be a positive number')
46865 }
46866
46867 if (isFinite(parameterLimit)) {
46868 parameterLimit = parameterLimit | 0
46869 }
46870
46871 return function queryparse (body) {
46872 var paramCount = parameterCount(body, parameterLimit)
46873
46874 if (paramCount === undefined) {
46875 debug('too many parameters')
46876 throw createError(413, 'too many parameters', {
46877 type: 'parameters.too.many'
46878 })
46879 }
46880
46881 var arrayLimit = Math.max(100, paramCount)
46882
46883 debug('parse extended urlencoding')
46884 return parse(body, {
46885 allowPrototypes: true,
46886 arrayLimit: arrayLimit,
46887 depth: Infinity,
46888 parameterLimit: parameterLimit
46889 })
46890 }
46891}
46892
46893/**
46894 * Get the charset of a request.
46895 *
46896 * @param {object} req
46897 * @api private
46898 */
46899
46900function getCharset (req) {
46901 try {
46902 return (contentType.parse(req).parameters.charset || '').toLowerCase()
46903 } catch (e) {
46904 return undefined
46905 }
46906}
46907
46908/**
46909 * Count the number of parameters, stopping once limit reached
46910 *
46911 * @param {string} body
46912 * @param {number} limit
46913 * @api private
46914 */
46915
46916function parameterCount (body, limit) {
46917 var count = 0
46918 var index = 0
46919
46920 while ((index = body.indexOf('&', index)) !== -1) {
46921 count++
46922 index++
46923
46924 if (count === limit) {
46925 return undefined
46926 }
46927 }
46928
46929 return count
46930}
46931
46932/**
46933 * Get parser for module name dynamically.
46934 *
46935 * @param {string} name
46936 * @return {function}
46937 * @api private
46938 */
46939
46940function parser (name) {
46941 var mod = parsers[name]
46942
46943 if (mod !== undefined) {
46944 return mod.parse
46945 }
46946
46947 // this uses a switch for static require analysis
46948 switch (name) {
46949 case 'qs':
46950 mod = __webpack_require__(190)
46951 break
46952 case 'querystring':
46953 mod = __webpack_require__(304)
46954 break
46955 }
46956
46957 // store to prevent invoking require()
46958 parsers[name] = mod
46959
46960 return mod.parse
46961}
46962
46963/**
46964 * Get the simple query parser.
46965 *
46966 * @param {object} options
46967 */
46968
46969function simpleparser (options) {
46970 var parameterLimit = options.parameterLimit !== undefined
46971 ? options.parameterLimit
46972 : 1000
46973 var parse = parser('querystring')
46974
46975 if (isNaN(parameterLimit) || parameterLimit < 1) {
46976 throw new TypeError('option parameterLimit must be a positive number')
46977 }
46978
46979 if (isFinite(parameterLimit)) {
46980 parameterLimit = parameterLimit | 0
46981 }
46982
46983 return function queryparse (body) {
46984 var paramCount = parameterCount(body, parameterLimit)
46985
46986 if (paramCount === undefined) {
46987 debug('too many parameters')
46988 throw createError(413, 'too many parameters', {
46989 type: 'parameters.too.many'
46990 })
46991 }
46992
46993 debug('parse urlencoding')
46994 return parse(body, undefined, undefined, {maxKeys: parameterLimit})
46995 }
46996}
46997
46998/**
46999 * Get the simple type checker.
47000 *
47001 * @param {string} type
47002 * @return {function}
47003 */
47004
47005function typeChecker (type) {
47006 return function checkType (req) {
47007 return Boolean(typeis(req, type))
47008 }
47009}
47010
47011
47012/***/ }),
47013/* 643 */
47014/***/ (function(module, exports, __webpack_require__) {
47015
47016"use strict";
47017
47018
47019var utils = __webpack_require__(302);
47020var formats = __webpack_require__(303);
47021
47022var arrayPrefixGenerators = {
47023 brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
47024 return prefix + '[]';
47025 },
47026 indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
47027 return prefix + '[' + key + ']';
47028 },
47029 repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
47030 return prefix;
47031 }
47032};
47033
47034var toISO = Date.prototype.toISOString;
47035
47036var defaults = {
47037 delimiter: '&',
47038 encode: true,
47039 encoder: utils.encode,
47040 encodeValuesOnly: false,
47041 serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
47042 return toISO.call(date);
47043 },
47044 skipNulls: false,
47045 strictNullHandling: false
47046};
47047
47048var stringify = function stringify( // eslint-disable-line func-name-matching
47049 object,
47050 prefix,
47051 generateArrayPrefix,
47052 strictNullHandling,
47053 skipNulls,
47054 encoder,
47055 filter,
47056 sort,
47057 allowDots,
47058 serializeDate,
47059 formatter,
47060 encodeValuesOnly
47061) {
47062 var obj = object;
47063 if (typeof filter === 'function') {
47064 obj = filter(prefix, obj);
47065 } else if (obj instanceof Date) {
47066 obj = serializeDate(obj);
47067 } else if (obj === null) {
47068 if (strictNullHandling) {
47069 return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
47070 }
47071
47072 obj = '';
47073 }
47074
47075 if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
47076 if (encoder) {
47077 var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
47078 return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
47079 }
47080 return [formatter(prefix) + '=' + formatter(String(obj))];
47081 }
47082
47083 var values = [];
47084
47085 if (typeof obj === 'undefined') {
47086 return values;
47087 }
47088
47089 var objKeys;
47090 if (Array.isArray(filter)) {
47091 objKeys = filter;
47092 } else {
47093 var keys = Object.keys(obj);
47094 objKeys = sort ? keys.sort(sort) : keys;
47095 }
47096
47097 for (var i = 0; i < objKeys.length; ++i) {
47098 var key = objKeys[i];
47099
47100 if (skipNulls && obj[key] === null) {
47101 continue;
47102 }
47103
47104 if (Array.isArray(obj)) {
47105 values = values.concat(stringify(
47106 obj[key],
47107 generateArrayPrefix(prefix, key),
47108 generateArrayPrefix,
47109 strictNullHandling,
47110 skipNulls,
47111 encoder,
47112 filter,
47113 sort,
47114 allowDots,
47115 serializeDate,
47116 formatter,
47117 encodeValuesOnly
47118 ));
47119 } else {
47120 values = values.concat(stringify(
47121 obj[key],
47122 prefix + (allowDots ? '.' + key : '[' + key + ']'),
47123 generateArrayPrefix,
47124 strictNullHandling,
47125 skipNulls,
47126 encoder,
47127 filter,
47128 sort,
47129 allowDots,
47130 serializeDate,
47131 formatter,
47132 encodeValuesOnly
47133 ));
47134 }
47135 }
47136
47137 return values;
47138};
47139
47140module.exports = function (object, opts) {
47141 var obj = object;
47142 var options = opts ? utils.assign({}, opts) : {};
47143
47144 if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
47145 throw new TypeError('Encoder has to be a function.');
47146 }
47147
47148 var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
47149 var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
47150 var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
47151 var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
47152 var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
47153 var sort = typeof options.sort === 'function' ? options.sort : null;
47154 var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
47155 var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
47156 var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
47157 if (typeof options.format === 'undefined') {
47158 options.format = formats['default'];
47159 } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
47160 throw new TypeError('Unknown format option provided.');
47161 }
47162 var formatter = formats.formatters[options.format];
47163 var objKeys;
47164 var filter;
47165
47166 if (typeof options.filter === 'function') {
47167 filter = options.filter;
47168 obj = filter('', obj);
47169 } else if (Array.isArray(options.filter)) {
47170 filter = options.filter;
47171 objKeys = filter;
47172 }
47173
47174 var keys = [];
47175
47176 if (typeof obj !== 'object' || obj === null) {
47177 return '';
47178 }
47179
47180 var arrayFormat;
47181 if (options.arrayFormat in arrayPrefixGenerators) {
47182 arrayFormat = options.arrayFormat;
47183 } else if ('indices' in options) {
47184 arrayFormat = options.indices ? 'indices' : 'repeat';
47185 } else {
47186 arrayFormat = 'indices';
47187 }
47188
47189 var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
47190
47191 if (!objKeys) {
47192 objKeys = Object.keys(obj);
47193 }
47194
47195 if (sort) {
47196 objKeys.sort(sort);
47197 }
47198
47199 for (var i = 0; i < objKeys.length; ++i) {
47200 var key = objKeys[i];
47201
47202 if (skipNulls && obj[key] === null) {
47203 continue;
47204 }
47205
47206 keys = keys.concat(stringify(
47207 obj[key],
47208 key,
47209 generateArrayPrefix,
47210 strictNullHandling,
47211 skipNulls,
47212 encode ? encoder : null,
47213 filter,
47214 sort,
47215 allowDots,
47216 serializeDate,
47217 formatter,
47218 encodeValuesOnly
47219 ));
47220 }
47221
47222 var joined = keys.join(delimiter);
47223 var prefix = options.addQueryPrefix === true ? '?' : '';
47224
47225 return joined.length > 0 ? prefix + joined : '';
47226};
47227
47228
47229/***/ }),
47230/* 644 */
47231/***/ (function(module, exports, __webpack_require__) {
47232
47233"use strict";
47234
47235
47236var utils = __webpack_require__(302);
47237
47238var has = Object.prototype.hasOwnProperty;
47239
47240var defaults = {
47241 allowDots: false,
47242 allowPrototypes: false,
47243 arrayLimit: 20,
47244 decoder: utils.decode,
47245 delimiter: '&',
47246 depth: 5,
47247 parameterLimit: 1000,
47248 plainObjects: false,
47249 strictNullHandling: false
47250};
47251
47252var parseValues = function parseQueryStringValues(str, options) {
47253 var obj = {};
47254 var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
47255 var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
47256 var parts = cleanStr.split(options.delimiter, limit);
47257
47258 for (var i = 0; i < parts.length; ++i) {
47259 var part = parts[i];
47260
47261 var bracketEqualsPos = part.indexOf(']=');
47262 var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
47263
47264 var key, val;
47265 if (pos === -1) {
47266 key = options.decoder(part, defaults.decoder);
47267 val = options.strictNullHandling ? null : '';
47268 } else {
47269 key = options.decoder(part.slice(0, pos), defaults.decoder);
47270 val = options.decoder(part.slice(pos + 1), defaults.decoder);
47271 }
47272 if (has.call(obj, key)) {
47273 obj[key] = [].concat(obj[key]).concat(val);
47274 } else {
47275 obj[key] = val;
47276 }
47277 }
47278
47279 return obj;
47280};
47281
47282var parseObject = function (chain, val, options) {
47283 var leaf = val;
47284
47285 for (var i = chain.length - 1; i >= 0; --i) {
47286 var obj;
47287 var root = chain[i];
47288
47289 if (root === '[]') {
47290 obj = [];
47291 obj = obj.concat(leaf);
47292 } else {
47293 obj = options.plainObjects ? Object.create(null) : {};
47294 var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
47295 var index = parseInt(cleanRoot, 10);
47296 if (
47297 !isNaN(index)
47298 && root !== cleanRoot
47299 && String(index) === cleanRoot
47300 && index >= 0
47301 && (options.parseArrays && index <= options.arrayLimit)
47302 ) {
47303 obj = [];
47304 obj[index] = leaf;
47305 } else {
47306 obj[cleanRoot] = leaf;
47307 }
47308 }
47309
47310 leaf = obj;
47311 }
47312
47313 return leaf;
47314};
47315
47316var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
47317 if (!givenKey) {
47318 return;
47319 }
47320
47321 // Transform dot notation to bracket notation
47322 var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
47323
47324 // The regex chunks
47325
47326 var brackets = /(\[[^[\]]*])/;
47327 var child = /(\[[^[\]]*])/g;
47328
47329 // Get the parent
47330
47331 var segment = brackets.exec(key);
47332 var parent = segment ? key.slice(0, segment.index) : key;
47333
47334 // Stash the parent if it exists
47335
47336 var keys = [];
47337 if (parent) {
47338 // If we aren't using plain objects, optionally prefix keys
47339 // that would overwrite object prototype properties
47340 if (!options.plainObjects && has.call(Object.prototype, parent)) {
47341 if (!options.allowPrototypes) {
47342 return;
47343 }
47344 }
47345
47346 keys.push(parent);
47347 }
47348
47349 // Loop through children appending to the array until we hit depth
47350
47351 var i = 0;
47352 while ((segment = child.exec(key)) !== null && i < options.depth) {
47353 i += 1;
47354 if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
47355 if (!options.allowPrototypes) {
47356 return;
47357 }
47358 }
47359 keys.push(segment[1]);
47360 }
47361
47362 // If there's a remainder, just add whatever is left
47363
47364 if (segment) {
47365 keys.push('[' + key.slice(segment.index) + ']');
47366 }
47367
47368 return parseObject(keys, val, options);
47369};
47370
47371module.exports = function (str, opts) {
47372 var options = opts ? utils.assign({}, opts) : {};
47373
47374 if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
47375 throw new TypeError('Decoder has to be a function.');
47376 }
47377
47378 options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
47379 options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
47380 options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
47381 options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
47382 options.parseArrays = options.parseArrays !== false;
47383 options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
47384 options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
47385 options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
47386 options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
47387 options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
47388 options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
47389
47390 if (str === '' || str === null || typeof str === 'undefined') {
47391 return options.plainObjects ? Object.create(null) : {};
47392 }
47393
47394 var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
47395 var obj = options.plainObjects ? Object.create(null) : {};
47396
47397 // Iterate over the keys and setup the new object
47398
47399 var keys = Object.keys(tempObj);
47400 for (var i = 0; i < keys.length; ++i) {
47401 var key = keys[i];
47402 var newObj = parseKeys(key, tempObj[key], options);
47403 obj = utils.merge(obj, newObj, options);
47404 }
47405
47406 return utils.compact(obj);
47407};
47408
47409
47410/***/ }),
47411/* 645 */
47412/***/ (function(module, exports, __webpack_require__) {
47413
47414"use strict";
47415/*!
47416 * express
47417 * Copyright(c) 2009-2013 TJ Holowaychuk
47418 * Copyright(c) 2013 Roman Shtylman
47419 * Copyright(c) 2014-2015 Douglas Christopher Wilson
47420 * MIT Licensed
47421 */
47422
47423
47424
47425module.exports = __webpack_require__(646);
47426
47427
47428/***/ }),
47429/* 646 */
47430/***/ (function(module, exports, __webpack_require__) {
47431
47432"use strict";
47433/*!
47434 * express
47435 * Copyright(c) 2009-2013 TJ Holowaychuk
47436 * Copyright(c) 2013 Roman Shtylman
47437 * Copyright(c) 2014-2015 Douglas Christopher Wilson
47438 * MIT Licensed
47439 */
47440
47441
47442
47443/**
47444 * Module dependencies.
47445 */
47446
47447var bodyParser = __webpack_require__(294)
47448var EventEmitter = __webpack_require__(88).EventEmitter;
47449var mixin = __webpack_require__(647);
47450var proto = __webpack_require__(648);
47451var Route = __webpack_require__(306);
47452var Router = __webpack_require__(305);
47453var req = __webpack_require__(659);
47454var res = __webpack_require__(666);
47455
47456/**
47457 * Expose `createApplication()`.
47458 */
47459
47460exports = module.exports = createApplication;
47461
47462/**
47463 * Create an express application.
47464 *
47465 * @return {Function}
47466 * @api public
47467 */
47468
47469function createApplication() {
47470 var app = function(req, res, next) {
47471 app.handle(req, res, next);
47472 };
47473
47474 mixin(app, EventEmitter.prototype, false);
47475 mixin(app, proto, false);
47476
47477 // expose the prototype that will get set on requests
47478 app.request = Object.create(req, {
47479 app: { configurable: true, enumerable: true, writable: true, value: app }
47480 })
47481
47482 // expose the prototype that will get set on responses
47483 app.response = Object.create(res, {
47484 app: { configurable: true, enumerable: true, writable: true, value: app }
47485 })
47486
47487 app.init();
47488 return app;
47489}
47490
47491/**
47492 * Expose the prototypes.
47493 */
47494
47495exports.application = proto;
47496exports.request = req;
47497exports.response = res;
47498
47499/**
47500 * Expose constructors.
47501 */
47502
47503exports.Route = Route;
47504exports.Router = Router;
47505
47506/**
47507 * Expose middleware
47508 */
47509
47510exports.json = bodyParser.json
47511exports.query = __webpack_require__(308);
47512exports.static = __webpack_require__(670);
47513exports.urlencoded = bodyParser.urlencoded
47514
47515/**
47516 * Replace removed middleware with an appropriate error message.
47517 */
47518
47519;[
47520 'bodyParser',
47521 'compress',
47522 'cookieSession',
47523 'session',
47524 'logger',
47525 'cookieParser',
47526 'favicon',
47527 'responseTime',
47528 'errorHandler',
47529 'timeout',
47530 'methodOverride',
47531 'vhost',
47532 'csrf',
47533 'directory',
47534 'limit',
47535 'multipart',
47536 'staticCache',
47537].forEach(function (name) {
47538 Object.defineProperty(exports, name, {
47539 get: function () {
47540 throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.');
47541 },
47542 configurable: true
47543 });
47544});
47545
47546
47547/***/ }),
47548/* 647 */
47549/***/ (function(module, exports, __webpack_require__) {
47550
47551"use strict";
47552/*!
47553 * merge-descriptors
47554 * Copyright(c) 2014 Jonathan Ong
47555 * Copyright(c) 2015 Douglas Christopher Wilson
47556 * MIT Licensed
47557 */
47558
47559
47560
47561/**
47562 * Module exports.
47563 * @public
47564 */
47565
47566module.exports = merge
47567
47568/**
47569 * Module variables.
47570 * @private
47571 */
47572
47573var hasOwnProperty = Object.prototype.hasOwnProperty
47574
47575/**
47576 * Merge the property descriptors of `src` into `dest`
47577 *
47578 * @param {object} dest Object to add descriptors to
47579 * @param {object} src Object to clone descriptors from
47580 * @param {boolean} [redefine=true] Redefine `dest` properties with `src` properties
47581 * @returns {object} Reference to dest
47582 * @public
47583 */
47584
47585function merge(dest, src, redefine) {
47586 if (!dest) {
47587 throw new TypeError('argument dest is required')
47588 }
47589
47590 if (!src) {
47591 throw new TypeError('argument src is required')
47592 }
47593
47594 if (redefine === undefined) {
47595 // Default to true
47596 redefine = true
47597 }
47598
47599 Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) {
47600 if (!redefine && hasOwnProperty.call(dest, name)) {
47601 // Skip desriptor
47602 return
47603 }
47604
47605 // Copy descriptor
47606 var descriptor = Object.getOwnPropertyDescriptor(src, name)
47607 Object.defineProperty(dest, name, descriptor)
47608 })
47609
47610 return dest
47611}
47612
47613
47614/***/ }),
47615/* 648 */
47616/***/ (function(module, exports, __webpack_require__) {
47617
47618"use strict";
47619/*!
47620 * express
47621 * Copyright(c) 2009-2013 TJ Holowaychuk
47622 * Copyright(c) 2013 Roman Shtylman
47623 * Copyright(c) 2014-2015 Douglas Christopher Wilson
47624 * MIT Licensed
47625 */
47626
47627
47628
47629/**
47630 * Module dependencies.
47631 * @private
47632 */
47633
47634var finalhandler = __webpack_require__(649);
47635var Router = __webpack_require__(305);
47636var methods = __webpack_require__(191);
47637var middleware = __webpack_require__(651);
47638var query = __webpack_require__(308);
47639var debug = __webpack_require__(30)('express:application');
47640var View = __webpack_require__(652);
47641var http = __webpack_require__(43);
47642var compileETag = __webpack_require__(69).compileETag;
47643var compileQueryParser = __webpack_require__(69).compileQueryParser;
47644var compileTrust = __webpack_require__(69).compileTrust;
47645var deprecate = __webpack_require__(47)('express');
47646var flatten = __webpack_require__(128);
47647var merge = __webpack_require__(129);
47648var resolve = __webpack_require__(48).resolve;
47649var setPrototypeOf = __webpack_require__(122)
47650var slice = Array.prototype.slice;
47651
47652/**
47653 * Application prototype.
47654 */
47655
47656var app = exports = module.exports = {};
47657
47658/**
47659 * Variable for trust proxy inheritance back-compat
47660 * @private
47661 */
47662
47663var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default';
47664
47665/**
47666 * Initialize the server.
47667 *
47668 * - setup default configuration
47669 * - setup default middleware
47670 * - setup route reflection methods
47671 *
47672 * @private
47673 */
47674
47675app.init = function init() {
47676 this.cache = {};
47677 this.engines = {};
47678 this.settings = {};
47679
47680 this.defaultConfiguration();
47681};
47682
47683/**
47684 * Initialize application configuration.
47685 * @private
47686 */
47687
47688app.defaultConfiguration = function defaultConfiguration() {
47689 var env = process.env.NODE_ENV || 'development';
47690
47691 // default settings
47692 this.enable('x-powered-by');
47693 this.set('etag', 'weak');
47694 this.set('env', env);
47695 this.set('query parser', 'extended');
47696 this.set('subdomain offset', 2);
47697 this.set('trust proxy', false);
47698
47699 // trust proxy inherit back-compat
47700 Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
47701 configurable: true,
47702 value: true
47703 });
47704
47705 debug('booting in %s mode', env);
47706
47707 this.on('mount', function onmount(parent) {
47708 // inherit trust proxy
47709 if (this.settings[trustProxyDefaultSymbol] === true
47710 && typeof parent.settings['trust proxy fn'] === 'function') {
47711 delete this.settings['trust proxy'];
47712 delete this.settings['trust proxy fn'];
47713 }
47714
47715 // inherit protos
47716 setPrototypeOf(this.request, parent.request)
47717 setPrototypeOf(this.response, parent.response)
47718 setPrototypeOf(this.engines, parent.engines)
47719 setPrototypeOf(this.settings, parent.settings)
47720 });
47721
47722 // setup locals
47723 this.locals = Object.create(null);
47724
47725 // top-most app is mounted at /
47726 this.mountpath = '/';
47727
47728 // default locals
47729 this.locals.settings = this.settings;
47730
47731 // default configuration
47732 this.set('view', View);
47733 this.set('views', resolve('views'));
47734 this.set('jsonp callback name', 'callback');
47735
47736 if (env === 'production') {
47737 this.enable('view cache');
47738 }
47739
47740 Object.defineProperty(this, 'router', {
47741 get: function() {
47742 throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.');
47743 }
47744 });
47745};
47746
47747/**
47748 * lazily adds the base router if it has not yet been added.
47749 *
47750 * We cannot add the base router in the defaultConfiguration because
47751 * it reads app settings which might be set after that has run.
47752 *
47753 * @private
47754 */
47755app.lazyrouter = function lazyrouter() {
47756 if (!this._router) {
47757 this._router = new Router({
47758 caseSensitive: this.enabled('case sensitive routing'),
47759 strict: this.enabled('strict routing')
47760 });
47761
47762 this._router.use(query(this.get('query parser fn')));
47763 this._router.use(middleware.init(this));
47764 }
47765};
47766
47767/**
47768 * Dispatch a req, res pair into the application. Starts pipeline processing.
47769 *
47770 * If no callback is provided, then default error handlers will respond
47771 * in the event of an error bubbling through the stack.
47772 *
47773 * @private
47774 */
47775
47776app.handle = function handle(req, res, callback) {
47777 var router = this._router;
47778
47779 // final handler
47780 var done = callback || finalhandler(req, res, {
47781 env: this.get('env'),
47782 onerror: logerror.bind(this)
47783 });
47784
47785 // no routes
47786 if (!router) {
47787 debug('no routes defined on app');
47788 done();
47789 return;
47790 }
47791
47792 router.handle(req, res, done);
47793};
47794
47795/**
47796 * Proxy `Router#use()` to add middleware to the app router.
47797 * See Router#use() documentation for details.
47798 *
47799 * If the _fn_ parameter is an express app, then it will be
47800 * mounted at the _route_ specified.
47801 *
47802 * @public
47803 */
47804
47805app.use = function use(fn) {
47806 var offset = 0;
47807 var path = '/';
47808
47809 // default path to '/'
47810 // disambiguate app.use([fn])
47811 if (typeof fn !== 'function') {
47812 var arg = fn;
47813
47814 while (Array.isArray(arg) && arg.length !== 0) {
47815 arg = arg[0];
47816 }
47817
47818 // first arg is the path
47819 if (typeof arg !== 'function') {
47820 offset = 1;
47821 path = fn;
47822 }
47823 }
47824
47825 var fns = flatten(slice.call(arguments, offset));
47826
47827 if (fns.length === 0) {
47828 throw new TypeError('app.use() requires a middleware function')
47829 }
47830
47831 // setup router
47832 this.lazyrouter();
47833 var router = this._router;
47834
47835 fns.forEach(function (fn) {
47836 // non-express app
47837 if (!fn || !fn.handle || !fn.set) {
47838 return router.use(path, fn);
47839 }
47840
47841 debug('.use app under %s', path);
47842 fn.mountpath = path;
47843 fn.parent = this;
47844
47845 // restore .app property on req and res
47846 router.use(path, function mounted_app(req, res, next) {
47847 var orig = req.app;
47848 fn.handle(req, res, function (err) {
47849 setPrototypeOf(req, orig.request)
47850 setPrototypeOf(res, orig.response)
47851 next(err);
47852 });
47853 });
47854
47855 // mounted an app
47856 fn.emit('mount', this);
47857 }, this);
47858
47859 return this;
47860};
47861
47862/**
47863 * Proxy to the app `Router#route()`
47864 * Returns a new `Route` instance for the _path_.
47865 *
47866 * Routes are isolated middleware stacks for specific paths.
47867 * See the Route api docs for details.
47868 *
47869 * @public
47870 */
47871
47872app.route = function route(path) {
47873 this.lazyrouter();
47874 return this._router.route(path);
47875};
47876
47877/**
47878 * Register the given template engine callback `fn`
47879 * as `ext`.
47880 *
47881 * By default will `require()` the engine based on the
47882 * file extension. For example if you try to render
47883 * a "foo.ejs" file Express will invoke the following internally:
47884 *
47885 * app.engine('ejs', require('ejs').__express);
47886 *
47887 * For engines that do not provide `.__express` out of the box,
47888 * or if you wish to "map" a different extension to the template engine
47889 * you may use this method. For example mapping the EJS template engine to
47890 * ".html" files:
47891 *
47892 * app.engine('html', require('ejs').renderFile);
47893 *
47894 * In this case EJS provides a `.renderFile()` method with
47895 * the same signature that Express expects: `(path, options, callback)`,
47896 * though note that it aliases this method as `ejs.__express` internally
47897 * so if you're using ".ejs" extensions you dont need to do anything.
47898 *
47899 * Some template engines do not follow this convention, the
47900 * [Consolidate.js](https://github.com/tj/consolidate.js)
47901 * library was created to map all of node's popular template
47902 * engines to follow this convention, thus allowing them to
47903 * work seamlessly within Express.
47904 *
47905 * @param {String} ext
47906 * @param {Function} fn
47907 * @return {app} for chaining
47908 * @public
47909 */
47910
47911app.engine = function engine(ext, fn) {
47912 if (typeof fn !== 'function') {
47913 throw new Error('callback function required');
47914 }
47915
47916 // get file extension
47917 var extension = ext[0] !== '.'
47918 ? '.' + ext
47919 : ext;
47920
47921 // store engine
47922 this.engines[extension] = fn;
47923
47924 return this;
47925};
47926
47927/**
47928 * Proxy to `Router#param()` with one added api feature. The _name_ parameter
47929 * can be an array of names.
47930 *
47931 * See the Router#param() docs for more details.
47932 *
47933 * @param {String|Array} name
47934 * @param {Function} fn
47935 * @return {app} for chaining
47936 * @public
47937 */
47938
47939app.param = function param(name, fn) {
47940 this.lazyrouter();
47941
47942 if (Array.isArray(name)) {
47943 for (var i = 0; i < name.length; i++) {
47944 this.param(name[i], fn);
47945 }
47946
47947 return this;
47948 }
47949
47950 this._router.param(name, fn);
47951
47952 return this;
47953};
47954
47955/**
47956 * Assign `setting` to `val`, or return `setting`'s value.
47957 *
47958 * app.set('foo', 'bar');
47959 * app.set('foo');
47960 * // => "bar"
47961 *
47962 * Mounted servers inherit their parent server's settings.
47963 *
47964 * @param {String} setting
47965 * @param {*} [val]
47966 * @return {Server} for chaining
47967 * @public
47968 */
47969
47970app.set = function set(setting, val) {
47971 if (arguments.length === 1) {
47972 // app.get(setting)
47973 return this.settings[setting];
47974 }
47975
47976 debug('set "%s" to %o', setting, val);
47977
47978 // set value
47979 this.settings[setting] = val;
47980
47981 // trigger matched settings
47982 switch (setting) {
47983 case 'etag':
47984 this.set('etag fn', compileETag(val));
47985 break;
47986 case 'query parser':
47987 this.set('query parser fn', compileQueryParser(val));
47988 break;
47989 case 'trust proxy':
47990 this.set('trust proxy fn', compileTrust(val));
47991
47992 // trust proxy inherit back-compat
47993 Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
47994 configurable: true,
47995 value: false
47996 });
47997
47998 break;
47999 }
48000
48001 return this;
48002};
48003
48004/**
48005 * Return the app's absolute pathname
48006 * based on the parent(s) that have
48007 * mounted it.
48008 *
48009 * For example if the application was
48010 * mounted as "/admin", which itself
48011 * was mounted as "/blog" then the
48012 * return value would be "/blog/admin".
48013 *
48014 * @return {String}
48015 * @private
48016 */
48017
48018app.path = function path() {
48019 return this.parent
48020 ? this.parent.path() + this.mountpath
48021 : '';
48022};
48023
48024/**
48025 * Check if `setting` is enabled (truthy).
48026 *
48027 * app.enabled('foo')
48028 * // => false
48029 *
48030 * app.enable('foo')
48031 * app.enabled('foo')
48032 * // => true
48033 *
48034 * @param {String} setting
48035 * @return {Boolean}
48036 * @public
48037 */
48038
48039app.enabled = function enabled(setting) {
48040 return Boolean(this.set(setting));
48041};
48042
48043/**
48044 * Check if `setting` is disabled.
48045 *
48046 * app.disabled('foo')
48047 * // => true
48048 *
48049 * app.enable('foo')
48050 * app.disabled('foo')
48051 * // => false
48052 *
48053 * @param {String} setting
48054 * @return {Boolean}
48055 * @public
48056 */
48057
48058app.disabled = function disabled(setting) {
48059 return !this.set(setting);
48060};
48061
48062/**
48063 * Enable `setting`.
48064 *
48065 * @param {String} setting
48066 * @return {app} for chaining
48067 * @public
48068 */
48069
48070app.enable = function enable(setting) {
48071 return this.set(setting, true);
48072};
48073
48074/**
48075 * Disable `setting`.
48076 *
48077 * @param {String} setting
48078 * @return {app} for chaining
48079 * @public
48080 */
48081
48082app.disable = function disable(setting) {
48083 return this.set(setting, false);
48084};
48085
48086/**
48087 * Delegate `.VERB(...)` calls to `router.VERB(...)`.
48088 */
48089
48090methods.forEach(function(method){
48091 app[method] = function(path){
48092 if (method === 'get' && arguments.length === 1) {
48093 // app.get(setting)
48094 return this.set(path);
48095 }
48096
48097 this.lazyrouter();
48098
48099 var route = this._router.route(path);
48100 route[method].apply(route, slice.call(arguments, 1));
48101 return this;
48102 };
48103});
48104
48105/**
48106 * Special-cased "all" method, applying the given route `path`,
48107 * middleware, and callback to _every_ HTTP method.
48108 *
48109 * @param {String} path
48110 * @param {Function} ...
48111 * @return {app} for chaining
48112 * @public
48113 */
48114
48115app.all = function all(path) {
48116 this.lazyrouter();
48117
48118 var route = this._router.route(path);
48119 var args = slice.call(arguments, 1);
48120
48121 for (var i = 0; i < methods.length; i++) {
48122 route[methods[i]].apply(route, args);
48123 }
48124
48125 return this;
48126};
48127
48128// del -> delete alias
48129
48130app.del = deprecate.function(app.delete, 'app.del: Use app.delete instead');
48131
48132/**
48133 * Render the given view `name` name with `options`
48134 * and a callback accepting an error and the
48135 * rendered template string.
48136 *
48137 * Example:
48138 *
48139 * app.render('email', { name: 'Tobi' }, function(err, html){
48140 * // ...
48141 * })
48142 *
48143 * @param {String} name
48144 * @param {Object|Function} options or fn
48145 * @param {Function} callback
48146 * @public
48147 */
48148
48149app.render = function render(name, options, callback) {
48150 var cache = this.cache;
48151 var done = callback;
48152 var engines = this.engines;
48153 var opts = options;
48154 var renderOptions = {};
48155 var view;
48156
48157 // support callback function as second arg
48158 if (typeof options === 'function') {
48159 done = options;
48160 opts = {};
48161 }
48162
48163 // merge app.locals
48164 merge(renderOptions, this.locals);
48165
48166 // merge options._locals
48167 if (opts._locals) {
48168 merge(renderOptions, opts._locals);
48169 }
48170
48171 // merge options
48172 merge(renderOptions, opts);
48173
48174 // set .cache unless explicitly provided
48175 if (renderOptions.cache == null) {
48176 renderOptions.cache = this.enabled('view cache');
48177 }
48178
48179 // primed cache
48180 if (renderOptions.cache) {
48181 view = cache[name];
48182 }
48183
48184 // view
48185 if (!view) {
48186 var View = this.get('view');
48187
48188 view = new View(name, {
48189 defaultEngine: this.get('view engine'),
48190 root: this.get('views'),
48191 engines: engines
48192 });
48193
48194 if (!view.path) {
48195 var dirs = Array.isArray(view.root) && view.root.length > 1
48196 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"'
48197 : 'directory "' + view.root + '"'
48198 var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
48199 err.view = view;
48200 return done(err);
48201 }
48202
48203 // prime the cache
48204 if (renderOptions.cache) {
48205 cache[name] = view;
48206 }
48207 }
48208
48209 // render
48210 tryRender(view, renderOptions, done);
48211};
48212
48213/**
48214 * Listen for connections.
48215 *
48216 * A node `http.Server` is returned, with this
48217 * application (which is a `Function`) as its
48218 * callback. If you wish to create both an HTTP
48219 * and HTTPS server you may do so with the "http"
48220 * and "https" modules as shown here:
48221 *
48222 * var http = require('http')
48223 * , https = require('https')
48224 * , express = require('express')
48225 * , app = express();
48226 *
48227 * http.createServer(app).listen(80);
48228 * https.createServer({ ... }, app).listen(443);
48229 *
48230 * @return {http.Server}
48231 * @public
48232 */
48233
48234app.listen = function listen() {
48235 var server = http.createServer(this);
48236 return server.listen.apply(server, arguments);
48237};
48238
48239/**
48240 * Log error using console.error.
48241 *
48242 * @param {Error} err
48243 * @private
48244 */
48245
48246function logerror(err) {
48247 /* istanbul ignore next */
48248 if (this.get('env') !== 'test') console.error(err.stack || err.toString());
48249}
48250
48251/**
48252 * Try rendering a view.
48253 * @private
48254 */
48255
48256function tryRender(view, options, callback) {
48257 try {
48258 view.render(options, callback);
48259 } catch (err) {
48260 callback(err);
48261 }
48262}
48263
48264
48265/***/ }),
48266/* 649 */
48267/***/ (function(module, exports, __webpack_require__) {
48268
48269"use strict";
48270/*!
48271 * finalhandler
48272 * Copyright(c) 2014-2017 Douglas Christopher Wilson
48273 * MIT Licensed
48274 */
48275
48276
48277
48278/**
48279 * Module dependencies.
48280 * @private
48281 */
48282
48283var debug = __webpack_require__(30)('finalhandler')
48284var encodeUrl = __webpack_require__(126)
48285var escapeHtml = __webpack_require__(127)
48286var onFinished = __webpack_require__(125)
48287var parseUrl = __webpack_require__(92)
48288var statuses = __webpack_require__(123)
48289var unpipe = __webpack_require__(300)
48290
48291/**
48292 * Module variables.
48293 * @private
48294 */
48295
48296var DOUBLE_SPACE_REGEXP = /\x20{2}/g
48297var NEWLINE_REGEXP = /\n/g
48298
48299/* istanbul ignore next */
48300var defer = typeof setImmediate === 'function'
48301 ? setImmediate
48302 : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) }
48303var isFinished = onFinished.isFinished
48304
48305/**
48306 * Create a minimal HTML document.
48307 *
48308 * @param {string} message
48309 * @private
48310 */
48311
48312function createHtmlDocument (message) {
48313 var body = escapeHtml(message)
48314 .replace(NEWLINE_REGEXP, '<br>')
48315 .replace(DOUBLE_SPACE_REGEXP, ' &nbsp;')
48316
48317 return '<!DOCTYPE html>\n' +
48318 '<html lang="en">\n' +
48319 '<head>\n' +
48320 '<meta charset="utf-8">\n' +
48321 '<title>Error</title>\n' +
48322 '</head>\n' +
48323 '<body>\n' +
48324 '<pre>' + body + '</pre>\n' +
48325 '</body>\n' +
48326 '</html>\n'
48327}
48328
48329/**
48330 * Module exports.
48331 * @public
48332 */
48333
48334module.exports = finalhandler
48335
48336/**
48337 * Create a function to handle the final response.
48338 *
48339 * @param {Request} req
48340 * @param {Response} res
48341 * @param {Object} [options]
48342 * @return {Function}
48343 * @public
48344 */
48345
48346function finalhandler (req, res, options) {
48347 var opts = options || {}
48348
48349 // get environment
48350 var env = opts.env || process.env.NODE_ENV || 'development'
48351
48352 // get error callback
48353 var onerror = opts.onerror
48354
48355 return function (err) {
48356 var headers
48357 var msg
48358 var status
48359
48360 // ignore 404 on in-flight response
48361 if (!err && headersSent(res)) {
48362 debug('cannot 404 after headers sent')
48363 return
48364 }
48365
48366 // unhandled error
48367 if (err) {
48368 // respect status code from error
48369 status = getErrorStatusCode(err)
48370
48371 // respect headers from error
48372 if (status !== undefined) {
48373 headers = getErrorHeaders(err)
48374 }
48375
48376 // fallback to status code on response
48377 if (status === undefined) {
48378 status = getResponseStatusCode(res)
48379 }
48380
48381 // get error message
48382 msg = getErrorMessage(err, status, env)
48383 } else {
48384 // not found
48385 status = 404
48386 msg = 'Cannot ' + req.method + ' ' + encodeUrl(parseUrl.original(req).pathname)
48387 }
48388
48389 debug('default %s', status)
48390
48391 // schedule onerror callback
48392 if (err && onerror) {
48393 defer(onerror, err, req, res)
48394 }
48395
48396 // cannot actually respond
48397 if (headersSent(res)) {
48398 debug('cannot %d after headers sent', status)
48399 req.socket.destroy()
48400 return
48401 }
48402
48403 // send response
48404 send(req, res, status, headers, msg)
48405 }
48406}
48407
48408/**
48409 * Get headers from Error object.
48410 *
48411 * @param {Error} err
48412 * @return {object}
48413 * @private
48414 */
48415
48416function getErrorHeaders (err) {
48417 if (!err.headers || typeof err.headers !== 'object') {
48418 return undefined
48419 }
48420
48421 var headers = Object.create(null)
48422 var keys = Object.keys(err.headers)
48423
48424 for (var i = 0; i < keys.length; i++) {
48425 var key = keys[i]
48426 headers[key] = err.headers[key]
48427 }
48428
48429 return headers
48430}
48431
48432/**
48433 * Get message from Error object, fallback to status message.
48434 *
48435 * @param {Error} err
48436 * @param {number} status
48437 * @param {string} env
48438 * @return {string}
48439 * @private
48440 */
48441
48442function getErrorMessage (err, status, env) {
48443 var msg
48444
48445 if (env !== 'production') {
48446 // use err.stack, which typically includes err.message
48447 msg = err.stack
48448
48449 // fallback to err.toString() when possible
48450 if (!msg && typeof err.toString === 'function') {
48451 msg = err.toString()
48452 }
48453 }
48454
48455 return msg || statuses[status]
48456}
48457
48458/**
48459 * Get status code from Error object.
48460 *
48461 * @param {Error} err
48462 * @return {number}
48463 * @private
48464 */
48465
48466function getErrorStatusCode (err) {
48467 // check err.status
48468 if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) {
48469 return err.status
48470 }
48471
48472 // check err.statusCode
48473 if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) {
48474 return err.statusCode
48475 }
48476
48477 return undefined
48478}
48479
48480/**
48481 * Get status code from response.
48482 *
48483 * @param {OutgoingMessage} res
48484 * @return {number}
48485 * @private
48486 */
48487
48488function getResponseStatusCode (res) {
48489 var status = res.statusCode
48490
48491 // default status code to 500 if outside valid range
48492 if (typeof status !== 'number' || status < 400 || status > 599) {
48493 status = 500
48494 }
48495
48496 return status
48497}
48498
48499/**
48500 * Determine if the response headers have been sent.
48501 *
48502 * @param {object} res
48503 * @returns {boolean}
48504 * @private
48505 */
48506
48507function headersSent (res) {
48508 return typeof res.headersSent !== 'boolean'
48509 ? Boolean(res._header)
48510 : res.headersSent
48511}
48512
48513/**
48514 * Send response.
48515 *
48516 * @param {IncomingMessage} req
48517 * @param {OutgoingMessage} res
48518 * @param {number} status
48519 * @param {object} headers
48520 * @param {string} message
48521 * @private
48522 */
48523
48524function send (req, res, status, headers, message) {
48525 function write () {
48526 // response body
48527 var body = createHtmlDocument(message)
48528
48529 // response status
48530 res.statusCode = status
48531 res.statusMessage = statuses[status]
48532
48533 // response headers
48534 setHeaders(res, headers)
48535
48536 // security headers
48537 res.setHeader('Content-Security-Policy', "default-src 'self'")
48538 res.setHeader('X-Content-Type-Options', 'nosniff')
48539
48540 // standard headers
48541 res.setHeader('Content-Type', 'text/html; charset=utf-8')
48542 res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8'))
48543
48544 if (req.method === 'HEAD') {
48545 res.end()
48546 return
48547 }
48548
48549 res.end(body, 'utf8')
48550 }
48551
48552 if (isFinished(req)) {
48553 write()
48554 return
48555 }
48556
48557 // unpipe everything from the request
48558 unpipe(req)
48559
48560 // flush the request
48561 onFinished(req, write)
48562 req.resume()
48563}
48564
48565/**
48566 * Set response headers from an object.
48567 *
48568 * @param {OutgoingMessage} res
48569 * @param {object} headers
48570 * @private
48571 */
48572
48573function setHeaders (res, headers) {
48574 if (!headers) {
48575 return
48576 }
48577
48578 var keys = Object.keys(headers)
48579 for (var i = 0; i < keys.length; i++) {
48580 var key = keys[i]
48581 res.setHeader(key, headers[key])
48582 }
48583}
48584
48585
48586/***/ }),
48587/* 650 */
48588/***/ (function(module, exports) {
48589
48590/**
48591 * Expose `pathtoRegexp`.
48592 */
48593
48594module.exports = pathtoRegexp;
48595
48596/**
48597 * Match matching groups in a regular expression.
48598 */
48599var MATCHING_GROUP_REGEXP = /\((?!\?)/g;
48600
48601/**
48602 * Normalize the given path string,
48603 * returning a regular expression.
48604 *
48605 * An empty array should be passed,
48606 * which will contain the placeholder
48607 * key names. For example "/user/:id" will
48608 * then contain ["id"].
48609 *
48610 * @param {String|RegExp|Array} path
48611 * @param {Array} keys
48612 * @param {Object} options
48613 * @return {RegExp}
48614 * @api private
48615 */
48616
48617function pathtoRegexp(path, keys, options) {
48618 options = options || {};
48619 keys = keys || [];
48620 var strict = options.strict;
48621 var end = options.end !== false;
48622 var flags = options.sensitive ? '' : 'i';
48623 var extraOffset = 0;
48624 var keysOffset = keys.length;
48625 var i = 0;
48626 var name = 0;
48627 var m;
48628
48629 if (path instanceof RegExp) {
48630 while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {
48631 keys.push({
48632 name: name++,
48633 optional: false,
48634 offset: m.index
48635 });
48636 }
48637
48638 return path;
48639 }
48640
48641 if (Array.isArray(path)) {
48642 // Map array parts into regexps and return their source. We also pass
48643 // the same keys and options instance into every generation to get
48644 // consistent matching groups before we join the sources together.
48645 path = path.map(function (value) {
48646 return pathtoRegexp(value, keys, options).source;
48647 });
48648
48649 return new RegExp('(?:' + path.join('|') + ')', flags);
48650 }
48651
48652 path = ('^' + path + (strict ? '' : path[path.length - 1] === '/' ? '?' : '/?'))
48653 .replace(/\/\(/g, '/(?:')
48654 .replace(/([\/\.])/g, '\\$1')
48655 .replace(/(\\\/)?(\\\.)?:(\w+)(\(.*?\))?(\*)?(\?)?/g, function (match, slash, format, key, capture, star, optional, offset) {
48656 slash = slash || '';
48657 format = format || '';
48658 capture = capture || '([^\\/' + format + ']+?)';
48659 optional = optional || '';
48660
48661 keys.push({
48662 name: key,
48663 optional: !!optional,
48664 offset: offset + extraOffset
48665 });
48666
48667 var result = ''
48668 + (optional ? '' : slash)
48669 + '(?:'
48670 + format + (optional ? slash : '') + capture
48671 + (star ? '((?:[\\/' + format + '].+?)?)' : '')
48672 + ')'
48673 + optional;
48674
48675 extraOffset += result.length - match.length;
48676
48677 return result;
48678 })
48679 .replace(/\*/g, function (star, index) {
48680 var len = keys.length
48681
48682 while (len-- > keysOffset && keys[len].offset > index) {
48683 keys[len].offset += 3; // Replacement length minus asterisk length.
48684 }
48685
48686 return '(.*)';
48687 });
48688
48689 // This is a workaround for handling unnamed matching groups.
48690 while (m = MATCHING_GROUP_REGEXP.exec(path)) {
48691 var escapeCount = 0;
48692 var index = m.index;
48693
48694 while (path.charAt(--index) === '\\') {
48695 escapeCount++;
48696 }
48697
48698 // It's possible to escape the bracket.
48699 if (escapeCount % 2 === 1) {
48700 continue;
48701 }
48702
48703 if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {
48704 keys.splice(keysOffset + i, 0, {
48705 name: name++, // Unnamed matching groups must be consistently linear.
48706 optional: false,
48707 offset: m.index
48708 });
48709 }
48710
48711 i++;
48712 }
48713
48714 // If the path is non-ending, match until the end or a slash.
48715 path += (end ? '$' : (path[path.length - 1] === '/' ? '' : '(?=\\/|$)'));
48716
48717 return new RegExp(path, flags);
48718};
48719
48720
48721/***/ }),
48722/* 651 */
48723/***/ (function(module, exports, __webpack_require__) {
48724
48725"use strict";
48726/*!
48727 * express
48728 * Copyright(c) 2009-2013 TJ Holowaychuk
48729 * Copyright(c) 2013 Roman Shtylman
48730 * Copyright(c) 2014-2015 Douglas Christopher Wilson
48731 * MIT Licensed
48732 */
48733
48734
48735
48736/**
48737 * Module dependencies.
48738 * @private
48739 */
48740
48741var setPrototypeOf = __webpack_require__(122)
48742
48743/**
48744 * Initialization middleware, exposing the
48745 * request and response to each other, as well
48746 * as defaulting the X-Powered-By header field.
48747 *
48748 * @param {Function} app
48749 * @return {Function}
48750 * @api private
48751 */
48752
48753exports.init = function(app){
48754 return function expressInit(req, res, next){
48755 if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express');
48756 req.res = res;
48757 res.req = req;
48758 req.next = next;
48759
48760 setPrototypeOf(req, app.request)
48761 setPrototypeOf(res, app.response)
48762
48763 res.locals = res.locals || Object.create(null);
48764
48765 next();
48766 };
48767};
48768
48769
48770
48771/***/ }),
48772/* 652 */
48773/***/ (function(module, exports, __webpack_require__) {
48774
48775"use strict";
48776/*!
48777 * express
48778 * Copyright(c) 2009-2013 TJ Holowaychuk
48779 * Copyright(c) 2013 Roman Shtylman
48780 * Copyright(c) 2014-2015 Douglas Christopher Wilson
48781 * MIT Licensed
48782 */
48783
48784
48785
48786/**
48787 * Module dependencies.
48788 * @private
48789 */
48790
48791var debug = __webpack_require__(30)('express:view');
48792var path = __webpack_require__(48);
48793var fs = __webpack_require__(68);
48794
48795/**
48796 * Module variables.
48797 * @private
48798 */
48799
48800var dirname = path.dirname;
48801var basename = path.basename;
48802var extname = path.extname;
48803var join = path.join;
48804var resolve = path.resolve;
48805
48806/**
48807 * Module exports.
48808 * @public
48809 */
48810
48811module.exports = View;
48812
48813/**
48814 * Initialize a new `View` with the given `name`.
48815 *
48816 * Options:
48817 *
48818 * - `defaultEngine` the default template engine name
48819 * - `engines` template engine require() cache
48820 * - `root` root path for view lookup
48821 *
48822 * @param {string} name
48823 * @param {object} options
48824 * @public
48825 */
48826
48827function View(name, options) {
48828 var opts = options || {};
48829
48830 this.defaultEngine = opts.defaultEngine;
48831 this.ext = extname(name);
48832 this.name = name;
48833 this.root = opts.root;
48834
48835 if (!this.ext && !this.defaultEngine) {
48836 throw new Error('No default engine was specified and no extension was provided.');
48837 }
48838
48839 var fileName = name;
48840
48841 if (!this.ext) {
48842 // get extension from default engine name
48843 this.ext = this.defaultEngine[0] !== '.'
48844 ? '.' + this.defaultEngine
48845 : this.defaultEngine;
48846
48847 fileName += this.ext;
48848 }
48849
48850 if (!opts.engines[this.ext]) {
48851 // load engine
48852 var mod = this.ext.substr(1)
48853 debug('require "%s"', mod)
48854
48855 // default engine export
48856 var fn = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()).__express
48857
48858 if (typeof fn !== 'function') {
48859 throw new Error('Module "' + mod + '" does not provide a view engine.')
48860 }
48861
48862 opts.engines[this.ext] = fn
48863 }
48864
48865 // store loaded engine
48866 this.engine = opts.engines[this.ext];
48867
48868 // lookup path
48869 this.path = this.lookup(fileName);
48870}
48871
48872/**
48873 * Lookup view by the given `name`
48874 *
48875 * @param {string} name
48876 * @private
48877 */
48878
48879View.prototype.lookup = function lookup(name) {
48880 var path;
48881 var roots = [].concat(this.root);
48882
48883 debug('lookup "%s"', name);
48884
48885 for (var i = 0; i < roots.length && !path; i++) {
48886 var root = roots[i];
48887
48888 // resolve the path
48889 var loc = resolve(root, name);
48890 var dir = dirname(loc);
48891 var file = basename(loc);
48892
48893 // resolve the file
48894 path = this.resolve(dir, file);
48895 }
48896
48897 return path;
48898};
48899
48900/**
48901 * Render with the given options.
48902 *
48903 * @param {object} options
48904 * @param {function} callback
48905 * @private
48906 */
48907
48908View.prototype.render = function render(options, callback) {
48909 debug('render "%s"', this.path);
48910 this.engine(this.path, options, callback);
48911};
48912
48913/**
48914 * Resolve the file within the given directory.
48915 *
48916 * @param {string} dir
48917 * @param {string} file
48918 * @private
48919 */
48920
48921View.prototype.resolve = function resolve(dir, file) {
48922 var ext = this.ext;
48923
48924 // <path>.<ext>
48925 var path = join(dir, file);
48926 var stat = tryStat(path);
48927
48928 if (stat && stat.isFile()) {
48929 return path;
48930 }
48931
48932 // <path>/index.<ext>
48933 path = join(dir, basename(file, ext), 'index' + ext);
48934 stat = tryStat(path);
48935
48936 if (stat && stat.isFile()) {
48937 return path;
48938 }
48939};
48940
48941/**
48942 * Return a stat, maybe.
48943 *
48944 * @param {string} path
48945 * @return {fs.Stats}
48946 * @private
48947 */
48948
48949function tryStat(path) {
48950 debug('stat "%s"', path);
48951
48952 try {
48953 return fs.statSync(path);
48954 } catch (e) {
48955 return undefined;
48956 }
48957}
48958
48959
48960/***/ }),
48961/* 653 */
48962/***/ (function(module, exports) {
48963
48964function webpackEmptyContext(req) {
48965 throw new Error("Cannot find module '" + req + "'.");
48966}
48967webpackEmptyContext.keys = function() { return []; };
48968webpackEmptyContext.resolve = webpackEmptyContext;
48969module.exports = webpackEmptyContext;
48970webpackEmptyContext.id = 653;
48971
48972/***/ }),
48973/* 654 */
48974/***/ (function(module, exports, __webpack_require__) {
48975
48976"use strict";
48977/*!
48978 * destroy
48979 * Copyright(c) 2014 Jonathan Ong
48980 * MIT Licensed
48981 */
48982
48983
48984
48985/**
48986 * Module dependencies.
48987 * @private
48988 */
48989
48990var ReadStream = __webpack_require__(68).ReadStream
48991var Stream = __webpack_require__(40)
48992
48993/**
48994 * Module exports.
48995 * @public
48996 */
48997
48998module.exports = destroy
48999
49000/**
49001 * Destroy a stream.
49002 *
49003 * @param {object} stream
49004 * @public
49005 */
49006
49007function destroy(stream) {
49008 if (stream instanceof ReadStream) {
49009 return destroyReadStream(stream)
49010 }
49011
49012 if (!(stream instanceof Stream)) {
49013 return stream
49014 }
49015
49016 if (typeof stream.destroy === 'function') {
49017 stream.destroy()
49018 }
49019
49020 return stream
49021}
49022
49023/**
49024 * Destroy a ReadStream.
49025 *
49026 * @param {object} stream
49027 * @private
49028 */
49029
49030function destroyReadStream(stream) {
49031 stream.destroy()
49032
49033 if (typeof stream.close === 'function') {
49034 // node.js core bug work-around
49035 stream.on('open', onOpenClose)
49036 }
49037
49038 return stream
49039}
49040
49041/**
49042 * On open handler to close stream.
49043 * @private
49044 */
49045
49046function onOpenClose() {
49047 if (typeof this.fd === 'number') {
49048 // actually close down the fd
49049 this.close()
49050 }
49051}
49052
49053
49054/***/ }),
49055/* 655 */
49056/***/ (function(module, exports, __webpack_require__) {
49057
49058var path = __webpack_require__(48);
49059var fs = __webpack_require__(68);
49060
49061function Mime() {
49062 // Map of extension -> mime type
49063 this.types = Object.create(null);
49064
49065 // Map of mime type -> extension
49066 this.extensions = Object.create(null);
49067}
49068
49069/**
49070 * Define mimetype -> extension mappings. Each key is a mime-type that maps
49071 * to an array of extensions associated with the type. The first extension is
49072 * used as the default extension for the type.
49073 *
49074 * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
49075 *
49076 * @param map (Object) type definitions
49077 */
49078Mime.prototype.define = function (map) {
49079 for (var type in map) {
49080 var exts = map[type];
49081 for (var i = 0; i < exts.length; i++) {
49082 if (process.env.DEBUG_MIME && this.types[exts[i]]) {
49083 console.warn((this._loading || "define()").replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' +
49084 this.types[exts[i]] + ' to ' + type);
49085 }
49086
49087 this.types[exts[i]] = type;
49088 }
49089
49090 // Default extension is the first one we encounter
49091 if (!this.extensions[type]) {
49092 this.extensions[type] = exts[0];
49093 }
49094 }
49095};
49096
49097/**
49098 * Load an Apache2-style ".types" file
49099 *
49100 * This may be called multiple times (it's expected). Where files declare
49101 * overlapping types/extensions, the last file wins.
49102 *
49103 * @param file (String) path of file to load.
49104 */
49105Mime.prototype.load = function(file) {
49106 this._loading = file;
49107 // Read file and split into lines
49108 var map = {},
49109 content = fs.readFileSync(file, 'ascii'),
49110 lines = content.split(/[\r\n]+/);
49111
49112 lines.forEach(function(line) {
49113 // Clean up whitespace/comments, and split into fields
49114 var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/);
49115 map[fields.shift()] = fields;
49116 });
49117
49118 this.define(map);
49119
49120 this._loading = null;
49121};
49122
49123/**
49124 * Lookup a mime type based on extension
49125 */
49126Mime.prototype.lookup = function(path, fallback) {
49127 var ext = path.replace(/^.*[\.\/\\]/, '').toLowerCase();
49128
49129 return this.types[ext] || fallback || this.default_type;
49130};
49131
49132/**
49133 * Return file extension associated with a mime type
49134 */
49135Mime.prototype.extension = function(mimeType) {
49136 var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();
49137 return this.extensions[type];
49138};
49139
49140// Default instance
49141var mime = new Mime();
49142
49143// Define built-in types
49144mime.define(__webpack_require__(656));
49145
49146// Default type
49147mime.default_type = mime.lookup('bin');
49148
49149//
49150// Additional API specific to the default instance
49151//
49152
49153mime.Mime = Mime;
49154
49155/**
49156 * Lookup a charset based on mime type.
49157 */
49158mime.charsets = {
49159 lookup: function(mimeType, fallback) {
49160 // Assume text types are utf8
49161 return (/^text\/|^application\/(javascript|json)/).test(mimeType) ? 'UTF-8' : fallback;
49162 }
49163};
49164
49165module.exports = mime;
49166
49167
49168/***/ }),
49169/* 656 */
49170/***/ (function(module, exports) {
49171
49172module.exports = {"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":["woff"],"application/font-woff2":["woff2"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-otf":["otf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-ttf":["ttf","ttc"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["iso"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["exe"],"application/x-msdownload":["exe","dll","com","bat","msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","wmz","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["3gpp"],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":["mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":["wav"],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["ra"],"audio/x-wav":["wav"],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/otf":["otf"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jpeg":["jpeg","jpg","jpe"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["bmp"],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":["rtf"],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":["xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}
49173
49174/***/ }),
49175/* 657 */
49176/***/ (function(module, exports, __webpack_require__) {
49177
49178"use strict";
49179/*!
49180 * forwarded
49181 * Copyright(c) 2014-2017 Douglas Christopher Wilson
49182 * MIT Licensed
49183 */
49184
49185
49186
49187/**
49188 * Module exports.
49189 * @public
49190 */
49191
49192module.exports = forwarded
49193
49194/**
49195 * Get all addresses in the request, using the `X-Forwarded-For` header.
49196 *
49197 * @param {object} req
49198 * @return {array}
49199 * @public
49200 */
49201
49202function forwarded (req) {
49203 if (!req) {
49204 throw new TypeError('argument req is required')
49205 }
49206
49207 // simple header parsing
49208 var proxyAddrs = parse(req.headers['x-forwarded-for'] || '')
49209 var socketAddr = req.connection.remoteAddress
49210 var addrs = [socketAddr].concat(proxyAddrs)
49211
49212 // return all addresses
49213 return addrs
49214}
49215
49216/**
49217 * Parse the X-Forwarded-For header.
49218 *
49219 * @param {string} header
49220 * @private
49221 */
49222
49223function parse (header) {
49224 var end = header.length
49225 var list = []
49226 var start = header.length
49227
49228 // gather addresses, backwards
49229 for (var i = header.length - 1; i >= 0; i--) {
49230 switch (header.charCodeAt(i)) {
49231 case 0x20: /* */
49232 if (start === end) {
49233 start = end = i
49234 }
49235 break
49236 case 0x2c: /* , */
49237 if (start !== end) {
49238 list.push(header.substring(start, end))
49239 }
49240 start = end = i
49241 break
49242 default:
49243 start = i
49244 break
49245 }
49246 }
49247
49248 // final address
49249 if (start !== end) {
49250 list.push(header.substring(start, end))
49251 }
49252
49253 return list
49254}
49255
49256
49257/***/ }),
49258/* 658 */
49259/***/ (function(module, exports, __webpack_require__) {
49260
49261/* WEBPACK VAR INJECTION */(function(module) {(function() {
49262 var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex;
49263
49264 ipaddr = {};
49265
49266 root = this;
49267
49268 if ((typeof module !== "undefined" && module !== null) && module.exports) {
49269 module.exports = ipaddr;
49270 } else {
49271 root['ipaddr'] = ipaddr;
49272 }
49273
49274 matchCIDR = function(first, second, partSize, cidrBits) {
49275 var part, shift;
49276 if (first.length !== second.length) {
49277 throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
49278 }
49279 part = 0;
49280 while (cidrBits > 0) {
49281 shift = partSize - cidrBits;
49282 if (shift < 0) {
49283 shift = 0;
49284 }
49285 if (first[part] >> shift !== second[part] >> shift) {
49286 return false;
49287 }
49288 cidrBits -= partSize;
49289 part += 1;
49290 }
49291 return true;
49292 };
49293
49294 ipaddr.subnetMatch = function(address, rangeList, defaultName) {
49295 var k, len, rangeName, rangeSubnets, subnet;
49296 if (defaultName == null) {
49297 defaultName = 'unicast';
49298 }
49299 for (rangeName in rangeList) {
49300 rangeSubnets = rangeList[rangeName];
49301 if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
49302 rangeSubnets = [rangeSubnets];
49303 }
49304 for (k = 0, len = rangeSubnets.length; k < len; k++) {
49305 subnet = rangeSubnets[k];
49306 if (address.kind() === subnet[0].kind()) {
49307 if (address.match.apply(address, subnet)) {
49308 return rangeName;
49309 }
49310 }
49311 }
49312 }
49313 return defaultName;
49314 };
49315
49316 ipaddr.IPv4 = (function() {
49317 function IPv4(octets) {
49318 var k, len, octet;
49319 if (octets.length !== 4) {
49320 throw new Error("ipaddr: ipv4 octet count should be 4");
49321 }
49322 for (k = 0, len = octets.length; k < len; k++) {
49323 octet = octets[k];
49324 if (!((0 <= octet && octet <= 255))) {
49325 throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
49326 }
49327 }
49328 this.octets = octets;
49329 }
49330
49331 IPv4.prototype.kind = function() {
49332 return 'ipv4';
49333 };
49334
49335 IPv4.prototype.toString = function() {
49336 return this.octets.join(".");
49337 };
49338
49339 IPv4.prototype.toNormalizedString = function() {
49340 return this.toString();
49341 };
49342
49343 IPv4.prototype.toByteArray = function() {
49344 return this.octets.slice(0);
49345 };
49346
49347 IPv4.prototype.match = function(other, cidrRange) {
49348 var ref;
49349 if (cidrRange === void 0) {
49350 ref = other, other = ref[0], cidrRange = ref[1];
49351 }
49352 if (other.kind() !== 'ipv4') {
49353 throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
49354 }
49355 return matchCIDR(this.octets, other.octets, 8, cidrRange);
49356 };
49357
49358 IPv4.prototype.SpecialRanges = {
49359 unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
49360 broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
49361 multicast: [[new IPv4([224, 0, 0, 0]), 4]],
49362 linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
49363 loopback: [[new IPv4([127, 0, 0, 0]), 8]],
49364 carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]],
49365 "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
49366 reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
49367 };
49368
49369 IPv4.prototype.range = function() {
49370 return ipaddr.subnetMatch(this, this.SpecialRanges);
49371 };
49372
49373 IPv4.prototype.toIPv4MappedAddress = function() {
49374 return ipaddr.IPv6.parse("::ffff:" + (this.toString()));
49375 };
49376
49377 IPv4.prototype.prefixLengthFromSubnetMask = function() {
49378 var cidr, i, k, octet, stop, zeros, zerotable;
49379 zerotable = {
49380 0: 8,
49381 128: 7,
49382 192: 6,
49383 224: 5,
49384 240: 4,
49385 248: 3,
49386 252: 2,
49387 254: 1,
49388 255: 0
49389 };
49390 cidr = 0;
49391 stop = false;
49392 for (i = k = 3; k >= 0; i = k += -1) {
49393 octet = this.octets[i];
49394 if (octet in zerotable) {
49395 zeros = zerotable[octet];
49396 if (stop && zeros !== 0) {
49397 return null;
49398 }
49399 if (zeros !== 8) {
49400 stop = true;
49401 }
49402 cidr += zeros;
49403 } else {
49404 return null;
49405 }
49406 }
49407 return 32 - cidr;
49408 };
49409
49410 return IPv4;
49411
49412 })();
49413
49414 ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
49415
49416 ipv4Regexes = {
49417 fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", 'i'),
49418 longValue: new RegExp("^" + ipv4Part + "$", 'i')
49419 };
49420
49421 ipaddr.IPv4.parser = function(string) {
49422 var match, parseIntAuto, part, shift, value;
49423 parseIntAuto = function(string) {
49424 if (string[0] === "0" && string[1] !== "x") {
49425 return parseInt(string, 8);
49426 } else {
49427 return parseInt(string);
49428 }
49429 };
49430 if (match = string.match(ipv4Regexes.fourOctet)) {
49431 return (function() {
49432 var k, len, ref, results;
49433 ref = match.slice(1, 6);
49434 results = [];
49435 for (k = 0, len = ref.length; k < len; k++) {
49436 part = ref[k];
49437 results.push(parseIntAuto(part));
49438 }
49439 return results;
49440 })();
49441 } else if (match = string.match(ipv4Regexes.longValue)) {
49442 value = parseIntAuto(match[1]);
49443 if (value > 0xffffffff || value < 0) {
49444 throw new Error("ipaddr: address outside defined range");
49445 }
49446 return ((function() {
49447 var k, results;
49448 results = [];
49449 for (shift = k = 0; k <= 24; shift = k += 8) {
49450 results.push((value >> shift) & 0xff);
49451 }
49452 return results;
49453 })()).reverse();
49454 } else {
49455 return null;
49456 }
49457 };
49458
49459 ipaddr.IPv6 = (function() {
49460 function IPv6(parts, zoneId) {
49461 var i, k, l, len, part, ref;
49462 if (parts.length === 16) {
49463 this.parts = [];
49464 for (i = k = 0; k <= 14; i = k += 2) {
49465 this.parts.push((parts[i] << 8) | parts[i + 1]);
49466 }
49467 } else if (parts.length === 8) {
49468 this.parts = parts;
49469 } else {
49470 throw new Error("ipaddr: ipv6 part count should be 8 or 16");
49471 }
49472 ref = this.parts;
49473 for (l = 0, len = ref.length; l < len; l++) {
49474 part = ref[l];
49475 if (!((0 <= part && part <= 0xffff))) {
49476 throw new Error("ipaddr: ipv6 part should fit in 16 bits");
49477 }
49478 }
49479 if (zoneId) {
49480 this.zoneId = zoneId;
49481 }
49482 }
49483
49484 IPv6.prototype.kind = function() {
49485 return 'ipv6';
49486 };
49487
49488 IPv6.prototype.toString = function() {
49489 return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, '::');
49490 };
49491
49492 IPv6.prototype.toByteArray = function() {
49493 var bytes, k, len, part, ref;
49494 bytes = [];
49495 ref = this.parts;
49496 for (k = 0, len = ref.length; k < len; k++) {
49497 part = ref[k];
49498 bytes.push(part >> 8);
49499 bytes.push(part & 0xff);
49500 }
49501 return bytes;
49502 };
49503
49504 IPv6.prototype.toNormalizedString = function() {
49505 var addr, part, suffix;
49506 addr = ((function() {
49507 var k, len, ref, results;
49508 ref = this.parts;
49509 results = [];
49510 for (k = 0, len = ref.length; k < len; k++) {
49511 part = ref[k];
49512 results.push(part.toString(16));
49513 }
49514 return results;
49515 }).call(this)).join(":");
49516 suffix = '';
49517 if (this.zoneId) {
49518 suffix = '%' + this.zoneId;
49519 }
49520 return addr + suffix;
49521 };
49522
49523 IPv6.prototype.match = function(other, cidrRange) {
49524 var ref;
49525 if (cidrRange === void 0) {
49526 ref = other, other = ref[0], cidrRange = ref[1];
49527 }
49528 if (other.kind() !== 'ipv6') {
49529 throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
49530 }
49531 return matchCIDR(this.parts, other.parts, 16, cidrRange);
49532 };
49533
49534 IPv6.prototype.SpecialRanges = {
49535 unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
49536 linkLocal: [new IPv6([0xfe80, 0, 0, 0, 0, 0, 0, 0]), 10],
49537 multicast: [new IPv6([0xff00, 0, 0, 0, 0, 0, 0, 0]), 8],
49538 loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
49539 uniqueLocal: [new IPv6([0xfc00, 0, 0, 0, 0, 0, 0, 0]), 7],
49540 ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 0xffff, 0, 0]), 96],
49541 rfc6145: [new IPv6([0, 0, 0, 0, 0xffff, 0, 0, 0]), 96],
49542 rfc6052: [new IPv6([0x64, 0xff9b, 0, 0, 0, 0, 0, 0]), 96],
49543 '6to4': [new IPv6([0x2002, 0, 0, 0, 0, 0, 0, 0]), 16],
49544 teredo: [new IPv6([0x2001, 0, 0, 0, 0, 0, 0, 0]), 32],
49545 reserved: [[new IPv6([0x2001, 0xdb8, 0, 0, 0, 0, 0, 0]), 32]]
49546 };
49547
49548 IPv6.prototype.range = function() {
49549 return ipaddr.subnetMatch(this, this.SpecialRanges);
49550 };
49551
49552 IPv6.prototype.isIPv4MappedAddress = function() {
49553 return this.range() === 'ipv4Mapped';
49554 };
49555
49556 IPv6.prototype.toIPv4Address = function() {
49557 var high, low, ref;
49558 if (!this.isIPv4MappedAddress()) {
49559 throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
49560 }
49561 ref = this.parts.slice(-2), high = ref[0], low = ref[1];
49562 return new ipaddr.IPv4([high >> 8, high & 0xff, low >> 8, low & 0xff]);
49563 };
49564
49565 IPv6.prototype.prefixLengthFromSubnetMask = function() {
49566 var cidr, i, k, part, stop, zeros, zerotable;
49567 zerotable = {
49568 0: 16,
49569 32768: 15,
49570 49152: 14,
49571 57344: 13,
49572 61440: 12,
49573 63488: 11,
49574 64512: 10,
49575 65024: 9,
49576 65280: 8,
49577 65408: 7,
49578 65472: 6,
49579 65504: 5,
49580 65520: 4,
49581 65528: 3,
49582 65532: 2,
49583 65534: 1,
49584 65535: 0
49585 };
49586 cidr = 0;
49587 stop = false;
49588 for (i = k = 7; k >= 0; i = k += -1) {
49589 part = this.parts[i];
49590 if (part in zerotable) {
49591 zeros = zerotable[part];
49592 if (stop && zeros !== 0) {
49593 return null;
49594 }
49595 if (zeros !== 16) {
49596 stop = true;
49597 }
49598 cidr += zeros;
49599 } else {
49600 return null;
49601 }
49602 }
49603 return 128 - cidr;
49604 };
49605
49606 return IPv6;
49607
49608 })();
49609
49610 ipv6Part = "(?:[0-9a-f]+::?)+";
49611
49612 zoneIndex = "%[0-9a-z]{1,}";
49613
49614 ipv6Regexes = {
49615 zoneIndex: new RegExp(zoneIndex, 'i'),
49616 "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", 'i'),
49617 transitional: new RegExp(("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)") + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), 'i')
49618 };
49619
49620 expandIPv6 = function(string, parts) {
49621 var colonCount, lastColon, part, replacement, replacementCount, zoneId;
49622 if (string.indexOf('::') !== string.lastIndexOf('::')) {
49623 return null;
49624 }
49625 zoneId = (string.match(ipv6Regexes['zoneIndex']) || [])[0];
49626 if (zoneId) {
49627 zoneId = zoneId.substring(1);
49628 string = string.replace(/%.+$/, '');
49629 }
49630 colonCount = 0;
49631 lastColon = -1;
49632 while ((lastColon = string.indexOf(':', lastColon + 1)) >= 0) {
49633 colonCount++;
49634 }
49635 if (string.substr(0, 2) === '::') {
49636 colonCount--;
49637 }
49638 if (string.substr(-2, 2) === '::') {
49639 colonCount--;
49640 }
49641 if (colonCount > parts) {
49642 return null;
49643 }
49644 replacementCount = parts - colonCount;
49645 replacement = ':';
49646 while (replacementCount--) {
49647 replacement += '0:';
49648 }
49649 string = string.replace('::', replacement);
49650 if (string[0] === ':') {
49651 string = string.slice(1);
49652 }
49653 if (string[string.length - 1] === ':') {
49654 string = string.slice(0, -1);
49655 }
49656 parts = (function() {
49657 var k, len, ref, results;
49658 ref = string.split(":");
49659 results = [];
49660 for (k = 0, len = ref.length; k < len; k++) {
49661 part = ref[k];
49662 results.push(parseInt(part, 16));
49663 }
49664 return results;
49665 })();
49666 return {
49667 parts: parts,
49668 zoneId: zoneId
49669 };
49670 };
49671
49672 ipaddr.IPv6.parser = function(string) {
49673 var addr, k, len, match, octet, octets, zoneId;
49674 if (ipv6Regexes['native'].test(string)) {
49675 return expandIPv6(string, 8);
49676 } else if (match = string.match(ipv6Regexes['transitional'])) {
49677 zoneId = match[6] || '';
49678 addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6);
49679 if (addr.parts) {
49680 octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
49681 for (k = 0, len = octets.length; k < len; k++) {
49682 octet = octets[k];
49683 if (!((0 <= octet && octet <= 255))) {
49684 return null;
49685 }
49686 }
49687 addr.parts.push(octets[0] << 8 | octets[1]);
49688 addr.parts.push(octets[2] << 8 | octets[3]);
49689 return {
49690 parts: addr.parts,
49691 zoneId: addr.zoneId
49692 };
49693 }
49694 }
49695 return null;
49696 };
49697
49698 ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) {
49699 return this.parser(string) !== null;
49700 };
49701
49702 ipaddr.IPv4.isValid = function(string) {
49703 var e;
49704 try {
49705 new this(this.parser(string));
49706 return true;
49707 } catch (error1) {
49708 e = error1;
49709 return false;
49710 }
49711 };
49712
49713 ipaddr.IPv4.isValidFourPartDecimal = function(string) {
49714 if (ipaddr.IPv4.isValid(string) && string.match(/^\d+(\.\d+){3}$/)) {
49715 return true;
49716 } else {
49717 return false;
49718 }
49719 };
49720
49721 ipaddr.IPv6.isValid = function(string) {
49722 var addr, e;
49723 if (typeof string === "string" && string.indexOf(":") === -1) {
49724 return false;
49725 }
49726 try {
49727 addr = this.parser(string);
49728 new this(addr.parts, addr.zoneId);
49729 return true;
49730 } catch (error1) {
49731 e = error1;
49732 return false;
49733 }
49734 };
49735
49736 ipaddr.IPv4.parse = function(string) {
49737 var parts;
49738 parts = this.parser(string);
49739 if (parts === null) {
49740 throw new Error("ipaddr: string is not formatted like ip address");
49741 }
49742 return new this(parts);
49743 };
49744
49745 ipaddr.IPv6.parse = function(string) {
49746 var addr;
49747 addr = this.parser(string);
49748 if (addr.parts === null) {
49749 throw new Error("ipaddr: string is not formatted like ip address");
49750 }
49751 return new this(addr.parts, addr.zoneId);
49752 };
49753
49754 ipaddr.IPv4.parseCIDR = function(string) {
49755 var maskLength, match;
49756 if (match = string.match(/^(.+)\/(\d+)$/)) {
49757 maskLength = parseInt(match[2]);
49758 if (maskLength >= 0 && maskLength <= 32) {
49759 return [this.parse(match[1]), maskLength];
49760 }
49761 }
49762 throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range");
49763 };
49764
49765 ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) {
49766 var filledOctetCount, j, octets;
49767 prefix = parseInt(prefix);
49768 if (prefix < 0 || prefix > 32) {
49769 throw new Error('ipaddr: invalid IPv4 prefix length');
49770 }
49771 octets = [0, 0, 0, 0];
49772 j = 0;
49773 filledOctetCount = Math.floor(prefix / 8);
49774 while (j < filledOctetCount) {
49775 octets[j] = 255;
49776 j++;
49777 }
49778 if (filledOctetCount < 4) {
49779 octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - (prefix % 8);
49780 }
49781 return new this(octets);
49782 };
49783
49784 ipaddr.IPv4.broadcastAddressFromCIDR = function(string) {
49785 var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
49786 try {
49787 cidr = this.parseCIDR(string);
49788 ipInterfaceOctets = cidr[0].toByteArray();
49789 subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
49790 octets = [];
49791 i = 0;
49792 while (i < 4) {
49793 octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255);
49794 i++;
49795 }
49796 return new this(octets);
49797 } catch (error1) {
49798 error = error1;
49799 throw new Error('ipaddr: the address does not have IPv4 CIDR format');
49800 }
49801 };
49802
49803 ipaddr.IPv4.networkAddressFromCIDR = function(string) {
49804 var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
49805 try {
49806 cidr = this.parseCIDR(string);
49807 ipInterfaceOctets = cidr[0].toByteArray();
49808 subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
49809 octets = [];
49810 i = 0;
49811 while (i < 4) {
49812 octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10));
49813 i++;
49814 }
49815 return new this(octets);
49816 } catch (error1) {
49817 error = error1;
49818 throw new Error('ipaddr: the address does not have IPv4 CIDR format');
49819 }
49820 };
49821
49822 ipaddr.IPv6.parseCIDR = function(string) {
49823 var maskLength, match;
49824 if (match = string.match(/^(.+)\/(\d+)$/)) {
49825 maskLength = parseInt(match[2]);
49826 if (maskLength >= 0 && maskLength <= 128) {
49827 return [this.parse(match[1]), maskLength];
49828 }
49829 }
49830 throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range");
49831 };
49832
49833 ipaddr.isValid = function(string) {
49834 return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string);
49835 };
49836
49837 ipaddr.parse = function(string) {
49838 if (ipaddr.IPv6.isValid(string)) {
49839 return ipaddr.IPv6.parse(string);
49840 } else if (ipaddr.IPv4.isValid(string)) {
49841 return ipaddr.IPv4.parse(string);
49842 } else {
49843 throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
49844 }
49845 };
49846
49847 ipaddr.parseCIDR = function(string) {
49848 var e;
49849 try {
49850 return ipaddr.IPv6.parseCIDR(string);
49851 } catch (error1) {
49852 e = error1;
49853 try {
49854 return ipaddr.IPv4.parseCIDR(string);
49855 } catch (error1) {
49856 e = error1;
49857 throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format");
49858 }
49859 }
49860 };
49861
49862 ipaddr.fromByteArray = function(bytes) {
49863 var length;
49864 length = bytes.length;
49865 if (length === 4) {
49866 return new ipaddr.IPv4(bytes);
49867 } else if (length === 16) {
49868 return new ipaddr.IPv6(bytes);
49869 } else {
49870 throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address");
49871 }
49872 };
49873
49874 ipaddr.process = function(string) {
49875 var addr;
49876 addr = this.parse(string);
49877 if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) {
49878 return addr.toIPv4Address();
49879 } else {
49880 return addr;
49881 }
49882 };
49883
49884}).call(this);
49885
49886/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(193)(module)))
49887
49888/***/ }),
49889/* 659 */
49890/***/ (function(module, exports, __webpack_require__) {
49891
49892"use strict";
49893/*!
49894 * express
49895 * Copyright(c) 2009-2013 TJ Holowaychuk
49896 * Copyright(c) 2013 Roman Shtylman
49897 * Copyright(c) 2014-2015 Douglas Christopher Wilson
49898 * MIT Licensed
49899 */
49900
49901
49902
49903/**
49904 * Module dependencies.
49905 * @private
49906 */
49907
49908var accepts = __webpack_require__(660);
49909var deprecate = __webpack_require__(47)('express');
49910var isIP = __webpack_require__(297).isIP;
49911var typeis = __webpack_require__(91);
49912var http = __webpack_require__(43);
49913var fresh = __webpack_require__(311);
49914var parseRange = __webpack_require__(312);
49915var parse = __webpack_require__(92);
49916var proxyaddr = __webpack_require__(313);
49917
49918/**
49919 * Request prototype.
49920 * @public
49921 */
49922
49923var req = Object.create(http.IncomingMessage.prototype)
49924
49925/**
49926 * Module exports.
49927 * @public
49928 */
49929
49930module.exports = req
49931
49932/**
49933 * Return request header.
49934 *
49935 * The `Referrer` header field is special-cased,
49936 * both `Referrer` and `Referer` are interchangeable.
49937 *
49938 * Examples:
49939 *
49940 * req.get('Content-Type');
49941 * // => "text/plain"
49942 *
49943 * req.get('content-type');
49944 * // => "text/plain"
49945 *
49946 * req.get('Something');
49947 * // => undefined
49948 *
49949 * Aliased as `req.header()`.
49950 *
49951 * @param {String} name
49952 * @return {String}
49953 * @public
49954 */
49955
49956req.get =
49957req.header = function header(name) {
49958 if (!name) {
49959 throw new TypeError('name argument is required to req.get');
49960 }
49961
49962 if (typeof name !== 'string') {
49963 throw new TypeError('name must be a string to req.get');
49964 }
49965
49966 var lc = name.toLowerCase();
49967
49968 switch (lc) {
49969 case 'referer':
49970 case 'referrer':
49971 return this.headers.referrer
49972 || this.headers.referer;
49973 default:
49974 return this.headers[lc];
49975 }
49976};
49977
49978/**
49979 * To do: update docs.
49980 *
49981 * Check if the given `type(s)` is acceptable, returning
49982 * the best match when true, otherwise `undefined`, in which
49983 * case you should respond with 406 "Not Acceptable".
49984 *
49985 * The `type` value may be a single MIME type string
49986 * such as "application/json", an extension name
49987 * such as "json", a comma-delimited list such as "json, html, text/plain",
49988 * an argument list such as `"json", "html", "text/plain"`,
49989 * or an array `["json", "html", "text/plain"]`. When a list
49990 * or array is given, the _best_ match, if any is returned.
49991 *
49992 * Examples:
49993 *
49994 * // Accept: text/html
49995 * req.accepts('html');
49996 * // => "html"
49997 *
49998 * // Accept: text/*, application/json
49999 * req.accepts('html');
50000 * // => "html"
50001 * req.accepts('text/html');
50002 * // => "text/html"
50003 * req.accepts('json, text');
50004 * // => "json"
50005 * req.accepts('application/json');
50006 * // => "application/json"
50007 *
50008 * // Accept: text/*, application/json
50009 * req.accepts('image/png');
50010 * req.accepts('png');
50011 * // => undefined
50012 *
50013 * // Accept: text/*;q=.5, application/json
50014 * req.accepts(['html', 'json']);
50015 * req.accepts('html', 'json');
50016 * req.accepts('html, json');
50017 * // => "json"
50018 *
50019 * @param {String|Array} type(s)
50020 * @return {String|Array|Boolean}
50021 * @public
50022 */
50023
50024req.accepts = function(){
50025 var accept = accepts(this);
50026 return accept.types.apply(accept, arguments);
50027};
50028
50029/**
50030 * Check if the given `encoding`s are accepted.
50031 *
50032 * @param {String} ...encoding
50033 * @return {String|Array}
50034 * @public
50035 */
50036
50037req.acceptsEncodings = function(){
50038 var accept = accepts(this);
50039 return accept.encodings.apply(accept, arguments);
50040};
50041
50042req.acceptsEncoding = deprecate.function(req.acceptsEncodings,
50043 'req.acceptsEncoding: Use acceptsEncodings instead');
50044
50045/**
50046 * Check if the given `charset`s are acceptable,
50047 * otherwise you should respond with 406 "Not Acceptable".
50048 *
50049 * @param {String} ...charset
50050 * @return {String|Array}
50051 * @public
50052 */
50053
50054req.acceptsCharsets = function(){
50055 var accept = accepts(this);
50056 return accept.charsets.apply(accept, arguments);
50057};
50058
50059req.acceptsCharset = deprecate.function(req.acceptsCharsets,
50060 'req.acceptsCharset: Use acceptsCharsets instead');
50061
50062/**
50063 * Check if the given `lang`s are acceptable,
50064 * otherwise you should respond with 406 "Not Acceptable".
50065 *
50066 * @param {String} ...lang
50067 * @return {String|Array}
50068 * @public
50069 */
50070
50071req.acceptsLanguages = function(){
50072 var accept = accepts(this);
50073 return accept.languages.apply(accept, arguments);
50074};
50075
50076req.acceptsLanguage = deprecate.function(req.acceptsLanguages,
50077 'req.acceptsLanguage: Use acceptsLanguages instead');
50078
50079/**
50080 * Parse Range header field, capping to the given `size`.
50081 *
50082 * Unspecified ranges such as "0-" require knowledge of your resource length. In
50083 * the case of a byte range this is of course the total number of bytes. If the
50084 * Range header field is not given `undefined` is returned, `-1` when unsatisfiable,
50085 * and `-2` when syntactically invalid.
50086 *
50087 * When ranges are returned, the array has a "type" property which is the type of
50088 * range that is required (most commonly, "bytes"). Each array element is an object
50089 * with a "start" and "end" property for the portion of the range.
50090 *
50091 * The "combine" option can be set to `true` and overlapping & adjacent ranges
50092 * will be combined into a single range.
50093 *
50094 * NOTE: remember that ranges are inclusive, so for example "Range: users=0-3"
50095 * should respond with 4 users when available, not 3.
50096 *
50097 * @param {number} size
50098 * @param {object} [options]
50099 * @param {boolean} [options.combine=false]
50100 * @return {number|array}
50101 * @public
50102 */
50103
50104req.range = function range(size, options) {
50105 var range = this.get('Range');
50106 if (!range) return;
50107 return parseRange(size, range, options);
50108};
50109
50110/**
50111 * Return the value of param `name` when present or `defaultValue`.
50112 *
50113 * - Checks route placeholders, ex: _/user/:id_
50114 * - Checks body params, ex: id=12, {"id":12}
50115 * - Checks query string params, ex: ?id=12
50116 *
50117 * To utilize request bodies, `req.body`
50118 * should be an object. This can be done by using
50119 * the `bodyParser()` middleware.
50120 *
50121 * @param {String} name
50122 * @param {Mixed} [defaultValue]
50123 * @return {String}
50124 * @public
50125 */
50126
50127req.param = function param(name, defaultValue) {
50128 var params = this.params || {};
50129 var body = this.body || {};
50130 var query = this.query || {};
50131
50132 var args = arguments.length === 1
50133 ? 'name'
50134 : 'name, default';
50135 deprecate('req.param(' + args + '): Use req.params, req.body, or req.query instead');
50136
50137 if (null != params[name] && params.hasOwnProperty(name)) return params[name];
50138 if (null != body[name]) return body[name];
50139 if (null != query[name]) return query[name];
50140
50141 return defaultValue;
50142};
50143
50144/**
50145 * Check if the incoming request contains the "Content-Type"
50146 * header field, and it contains the give mime `type`.
50147 *
50148 * Examples:
50149 *
50150 * // With Content-Type: text/html; charset=utf-8
50151 * req.is('html');
50152 * req.is('text/html');
50153 * req.is('text/*');
50154 * // => true
50155 *
50156 * // When Content-Type is application/json
50157 * req.is('json');
50158 * req.is('application/json');
50159 * req.is('application/*');
50160 * // => true
50161 *
50162 * req.is('html');
50163 * // => false
50164 *
50165 * @param {String|Array} types...
50166 * @return {String|false|null}
50167 * @public
50168 */
50169
50170req.is = function is(types) {
50171 var arr = types;
50172
50173 // support flattened arguments
50174 if (!Array.isArray(types)) {
50175 arr = new Array(arguments.length);
50176 for (var i = 0; i < arr.length; i++) {
50177 arr[i] = arguments[i];
50178 }
50179 }
50180
50181 return typeis(this, arr);
50182};
50183
50184/**
50185 * Return the protocol string "http" or "https"
50186 * when requested with TLS. When the "trust proxy"
50187 * setting trusts the socket address, the
50188 * "X-Forwarded-Proto" header field will be trusted
50189 * and used if present.
50190 *
50191 * If you're running behind a reverse proxy that
50192 * supplies https for you this may be enabled.
50193 *
50194 * @return {String}
50195 * @public
50196 */
50197
50198defineGetter(req, 'protocol', function protocol(){
50199 var proto = this.connection.encrypted
50200 ? 'https'
50201 : 'http';
50202 var trust = this.app.get('trust proxy fn');
50203
50204 if (!trust(this.connection.remoteAddress, 0)) {
50205 return proto;
50206 }
50207
50208 // Note: X-Forwarded-Proto is normally only ever a
50209 // single value, but this is to be safe.
50210 var header = this.get('X-Forwarded-Proto') || proto
50211 var index = header.indexOf(',')
50212
50213 return index !== -1
50214 ? header.substring(0, index).trim()
50215 : header.trim()
50216});
50217
50218/**
50219 * Short-hand for:
50220 *
50221 * req.protocol === 'https'
50222 *
50223 * @return {Boolean}
50224 * @public
50225 */
50226
50227defineGetter(req, 'secure', function secure(){
50228 return this.protocol === 'https';
50229});
50230
50231/**
50232 * Return the remote address from the trusted proxy.
50233 *
50234 * The is the remote address on the socket unless
50235 * "trust proxy" is set.
50236 *
50237 * @return {String}
50238 * @public
50239 */
50240
50241defineGetter(req, 'ip', function ip(){
50242 var trust = this.app.get('trust proxy fn');
50243 return proxyaddr(this, trust);
50244});
50245
50246/**
50247 * When "trust proxy" is set, trusted proxy addresses + client.
50248 *
50249 * For example if the value were "client, proxy1, proxy2"
50250 * you would receive the array `["client", "proxy1", "proxy2"]`
50251 * where "proxy2" is the furthest down-stream and "proxy1" and
50252 * "proxy2" were trusted.
50253 *
50254 * @return {Array}
50255 * @public
50256 */
50257
50258defineGetter(req, 'ips', function ips() {
50259 var trust = this.app.get('trust proxy fn');
50260 var addrs = proxyaddr.all(this, trust);
50261
50262 // reverse the order (to farthest -> closest)
50263 // and remove socket address
50264 addrs.reverse().pop()
50265
50266 return addrs
50267});
50268
50269/**
50270 * Return subdomains as an array.
50271 *
50272 * Subdomains are the dot-separated parts of the host before the main domain of
50273 * the app. By default, the domain of the app is assumed to be the last two
50274 * parts of the host. This can be changed by setting "subdomain offset".
50275 *
50276 * For example, if the domain is "tobi.ferrets.example.com":
50277 * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`.
50278 * If "subdomain offset" is 3, req.subdomains is `["tobi"]`.
50279 *
50280 * @return {Array}
50281 * @public
50282 */
50283
50284defineGetter(req, 'subdomains', function subdomains() {
50285 var hostname = this.hostname;
50286
50287 if (!hostname) return [];
50288
50289 var offset = this.app.get('subdomain offset');
50290 var subdomains = !isIP(hostname)
50291 ? hostname.split('.').reverse()
50292 : [hostname];
50293
50294 return subdomains.slice(offset);
50295});
50296
50297/**
50298 * Short-hand for `url.parse(req.url).pathname`.
50299 *
50300 * @return {String}
50301 * @public
50302 */
50303
50304defineGetter(req, 'path', function path() {
50305 return parse(this).pathname;
50306});
50307
50308/**
50309 * Parse the "Host" header field to a hostname.
50310 *
50311 * When the "trust proxy" setting trusts the socket
50312 * address, the "X-Forwarded-Host" header field will
50313 * be trusted.
50314 *
50315 * @return {String}
50316 * @public
50317 */
50318
50319defineGetter(req, 'hostname', function hostname(){
50320 var trust = this.app.get('trust proxy fn');
50321 var host = this.get('X-Forwarded-Host');
50322
50323 if (!host || !trust(this.connection.remoteAddress, 0)) {
50324 host = this.get('Host');
50325 }
50326
50327 if (!host) return;
50328
50329 // IPv6 literal support
50330 var offset = host[0] === '['
50331 ? host.indexOf(']') + 1
50332 : 0;
50333 var index = host.indexOf(':', offset);
50334
50335 return index !== -1
50336 ? host.substring(0, index)
50337 : host;
50338});
50339
50340// TODO: change req.host to return host in next major
50341
50342defineGetter(req, 'host', deprecate.function(function host(){
50343 return this.hostname;
50344}, 'req.host: Use req.hostname instead'));
50345
50346/**
50347 * Check if the request is fresh, aka
50348 * Last-Modified and/or the ETag
50349 * still match.
50350 *
50351 * @return {Boolean}
50352 * @public
50353 */
50354
50355defineGetter(req, 'fresh', function(){
50356 var method = this.method;
50357 var res = this.res
50358 var status = res.statusCode
50359
50360 // GET or HEAD for weak freshness validation only
50361 if ('GET' !== method && 'HEAD' !== method) return false;
50362
50363 // 2xx or 304 as per rfc2616 14.26
50364 if ((status >= 200 && status < 300) || 304 === status) {
50365 return fresh(this.headers, {
50366 'etag': res.get('ETag'),
50367 'last-modified': res.get('Last-Modified')
50368 })
50369 }
50370
50371 return false;
50372});
50373
50374/**
50375 * Check if the request is stale, aka
50376 * "Last-Modified" and / or the "ETag" for the
50377 * resource has changed.
50378 *
50379 * @return {Boolean}
50380 * @public
50381 */
50382
50383defineGetter(req, 'stale', function stale(){
50384 return !this.fresh;
50385});
50386
50387/**
50388 * Check if the request was an _XMLHttpRequest_.
50389 *
50390 * @return {Boolean}
50391 * @public
50392 */
50393
50394defineGetter(req, 'xhr', function xhr(){
50395 var val = this.get('X-Requested-With') || '';
50396 return val.toLowerCase() === 'xmlhttprequest';
50397});
50398
50399/**
50400 * Helper function for creating a getter on an object.
50401 *
50402 * @param {Object} obj
50403 * @param {String} name
50404 * @param {Function} getter
50405 * @private
50406 */
50407function defineGetter(obj, name, getter) {
50408 Object.defineProperty(obj, name, {
50409 configurable: true,
50410 enumerable: true,
50411 get: getter
50412 });
50413}
50414
50415
50416/***/ }),
50417/* 660 */
50418/***/ (function(module, exports, __webpack_require__) {
50419
50420"use strict";
50421/*!
50422 * accepts
50423 * Copyright(c) 2014 Jonathan Ong
50424 * Copyright(c) 2015 Douglas Christopher Wilson
50425 * MIT Licensed
50426 */
50427
50428
50429
50430/**
50431 * Module dependencies.
50432 * @private
50433 */
50434
50435var Negotiator = __webpack_require__(661)
50436var mime = __webpack_require__(301)
50437
50438/**
50439 * Module exports.
50440 * @public
50441 */
50442
50443module.exports = Accepts
50444
50445/**
50446 * Create a new Accepts object for the given req.
50447 *
50448 * @param {object} req
50449 * @public
50450 */
50451
50452function Accepts (req) {
50453 if (!(this instanceof Accepts)) {
50454 return new Accepts(req)
50455 }
50456
50457 this.headers = req.headers
50458 this.negotiator = new Negotiator(req)
50459}
50460
50461/**
50462 * Check if the given `type(s)` is acceptable, returning
50463 * the best match when true, otherwise `undefined`, in which
50464 * case you should respond with 406 "Not Acceptable".
50465 *
50466 * The `type` value may be a single mime type string
50467 * such as "application/json", the extension name
50468 * such as "json" or an array `["json", "html", "text/plain"]`. When a list
50469 * or array is given the _best_ match, if any is returned.
50470 *
50471 * Examples:
50472 *
50473 * // Accept: text/html
50474 * this.types('html');
50475 * // => "html"
50476 *
50477 * // Accept: text/*, application/json
50478 * this.types('html');
50479 * // => "html"
50480 * this.types('text/html');
50481 * // => "text/html"
50482 * this.types('json', 'text');
50483 * // => "json"
50484 * this.types('application/json');
50485 * // => "application/json"
50486 *
50487 * // Accept: text/*, application/json
50488 * this.types('image/png');
50489 * this.types('png');
50490 * // => undefined
50491 *
50492 * // Accept: text/*;q=.5, application/json
50493 * this.types(['html', 'json']);
50494 * this.types('html', 'json');
50495 * // => "json"
50496 *
50497 * @param {String|Array} types...
50498 * @return {String|Array|Boolean}
50499 * @public
50500 */
50501
50502Accepts.prototype.type =
50503Accepts.prototype.types = function (types_) {
50504 var types = types_
50505
50506 // support flattened arguments
50507 if (types && !Array.isArray(types)) {
50508 types = new Array(arguments.length)
50509 for (var i = 0; i < types.length; i++) {
50510 types[i] = arguments[i]
50511 }
50512 }
50513
50514 // no types, return all requested types
50515 if (!types || types.length === 0) {
50516 return this.negotiator.mediaTypes()
50517 }
50518
50519 // no accept header, return first given type
50520 if (!this.headers.accept) {
50521 return types[0]
50522 }
50523
50524 var mimes = types.map(extToMime)
50525 var accepts = this.negotiator.mediaTypes(mimes.filter(validMime))
50526 var first = accepts[0]
50527
50528 return first
50529 ? types[mimes.indexOf(first)]
50530 : false
50531}
50532
50533/**
50534 * Return accepted encodings or best fit based on `encodings`.
50535 *
50536 * Given `Accept-Encoding: gzip, deflate`
50537 * an array sorted by quality is returned:
50538 *
50539 * ['gzip', 'deflate']
50540 *
50541 * @param {String|Array} encodings...
50542 * @return {String|Array}
50543 * @public
50544 */
50545
50546Accepts.prototype.encoding =
50547Accepts.prototype.encodings = function (encodings_) {
50548 var encodings = encodings_
50549
50550 // support flattened arguments
50551 if (encodings && !Array.isArray(encodings)) {
50552 encodings = new Array(arguments.length)
50553 for (var i = 0; i < encodings.length; i++) {
50554 encodings[i] = arguments[i]
50555 }
50556 }
50557
50558 // no encodings, return all requested encodings
50559 if (!encodings || encodings.length === 0) {
50560 return this.negotiator.encodings()
50561 }
50562
50563 return this.negotiator.encodings(encodings)[0] || false
50564}
50565
50566/**
50567 * Return accepted charsets or best fit based on `charsets`.
50568 *
50569 * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
50570 * an array sorted by quality is returned:
50571 *
50572 * ['utf-8', 'utf-7', 'iso-8859-1']
50573 *
50574 * @param {String|Array} charsets...
50575 * @return {String|Array}
50576 * @public
50577 */
50578
50579Accepts.prototype.charset =
50580Accepts.prototype.charsets = function (charsets_) {
50581 var charsets = charsets_
50582
50583 // support flattened arguments
50584 if (charsets && !Array.isArray(charsets)) {
50585 charsets = new Array(arguments.length)
50586 for (var i = 0; i < charsets.length; i++) {
50587 charsets[i] = arguments[i]
50588 }
50589 }
50590
50591 // no charsets, return all requested charsets
50592 if (!charsets || charsets.length === 0) {
50593 return this.negotiator.charsets()
50594 }
50595
50596 return this.negotiator.charsets(charsets)[0] || false
50597}
50598
50599/**
50600 * Return accepted languages or best fit based on `langs`.
50601 *
50602 * Given `Accept-Language: en;q=0.8, es, pt`
50603 * an array sorted by quality is returned:
50604 *
50605 * ['es', 'pt', 'en']
50606 *
50607 * @param {String|Array} langs...
50608 * @return {Array|String}
50609 * @public
50610 */
50611
50612Accepts.prototype.lang =
50613Accepts.prototype.langs =
50614Accepts.prototype.language =
50615Accepts.prototype.languages = function (languages_) {
50616 var languages = languages_
50617
50618 // support flattened arguments
50619 if (languages && !Array.isArray(languages)) {
50620 languages = new Array(arguments.length)
50621 for (var i = 0; i < languages.length; i++) {
50622 languages[i] = arguments[i]
50623 }
50624 }
50625
50626 // no languages, return all requested languages
50627 if (!languages || languages.length === 0) {
50628 return this.negotiator.languages()
50629 }
50630
50631 return this.negotiator.languages(languages)[0] || false
50632}
50633
50634/**
50635 * Convert extnames to mime.
50636 *
50637 * @param {String} type
50638 * @return {String}
50639 * @private
50640 */
50641
50642function extToMime (type) {
50643 return type.indexOf('/') === -1
50644 ? mime.lookup(type)
50645 : type
50646}
50647
50648/**
50649 * Check if mime is valid.
50650 *
50651 * @param {String} type
50652 * @return {String}
50653 * @private
50654 */
50655
50656function validMime (type) {
50657 return typeof type === 'string'
50658}
50659
50660
50661/***/ }),
50662/* 661 */
50663/***/ (function(module, exports, __webpack_require__) {
50664
50665"use strict";
50666/*!
50667 * negotiator
50668 * Copyright(c) 2012 Federico Romero
50669 * Copyright(c) 2012-2014 Isaac Z. Schlueter
50670 * Copyright(c) 2015 Douglas Christopher Wilson
50671 * MIT Licensed
50672 */
50673
50674
50675
50676/**
50677 * Cached loaded submodules.
50678 * @private
50679 */
50680
50681var modules = Object.create(null);
50682
50683/**
50684 * Module exports.
50685 * @public
50686 */
50687
50688module.exports = Negotiator;
50689module.exports.Negotiator = Negotiator;
50690
50691/**
50692 * Create a Negotiator instance from a request.
50693 * @param {object} request
50694 * @public
50695 */
50696
50697function Negotiator(request) {
50698 if (!(this instanceof Negotiator)) {
50699 return new Negotiator(request);
50700 }
50701
50702 this.request = request;
50703}
50704
50705Negotiator.prototype.charset = function charset(available) {
50706 var set = this.charsets(available);
50707 return set && set[0];
50708};
50709
50710Negotiator.prototype.charsets = function charsets(available) {
50711 var preferredCharsets = loadModule('charset').preferredCharsets;
50712 return preferredCharsets(this.request.headers['accept-charset'], available);
50713};
50714
50715Negotiator.prototype.encoding = function encoding(available) {
50716 var set = this.encodings(available);
50717 return set && set[0];
50718};
50719
50720Negotiator.prototype.encodings = function encodings(available) {
50721 var preferredEncodings = loadModule('encoding').preferredEncodings;
50722 return preferredEncodings(this.request.headers['accept-encoding'], available);
50723};
50724
50725Negotiator.prototype.language = function language(available) {
50726 var set = this.languages(available);
50727 return set && set[0];
50728};
50729
50730Negotiator.prototype.languages = function languages(available) {
50731 var preferredLanguages = loadModule('language').preferredLanguages;
50732 return preferredLanguages(this.request.headers['accept-language'], available);
50733};
50734
50735Negotiator.prototype.mediaType = function mediaType(available) {
50736 var set = this.mediaTypes(available);
50737 return set && set[0];
50738};
50739
50740Negotiator.prototype.mediaTypes = function mediaTypes(available) {
50741 var preferredMediaTypes = loadModule('mediaType').preferredMediaTypes;
50742 return preferredMediaTypes(this.request.headers.accept, available);
50743};
50744
50745// Backwards compatibility
50746Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
50747Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
50748Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
50749Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
50750Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
50751Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
50752Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
50753Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
50754
50755/**
50756 * Load the given module.
50757 * @private
50758 */
50759
50760function loadModule(moduleName) {
50761 var module = modules[moduleName];
50762
50763 if (module !== undefined) {
50764 return module;
50765 }
50766
50767 // This uses a switch for static require analysis
50768 switch (moduleName) {
50769 case 'charset':
50770 module = __webpack_require__(662);
50771 break;
50772 case 'encoding':
50773 module = __webpack_require__(663);
50774 break;
50775 case 'language':
50776 module = __webpack_require__(664);
50777 break;
50778 case 'mediaType':
50779 module = __webpack_require__(665);
50780 break;
50781 default:
50782 throw new Error('Cannot find module \'' + moduleName + '\'');
50783 }
50784
50785 // Store to prevent invoking require()
50786 modules[moduleName] = module;
50787
50788 return module;
50789}
50790
50791
50792/***/ }),
50793/* 662 */
50794/***/ (function(module, exports, __webpack_require__) {
50795
50796"use strict";
50797/**
50798 * negotiator
50799 * Copyright(c) 2012 Isaac Z. Schlueter
50800 * Copyright(c) 2014 Federico Romero
50801 * Copyright(c) 2014-2015 Douglas Christopher Wilson
50802 * MIT Licensed
50803 */
50804
50805
50806
50807/**
50808 * Module exports.
50809 * @public
50810 */
50811
50812module.exports = preferredCharsets;
50813module.exports.preferredCharsets = preferredCharsets;
50814
50815/**
50816 * Module variables.
50817 * @private
50818 */
50819
50820var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
50821
50822/**
50823 * Parse the Accept-Charset header.
50824 * @private
50825 */
50826
50827function parseAcceptCharset(accept) {
50828 var accepts = accept.split(',');
50829
50830 for (var i = 0, j = 0; i < accepts.length; i++) {
50831 var charset = parseCharset(accepts[i].trim(), i);
50832
50833 if (charset) {
50834 accepts[j++] = charset;
50835 }
50836 }
50837
50838 // trim accepts
50839 accepts.length = j;
50840
50841 return accepts;
50842}
50843
50844/**
50845 * Parse a charset from the Accept-Charset header.
50846 * @private
50847 */
50848
50849function parseCharset(str, i) {
50850 var match = simpleCharsetRegExp.exec(str);
50851 if (!match) return null;
50852
50853 var charset = match[1];
50854 var q = 1;
50855 if (match[2]) {
50856 var params = match[2].split(';')
50857 for (var i = 0; i < params.length; i ++) {
50858 var p = params[i].trim().split('=');
50859 if (p[0] === 'q') {
50860 q = parseFloat(p[1]);
50861 break;
50862 }
50863 }
50864 }
50865
50866 return {
50867 charset: charset,
50868 q: q,
50869 i: i
50870 };
50871}
50872
50873/**
50874 * Get the priority of a charset.
50875 * @private
50876 */
50877
50878function getCharsetPriority(charset, accepted, index) {
50879 var priority = {o: -1, q: 0, s: 0};
50880
50881 for (var i = 0; i < accepted.length; i++) {
50882 var spec = specify(charset, accepted[i], index);
50883
50884 if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
50885 priority = spec;
50886 }
50887 }
50888
50889 return priority;
50890}
50891
50892/**
50893 * Get the specificity of the charset.
50894 * @private
50895 */
50896
50897function specify(charset, spec, index) {
50898 var s = 0;
50899 if(spec.charset.toLowerCase() === charset.toLowerCase()){
50900 s |= 1;
50901 } else if (spec.charset !== '*' ) {
50902 return null
50903 }
50904
50905 return {
50906 i: index,
50907 o: spec.i,
50908 q: spec.q,
50909 s: s
50910 }
50911}
50912
50913/**
50914 * Get the preferred charsets from an Accept-Charset header.
50915 * @public
50916 */
50917
50918function preferredCharsets(accept, provided) {
50919 // RFC 2616 sec 14.2: no header = *
50920 var accepts = parseAcceptCharset(accept === undefined ? '*' : accept || '');
50921
50922 if (!provided) {
50923 // sorted list of all charsets
50924 return accepts
50925 .filter(isQuality)
50926 .sort(compareSpecs)
50927 .map(getFullCharset);
50928 }
50929
50930 var priorities = provided.map(function getPriority(type, index) {
50931 return getCharsetPriority(type, accepts, index);
50932 });
50933
50934 // sorted list of accepted charsets
50935 return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
50936 return provided[priorities.indexOf(priority)];
50937 });
50938}
50939
50940/**
50941 * Compare two specs.
50942 * @private
50943 */
50944
50945function compareSpecs(a, b) {
50946 return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
50947}
50948
50949/**
50950 * Get full charset string.
50951 * @private
50952 */
50953
50954function getFullCharset(spec) {
50955 return spec.charset;
50956}
50957
50958/**
50959 * Check if a spec has any quality.
50960 * @private
50961 */
50962
50963function isQuality(spec) {
50964 return spec.q > 0;
50965}
50966
50967
50968/***/ }),
50969/* 663 */
50970/***/ (function(module, exports, __webpack_require__) {
50971
50972"use strict";
50973/**
50974 * negotiator
50975 * Copyright(c) 2012 Isaac Z. Schlueter
50976 * Copyright(c) 2014 Federico Romero
50977 * Copyright(c) 2014-2015 Douglas Christopher Wilson
50978 * MIT Licensed
50979 */
50980
50981
50982
50983/**
50984 * Module exports.
50985 * @public
50986 */
50987
50988module.exports = preferredEncodings;
50989module.exports.preferredEncodings = preferredEncodings;
50990
50991/**
50992 * Module variables.
50993 * @private
50994 */
50995
50996var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
50997
50998/**
50999 * Parse the Accept-Encoding header.
51000 * @private
51001 */
51002
51003function parseAcceptEncoding(accept) {
51004 var accepts = accept.split(',');
51005 var hasIdentity = false;
51006 var minQuality = 1;
51007
51008 for (var i = 0, j = 0; i < accepts.length; i++) {
51009 var encoding = parseEncoding(accepts[i].trim(), i);
51010
51011 if (encoding) {
51012 accepts[j++] = encoding;
51013 hasIdentity = hasIdentity || specify('identity', encoding);
51014 minQuality = Math.min(minQuality, encoding.q || 1);
51015 }
51016 }
51017
51018 if (!hasIdentity) {
51019 /*
51020 * If identity doesn't explicitly appear in the accept-encoding header,
51021 * it's added to the list of acceptable encoding with the lowest q
51022 */
51023 accepts[j++] = {
51024 encoding: 'identity',
51025 q: minQuality,
51026 i: i
51027 };
51028 }
51029
51030 // trim accepts
51031 accepts.length = j;
51032
51033 return accepts;
51034}
51035
51036/**
51037 * Parse an encoding from the Accept-Encoding header.
51038 * @private
51039 */
51040
51041function parseEncoding(str, i) {
51042 var match = simpleEncodingRegExp.exec(str);
51043 if (!match) return null;
51044
51045 var encoding = match[1];
51046 var q = 1;
51047 if (match[2]) {
51048 var params = match[2].split(';');
51049 for (var i = 0; i < params.length; i ++) {
51050 var p = params[i].trim().split('=');
51051 if (p[0] === 'q') {
51052 q = parseFloat(p[1]);
51053 break;
51054 }
51055 }
51056 }
51057
51058 return {
51059 encoding: encoding,
51060 q: q,
51061 i: i
51062 };
51063}
51064
51065/**
51066 * Get the priority of an encoding.
51067 * @private
51068 */
51069
51070function getEncodingPriority(encoding, accepted, index) {
51071 var priority = {o: -1, q: 0, s: 0};
51072
51073 for (var i = 0; i < accepted.length; i++) {
51074 var spec = specify(encoding, accepted[i], index);
51075
51076 if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
51077 priority = spec;
51078 }
51079 }
51080
51081 return priority;
51082}
51083
51084/**
51085 * Get the specificity of the encoding.
51086 * @private
51087 */
51088
51089function specify(encoding, spec, index) {
51090 var s = 0;
51091 if(spec.encoding.toLowerCase() === encoding.toLowerCase()){
51092 s |= 1;
51093 } else if (spec.encoding !== '*' ) {
51094 return null
51095 }
51096
51097 return {
51098 i: index,
51099 o: spec.i,
51100 q: spec.q,
51101 s: s
51102 }
51103};
51104
51105/**
51106 * Get the preferred encodings from an Accept-Encoding header.
51107 * @public
51108 */
51109
51110function preferredEncodings(accept, provided) {
51111 var accepts = parseAcceptEncoding(accept || '');
51112
51113 if (!provided) {
51114 // sorted list of all encodings
51115 return accepts
51116 .filter(isQuality)
51117 .sort(compareSpecs)
51118 .map(getFullEncoding);
51119 }
51120
51121 var priorities = provided.map(function getPriority(type, index) {
51122 return getEncodingPriority(type, accepts, index);
51123 });
51124
51125 // sorted list of accepted encodings
51126 return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) {
51127 return provided[priorities.indexOf(priority)];
51128 });
51129}
51130
51131/**
51132 * Compare two specs.
51133 * @private
51134 */
51135
51136function compareSpecs(a, b) {
51137 return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
51138}
51139
51140/**
51141 * Get full encoding string.
51142 * @private
51143 */
51144
51145function getFullEncoding(spec) {
51146 return spec.encoding;
51147}
51148
51149/**
51150 * Check if a spec has any quality.
51151 * @private
51152 */
51153
51154function isQuality(spec) {
51155 return spec.q > 0;
51156}
51157
51158
51159/***/ }),
51160/* 664 */
51161/***/ (function(module, exports, __webpack_require__) {
51162
51163"use strict";
51164/**
51165 * negotiator
51166 * Copyright(c) 2012 Isaac Z. Schlueter
51167 * Copyright(c) 2014 Federico Romero
51168 * Copyright(c) 2014-2015 Douglas Christopher Wilson
51169 * MIT Licensed
51170 */
51171
51172
51173
51174/**
51175 * Module exports.
51176 * @public
51177 */
51178
51179module.exports = preferredLanguages;
51180module.exports.preferredLanguages = preferredLanguages;
51181
51182/**
51183 * Module variables.
51184 * @private
51185 */
51186
51187var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
51188
51189/**
51190 * Parse the Accept-Language header.
51191 * @private
51192 */
51193
51194function parseAcceptLanguage(accept) {
51195 var accepts = accept.split(',');
51196
51197 for (var i = 0, j = 0; i < accepts.length; i++) {
51198 var langauge = parseLanguage(accepts[i].trim(), i);
51199
51200 if (langauge) {
51201 accepts[j++] = langauge;
51202 }
51203 }
51204
51205 // trim accepts
51206 accepts.length = j;
51207
51208 return accepts;
51209}
51210
51211/**
51212 * Parse a language from the Accept-Language header.
51213 * @private
51214 */
51215
51216function parseLanguage(str, i) {
51217 var match = simpleLanguageRegExp.exec(str);
51218 if (!match) return null;
51219
51220 var prefix = match[1],
51221 suffix = match[2],
51222 full = prefix;
51223
51224 if (suffix) full += "-" + suffix;
51225
51226 var q = 1;
51227 if (match[3]) {
51228 var params = match[3].split(';')
51229 for (var i = 0; i < params.length; i ++) {
51230 var p = params[i].split('=');
51231 if (p[0] === 'q') q = parseFloat(p[1]);
51232 }
51233 }
51234
51235 return {
51236 prefix: prefix,
51237 suffix: suffix,
51238 q: q,
51239 i: i,
51240 full: full
51241 };
51242}
51243
51244/**
51245 * Get the priority of a language.
51246 * @private
51247 */
51248
51249function getLanguagePriority(language, accepted, index) {
51250 var priority = {o: -1, q: 0, s: 0};
51251
51252 for (var i = 0; i < accepted.length; i++) {
51253 var spec = specify(language, accepted[i], index);
51254
51255 if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
51256 priority = spec;
51257 }
51258 }
51259
51260 return priority;
51261}
51262
51263/**
51264 * Get the specificity of the language.
51265 * @private
51266 */
51267
51268function specify(language, spec, index) {
51269 var p = parseLanguage(language)
51270 if (!p) return null;
51271 var s = 0;
51272 if(spec.full.toLowerCase() === p.full.toLowerCase()){
51273 s |= 4;
51274 } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
51275 s |= 2;
51276 } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
51277 s |= 1;
51278 } else if (spec.full !== '*' ) {
51279 return null
51280 }
51281
51282 return {
51283 i: index,
51284 o: spec.i,
51285 q: spec.q,
51286 s: s
51287 }
51288};
51289
51290/**
51291 * Get the preferred languages from an Accept-Language header.
51292 * @public
51293 */
51294
51295function preferredLanguages(accept, provided) {
51296 // RFC 2616 sec 14.4: no header = *
51297 var accepts = parseAcceptLanguage(accept === undefined ? '*' : accept || '');
51298
51299 if (!provided) {
51300 // sorted list of all languages
51301 return accepts
51302 .filter(isQuality)
51303 .sort(compareSpecs)
51304 .map(getFullLanguage);
51305 }
51306
51307 var priorities = provided.map(function getPriority(type, index) {
51308 return getLanguagePriority(type, accepts, index);
51309 });
51310
51311 // sorted list of accepted languages
51312 return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) {
51313 return provided[priorities.indexOf(priority)];
51314 });
51315}
51316
51317/**
51318 * Compare two specs.
51319 * @private
51320 */
51321
51322function compareSpecs(a, b) {
51323 return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
51324}
51325
51326/**
51327 * Get full language string.
51328 * @private
51329 */
51330
51331function getFullLanguage(spec) {
51332 return spec.full;
51333}
51334
51335/**
51336 * Check if a spec has any quality.
51337 * @private
51338 */
51339
51340function isQuality(spec) {
51341 return spec.q > 0;
51342}
51343
51344
51345/***/ }),
51346/* 665 */
51347/***/ (function(module, exports, __webpack_require__) {
51348
51349"use strict";
51350/**
51351 * negotiator
51352 * Copyright(c) 2012 Isaac Z. Schlueter
51353 * Copyright(c) 2014 Federico Romero
51354 * Copyright(c) 2014-2015 Douglas Christopher Wilson
51355 * MIT Licensed
51356 */
51357
51358
51359
51360/**
51361 * Module exports.
51362 * @public
51363 */
51364
51365module.exports = preferredMediaTypes;
51366module.exports.preferredMediaTypes = preferredMediaTypes;
51367
51368/**
51369 * Module variables.
51370 * @private
51371 */
51372
51373var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
51374
51375/**
51376 * Parse the Accept header.
51377 * @private
51378 */
51379
51380function parseAccept(accept) {
51381 var accepts = splitMediaTypes(accept);
51382
51383 for (var i = 0, j = 0; i < accepts.length; i++) {
51384 var mediaType = parseMediaType(accepts[i].trim(), i);
51385
51386 if (mediaType) {
51387 accepts[j++] = mediaType;
51388 }
51389 }
51390
51391 // trim accepts
51392 accepts.length = j;
51393
51394 return accepts;
51395}
51396
51397/**
51398 * Parse a media type from the Accept header.
51399 * @private
51400 */
51401
51402function parseMediaType(str, i) {
51403 var match = simpleMediaTypeRegExp.exec(str);
51404 if (!match) return null;
51405
51406 var params = Object.create(null);
51407 var q = 1;
51408 var subtype = match[2];
51409 var type = match[1];
51410
51411 if (match[3]) {
51412 var kvps = splitParameters(match[3]).map(splitKeyValuePair);
51413
51414 for (var j = 0; j < kvps.length; j++) {
51415 var pair = kvps[j];
51416 var key = pair[0].toLowerCase();
51417 var val = pair[1];
51418
51419 // get the value, unwrapping quotes
51420 var value = val && val[0] === '"' && val[val.length - 1] === '"'
51421 ? val.substr(1, val.length - 2)
51422 : val;
51423
51424 if (key === 'q') {
51425 q = parseFloat(value);
51426 break;
51427 }
51428
51429 // store parameter
51430 params[key] = value;
51431 }
51432 }
51433
51434 return {
51435 type: type,
51436 subtype: subtype,
51437 params: params,
51438 q: q,
51439 i: i
51440 };
51441}
51442
51443/**
51444 * Get the priority of a media type.
51445 * @private
51446 */
51447
51448function getMediaTypePriority(type, accepted, index) {
51449 var priority = {o: -1, q: 0, s: 0};
51450
51451 for (var i = 0; i < accepted.length; i++) {
51452 var spec = specify(type, accepted[i], index);
51453
51454 if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
51455 priority = spec;
51456 }
51457 }
51458
51459 return priority;
51460}
51461
51462/**
51463 * Get the specificity of the media type.
51464 * @private
51465 */
51466
51467function specify(type, spec, index) {
51468 var p = parseMediaType(type);
51469 var s = 0;
51470
51471 if (!p) {
51472 return null;
51473 }
51474
51475 if(spec.type.toLowerCase() == p.type.toLowerCase()) {
51476 s |= 4
51477 } else if(spec.type != '*') {
51478 return null;
51479 }
51480
51481 if(spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
51482 s |= 2
51483 } else if(spec.subtype != '*') {
51484 return null;
51485 }
51486
51487 var keys = Object.keys(spec.params);
51488 if (keys.length > 0) {
51489 if (keys.every(function (k) {
51490 return spec.params[k] == '*' || (spec.params[k] || '').toLowerCase() == (p.params[k] || '').toLowerCase();
51491 })) {
51492 s |= 1
51493 } else {
51494 return null
51495 }
51496 }
51497
51498 return {
51499 i: index,
51500 o: spec.i,
51501 q: spec.q,
51502 s: s,
51503 }
51504}
51505
51506/**
51507 * Get the preferred media types from an Accept header.
51508 * @public
51509 */
51510
51511function preferredMediaTypes(accept, provided) {
51512 // RFC 2616 sec 14.2: no header = */*
51513 var accepts = parseAccept(accept === undefined ? '*/*' : accept || '');
51514
51515 if (!provided) {
51516 // sorted list of all types
51517 return accepts
51518 .filter(isQuality)
51519 .sort(compareSpecs)
51520 .map(getFullType);
51521 }
51522
51523 var priorities = provided.map(function getPriority(type, index) {
51524 return getMediaTypePriority(type, accepts, index);
51525 });
51526
51527 // sorted list of accepted types
51528 return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
51529 return provided[priorities.indexOf(priority)];
51530 });
51531}
51532
51533/**
51534 * Compare two specs.
51535 * @private
51536 */
51537
51538function compareSpecs(a, b) {
51539 return (b.q - a.q) || (b.s - a.s) || (a.o - b.o) || (a.i - b.i) || 0;
51540}
51541
51542/**
51543 * Get full type string.
51544 * @private
51545 */
51546
51547function getFullType(spec) {
51548 return spec.type + '/' + spec.subtype;
51549}
51550
51551/**
51552 * Check if a spec has any quality.
51553 * @private
51554 */
51555
51556function isQuality(spec) {
51557 return spec.q > 0;
51558}
51559
51560/**
51561 * Count the number of quotes in a string.
51562 * @private
51563 */
51564
51565function quoteCount(string) {
51566 var count = 0;
51567 var index = 0;
51568
51569 while ((index = string.indexOf('"', index)) !== -1) {
51570 count++;
51571 index++;
51572 }
51573
51574 return count;
51575}
51576
51577/**
51578 * Split a key value pair.
51579 * @private
51580 */
51581
51582function splitKeyValuePair(str) {
51583 var index = str.indexOf('=');
51584 var key;
51585 var val;
51586
51587 if (index === -1) {
51588 key = str;
51589 } else {
51590 key = str.substr(0, index);
51591 val = str.substr(index + 1);
51592 }
51593
51594 return [key, val];
51595}
51596
51597/**
51598 * Split an Accept header into media types.
51599 * @private
51600 */
51601
51602function splitMediaTypes(accept) {
51603 var accepts = accept.split(',');
51604
51605 for (var i = 1, j = 0; i < accepts.length; i++) {
51606 if (quoteCount(accepts[j]) % 2 == 0) {
51607 accepts[++j] = accepts[i];
51608 } else {
51609 accepts[j] += ',' + accepts[i];
51610 }
51611 }
51612
51613 // trim accepts
51614 accepts.length = j + 1;
51615
51616 return accepts;
51617}
51618
51619/**
51620 * Split a string of parameters.
51621 * @private
51622 */
51623
51624function splitParameters(str) {
51625 var parameters = str.split(';');
51626
51627 for (var i = 1, j = 0; i < parameters.length; i++) {
51628 if (quoteCount(parameters[j]) % 2 == 0) {
51629 parameters[++j] = parameters[i];
51630 } else {
51631 parameters[j] += ';' + parameters[i];
51632 }
51633 }
51634
51635 // trim parameters
51636 parameters.length = j + 1;
51637
51638 for (var i = 0; i < parameters.length; i++) {
51639 parameters[i] = parameters[i].trim();
51640 }
51641
51642 return parameters;
51643}
51644
51645
51646/***/ }),
51647/* 666 */
51648/***/ (function(module, exports, __webpack_require__) {
51649
51650"use strict";
51651/*!
51652 * express
51653 * Copyright(c) 2009-2013 TJ Holowaychuk
51654 * Copyright(c) 2014-2015 Douglas Christopher Wilson
51655 * MIT Licensed
51656 */
51657
51658
51659
51660/**
51661 * Module dependencies.
51662 * @private
51663 */
51664
51665var Buffer = __webpack_require__(29).Buffer
51666var contentDisposition = __webpack_require__(309);
51667var deprecate = __webpack_require__(47)('express');
51668var encodeUrl = __webpack_require__(126);
51669var escapeHtml = __webpack_require__(127);
51670var http = __webpack_require__(43);
51671var isAbsolute = __webpack_require__(69).isAbsolute;
51672var onFinished = __webpack_require__(125);
51673var path = __webpack_require__(48);
51674var statuses = __webpack_require__(123)
51675var merge = __webpack_require__(129);
51676var sign = __webpack_require__(667).sign;
51677var normalizeType = __webpack_require__(69).normalizeType;
51678var normalizeTypes = __webpack_require__(69).normalizeTypes;
51679var setCharset = __webpack_require__(69).setCharset;
51680var cookie = __webpack_require__(668);
51681var send = __webpack_require__(192);
51682var extname = path.extname;
51683var mime = send.mime;
51684var resolve = path.resolve;
51685var vary = __webpack_require__(669);
51686
51687/**
51688 * Response prototype.
51689 * @public
51690 */
51691
51692var res = Object.create(http.ServerResponse.prototype)
51693
51694/**
51695 * Module exports.
51696 * @public
51697 */
51698
51699module.exports = res
51700
51701/**
51702 * Module variables.
51703 * @private
51704 */
51705
51706var charsetRegExp = /;\s*charset\s*=/;
51707
51708/**
51709 * Set status `code`.
51710 *
51711 * @param {Number} code
51712 * @return {ServerResponse}
51713 * @public
51714 */
51715
51716res.status = function status(code) {
51717 this.statusCode = code;
51718 return this;
51719};
51720
51721/**
51722 * Set Link header field with the given `links`.
51723 *
51724 * Examples:
51725 *
51726 * res.links({
51727 * next: 'http://api.example.com/users?page=2',
51728 * last: 'http://api.example.com/users?page=5'
51729 * });
51730 *
51731 * @param {Object} links
51732 * @return {ServerResponse}
51733 * @public
51734 */
51735
51736res.links = function(links){
51737 var link = this.get('Link') || '';
51738 if (link) link += ', ';
51739 return this.set('Link', link + Object.keys(links).map(function(rel){
51740 return '<' + links[rel] + '>; rel="' + rel + '"';
51741 }).join(', '));
51742};
51743
51744/**
51745 * Send a response.
51746 *
51747 * Examples:
51748 *
51749 * res.send(Buffer.from('wahoo'));
51750 * res.send({ some: 'json' });
51751 * res.send('<p>some html</p>');
51752 *
51753 * @param {string|number|boolean|object|Buffer} body
51754 * @public
51755 */
51756
51757res.send = function send(body) {
51758 var chunk = body;
51759 var encoding;
51760 var req = this.req;
51761 var type;
51762
51763 // settings
51764 var app = this.app;
51765
51766 // allow status / body
51767 if (arguments.length === 2) {
51768 // res.send(body, status) backwards compat
51769 if (typeof arguments[0] !== 'number' && typeof arguments[1] === 'number') {
51770 deprecate('res.send(body, status): Use res.status(status).send(body) instead');
51771 this.statusCode = arguments[1];
51772 } else {
51773 deprecate('res.send(status, body): Use res.status(status).send(body) instead');
51774 this.statusCode = arguments[0];
51775 chunk = arguments[1];
51776 }
51777 }
51778
51779 // disambiguate res.send(status) and res.send(status, num)
51780 if (typeof chunk === 'number' && arguments.length === 1) {
51781 // res.send(status) will set status message as text string
51782 if (!this.get('Content-Type')) {
51783 this.type('txt');
51784 }
51785
51786 deprecate('res.send(status): Use res.sendStatus(status) instead');
51787 this.statusCode = chunk;
51788 chunk = statuses[chunk]
51789 }
51790
51791 switch (typeof chunk) {
51792 // string defaulting to html
51793 case 'string':
51794 if (!this.get('Content-Type')) {
51795 this.type('html');
51796 }
51797 break;
51798 case 'boolean':
51799 case 'number':
51800 case 'object':
51801 if (chunk === null) {
51802 chunk = '';
51803 } else if (Buffer.isBuffer(chunk)) {
51804 if (!this.get('Content-Type')) {
51805 this.type('bin');
51806 }
51807 } else {
51808 return this.json(chunk);
51809 }
51810 break;
51811 }
51812
51813 // write strings in utf-8
51814 if (typeof chunk === 'string') {
51815 encoding = 'utf8';
51816 type = this.get('Content-Type');
51817
51818 // reflect this in content-type
51819 if (typeof type === 'string') {
51820 this.set('Content-Type', setCharset(type, 'utf-8'));
51821 }
51822 }
51823
51824 // determine if ETag should be generated
51825 var etagFn = app.get('etag fn')
51826 var generateETag = !this.get('ETag') && typeof etagFn === 'function'
51827
51828 // populate Content-Length
51829 var len
51830 if (chunk !== undefined) {
51831 if (Buffer.isBuffer(chunk)) {
51832 // get length of Buffer
51833 len = chunk.length
51834 } else if (!generateETag && chunk.length < 1000) {
51835 // just calculate length when no ETag + small chunk
51836 len = Buffer.byteLength(chunk, encoding)
51837 } else {
51838 // convert chunk to Buffer and calculate
51839 chunk = Buffer.from(chunk, encoding)
51840 encoding = undefined;
51841 len = chunk.length
51842 }
51843
51844 this.set('Content-Length', len);
51845 }
51846
51847 // populate ETag
51848 var etag;
51849 if (generateETag && len !== undefined) {
51850 if ((etag = etagFn(chunk, encoding))) {
51851 this.set('ETag', etag);
51852 }
51853 }
51854
51855 // freshness
51856 if (req.fresh) this.statusCode = 304;
51857
51858 // strip irrelevant headers
51859 if (204 === this.statusCode || 304 === this.statusCode) {
51860 this.removeHeader('Content-Type');
51861 this.removeHeader('Content-Length');
51862 this.removeHeader('Transfer-Encoding');
51863 chunk = '';
51864 }
51865
51866 if (req.method === 'HEAD') {
51867 // skip body for HEAD
51868 this.end();
51869 } else {
51870 // respond
51871 this.end(chunk, encoding);
51872 }
51873
51874 return this;
51875};
51876
51877/**
51878 * Send JSON response.
51879 *
51880 * Examples:
51881 *
51882 * res.json(null);
51883 * res.json({ user: 'tj' });
51884 *
51885 * @param {string|number|boolean|object} obj
51886 * @public
51887 */
51888
51889res.json = function json(obj) {
51890 var val = obj;
51891
51892 // allow status / body
51893 if (arguments.length === 2) {
51894 // res.json(body, status) backwards compat
51895 if (typeof arguments[1] === 'number') {
51896 deprecate('res.json(obj, status): Use res.status(status).json(obj) instead');
51897 this.statusCode = arguments[1];
51898 } else {
51899 deprecate('res.json(status, obj): Use res.status(status).json(obj) instead');
51900 this.statusCode = arguments[0];
51901 val = arguments[1];
51902 }
51903 }
51904
51905 // settings
51906 var app = this.app;
51907 var escape = app.get('json escape')
51908 var replacer = app.get('json replacer');
51909 var spaces = app.get('json spaces');
51910 var body = stringify(val, replacer, spaces, escape)
51911
51912 // content-type
51913 if (!this.get('Content-Type')) {
51914 this.set('Content-Type', 'application/json');
51915 }
51916
51917 return this.send(body);
51918};
51919
51920/**
51921 * Send JSON response with JSONP callback support.
51922 *
51923 * Examples:
51924 *
51925 * res.jsonp(null);
51926 * res.jsonp({ user: 'tj' });
51927 *
51928 * @param {string|number|boolean|object} obj
51929 * @public
51930 */
51931
51932res.jsonp = function jsonp(obj) {
51933 var val = obj;
51934
51935 // allow status / body
51936 if (arguments.length === 2) {
51937 // res.json(body, status) backwards compat
51938 if (typeof arguments[1] === 'number') {
51939 deprecate('res.jsonp(obj, status): Use res.status(status).json(obj) instead');
51940 this.statusCode = arguments[1];
51941 } else {
51942 deprecate('res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead');
51943 this.statusCode = arguments[0];
51944 val = arguments[1];
51945 }
51946 }
51947
51948 // settings
51949 var app = this.app;
51950 var escape = app.get('json escape')
51951 var replacer = app.get('json replacer');
51952 var spaces = app.get('json spaces');
51953 var body = stringify(val, replacer, spaces, escape)
51954 var callback = this.req.query[app.get('jsonp callback name')];
51955
51956 // content-type
51957 if (!this.get('Content-Type')) {
51958 this.set('X-Content-Type-Options', 'nosniff');
51959 this.set('Content-Type', 'application/json');
51960 }
51961
51962 // fixup callback
51963 if (Array.isArray(callback)) {
51964 callback = callback[0];
51965 }
51966
51967 // jsonp
51968 if (typeof callback === 'string' && callback.length !== 0) {
51969 this.set('X-Content-Type-Options', 'nosniff');
51970 this.set('Content-Type', 'text/javascript');
51971
51972 // restrict callback charset
51973 callback = callback.replace(/[^\[\]\w$.]/g, '');
51974
51975 // replace chars not allowed in JavaScript that are in JSON
51976 body = body
51977 .replace(/\u2028/g, '\\u2028')
51978 .replace(/\u2029/g, '\\u2029');
51979
51980 // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse"
51981 // the typeof check is just to reduce client error noise
51982 body = '/**/ typeof ' + callback + ' === \'function\' && ' + callback + '(' + body + ');';
51983 }
51984
51985 return this.send(body);
51986};
51987
51988/**
51989 * Send given HTTP status code.
51990 *
51991 * Sets the response status to `statusCode` and the body of the
51992 * response to the standard description from node's http.STATUS_CODES
51993 * or the statusCode number if no description.
51994 *
51995 * Examples:
51996 *
51997 * res.sendStatus(200);
51998 *
51999 * @param {number} statusCode
52000 * @public
52001 */
52002
52003res.sendStatus = function sendStatus(statusCode) {
52004 var body = statuses[statusCode] || String(statusCode)
52005
52006 this.statusCode = statusCode;
52007 this.type('txt');
52008
52009 return this.send(body);
52010};
52011
52012/**
52013 * Transfer the file at the given `path`.
52014 *
52015 * Automatically sets the _Content-Type_ response header field.
52016 * The callback `callback(err)` is invoked when the transfer is complete
52017 * or when an error occurs. Be sure to check `res.sentHeader`
52018 * if you wish to attempt responding, as the header and some data
52019 * may have already been transferred.
52020 *
52021 * Options:
52022 *
52023 * - `maxAge` defaulting to 0 (can be string converted by `ms`)
52024 * - `root` root directory for relative filenames
52025 * - `headers` object of headers to serve with file
52026 * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them
52027 *
52028 * Other options are passed along to `send`.
52029 *
52030 * Examples:
52031 *
52032 * The following example illustrates how `res.sendFile()` may
52033 * be used as an alternative for the `static()` middleware for
52034 * dynamic situations. The code backing `res.sendFile()` is actually
52035 * the same code, so HTTP cache support etc is identical.
52036 *
52037 * app.get('/user/:uid/photos/:file', function(req, res){
52038 * var uid = req.params.uid
52039 * , file = req.params.file;
52040 *
52041 * req.user.mayViewFilesFrom(uid, function(yes){
52042 * if (yes) {
52043 * res.sendFile('/uploads/' + uid + '/' + file);
52044 * } else {
52045 * res.send(403, 'Sorry! you cant see that.');
52046 * }
52047 * });
52048 * });
52049 *
52050 * @public
52051 */
52052
52053res.sendFile = function sendFile(path, options, callback) {
52054 var done = callback;
52055 var req = this.req;
52056 var res = this;
52057 var next = req.next;
52058 var opts = options || {};
52059
52060 if (!path) {
52061 throw new TypeError('path argument is required to res.sendFile');
52062 }
52063
52064 // support function as second arg
52065 if (typeof options === 'function') {
52066 done = options;
52067 opts = {};
52068 }
52069
52070 if (!opts.root && !isAbsolute(path)) {
52071 throw new TypeError('path must be absolute or specify root to res.sendFile');
52072 }
52073
52074 // create file stream
52075 var pathname = encodeURI(path);
52076 var file = send(req, pathname, opts);
52077
52078 // transfer
52079 sendfile(res, file, opts, function (err) {
52080 if (done) return done(err);
52081 if (err && err.code === 'EISDIR') return next();
52082
52083 // next() all but write errors
52084 if (err && err.code !== 'ECONNABORTED' && err.syscall !== 'write') {
52085 next(err);
52086 }
52087 });
52088};
52089
52090/**
52091 * Transfer the file at the given `path`.
52092 *
52093 * Automatically sets the _Content-Type_ response header field.
52094 * The callback `callback(err)` is invoked when the transfer is complete
52095 * or when an error occurs. Be sure to check `res.sentHeader`
52096 * if you wish to attempt responding, as the header and some data
52097 * may have already been transferred.
52098 *
52099 * Options:
52100 *
52101 * - `maxAge` defaulting to 0 (can be string converted by `ms`)
52102 * - `root` root directory for relative filenames
52103 * - `headers` object of headers to serve with file
52104 * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them
52105 *
52106 * Other options are passed along to `send`.
52107 *
52108 * Examples:
52109 *
52110 * The following example illustrates how `res.sendfile()` may
52111 * be used as an alternative for the `static()` middleware for
52112 * dynamic situations. The code backing `res.sendfile()` is actually
52113 * the same code, so HTTP cache support etc is identical.
52114 *
52115 * app.get('/user/:uid/photos/:file', function(req, res){
52116 * var uid = req.params.uid
52117 * , file = req.params.file;
52118 *
52119 * req.user.mayViewFilesFrom(uid, function(yes){
52120 * if (yes) {
52121 * res.sendfile('/uploads/' + uid + '/' + file);
52122 * } else {
52123 * res.send(403, 'Sorry! you cant see that.');
52124 * }
52125 * });
52126 * });
52127 *
52128 * @public
52129 */
52130
52131res.sendfile = function (path, options, callback) {
52132 var done = callback;
52133 var req = this.req;
52134 var res = this;
52135 var next = req.next;
52136 var opts = options || {};
52137
52138 // support function as second arg
52139 if (typeof options === 'function') {
52140 done = options;
52141 opts = {};
52142 }
52143
52144 // create file stream
52145 var file = send(req, path, opts);
52146
52147 // transfer
52148 sendfile(res, file, opts, function (err) {
52149 if (done) return done(err);
52150 if (err && err.code === 'EISDIR') return next();
52151
52152 // next() all but write errors
52153 if (err && err.code !== 'ECONNABORT' && err.syscall !== 'write') {
52154 next(err);
52155 }
52156 });
52157};
52158
52159res.sendfile = deprecate.function(res.sendfile,
52160 'res.sendfile: Use res.sendFile instead');
52161
52162/**
52163 * Transfer the file at the given `path` as an attachment.
52164 *
52165 * Optionally providing an alternate attachment `filename`,
52166 * and optional callback `callback(err)`. The callback is invoked
52167 * when the data transfer is complete, or when an error has
52168 * ocurred. Be sure to check `res.headersSent` if you plan to respond.
52169 *
52170 * Optionally providing an `options` object to use with `res.sendFile()`.
52171 * This function will set the `Content-Disposition` header, overriding
52172 * any `Content-Disposition` header passed as header options in order
52173 * to set the attachment and filename.
52174 *
52175 * This method uses `res.sendFile()`.
52176 *
52177 * @public
52178 */
52179
52180res.download = function download (path, filename, options, callback) {
52181 var done = callback;
52182 var name = filename;
52183 var opts = options || null
52184
52185 // support function as second or third arg
52186 if (typeof filename === 'function') {
52187 done = filename;
52188 name = null;
52189 opts = null
52190 } else if (typeof options === 'function') {
52191 done = options
52192 opts = null
52193 }
52194
52195 // set Content-Disposition when file is sent
52196 var headers = {
52197 'Content-Disposition': contentDisposition(name || path)
52198 };
52199
52200 // merge user-provided headers
52201 if (opts && opts.headers) {
52202 var keys = Object.keys(opts.headers)
52203 for (var i = 0; i < keys.length; i++) {
52204 var key = keys[i]
52205 if (key.toLowerCase() !== 'content-disposition') {
52206 headers[key] = opts.headers[key]
52207 }
52208 }
52209 }
52210
52211 // merge user-provided options
52212 opts = Object.create(opts)
52213 opts.headers = headers
52214
52215 // Resolve the full path for sendFile
52216 var fullPath = resolve(path);
52217
52218 // send file
52219 return this.sendFile(fullPath, opts, done)
52220};
52221
52222/**
52223 * Set _Content-Type_ response header with `type` through `mime.lookup()`
52224 * when it does not contain "/", or set the Content-Type to `type` otherwise.
52225 *
52226 * Examples:
52227 *
52228 * res.type('.html');
52229 * res.type('html');
52230 * res.type('json');
52231 * res.type('application/json');
52232 * res.type('png');
52233 *
52234 * @param {String} type
52235 * @return {ServerResponse} for chaining
52236 * @public
52237 */
52238
52239res.contentType =
52240res.type = function contentType(type) {
52241 var ct = type.indexOf('/') === -1
52242 ? mime.lookup(type)
52243 : type;
52244
52245 return this.set('Content-Type', ct);
52246};
52247
52248/**
52249 * Respond to the Acceptable formats using an `obj`
52250 * of mime-type callbacks.
52251 *
52252 * This method uses `req.accepted`, an array of
52253 * acceptable types ordered by their quality values.
52254 * When "Accept" is not present the _first_ callback
52255 * is invoked, otherwise the first match is used. When
52256 * no match is performed the server responds with
52257 * 406 "Not Acceptable".
52258 *
52259 * Content-Type is set for you, however if you choose
52260 * you may alter this within the callback using `res.type()`
52261 * or `res.set('Content-Type', ...)`.
52262 *
52263 * res.format({
52264 * 'text/plain': function(){
52265 * res.send('hey');
52266 * },
52267 *
52268 * 'text/html': function(){
52269 * res.send('<p>hey</p>');
52270 * },
52271 *
52272 * 'appliation/json': function(){
52273 * res.send({ message: 'hey' });
52274 * }
52275 * });
52276 *
52277 * In addition to canonicalized MIME types you may
52278 * also use extnames mapped to these types:
52279 *
52280 * res.format({
52281 * text: function(){
52282 * res.send('hey');
52283 * },
52284 *
52285 * html: function(){
52286 * res.send('<p>hey</p>');
52287 * },
52288 *
52289 * json: function(){
52290 * res.send({ message: 'hey' });
52291 * }
52292 * });
52293 *
52294 * By default Express passes an `Error`
52295 * with a `.status` of 406 to `next(err)`
52296 * if a match is not made. If you provide
52297 * a `.default` callback it will be invoked
52298 * instead.
52299 *
52300 * @param {Object} obj
52301 * @return {ServerResponse} for chaining
52302 * @public
52303 */
52304
52305res.format = function(obj){
52306 var req = this.req;
52307 var next = req.next;
52308
52309 var fn = obj.default;
52310 if (fn) delete obj.default;
52311 var keys = Object.keys(obj);
52312
52313 var key = keys.length > 0
52314 ? req.accepts(keys)
52315 : false;
52316
52317 this.vary("Accept");
52318
52319 if (key) {
52320 this.set('Content-Type', normalizeType(key).value);
52321 obj[key](req, this, next);
52322 } else if (fn) {
52323 fn();
52324 } else {
52325 var err = new Error('Not Acceptable');
52326 err.status = err.statusCode = 406;
52327 err.types = normalizeTypes(keys).map(function(o){ return o.value });
52328 next(err);
52329 }
52330
52331 return this;
52332};
52333
52334/**
52335 * Set _Content-Disposition_ header to _attachment_ with optional `filename`.
52336 *
52337 * @param {String} filename
52338 * @return {ServerResponse}
52339 * @public
52340 */
52341
52342res.attachment = function attachment(filename) {
52343 if (filename) {
52344 this.type(extname(filename));
52345 }
52346
52347 this.set('Content-Disposition', contentDisposition(filename));
52348
52349 return this;
52350};
52351
52352/**
52353 * Append additional header `field` with value `val`.
52354 *
52355 * Example:
52356 *
52357 * res.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
52358 * res.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
52359 * res.append('Warning', '199 Miscellaneous warning');
52360 *
52361 * @param {String} field
52362 * @param {String|Array} val
52363 * @return {ServerResponse} for chaining
52364 * @public
52365 */
52366
52367res.append = function append(field, val) {
52368 var prev = this.get(field);
52369 var value = val;
52370
52371 if (prev) {
52372 // concat the new and prev vals
52373 value = Array.isArray(prev) ? prev.concat(val)
52374 : Array.isArray(val) ? [prev].concat(val)
52375 : [prev, val];
52376 }
52377
52378 return this.set(field, value);
52379};
52380
52381/**
52382 * Set header `field` to `val`, or pass
52383 * an object of header fields.
52384 *
52385 * Examples:
52386 *
52387 * res.set('Foo', ['bar', 'baz']);
52388 * res.set('Accept', 'application/json');
52389 * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });
52390 *
52391 * Aliased as `res.header()`.
52392 *
52393 * @param {String|Object} field
52394 * @param {String|Array} val
52395 * @return {ServerResponse} for chaining
52396 * @public
52397 */
52398
52399res.set =
52400res.header = function header(field, val) {
52401 if (arguments.length === 2) {
52402 var value = Array.isArray(val)
52403 ? val.map(String)
52404 : String(val);
52405
52406 // add charset to content-type
52407 if (field.toLowerCase() === 'content-type') {
52408 if (Array.isArray(value)) {
52409 throw new TypeError('Content-Type cannot be set to an Array');
52410 }
52411 if (!charsetRegExp.test(value)) {
52412 var charset = mime.charsets.lookup(value.split(';')[0]);
52413 if (charset) value += '; charset=' + charset.toLowerCase();
52414 }
52415 }
52416
52417 this.setHeader(field, value);
52418 } else {
52419 for (var key in field) {
52420 this.set(key, field[key]);
52421 }
52422 }
52423 return this;
52424};
52425
52426/**
52427 * Get value for header `field`.
52428 *
52429 * @param {String} field
52430 * @return {String}
52431 * @public
52432 */
52433
52434res.get = function(field){
52435 return this.getHeader(field);
52436};
52437
52438/**
52439 * Clear cookie `name`.
52440 *
52441 * @param {String} name
52442 * @param {Object} [options]
52443 * @return {ServerResponse} for chaining
52444 * @public
52445 */
52446
52447res.clearCookie = function clearCookie(name, options) {
52448 var opts = merge({ expires: new Date(1), path: '/' }, options);
52449
52450 return this.cookie(name, '', opts);
52451};
52452
52453/**
52454 * Set cookie `name` to `value`, with the given `options`.
52455 *
52456 * Options:
52457 *
52458 * - `maxAge` max-age in milliseconds, converted to `expires`
52459 * - `signed` sign the cookie
52460 * - `path` defaults to "/"
52461 *
52462 * Examples:
52463 *
52464 * // "Remember Me" for 15 minutes
52465 * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
52466 *
52467 * // save as above
52468 * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
52469 *
52470 * @param {String} name
52471 * @param {String|Object} value
52472 * @param {Object} [options]
52473 * @return {ServerResponse} for chaining
52474 * @public
52475 */
52476
52477res.cookie = function (name, value, options) {
52478 var opts = merge({}, options);
52479 var secret = this.req.secret;
52480 var signed = opts.signed;
52481
52482 if (signed && !secret) {
52483 throw new Error('cookieParser("secret") required for signed cookies');
52484 }
52485
52486 var val = typeof value === 'object'
52487 ? 'j:' + JSON.stringify(value)
52488 : String(value);
52489
52490 if (signed) {
52491 val = 's:' + sign(val, secret);
52492 }
52493
52494 if ('maxAge' in opts) {
52495 opts.expires = new Date(Date.now() + opts.maxAge);
52496 opts.maxAge /= 1000;
52497 }
52498
52499 if (opts.path == null) {
52500 opts.path = '/';
52501 }
52502
52503 this.append('Set-Cookie', cookie.serialize(name, String(val), opts));
52504
52505 return this;
52506};
52507
52508/**
52509 * Set the location header to `url`.
52510 *
52511 * The given `url` can also be "back", which redirects
52512 * to the _Referrer_ or _Referer_ headers or "/".
52513 *
52514 * Examples:
52515 *
52516 * res.location('/foo/bar').;
52517 * res.location('http://example.com');
52518 * res.location('../login');
52519 *
52520 * @param {String} url
52521 * @return {ServerResponse} for chaining
52522 * @public
52523 */
52524
52525res.location = function location(url) {
52526 var loc = url;
52527
52528 // "back" is an alias for the referrer
52529 if (url === 'back') {
52530 loc = this.req.get('Referrer') || '/';
52531 }
52532
52533 // set location
52534 return this.set('Location', encodeUrl(loc));
52535};
52536
52537/**
52538 * Redirect to the given `url` with optional response `status`
52539 * defaulting to 302.
52540 *
52541 * The resulting `url` is determined by `res.location()`, so
52542 * it will play nicely with mounted apps, relative paths,
52543 * `"back"` etc.
52544 *
52545 * Examples:
52546 *
52547 * res.redirect('/foo/bar');
52548 * res.redirect('http://example.com');
52549 * res.redirect(301, 'http://example.com');
52550 * res.redirect('../login'); // /blog/post/1 -> /blog/login
52551 *
52552 * @public
52553 */
52554
52555res.redirect = function redirect(url) {
52556 var address = url;
52557 var body;
52558 var status = 302;
52559
52560 // allow status / url
52561 if (arguments.length === 2) {
52562 if (typeof arguments[0] === 'number') {
52563 status = arguments[0];
52564 address = arguments[1];
52565 } else {
52566 deprecate('res.redirect(url, status): Use res.redirect(status, url) instead');
52567 status = arguments[1];
52568 }
52569 }
52570
52571 // Set location header
52572 address = this.location(address).get('Location');
52573
52574 // Support text/{plain,html} by default
52575 this.format({
52576 text: function(){
52577 body = statuses[status] + '. Redirecting to ' + address
52578 },
52579
52580 html: function(){
52581 var u = escapeHtml(address);
52582 body = '<p>' + statuses[status] + '. Redirecting to <a href="' + u + '">' + u + '</a></p>'
52583 },
52584
52585 default: function(){
52586 body = '';
52587 }
52588 });
52589
52590 // Respond
52591 this.statusCode = status;
52592 this.set('Content-Length', Buffer.byteLength(body));
52593
52594 if (this.req.method === 'HEAD') {
52595 this.end();
52596 } else {
52597 this.end(body);
52598 }
52599};
52600
52601/**
52602 * Add `field` to Vary. If already present in the Vary set, then
52603 * this call is simply ignored.
52604 *
52605 * @param {Array|String} field
52606 * @return {ServerResponse} for chaining
52607 * @public
52608 */
52609
52610res.vary = function(field){
52611 // checks for back-compat
52612 if (!field || (Array.isArray(field) && !field.length)) {
52613 deprecate('res.vary(): Provide a field name');
52614 return this;
52615 }
52616
52617 vary(this, field);
52618
52619 return this;
52620};
52621
52622/**
52623 * Render `view` with the given `options` and optional callback `fn`.
52624 * When a callback function is given a response will _not_ be made
52625 * automatically, otherwise a response of _200_ and _text/html_ is given.
52626 *
52627 * Options:
52628 *
52629 * - `cache` boolean hinting to the engine it should cache
52630 * - `filename` filename of the view being rendered
52631 *
52632 * @public
52633 */
52634
52635res.render = function render(view, options, callback) {
52636 var app = this.req.app;
52637 var done = callback;
52638 var opts = options || {};
52639 var req = this.req;
52640 var self = this;
52641
52642 // support callback function as second arg
52643 if (typeof options === 'function') {
52644 done = options;
52645 opts = {};
52646 }
52647
52648 // merge res.locals
52649 opts._locals = self.locals;
52650
52651 // default callback to respond
52652 done = done || function (err, str) {
52653 if (err) return req.next(err);
52654 self.send(str);
52655 };
52656
52657 // render
52658 app.render(view, opts, done);
52659};
52660
52661// pipe the send file stream
52662function sendfile(res, file, options, callback) {
52663 var done = false;
52664 var streaming;
52665
52666 // request aborted
52667 function onaborted() {
52668 if (done) return;
52669 done = true;
52670
52671 var err = new Error('Request aborted');
52672 err.code = 'ECONNABORTED';
52673 callback(err);
52674 }
52675
52676 // directory
52677 function ondirectory() {
52678 if (done) return;
52679 done = true;
52680
52681 var err = new Error('EISDIR, read');
52682 err.code = 'EISDIR';
52683 callback(err);
52684 }
52685
52686 // errors
52687 function onerror(err) {
52688 if (done) return;
52689 done = true;
52690 callback(err);
52691 }
52692
52693 // ended
52694 function onend() {
52695 if (done) return;
52696 done = true;
52697 callback();
52698 }
52699
52700 // file
52701 function onfile() {
52702 streaming = false;
52703 }
52704
52705 // finished
52706 function onfinish(err) {
52707 if (err && err.code === 'ECONNRESET') return onaborted();
52708 if (err) return onerror(err);
52709 if (done) return;
52710
52711 setImmediate(function () {
52712 if (streaming !== false && !done) {
52713 onaborted();
52714 return;
52715 }
52716
52717 if (done) return;
52718 done = true;
52719 callback();
52720 });
52721 }
52722
52723 // streaming
52724 function onstream() {
52725 streaming = true;
52726 }
52727
52728 file.on('directory', ondirectory);
52729 file.on('end', onend);
52730 file.on('error', onerror);
52731 file.on('file', onfile);
52732 file.on('stream', onstream);
52733 onFinished(res, onfinish);
52734
52735 if (options.headers) {
52736 // set headers on successful transfer
52737 file.on('headers', function headers(res) {
52738 var obj = options.headers;
52739 var keys = Object.keys(obj);
52740
52741 for (var i = 0; i < keys.length; i++) {
52742 var k = keys[i];
52743 res.setHeader(k, obj[k]);
52744 }
52745 });
52746 }
52747
52748 // pipe
52749 file.pipe(res);
52750}
52751
52752/**
52753 * Stringify JSON, like JSON.stringify, but v8 optimized, with the
52754 * ability to escape characters that can trigger HTML sniffing.
52755 *
52756 * @param {*} value
52757 * @param {function} replaces
52758 * @param {number} spaces
52759 * @param {boolean} escape
52760 * @returns {string}
52761 * @private
52762 */
52763
52764function stringify (value, replacer, spaces, escape) {
52765 // v8 checks arguments.length for optimizing simple call
52766 // https://bugs.chromium.org/p/v8/issues/detail?id=4730
52767 var json = replacer || spaces
52768 ? JSON.stringify(value, replacer, spaces)
52769 : JSON.stringify(value);
52770
52771 if (escape) {
52772 json = json.replace(/[<>&]/g, function (c) {
52773 switch (c.charCodeAt(0)) {
52774 case 0x3c:
52775 return '\\u003c'
52776 case 0x3e:
52777 return '\\u003e'
52778 case 0x26:
52779 return '\\u0026'
52780 default:
52781 return c
52782 }
52783 })
52784 }
52785
52786 return json
52787}
52788
52789
52790/***/ }),
52791/* 667 */
52792/***/ (function(module, exports, __webpack_require__) {
52793
52794/**
52795 * Module dependencies.
52796 */
52797
52798var crypto = __webpack_require__(78);
52799
52800/**
52801 * Sign the given `val` with `secret`.
52802 *
52803 * @param {String} val
52804 * @param {String} secret
52805 * @return {String}
52806 * @api private
52807 */
52808
52809exports.sign = function(val, secret){
52810 if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string.");
52811 if ('string' != typeof secret) throw new TypeError("Secret string must be provided.");
52812 return val + '.' + crypto
52813 .createHmac('sha256', secret)
52814 .update(val)
52815 .digest('base64')
52816 .replace(/\=+$/, '');
52817};
52818
52819/**
52820 * Unsign and decode the given `val` with `secret`,
52821 * returning `false` if the signature is invalid.
52822 *
52823 * @param {String} val
52824 * @param {String} secret
52825 * @return {String|Boolean}
52826 * @api private
52827 */
52828
52829exports.unsign = function(val, secret){
52830 if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided.");
52831 if ('string' != typeof secret) throw new TypeError("Secret string must be provided.");
52832 var str = val.slice(0, val.lastIndexOf('.'))
52833 , mac = exports.sign(str, secret);
52834
52835 return sha1(mac) == sha1(val) ? str : false;
52836};
52837
52838/**
52839 * Private
52840 */
52841
52842function sha1(str){
52843 return crypto.createHash('sha1').update(str).digest('hex');
52844}
52845
52846
52847/***/ }),
52848/* 668 */
52849/***/ (function(module, exports, __webpack_require__) {
52850
52851"use strict";
52852/*!
52853 * cookie
52854 * Copyright(c) 2012-2014 Roman Shtylman
52855 * Copyright(c) 2015 Douglas Christopher Wilson
52856 * MIT Licensed
52857 */
52858
52859
52860
52861/**
52862 * Module exports.
52863 * @public
52864 */
52865
52866exports.parse = parse;
52867exports.serialize = serialize;
52868
52869/**
52870 * Module variables.
52871 * @private
52872 */
52873
52874var decode = decodeURIComponent;
52875var encode = encodeURIComponent;
52876var pairSplitRegExp = /; */;
52877
52878/**
52879 * RegExp to match field-content in RFC 7230 sec 3.2
52880 *
52881 * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
52882 * field-vchar = VCHAR / obs-text
52883 * obs-text = %x80-FF
52884 */
52885
52886var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
52887
52888/**
52889 * Parse a cookie header.
52890 *
52891 * Parse the given cookie header string into an object
52892 * The object has the various cookies as keys(names) => values
52893 *
52894 * @param {string} str
52895 * @param {object} [options]
52896 * @return {object}
52897 * @public
52898 */
52899
52900function parse(str, options) {
52901 if (typeof str !== 'string') {
52902 throw new TypeError('argument str must be a string');
52903 }
52904
52905 var obj = {}
52906 var opt = options || {};
52907 var pairs = str.split(pairSplitRegExp);
52908 var dec = opt.decode || decode;
52909
52910 for (var i = 0; i < pairs.length; i++) {
52911 var pair = pairs[i];
52912 var eq_idx = pair.indexOf('=');
52913
52914 // skip things that don't look like key=value
52915 if (eq_idx < 0) {
52916 continue;
52917 }
52918
52919 var key = pair.substr(0, eq_idx).trim()
52920 var val = pair.substr(++eq_idx, pair.length).trim();
52921
52922 // quoted values
52923 if ('"' == val[0]) {
52924 val = val.slice(1, -1);
52925 }
52926
52927 // only assign once
52928 if (undefined == obj[key]) {
52929 obj[key] = tryDecode(val, dec);
52930 }
52931 }
52932
52933 return obj;
52934}
52935
52936/**
52937 * Serialize data into a cookie header.
52938 *
52939 * Serialize the a name value pair into a cookie string suitable for
52940 * http headers. An optional options object specified cookie parameters.
52941 *
52942 * serialize('foo', 'bar', { httpOnly: true })
52943 * => "foo=bar; httpOnly"
52944 *
52945 * @param {string} name
52946 * @param {string} val
52947 * @param {object} [options]
52948 * @return {string}
52949 * @public
52950 */
52951
52952function serialize(name, val, options) {
52953 var opt = options || {};
52954 var enc = opt.encode || encode;
52955
52956 if (typeof enc !== 'function') {
52957 throw new TypeError('option encode is invalid');
52958 }
52959
52960 if (!fieldContentRegExp.test(name)) {
52961 throw new TypeError('argument name is invalid');
52962 }
52963
52964 var value = enc(val);
52965
52966 if (value && !fieldContentRegExp.test(value)) {
52967 throw new TypeError('argument val is invalid');
52968 }
52969
52970 var str = name + '=' + value;
52971
52972 if (null != opt.maxAge) {
52973 var maxAge = opt.maxAge - 0;
52974 if (isNaN(maxAge)) throw new Error('maxAge should be a Number');
52975 str += '; Max-Age=' + Math.floor(maxAge);
52976 }
52977
52978 if (opt.domain) {
52979 if (!fieldContentRegExp.test(opt.domain)) {
52980 throw new TypeError('option domain is invalid');
52981 }
52982
52983 str += '; Domain=' + opt.domain;
52984 }
52985
52986 if (opt.path) {
52987 if (!fieldContentRegExp.test(opt.path)) {
52988 throw new TypeError('option path is invalid');
52989 }
52990
52991 str += '; Path=' + opt.path;
52992 }
52993
52994 if (opt.expires) {
52995 if (typeof opt.expires.toUTCString !== 'function') {
52996 throw new TypeError('option expires is invalid');
52997 }
52998
52999 str += '; Expires=' + opt.expires.toUTCString();
53000 }
53001
53002 if (opt.httpOnly) {
53003 str += '; HttpOnly';
53004 }
53005
53006 if (opt.secure) {
53007 str += '; Secure';
53008 }
53009
53010 if (opt.sameSite) {
53011 var sameSite = typeof opt.sameSite === 'string'
53012 ? opt.sameSite.toLowerCase() : opt.sameSite;
53013
53014 switch (sameSite) {
53015 case true:
53016 str += '; SameSite=Strict';
53017 break;
53018 case 'lax':
53019 str += '; SameSite=Lax';
53020 break;
53021 case 'strict':
53022 str += '; SameSite=Strict';
53023 break;
53024 default:
53025 throw new TypeError('option sameSite is invalid');
53026 }
53027 }
53028
53029 return str;
53030}
53031
53032/**
53033 * Try decoding a string using a decoding function.
53034 *
53035 * @param {string} str
53036 * @param {function} decode
53037 * @private
53038 */
53039
53040function tryDecode(str, decode) {
53041 try {
53042 return decode(str);
53043 } catch (e) {
53044 return str;
53045 }
53046}
53047
53048
53049/***/ }),
53050/* 669 */
53051/***/ (function(module, exports, __webpack_require__) {
53052
53053"use strict";
53054/*!
53055 * vary
53056 * Copyright(c) 2014-2017 Douglas Christopher Wilson
53057 * MIT Licensed
53058 */
53059
53060
53061
53062/**
53063 * Module exports.
53064 */
53065
53066module.exports = vary
53067module.exports.append = append
53068
53069/**
53070 * RegExp to match field-name in RFC 7230 sec 3.2
53071 *
53072 * field-name = token
53073 * token = 1*tchar
53074 * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
53075 * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
53076 * / DIGIT / ALPHA
53077 * ; any VCHAR, except delimiters
53078 */
53079
53080var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/
53081
53082/**
53083 * Append a field to a vary header.
53084 *
53085 * @param {String} header
53086 * @param {String|Array} field
53087 * @return {String}
53088 * @public
53089 */
53090
53091function append (header, field) {
53092 if (typeof header !== 'string') {
53093 throw new TypeError('header argument is required')
53094 }
53095
53096 if (!field) {
53097 throw new TypeError('field argument is required')
53098 }
53099
53100 // get fields array
53101 var fields = !Array.isArray(field)
53102 ? parse(String(field))
53103 : field
53104
53105 // assert on invalid field names
53106 for (var j = 0; j < fields.length; j++) {
53107 if (!FIELD_NAME_REGEXP.test(fields[j])) {
53108 throw new TypeError('field argument contains an invalid header name')
53109 }
53110 }
53111
53112 // existing, unspecified vary
53113 if (header === '*') {
53114 return header
53115 }
53116
53117 // enumerate current values
53118 var val = header
53119 var vals = parse(header.toLowerCase())
53120
53121 // unspecified vary
53122 if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) {
53123 return '*'
53124 }
53125
53126 for (var i = 0; i < fields.length; i++) {
53127 var fld = fields[i].toLowerCase()
53128
53129 // append value (case-preserving)
53130 if (vals.indexOf(fld) === -1) {
53131 vals.push(fld)
53132 val = val
53133 ? val + ', ' + fields[i]
53134 : fields[i]
53135 }
53136 }
53137
53138 return val
53139}
53140
53141/**
53142 * Parse a vary header into an array.
53143 *
53144 * @param {String} header
53145 * @return {Array}
53146 * @private
53147 */
53148
53149function parse (header) {
53150 var end = 0
53151 var list = []
53152 var start = 0
53153
53154 // gather tokens
53155 for (var i = 0, len = header.length; i < len; i++) {
53156 switch (header.charCodeAt(i)) {
53157 case 0x20: /* */
53158 if (start === end) {
53159 start = end = i + 1
53160 }
53161 break
53162 case 0x2c: /* , */
53163 list.push(header.substring(start, end))
53164 start = end = i + 1
53165 break
53166 default:
53167 end = i + 1
53168 break
53169 }
53170 }
53171
53172 // final token
53173 list.push(header.substring(start, end))
53174
53175 return list
53176}
53177
53178/**
53179 * Mark that a request is varied on a header field.
53180 *
53181 * @param {Object} res
53182 * @param {String|Array} field
53183 * @public
53184 */
53185
53186function vary (res, field) {
53187 if (!res || !res.getHeader || !res.setHeader) {
53188 // quack quack
53189 throw new TypeError('res argument is required')
53190 }
53191
53192 // get existing header
53193 var val = res.getHeader('Vary') || ''
53194 var header = Array.isArray(val)
53195 ? val.join(', ')
53196 : String(val)
53197
53198 // set new header
53199 if ((val = append(header, field))) {
53200 res.setHeader('Vary', val)
53201 }
53202}
53203
53204
53205/***/ }),
53206/* 670 */
53207/***/ (function(module, exports, __webpack_require__) {
53208
53209"use strict";
53210/*!
53211 * serve-static
53212 * Copyright(c) 2010 Sencha Inc.
53213 * Copyright(c) 2011 TJ Holowaychuk
53214 * Copyright(c) 2014-2016 Douglas Christopher Wilson
53215 * MIT Licensed
53216 */
53217
53218
53219
53220/**
53221 * Module dependencies.
53222 * @private
53223 */
53224
53225var encodeUrl = __webpack_require__(126)
53226var escapeHtml = __webpack_require__(127)
53227var parseUrl = __webpack_require__(92)
53228var resolve = __webpack_require__(48).resolve
53229var send = __webpack_require__(192)
53230var url = __webpack_require__(53)
53231
53232/**
53233 * Module exports.
53234 * @public
53235 */
53236
53237module.exports = serveStatic
53238module.exports.mime = send.mime
53239
53240/**
53241 * @param {string} root
53242 * @param {object} [options]
53243 * @return {function}
53244 * @public
53245 */
53246
53247function serveStatic (root, options) {
53248 if (!root) {
53249 throw new TypeError('root path required')
53250 }
53251
53252 if (typeof root !== 'string') {
53253 throw new TypeError('root path must be a string')
53254 }
53255
53256 // copy options object
53257 var opts = Object.create(options || null)
53258
53259 // fall-though
53260 var fallthrough = opts.fallthrough !== false
53261
53262 // default redirect
53263 var redirect = opts.redirect !== false
53264
53265 // headers listener
53266 var setHeaders = opts.setHeaders
53267
53268 if (setHeaders && typeof setHeaders !== 'function') {
53269 throw new TypeError('option setHeaders must be function')
53270 }
53271
53272 // setup options for send
53273 opts.maxage = opts.maxage || opts.maxAge || 0
53274 opts.root = resolve(root)
53275
53276 // construct directory listener
53277 var onDirectory = redirect
53278 ? createRedirectDirectoryListener()
53279 : createNotFoundDirectoryListener()
53280
53281 return function serveStatic (req, res, next) {
53282 if (req.method !== 'GET' && req.method !== 'HEAD') {
53283 if (fallthrough) {
53284 return next()
53285 }
53286
53287 // method not allowed
53288 res.statusCode = 405
53289 res.setHeader('Allow', 'GET, HEAD')
53290 res.setHeader('Content-Length', '0')
53291 res.end()
53292 return
53293 }
53294
53295 var forwardError = !fallthrough
53296 var originalUrl = parseUrl.original(req)
53297 var path = parseUrl(req).pathname
53298
53299 // make sure redirect occurs at mount
53300 if (path === '/' && originalUrl.pathname.substr(-1) !== '/') {
53301 path = ''
53302 }
53303
53304 // create send stream
53305 var stream = send(req, path, opts)
53306
53307 // add directory handler
53308 stream.on('directory', onDirectory)
53309
53310 // add headers listener
53311 if (setHeaders) {
53312 stream.on('headers', setHeaders)
53313 }
53314
53315 // add file listener for fallthrough
53316 if (fallthrough) {
53317 stream.on('file', function onFile () {
53318 // once file is determined, always forward error
53319 forwardError = true
53320 })
53321 }
53322
53323 // forward errors
53324 stream.on('error', function error (err) {
53325 if (forwardError || !(err.statusCode < 500)) {
53326 next(err)
53327 return
53328 }
53329
53330 next()
53331 })
53332
53333 // pipe
53334 stream.pipe(res)
53335 }
53336}
53337
53338/**
53339 * Collapse all leading slashes into a single slash
53340 * @private
53341 */
53342function collapseLeadingSlashes (str) {
53343 for (var i = 0; i < str.length; i++) {
53344 if (str.charCodeAt(i) !== 0x2f /* / */) {
53345 break
53346 }
53347 }
53348
53349 return i > 1
53350 ? '/' + str.substr(i)
53351 : str
53352}
53353
53354 /**
53355 * Create a minimal HTML document.
53356 *
53357 * @param {string} title
53358 * @param {string} body
53359 * @private
53360 */
53361
53362function createHtmlDocument (title, body) {
53363 return '<!DOCTYPE html>\n' +
53364 '<html lang="en">\n' +
53365 '<head>\n' +
53366 '<meta charset="utf-8">\n' +
53367 '<title>' + title + '</title>\n' +
53368 '</head>\n' +
53369 '<body>\n' +
53370 '<pre>' + body + '</pre>\n' +
53371 '</body>\n'
53372}
53373
53374/**
53375 * Create a directory listener that just 404s.
53376 * @private
53377 */
53378
53379function createNotFoundDirectoryListener () {
53380 return function notFound () {
53381 this.error(404)
53382 }
53383}
53384
53385/**
53386 * Create a directory listener that performs a redirect.
53387 * @private
53388 */
53389
53390function createRedirectDirectoryListener () {
53391 return function redirect (res) {
53392 if (this.hasTrailingSlash()) {
53393 this.error(404)
53394 return
53395 }
53396
53397 // get original URL
53398 var originalUrl = parseUrl.original(this.req)
53399
53400 // append trailing slash
53401 originalUrl.path = null
53402 originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/')
53403
53404 // reformat the URL
53405 var loc = encodeUrl(url.format(originalUrl))
53406 var doc = createHtmlDocument('Redirecting', 'Redirecting to <a href="' + escapeHtml(loc) + '">' +
53407 escapeHtml(loc) + '</a>')
53408
53409 // send redirect response
53410 res.statusCode = 301
53411 res.setHeader('Content-Type', 'text/html; charset=UTF-8')
53412 res.setHeader('Content-Length', Buffer.byteLength(doc))
53413 res.setHeader('Content-Security-Policy', "default-src 'self'")
53414 res.setHeader('X-Content-Type-Options', 'nosniff')
53415 res.setHeader('Location', loc)
53416 res.end(doc)
53417 }
53418}
53419
53420
53421/***/ }),
53422/* 671 */
53423/***/ (function(module, exports, __webpack_require__) {
53424
53425module.exports = {
53426 decode: __webpack_require__(314),
53427 verify: __webpack_require__(679),
53428 sign: __webpack_require__(680),
53429 JsonWebTokenError: __webpack_require__(131),
53430 NotBeforeError: __webpack_require__(318),
53431 TokenExpiredError: __webpack_require__(319),
53432};
53433
53434
53435/***/ }),
53436/* 672 */
53437/***/ (function(module, exports, __webpack_require__) {
53438
53439/*global module*/
53440var base64url = __webpack_require__(130);
53441var DataStream = __webpack_require__(315);
53442var jwa = __webpack_require__(316);
53443var Stream = __webpack_require__(40);
53444var toString = __webpack_require__(317);
53445var util = __webpack_require__(54);
53446
53447function jwsSecuredInput(header, payload, encoding) {
53448 encoding = encoding || 'utf8';
53449 var encodedHeader = base64url(toString(header), 'binary');
53450 var encodedPayload = base64url(toString(payload), encoding);
53451 return util.format('%s.%s', encodedHeader, encodedPayload);
53452}
53453
53454function jwsSign(opts) {
53455 var header = opts.header;
53456 var payload = opts.payload;
53457 var secretOrKey = opts.secret || opts.privateKey;
53458 var encoding = opts.encoding;
53459 var algo = jwa(header.alg);
53460 var securedInput = jwsSecuredInput(header, payload, encoding);
53461 var signature = algo.sign(securedInput, secretOrKey);
53462 return util.format('%s.%s', securedInput, signature);
53463}
53464
53465function SignStream(opts) {
53466 var secret = opts.secret||opts.privateKey||opts.key;
53467 var secretStream = new DataStream(secret);
53468 this.readable = true;
53469 this.header = opts.header;
53470 this.encoding = opts.encoding;
53471 this.secret = this.privateKey = this.key = secretStream;
53472 this.payload = new DataStream(opts.payload);
53473 this.secret.once('close', function () {
53474 if (!this.payload.writable && this.readable)
53475 this.sign();
53476 }.bind(this));
53477
53478 this.payload.once('close', function () {
53479 if (!this.secret.writable && this.readable)
53480 this.sign();
53481 }.bind(this));
53482}
53483util.inherits(SignStream, Stream);
53484
53485SignStream.prototype.sign = function sign() {
53486 try {
53487 var signature = jwsSign({
53488 header: this.header,
53489 payload: this.payload.buffer,
53490 secret: this.secret.buffer,
53491 encoding: this.encoding
53492 });
53493 this.emit('done', signature);
53494 this.emit('data', signature);
53495 this.emit('end');
53496 this.readable = false;
53497 return signature;
53498 } catch (e) {
53499 this.readable = false;
53500 this.emit('error', e);
53501 this.emit('close');
53502 }
53503};
53504
53505SignStream.sign = jwsSign;
53506
53507module.exports = SignStream;
53508
53509
53510/***/ }),
53511/* 673 */
53512/***/ (function(module, exports, __webpack_require__) {
53513
53514"use strict";
53515
53516var pad_string_1 = __webpack_require__(674);
53517function encode(input, encoding) {
53518 if (encoding === void 0) { encoding = "utf8"; }
53519 if (Buffer.isBuffer(input)) {
53520 return fromBase64(input.toString("base64"));
53521 }
53522 return fromBase64(new Buffer(input, encoding).toString("base64"));
53523}
53524;
53525function decode(base64url, encoding) {
53526 if (encoding === void 0) { encoding = "utf8"; }
53527 return new Buffer(toBase64(base64url), "base64").toString(encoding);
53528}
53529function toBase64(base64url) {
53530 base64url = base64url.toString();
53531 return pad_string_1.default(base64url)
53532 .replace(/\-/g, "+")
53533 .replace(/_/g, "/");
53534}
53535function fromBase64(base64) {
53536 return base64
53537 .replace(/=/g, "")
53538 .replace(/\+/g, "-")
53539 .replace(/\//g, "_");
53540}
53541function toBuffer(base64url) {
53542 return new Buffer(toBase64(base64url), "base64");
53543}
53544var base64url = encode;
53545base64url.encode = encode;
53546base64url.decode = decode;
53547base64url.toBase64 = toBase64;
53548base64url.fromBase64 = fromBase64;
53549base64url.toBuffer = toBuffer;
53550Object.defineProperty(exports, "__esModule", { value: true });
53551exports.default = base64url;
53552
53553
53554/***/ }),
53555/* 674 */
53556/***/ (function(module, exports, __webpack_require__) {
53557
53558"use strict";
53559
53560function padString(input) {
53561 var segmentLength = 4;
53562 var stringLength = input.length;
53563 var diff = stringLength % segmentLength;
53564 if (!diff) {
53565 return input;
53566 }
53567 var position = stringLength;
53568 var padLength = segmentLength - diff;
53569 var paddedStringLength = stringLength + padLength;
53570 var buffer = new Buffer(paddedStringLength);
53571 buffer.write(input);
53572 while (padLength--) {
53573 buffer.write("=", position++);
53574 }
53575 return buffer.toString();
53576}
53577Object.defineProperty(exports, "__esModule", { value: true });
53578exports.default = padString;
53579
53580
53581/***/ }),
53582/* 675 */
53583/***/ (function(module, exports, __webpack_require__) {
53584
53585"use strict";
53586/*jshint node:true */
53587
53588var Buffer = __webpack_require__(16).Buffer; // browserify
53589var SlowBuffer = __webpack_require__(16).SlowBuffer;
53590
53591module.exports = bufferEq;
53592
53593function bufferEq(a, b) {
53594
53595 // shortcutting on type is necessary for correctness
53596 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
53597 return false;
53598 }
53599
53600 // buffer sizes should be well-known information, so despite this
53601 // shortcutting, it doesn't leak any information about the *contents* of the
53602 // buffers.
53603 if (a.length !== b.length) {
53604 return false;
53605 }
53606
53607 var c = 0;
53608 for (var i = 0; i < a.length; i++) {
53609 /*jshint bitwise:false */
53610 c |= a[i] ^ b[i]; // XOR
53611 }
53612 return c === 0;
53613}
53614
53615bufferEq.install = function() {
53616 Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {
53617 return bufferEq(this, that);
53618 };
53619};
53620
53621var origBufEqual = Buffer.prototype.equal;
53622var origSlowBufEqual = SlowBuffer.prototype.equal;
53623bufferEq.restore = function() {
53624 Buffer.prototype.equal = origBufEqual;
53625 SlowBuffer.prototype.equal = origSlowBufEqual;
53626};
53627
53628
53629/***/ }),
53630/* 676 */
53631/***/ (function(module, exports, __webpack_require__) {
53632
53633"use strict";
53634
53635
53636var base64Url = __webpack_require__(130).fromBase64;
53637var Buffer = __webpack_require__(29).Buffer;
53638
53639var getParamBytesForAlg = __webpack_require__(677);
53640
53641var MAX_OCTET = 0x80,
53642 CLASS_UNIVERSAL = 0,
53643 PRIMITIVE_BIT = 0x20,
53644 TAG_SEQ = 0x10,
53645 TAG_INT = 0x02,
53646 ENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),
53647 ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);
53648
53649function signatureAsBuffer(signature) {
53650 if (Buffer.isBuffer(signature)) {
53651 return signature;
53652 } else if ('string' === typeof signature) {
53653 return Buffer.from(signature, 'base64');
53654 }
53655
53656 throw new TypeError('ECDSA signature must be a Base64 string or a Buffer');
53657}
53658
53659function derToJose(signature, alg) {
53660 signature = signatureAsBuffer(signature);
53661 var paramBytes = getParamBytesForAlg(alg);
53662
53663 // the DER encoded param should at most be the param size, plus a padding
53664 // zero, since due to being a signed integer
53665 var maxEncodedParamLength = paramBytes + 1;
53666
53667 var inputLength = signature.length;
53668
53669 var offset = 0;
53670 if (signature[offset++] !== ENCODED_TAG_SEQ) {
53671 throw new Error('Could not find expected "seq"');
53672 }
53673
53674 var seqLength = signature[offset++];
53675 if (seqLength === (MAX_OCTET | 1)) {
53676 seqLength = signature[offset++];
53677 }
53678
53679 if (inputLength - offset < seqLength) {
53680 throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining');
53681 }
53682
53683 if (signature[offset++] !== ENCODED_TAG_INT) {
53684 throw new Error('Could not find expected "int" for "r"');
53685 }
53686
53687 var rLength = signature[offset++];
53688
53689 if (inputLength - offset - 2 < rLength) {
53690 throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available');
53691 }
53692
53693 if (maxEncodedParamLength < rLength) {
53694 throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable');
53695 }
53696
53697 var rOffset = offset;
53698 offset += rLength;
53699
53700 if (signature[offset++] !== ENCODED_TAG_INT) {
53701 throw new Error('Could not find expected "int" for "s"');
53702 }
53703
53704 var sLength = signature[offset++];
53705
53706 if (inputLength - offset !== sLength) {
53707 throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"');
53708 }
53709
53710 if (maxEncodedParamLength < sLength) {
53711 throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable');
53712 }
53713
53714 var sOffset = offset;
53715 offset += sLength;
53716
53717 if (offset !== inputLength) {
53718 throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain');
53719 }
53720
53721 var rPadding = paramBytes - rLength,
53722 sPadding = paramBytes - sLength;
53723
53724 var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);
53725
53726 for (offset = 0; offset < rPadding; ++offset) {
53727 dst[offset] = 0;
53728 }
53729 signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);
53730
53731 offset = paramBytes;
53732
53733 for (var o = offset; offset < o + sPadding; ++offset) {
53734 dst[offset] = 0;
53735 }
53736 signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);
53737
53738 dst = dst.toString('base64');
53739 dst = base64Url(dst);
53740
53741 return dst;
53742}
53743
53744function countPadding(buf, start, stop) {
53745 var padding = 0;
53746 while (start + padding < stop && buf[start + padding] === 0) {
53747 ++padding;
53748 }
53749
53750 var needsSign = buf[start + padding] >= MAX_OCTET;
53751 if (needsSign) {
53752 --padding;
53753 }
53754
53755 return padding;
53756}
53757
53758function joseToDer(signature, alg) {
53759 signature = signatureAsBuffer(signature);
53760 var paramBytes = getParamBytesForAlg(alg);
53761
53762 var signatureBytes = signature.length;
53763 if (signatureBytes !== paramBytes * 2) {
53764 throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"');
53765 }
53766
53767 var rPadding = countPadding(signature, 0, paramBytes);
53768 var sPadding = countPadding(signature, paramBytes, signature.length);
53769 var rLength = paramBytes - rPadding;
53770 var sLength = paramBytes - sPadding;
53771
53772 var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;
53773
53774 var shortLength = rsBytes < MAX_OCTET;
53775
53776 var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);
53777
53778 var offset = 0;
53779 dst[offset++] = ENCODED_TAG_SEQ;
53780 if (shortLength) {
53781 // Bit 8 has value "0"
53782 // bits 7-1 give the length.
53783 dst[offset++] = rsBytes;
53784 } else {
53785 // Bit 8 of first octet has value "1"
53786 // bits 7-1 give the number of additional length octets.
53787 dst[offset++] = MAX_OCTET | 1;
53788 // length, base 256
53789 dst[offset++] = rsBytes & 0xff;
53790 }
53791 dst[offset++] = ENCODED_TAG_INT;
53792 dst[offset++] = rLength;
53793 if (rPadding < 0) {
53794 dst[offset++] = 0;
53795 offset += signature.copy(dst, offset, 0, paramBytes);
53796 } else {
53797 offset += signature.copy(dst, offset, rPadding, paramBytes);
53798 }
53799 dst[offset++] = ENCODED_TAG_INT;
53800 dst[offset++] = sLength;
53801 if (sPadding < 0) {
53802 dst[offset++] = 0;
53803 signature.copy(dst, offset, paramBytes);
53804 } else {
53805 signature.copy(dst, offset, paramBytes + sPadding);
53806 }
53807
53808 return dst;
53809}
53810
53811module.exports = {
53812 derToJose: derToJose,
53813 joseToDer: joseToDer
53814};
53815
53816
53817/***/ }),
53818/* 677 */
53819/***/ (function(module, exports, __webpack_require__) {
53820
53821"use strict";
53822
53823
53824function getParamSize(keySize) {
53825 var result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);
53826 return result;
53827}
53828
53829var paramBytesForAlg = {
53830 ES256: getParamSize(256),
53831 ES384: getParamSize(384),
53832 ES512: getParamSize(521)
53833};
53834
53835function getParamBytesForAlg(alg) {
53836 var paramBytes = paramBytesForAlg[alg];
53837 if (paramBytes) {
53838 return paramBytes;
53839 }
53840
53841 throw new Error('Unknown algorithm "' + alg + '"');
53842}
53843
53844module.exports = getParamBytesForAlg;
53845
53846
53847/***/ }),
53848/* 678 */
53849/***/ (function(module, exports, __webpack_require__) {
53850
53851/*global module*/
53852var base64url = __webpack_require__(130);
53853var DataStream = __webpack_require__(315);
53854var jwa = __webpack_require__(316);
53855var Stream = __webpack_require__(40);
53856var toString = __webpack_require__(317);
53857var util = __webpack_require__(54);
53858var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;
53859
53860function isObject(thing) {
53861 return Object.prototype.toString.call(thing) === '[object Object]';
53862}
53863
53864function safeJsonParse(thing) {
53865 if (isObject(thing))
53866 return thing;
53867 try { return JSON.parse(thing); }
53868 catch (e) { return undefined; }
53869}
53870
53871function headerFromJWS(jwsSig) {
53872 var encodedHeader = jwsSig.split('.', 1)[0];
53873 return safeJsonParse(base64url.decode(encodedHeader, 'binary'));
53874}
53875
53876function securedInputFromJWS(jwsSig) {
53877 return jwsSig.split('.', 2).join('.');
53878}
53879
53880function signatureFromJWS(jwsSig) {
53881 return jwsSig.split('.')[2];
53882}
53883
53884function payloadFromJWS(jwsSig, encoding) {
53885 encoding = encoding || 'utf8';
53886 var payload = jwsSig.split('.')[1];
53887 return base64url.decode(payload, encoding);
53888}
53889
53890function isValidJws(string) {
53891 return JWS_REGEX.test(string) && !!headerFromJWS(string);
53892}
53893
53894function jwsVerify(jwsSig, algorithm, secretOrKey) {
53895 if (!algorithm) {
53896 var err = new Error("Missing algorithm parameter for jws.verify");
53897 err.code = "MISSING_ALGORITHM";
53898 throw err;
53899 }
53900 jwsSig = toString(jwsSig);
53901 var signature = signatureFromJWS(jwsSig);
53902 var securedInput = securedInputFromJWS(jwsSig);
53903 var algo = jwa(algorithm);
53904 return algo.verify(securedInput, signature, secretOrKey);
53905}
53906
53907function jwsDecode(jwsSig, opts) {
53908 opts = opts || {};
53909 jwsSig = toString(jwsSig);
53910
53911 if (!isValidJws(jwsSig))
53912 return null;
53913
53914 var header = headerFromJWS(jwsSig);
53915
53916 if (!header)
53917 return null;
53918
53919 var payload = payloadFromJWS(jwsSig);
53920 if (header.typ === 'JWT' || opts.json)
53921 payload = JSON.parse(payload, opts.encoding);
53922
53923 return {
53924 header: header,
53925 payload: payload,
53926 signature: signatureFromJWS(jwsSig)
53927 };
53928}
53929
53930function VerifyStream(opts) {
53931 opts = opts || {};
53932 var secretOrKey = opts.secret||opts.publicKey||opts.key;
53933 var secretStream = new DataStream(secretOrKey);
53934 this.readable = true;
53935 this.algorithm = opts.algorithm;
53936 this.encoding = opts.encoding;
53937 this.secret = this.publicKey = this.key = secretStream;
53938 this.signature = new DataStream(opts.signature);
53939 this.secret.once('close', function () {
53940 if (!this.signature.writable && this.readable)
53941 this.verify();
53942 }.bind(this));
53943
53944 this.signature.once('close', function () {
53945 if (!this.secret.writable && this.readable)
53946 this.verify();
53947 }.bind(this));
53948}
53949util.inherits(VerifyStream, Stream);
53950VerifyStream.prototype.verify = function verify() {
53951 try {
53952 var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);
53953 var obj = jwsDecode(this.signature.buffer, this.encoding);
53954 this.emit('done', valid, obj);
53955 this.emit('data', valid);
53956 this.emit('end');
53957 this.readable = false;
53958 return valid;
53959 } catch (e) {
53960 this.readable = false;
53961 this.emit('error', e);
53962 this.emit('close');
53963 }
53964};
53965
53966VerifyStream.decode = jwsDecode;
53967VerifyStream.isValid = isValidJws;
53968VerifyStream.verify = jwsVerify;
53969
53970module.exports = VerifyStream;
53971
53972
53973/***/ }),
53974/* 679 */
53975/***/ (function(module, exports, __webpack_require__) {
53976
53977var JsonWebTokenError = __webpack_require__(131);
53978var NotBeforeError = __webpack_require__(318);
53979var TokenExpiredError = __webpack_require__(319);
53980var decode = __webpack_require__(314);
53981var timespan = __webpack_require__(320);
53982var jws = __webpack_require__(194);
53983var xtend = __webpack_require__(321);
53984
53985module.exports = function (jwtString, secretOrPublicKey, options, callback) {
53986 if ((typeof options === 'function') && !callback) {
53987 callback = options;
53988 options = {};
53989 }
53990
53991 if (!options) {
53992 options = {};
53993 }
53994
53995 //clone this object since we are going to mutate it.
53996 options = xtend(options);
53997 var done;
53998
53999 if (callback) {
54000 done = callback;
54001 } else {
54002 done = function(err, data) {
54003 if (err) throw err;
54004 return data;
54005 };
54006 }
54007
54008 if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {
54009 return done(new JsonWebTokenError('clockTimestamp must be a number'));
54010 }
54011
54012 var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);
54013
54014 if (!jwtString){
54015 return done(new JsonWebTokenError('jwt must be provided'));
54016 }
54017
54018 if (typeof jwtString !== 'string') {
54019 return done(new JsonWebTokenError('jwt must be a string'));
54020 }
54021
54022 var parts = jwtString.split('.');
54023
54024 if (parts.length !== 3){
54025 return done(new JsonWebTokenError('jwt malformed'));
54026 }
54027
54028 var hasSignature = parts[2].trim() !== '';
54029
54030 if (!hasSignature && secretOrPublicKey){
54031 return done(new JsonWebTokenError('jwt signature is required'));
54032 }
54033
54034 if (hasSignature && !secretOrPublicKey) {
54035 return done(new JsonWebTokenError('secret or public key must be provided'));
54036 }
54037
54038 if (!hasSignature && !options.algorithms) {
54039 options.algorithms = ['none'];
54040 }
54041
54042 if (!options.algorithms) {
54043 options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||
54044 ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ?
54045 [ 'RS256','RS384','RS512','ES256','ES384','ES512' ] :
54046 ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ?
54047 [ 'RS256','RS384','RS512' ] :
54048 [ 'HS256','HS384','HS512' ];
54049
54050 }
54051
54052 var decodedToken;
54053 try {
54054 decodedToken = jws.decode(jwtString);
54055 } catch(err) {
54056 return done(err);
54057 }
54058
54059 if (!decodedToken) {
54060 return done(new JsonWebTokenError('invalid token'));
54061 }
54062
54063 var header = decodedToken.header;
54064
54065 if (!~options.algorithms.indexOf(header.alg)) {
54066 return done(new JsonWebTokenError('invalid algorithm'));
54067 }
54068
54069 var valid;
54070
54071 try {
54072 valid = jws.verify(jwtString, header.alg, secretOrPublicKey);
54073 } catch (e) {
54074 return done(e);
54075 }
54076
54077 if (!valid)
54078 return done(new JsonWebTokenError('invalid signature'));
54079
54080 var payload;
54081
54082 try {
54083 payload = decode(jwtString);
54084 } catch(err) {
54085 return done(err);
54086 }
54087
54088 if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {
54089 if (typeof payload.nbf !== 'number') {
54090 return done(new JsonWebTokenError('invalid nbf value'));
54091 }
54092 if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {
54093 return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));
54094 }
54095 }
54096
54097 if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {
54098 if (typeof payload.exp !== 'number') {
54099 return done(new JsonWebTokenError('invalid exp value'));
54100 }
54101 if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {
54102 return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));
54103 }
54104 }
54105
54106 if (options.audience) {
54107 var audiences = Array.isArray(options.audience)? options.audience : [options.audience];
54108 var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];
54109
54110 var match = target.some(function(targetAudience) {
54111 return audiences.some(function(audience) {
54112 return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;
54113 });
54114 });
54115
54116 if (!match)
54117 return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));
54118 }
54119
54120 if (options.issuer) {
54121 var invalid_issuer =
54122 (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||
54123 (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);
54124
54125 if (invalid_issuer) {
54126 return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));
54127 }
54128 }
54129
54130 if (options.subject) {
54131 if (payload.sub !== options.subject) {
54132 return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));
54133 }
54134 }
54135
54136 if (options.jwtid) {
54137 if (payload.jti !== options.jwtid) {
54138 return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));
54139 }
54140 }
54141
54142 if (options.maxAge) {
54143 if (typeof payload.iat !== 'number') {
54144 return done(new JsonWebTokenError('iat required when maxAge is specified'));
54145 }
54146
54147 var maxAgeTimestamp = timespan(options.maxAge, payload.iat);
54148 if (typeof maxAgeTimestamp === 'undefined') {
54149 return done(new JsonWebTokenError('"maxAge" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));
54150 }
54151 if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {
54152 return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));
54153 }
54154 }
54155
54156 return done(null, payload);
54157};
54158
54159
54160/***/ }),
54161/* 680 */
54162/***/ (function(module, exports, __webpack_require__) {
54163
54164var timespan = __webpack_require__(320);
54165var xtend = __webpack_require__(321);
54166var jws = __webpack_require__(194);
54167var includes = __webpack_require__(681);
54168var isBoolean = __webpack_require__(682);
54169var isInteger = __webpack_require__(683);
54170var isNumber = __webpack_require__(684);
54171var isPlainObject = __webpack_require__(685);
54172var isString = __webpack_require__(285);
54173var once = __webpack_require__(686);
54174
54175var sign_options_schema = {
54176 expiresIn: { isValid: function(value) { return isInteger(value) || isString(value); }, message: '"expiresIn" should be a number of seconds or string representing a timespan' },
54177 notBefore: { isValid: function(value) { return isInteger(value) || isString(value); }, message: '"notBefore" should be a number of seconds or string representing a timespan' },
54178 audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '"audience" must be a string or array' },
54179 algorithm: { isValid: includes.bind(null, ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']), message: '"algorithm" must be a valid string enum value' },
54180 header: { isValid: isPlainObject, message: '"header" must be an object' },
54181 encoding: { isValid: isString, message: '"encoding" must be a string' },
54182 issuer: { isValid: isString, message: '"issuer" must be a string' },
54183 subject: { isValid: isString, message: '"subject" must be a string' },
54184 jwtid: { isValid: isString, message: '"jwtid" must be a string' },
54185 noTimestamp: { isValid: isBoolean, message: '"noTimestamp" must be a boolean' },
54186 keyid: { isValid: isString, message: '"keyid" must be a string' },
54187 mutatePayload: { isValid: isBoolean, message: '"mutatePayload" must be a boolean' }
54188};
54189
54190var registered_claims_schema = {
54191 iat: { isValid: isNumber, message: '"iat" should be a number of seconds' },
54192 exp: { isValid: isNumber, message: '"exp" should be a number of seconds' },
54193 nbf: { isValid: isNumber, message: '"nbf" should be a number of seconds' }
54194};
54195
54196function validate(schema, allowUnknown, object, parameterName) {
54197 if (!isPlainObject(object)) {
54198 throw new Error('Expected "' + parameterName + '" to be a plain object.');
54199 }
54200 Object.keys(object)
54201 .forEach(function(key) {
54202 var validator = schema[key];
54203 if (!validator) {
54204 if (!allowUnknown) {
54205 throw new Error('"' + key + '" is not allowed in "' + parameterName + '"');
54206 }
54207 return;
54208 }
54209 if (!validator.isValid(object[key])) {
54210 throw new Error(validator.message);
54211 }
54212 });
54213}
54214
54215function validateOptions(options) {
54216 return validate(sign_options_schema, false, options, 'options');
54217}
54218
54219function validatePayload(payload) {
54220 return validate(registered_claims_schema, true, payload, 'payload');
54221}
54222
54223var options_to_payload = {
54224 'audience': 'aud',
54225 'issuer': 'iss',
54226 'subject': 'sub',
54227 'jwtid': 'jti'
54228};
54229
54230var options_for_objects = [
54231 'expiresIn',
54232 'notBefore',
54233 'noTimestamp',
54234 'audience',
54235 'issuer',
54236 'subject',
54237 'jwtid',
54238];
54239
54240module.exports = function (payload, secretOrPrivateKey, options, callback) {
54241 if (typeof options === 'function') {
54242 callback = options;
54243 options = {};
54244 } else {
54245 options = options || {};
54246 }
54247
54248 var isObjectPayload = typeof payload === 'object' &&
54249 !Buffer.isBuffer(payload);
54250
54251 var header = xtend({
54252 alg: options.algorithm || 'HS256',
54253 typ: isObjectPayload ? 'JWT' : undefined,
54254 kid: options.keyid
54255 }, options.header);
54256
54257 function failure(err) {
54258 if (callback) {
54259 return callback(err);
54260 }
54261 throw err;
54262 }
54263
54264 if (!secretOrPrivateKey && options.algorithm !== 'none') {
54265 return failure(new Error('secretOrPrivateKey must have a value'));
54266 }
54267
54268 if (typeof payload === 'undefined') {
54269 return failure(new Error('payload is required'));
54270 } else if (isObjectPayload) {
54271 try {
54272 validatePayload(payload);
54273 }
54274 catch (error) {
54275 return failure(error);
54276 }
54277 if (!options.mutatePayload) {
54278 payload = xtend(payload);
54279 }
54280 } else {
54281 var invalid_options = options_for_objects.filter(function (opt) {
54282 return typeof options[opt] !== 'undefined';
54283 });
54284
54285 if (invalid_options.length > 0) {
54286 return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));
54287 }
54288 }
54289
54290 if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {
54291 return failure(new Error('Bad "options.expiresIn" option the payload already has an "exp" property.'));
54292 }
54293
54294 if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {
54295 return failure(new Error('Bad "options.notBefore" option the payload already has an "nbf" property.'));
54296 }
54297
54298 try {
54299 validateOptions(options);
54300 }
54301 catch (error) {
54302 return failure(error);
54303 }
54304
54305 var timestamp = payload.iat || Math.floor(Date.now() / 1000);
54306
54307 if (!options.noTimestamp) {
54308 payload.iat = timestamp;
54309 } else {
54310 delete payload.iat;
54311 }
54312
54313 if (typeof options.notBefore !== 'undefined') {
54314 payload.nbf = timespan(options.notBefore, timestamp);
54315 if (typeof payload.nbf === 'undefined') {
54316 return failure(new Error('"notBefore" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));
54317 }
54318 }
54319
54320 if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {
54321 payload.exp = timespan(options.expiresIn, timestamp);
54322 if (typeof payload.exp === 'undefined') {
54323 return failure(new Error('"expiresIn" should be a number of seconds or string representing a timespan eg: "1d", "20h", 60'));
54324 }
54325 }
54326
54327 Object.keys(options_to_payload).forEach(function (key) {
54328 var claim = options_to_payload[key];
54329 if (typeof options[key] !== 'undefined') {
54330 if (typeof payload[claim] !== 'undefined') {
54331 return failure(new Error('Bad "options.' + key + '" option. The payload already has an "' + claim + '" property.'));
54332 }
54333 payload[claim] = options[key];
54334 }
54335 });
54336
54337 var encoding = options.encoding || 'utf8';
54338
54339 if (typeof callback === 'function') {
54340 callback = callback && once(callback);
54341
54342 jws.createSign({
54343 header: header,
54344 privateKey: secretOrPrivateKey,
54345 payload: payload,
54346 encoding: encoding
54347 }).once('error', callback)
54348 .once('done', function (signature) {
54349 callback(null, signature);
54350 });
54351 } else {
54352 return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});
54353 }
54354};
54355
54356
54357/***/ }),
54358/* 681 */
54359/***/ (function(module, exports) {
54360
54361/**
54362 * lodash (Custom Build) <https://lodash.com/>
54363 * Build: `lodash modularize exports="npm" -o ./`
54364 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
54365 * Released under MIT license <https://lodash.com/license>
54366 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
54367 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
54368 */
54369
54370/** Used as references for various `Number` constants. */
54371var INFINITY = 1 / 0,
54372 MAX_SAFE_INTEGER = 9007199254740991,
54373 MAX_INTEGER = 1.7976931348623157e+308,
54374 NAN = 0 / 0;
54375
54376/** `Object#toString` result references. */
54377var argsTag = '[object Arguments]',
54378 funcTag = '[object Function]',
54379 genTag = '[object GeneratorFunction]',
54380 stringTag = '[object String]',
54381 symbolTag = '[object Symbol]';
54382
54383/** Used to match leading and trailing whitespace. */
54384var reTrim = /^\s+|\s+$/g;
54385
54386/** Used to detect bad signed hexadecimal string values. */
54387var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
54388
54389/** Used to detect binary string values. */
54390var reIsBinary = /^0b[01]+$/i;
54391
54392/** Used to detect octal string values. */
54393var reIsOctal = /^0o[0-7]+$/i;
54394
54395/** Used to detect unsigned integer values. */
54396var reIsUint = /^(?:0|[1-9]\d*)$/;
54397
54398/** Built-in method references without a dependency on `root`. */
54399var freeParseInt = parseInt;
54400
54401/**
54402 * A specialized version of `_.map` for arrays without support for iteratee
54403 * shorthands.
54404 *
54405 * @private
54406 * @param {Array} [array] The array to iterate over.
54407 * @param {Function} iteratee The function invoked per iteration.
54408 * @returns {Array} Returns the new mapped array.
54409 */
54410function arrayMap(array, iteratee) {
54411 var index = -1,
54412 length = array ? array.length : 0,
54413 result = Array(length);
54414
54415 while (++index < length) {
54416 result[index] = iteratee(array[index], index, array);
54417 }
54418 return result;
54419}
54420
54421/**
54422 * The base implementation of `_.findIndex` and `_.findLastIndex` without
54423 * support for iteratee shorthands.
54424 *
54425 * @private
54426 * @param {Array} array The array to inspect.
54427 * @param {Function} predicate The function invoked per iteration.
54428 * @param {number} fromIndex The index to search from.
54429 * @param {boolean} [fromRight] Specify iterating from right to left.
54430 * @returns {number} Returns the index of the matched value, else `-1`.
54431 */
54432function baseFindIndex(array, predicate, fromIndex, fromRight) {
54433 var length = array.length,
54434 index = fromIndex + (fromRight ? 1 : -1);
54435
54436 while ((fromRight ? index-- : ++index < length)) {
54437 if (predicate(array[index], index, array)) {
54438 return index;
54439 }
54440 }
54441 return -1;
54442}
54443
54444/**
54445 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
54446 *
54447 * @private
54448 * @param {Array} array The array to inspect.
54449 * @param {*} value The value to search for.
54450 * @param {number} fromIndex The index to search from.
54451 * @returns {number} Returns the index of the matched value, else `-1`.
54452 */
54453function baseIndexOf(array, value, fromIndex) {
54454 if (value !== value) {
54455 return baseFindIndex(array, baseIsNaN, fromIndex);
54456 }
54457 var index = fromIndex - 1,
54458 length = array.length;
54459
54460 while (++index < length) {
54461 if (array[index] === value) {
54462 return index;
54463 }
54464 }
54465 return -1;
54466}
54467
54468/**
54469 * The base implementation of `_.isNaN` without support for number objects.
54470 *
54471 * @private
54472 * @param {*} value The value to check.
54473 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
54474 */
54475function baseIsNaN(value) {
54476 return value !== value;
54477}
54478
54479/**
54480 * The base implementation of `_.times` without support for iteratee shorthands
54481 * or max array length checks.
54482 *
54483 * @private
54484 * @param {number} n The number of times to invoke `iteratee`.
54485 * @param {Function} iteratee The function invoked per iteration.
54486 * @returns {Array} Returns the array of results.
54487 */
54488function baseTimes(n, iteratee) {
54489 var index = -1,
54490 result = Array(n);
54491
54492 while (++index < n) {
54493 result[index] = iteratee(index);
54494 }
54495 return result;
54496}
54497
54498/**
54499 * The base implementation of `_.values` and `_.valuesIn` which creates an
54500 * array of `object` property values corresponding to the property names
54501 * of `props`.
54502 *
54503 * @private
54504 * @param {Object} object The object to query.
54505 * @param {Array} props The property names to get values for.
54506 * @returns {Object} Returns the array of property values.
54507 */
54508function baseValues(object, props) {
54509 return arrayMap(props, function(key) {
54510 return object[key];
54511 });
54512}
54513
54514/**
54515 * Creates a unary function that invokes `func` with its argument transformed.
54516 *
54517 * @private
54518 * @param {Function} func The function to wrap.
54519 * @param {Function} transform The argument transform.
54520 * @returns {Function} Returns the new function.
54521 */
54522function overArg(func, transform) {
54523 return function(arg) {
54524 return func(transform(arg));
54525 };
54526}
54527
54528/** Used for built-in method references. */
54529var objectProto = Object.prototype;
54530
54531/** Used to check objects for own properties. */
54532var hasOwnProperty = objectProto.hasOwnProperty;
54533
54534/**
54535 * Used to resolve the
54536 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
54537 * of values.
54538 */
54539var objectToString = objectProto.toString;
54540
54541/** Built-in value references. */
54542var propertyIsEnumerable = objectProto.propertyIsEnumerable;
54543
54544/* Built-in method references for those with the same name as other `lodash` methods. */
54545var nativeKeys = overArg(Object.keys, Object),
54546 nativeMax = Math.max;
54547
54548/**
54549 * Creates an array of the enumerable property names of the array-like `value`.
54550 *
54551 * @private
54552 * @param {*} value The value to query.
54553 * @param {boolean} inherited Specify returning inherited property names.
54554 * @returns {Array} Returns the array of property names.
54555 */
54556function arrayLikeKeys(value, inherited) {
54557 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
54558 // Safari 9 makes `arguments.length` enumerable in strict mode.
54559 var result = (isArray(value) || isArguments(value))
54560 ? baseTimes(value.length, String)
54561 : [];
54562
54563 var length = result.length,
54564 skipIndexes = !!length;
54565
54566 for (var key in value) {
54567 if ((inherited || hasOwnProperty.call(value, key)) &&
54568 !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
54569 result.push(key);
54570 }
54571 }
54572 return result;
54573}
54574
54575/**
54576 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
54577 *
54578 * @private
54579 * @param {Object} object The object to query.
54580 * @returns {Array} Returns the array of property names.
54581 */
54582function baseKeys(object) {
54583 if (!isPrototype(object)) {
54584 return nativeKeys(object);
54585 }
54586 var result = [];
54587 for (var key in Object(object)) {
54588 if (hasOwnProperty.call(object, key) && key != 'constructor') {
54589 result.push(key);
54590 }
54591 }
54592 return result;
54593}
54594
54595/**
54596 * Checks if `value` is a valid array-like index.
54597 *
54598 * @private
54599 * @param {*} value The value to check.
54600 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
54601 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
54602 */
54603function isIndex(value, length) {
54604 length = length == null ? MAX_SAFE_INTEGER : length;
54605 return !!length &&
54606 (typeof value == 'number' || reIsUint.test(value)) &&
54607 (value > -1 && value % 1 == 0 && value < length);
54608}
54609
54610/**
54611 * Checks if `value` is likely a prototype object.
54612 *
54613 * @private
54614 * @param {*} value The value to check.
54615 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
54616 */
54617function isPrototype(value) {
54618 var Ctor = value && value.constructor,
54619 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
54620
54621 return value === proto;
54622}
54623
54624/**
54625 * Checks if `value` is in `collection`. If `collection` is a string, it's
54626 * checked for a substring of `value`, otherwise
54627 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
54628 * is used for equality comparisons. If `fromIndex` is negative, it's used as
54629 * the offset from the end of `collection`.
54630 *
54631 * @static
54632 * @memberOf _
54633 * @since 0.1.0
54634 * @category Collection
54635 * @param {Array|Object|string} collection The collection to inspect.
54636 * @param {*} value The value to search for.
54637 * @param {number} [fromIndex=0] The index to search from.
54638 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
54639 * @returns {boolean} Returns `true` if `value` is found, else `false`.
54640 * @example
54641 *
54642 * _.includes([1, 2, 3], 1);
54643 * // => true
54644 *
54645 * _.includes([1, 2, 3], 1, 2);
54646 * // => false
54647 *
54648 * _.includes({ 'a': 1, 'b': 2 }, 1);
54649 * // => true
54650 *
54651 * _.includes('abcd', 'bc');
54652 * // => true
54653 */
54654function includes(collection, value, fromIndex, guard) {
54655 collection = isArrayLike(collection) ? collection : values(collection);
54656 fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
54657
54658 var length = collection.length;
54659 if (fromIndex < 0) {
54660 fromIndex = nativeMax(length + fromIndex, 0);
54661 }
54662 return isString(collection)
54663 ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
54664 : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
54665}
54666
54667/**
54668 * Checks if `value` is likely an `arguments` object.
54669 *
54670 * @static
54671 * @memberOf _
54672 * @since 0.1.0
54673 * @category Lang
54674 * @param {*} value The value to check.
54675 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
54676 * else `false`.
54677 * @example
54678 *
54679 * _.isArguments(function() { return arguments; }());
54680 * // => true
54681 *
54682 * _.isArguments([1, 2, 3]);
54683 * // => false
54684 */
54685function isArguments(value) {
54686 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
54687 return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
54688 (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
54689}
54690
54691/**
54692 * Checks if `value` is classified as an `Array` object.
54693 *
54694 * @static
54695 * @memberOf _
54696 * @since 0.1.0
54697 * @category Lang
54698 * @param {*} value The value to check.
54699 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
54700 * @example
54701 *
54702 * _.isArray([1, 2, 3]);
54703 * // => true
54704 *
54705 * _.isArray(document.body.children);
54706 * // => false
54707 *
54708 * _.isArray('abc');
54709 * // => false
54710 *
54711 * _.isArray(_.noop);
54712 * // => false
54713 */
54714var isArray = Array.isArray;
54715
54716/**
54717 * Checks if `value` is array-like. A value is considered array-like if it's
54718 * not a function and has a `value.length` that's an integer greater than or
54719 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
54720 *
54721 * @static
54722 * @memberOf _
54723 * @since 4.0.0
54724 * @category Lang
54725 * @param {*} value The value to check.
54726 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
54727 * @example
54728 *
54729 * _.isArrayLike([1, 2, 3]);
54730 * // => true
54731 *
54732 * _.isArrayLike(document.body.children);
54733 * // => true
54734 *
54735 * _.isArrayLike('abc');
54736 * // => true
54737 *
54738 * _.isArrayLike(_.noop);
54739 * // => false
54740 */
54741function isArrayLike(value) {
54742 return value != null && isLength(value.length) && !isFunction(value);
54743}
54744
54745/**
54746 * This method is like `_.isArrayLike` except that it also checks if `value`
54747 * is an object.
54748 *
54749 * @static
54750 * @memberOf _
54751 * @since 4.0.0
54752 * @category Lang
54753 * @param {*} value The value to check.
54754 * @returns {boolean} Returns `true` if `value` is an array-like object,
54755 * else `false`.
54756 * @example
54757 *
54758 * _.isArrayLikeObject([1, 2, 3]);
54759 * // => true
54760 *
54761 * _.isArrayLikeObject(document.body.children);
54762 * // => true
54763 *
54764 * _.isArrayLikeObject('abc');
54765 * // => false
54766 *
54767 * _.isArrayLikeObject(_.noop);
54768 * // => false
54769 */
54770function isArrayLikeObject(value) {
54771 return isObjectLike(value) && isArrayLike(value);
54772}
54773
54774/**
54775 * Checks if `value` is classified as a `Function` object.
54776 *
54777 * @static
54778 * @memberOf _
54779 * @since 0.1.0
54780 * @category Lang
54781 * @param {*} value The value to check.
54782 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
54783 * @example
54784 *
54785 * _.isFunction(_);
54786 * // => true
54787 *
54788 * _.isFunction(/abc/);
54789 * // => false
54790 */
54791function isFunction(value) {
54792 // The use of `Object#toString` avoids issues with the `typeof` operator
54793 // in Safari 8-9 which returns 'object' for typed array and other constructors.
54794 var tag = isObject(value) ? objectToString.call(value) : '';
54795 return tag == funcTag || tag == genTag;
54796}
54797
54798/**
54799 * Checks if `value` is a valid array-like length.
54800 *
54801 * **Note:** This method is loosely based on
54802 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
54803 *
54804 * @static
54805 * @memberOf _
54806 * @since 4.0.0
54807 * @category Lang
54808 * @param {*} value The value to check.
54809 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
54810 * @example
54811 *
54812 * _.isLength(3);
54813 * // => true
54814 *
54815 * _.isLength(Number.MIN_VALUE);
54816 * // => false
54817 *
54818 * _.isLength(Infinity);
54819 * // => false
54820 *
54821 * _.isLength('3');
54822 * // => false
54823 */
54824function isLength(value) {
54825 return typeof value == 'number' &&
54826 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
54827}
54828
54829/**
54830 * Checks if `value` is the
54831 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
54832 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
54833 *
54834 * @static
54835 * @memberOf _
54836 * @since 0.1.0
54837 * @category Lang
54838 * @param {*} value The value to check.
54839 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
54840 * @example
54841 *
54842 * _.isObject({});
54843 * // => true
54844 *
54845 * _.isObject([1, 2, 3]);
54846 * // => true
54847 *
54848 * _.isObject(_.noop);
54849 * // => true
54850 *
54851 * _.isObject(null);
54852 * // => false
54853 */
54854function isObject(value) {
54855 var type = typeof value;
54856 return !!value && (type == 'object' || type == 'function');
54857}
54858
54859/**
54860 * Checks if `value` is object-like. A value is object-like if it's not `null`
54861 * and has a `typeof` result of "object".
54862 *
54863 * @static
54864 * @memberOf _
54865 * @since 4.0.0
54866 * @category Lang
54867 * @param {*} value The value to check.
54868 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
54869 * @example
54870 *
54871 * _.isObjectLike({});
54872 * // => true
54873 *
54874 * _.isObjectLike([1, 2, 3]);
54875 * // => true
54876 *
54877 * _.isObjectLike(_.noop);
54878 * // => false
54879 *
54880 * _.isObjectLike(null);
54881 * // => false
54882 */
54883function isObjectLike(value) {
54884 return !!value && typeof value == 'object';
54885}
54886
54887/**
54888 * Checks if `value` is classified as a `String` primitive or object.
54889 *
54890 * @static
54891 * @since 0.1.0
54892 * @memberOf _
54893 * @category Lang
54894 * @param {*} value The value to check.
54895 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
54896 * @example
54897 *
54898 * _.isString('abc');
54899 * // => true
54900 *
54901 * _.isString(1);
54902 * // => false
54903 */
54904function isString(value) {
54905 return typeof value == 'string' ||
54906 (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
54907}
54908
54909/**
54910 * Checks if `value` is classified as a `Symbol` primitive or object.
54911 *
54912 * @static
54913 * @memberOf _
54914 * @since 4.0.0
54915 * @category Lang
54916 * @param {*} value The value to check.
54917 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
54918 * @example
54919 *
54920 * _.isSymbol(Symbol.iterator);
54921 * // => true
54922 *
54923 * _.isSymbol('abc');
54924 * // => false
54925 */
54926function isSymbol(value) {
54927 return typeof value == 'symbol' ||
54928 (isObjectLike(value) && objectToString.call(value) == symbolTag);
54929}
54930
54931/**
54932 * Converts `value` to a finite number.
54933 *
54934 * @static
54935 * @memberOf _
54936 * @since 4.12.0
54937 * @category Lang
54938 * @param {*} value The value to convert.
54939 * @returns {number} Returns the converted number.
54940 * @example
54941 *
54942 * _.toFinite(3.2);
54943 * // => 3.2
54944 *
54945 * _.toFinite(Number.MIN_VALUE);
54946 * // => 5e-324
54947 *
54948 * _.toFinite(Infinity);
54949 * // => 1.7976931348623157e+308
54950 *
54951 * _.toFinite('3.2');
54952 * // => 3.2
54953 */
54954function toFinite(value) {
54955 if (!value) {
54956 return value === 0 ? value : 0;
54957 }
54958 value = toNumber(value);
54959 if (value === INFINITY || value === -INFINITY) {
54960 var sign = (value < 0 ? -1 : 1);
54961 return sign * MAX_INTEGER;
54962 }
54963 return value === value ? value : 0;
54964}
54965
54966/**
54967 * Converts `value` to an integer.
54968 *
54969 * **Note:** This method is loosely based on
54970 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
54971 *
54972 * @static
54973 * @memberOf _
54974 * @since 4.0.0
54975 * @category Lang
54976 * @param {*} value The value to convert.
54977 * @returns {number} Returns the converted integer.
54978 * @example
54979 *
54980 * _.toInteger(3.2);
54981 * // => 3
54982 *
54983 * _.toInteger(Number.MIN_VALUE);
54984 * // => 0
54985 *
54986 * _.toInteger(Infinity);
54987 * // => 1.7976931348623157e+308
54988 *
54989 * _.toInteger('3.2');
54990 * // => 3
54991 */
54992function toInteger(value) {
54993 var result = toFinite(value),
54994 remainder = result % 1;
54995
54996 return result === result ? (remainder ? result - remainder : result) : 0;
54997}
54998
54999/**
55000 * Converts `value` to a number.
55001 *
55002 * @static
55003 * @memberOf _
55004 * @since 4.0.0
55005 * @category Lang
55006 * @param {*} value The value to process.
55007 * @returns {number} Returns the number.
55008 * @example
55009 *
55010 * _.toNumber(3.2);
55011 * // => 3.2
55012 *
55013 * _.toNumber(Number.MIN_VALUE);
55014 * // => 5e-324
55015 *
55016 * _.toNumber(Infinity);
55017 * // => Infinity
55018 *
55019 * _.toNumber('3.2');
55020 * // => 3.2
55021 */
55022function toNumber(value) {
55023 if (typeof value == 'number') {
55024 return value;
55025 }
55026 if (isSymbol(value)) {
55027 return NAN;
55028 }
55029 if (isObject(value)) {
55030 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
55031 value = isObject(other) ? (other + '') : other;
55032 }
55033 if (typeof value != 'string') {
55034 return value === 0 ? value : +value;
55035 }
55036 value = value.replace(reTrim, '');
55037 var isBinary = reIsBinary.test(value);
55038 return (isBinary || reIsOctal.test(value))
55039 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
55040 : (reIsBadHex.test(value) ? NAN : +value);
55041}
55042
55043/**
55044 * Creates an array of the own enumerable property names of `object`.
55045 *
55046 * **Note:** Non-object values are coerced to objects. See the
55047 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
55048 * for more details.
55049 *
55050 * @static
55051 * @since 0.1.0
55052 * @memberOf _
55053 * @category Object
55054 * @param {Object} object The object to query.
55055 * @returns {Array} Returns the array of property names.
55056 * @example
55057 *
55058 * function Foo() {
55059 * this.a = 1;
55060 * this.b = 2;
55061 * }
55062 *
55063 * Foo.prototype.c = 3;
55064 *
55065 * _.keys(new Foo);
55066 * // => ['a', 'b'] (iteration order is not guaranteed)
55067 *
55068 * _.keys('hi');
55069 * // => ['0', '1']
55070 */
55071function keys(object) {
55072 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
55073}
55074
55075/**
55076 * Creates an array of the own enumerable string keyed property values of `object`.
55077 *
55078 * **Note:** Non-object values are coerced to objects.
55079 *
55080 * @static
55081 * @since 0.1.0
55082 * @memberOf _
55083 * @category Object
55084 * @param {Object} object The object to query.
55085 * @returns {Array} Returns the array of property values.
55086 * @example
55087 *
55088 * function Foo() {
55089 * this.a = 1;
55090 * this.b = 2;
55091 * }
55092 *
55093 * Foo.prototype.c = 3;
55094 *
55095 * _.values(new Foo);
55096 * // => [1, 2] (iteration order is not guaranteed)
55097 *
55098 * _.values('hi');
55099 * // => ['h', 'i']
55100 */
55101function values(object) {
55102 return object ? baseValues(object, keys(object)) : [];
55103}
55104
55105module.exports = includes;
55106
55107
55108/***/ }),
55109/* 682 */
55110/***/ (function(module, exports) {
55111
55112/**
55113 * lodash 3.0.3 (Custom Build) <https://lodash.com/>
55114 * Build: `lodash modularize exports="npm" -o ./`
55115 * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
55116 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55117 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55118 * Available under MIT license <https://lodash.com/license>
55119 */
55120
55121/** `Object#toString` result references. */
55122var boolTag = '[object Boolean]';
55123
55124/** Used for built-in method references. */
55125var objectProto = Object.prototype;
55126
55127/**
55128 * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
55129 * of values.
55130 */
55131var objectToString = objectProto.toString;
55132
55133/**
55134 * Checks if `value` is classified as a boolean primitive or object.
55135 *
55136 * @static
55137 * @memberOf _
55138 * @category Lang
55139 * @param {*} value The value to check.
55140 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
55141 * @example
55142 *
55143 * _.isBoolean(false);
55144 * // => true
55145 *
55146 * _.isBoolean(null);
55147 * // => false
55148 */
55149function isBoolean(value) {
55150 return value === true || value === false ||
55151 (isObjectLike(value) && objectToString.call(value) == boolTag);
55152}
55153
55154/**
55155 * Checks if `value` is object-like. A value is object-like if it's not `null`
55156 * and has a `typeof` result of "object".
55157 *
55158 * @static
55159 * @memberOf _
55160 * @category Lang
55161 * @param {*} value The value to check.
55162 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
55163 * @example
55164 *
55165 * _.isObjectLike({});
55166 * // => true
55167 *
55168 * _.isObjectLike([1, 2, 3]);
55169 * // => true
55170 *
55171 * _.isObjectLike(_.noop);
55172 * // => false
55173 *
55174 * _.isObjectLike(null);
55175 * // => false
55176 */
55177function isObjectLike(value) {
55178 return !!value && typeof value == 'object';
55179}
55180
55181module.exports = isBoolean;
55182
55183
55184/***/ }),
55185/* 683 */
55186/***/ (function(module, exports) {
55187
55188/**
55189 * lodash (Custom Build) <https://lodash.com/>
55190 * Build: `lodash modularize exports="npm" -o ./`
55191 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
55192 * Released under MIT license <https://lodash.com/license>
55193 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55194 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55195 */
55196
55197/** Used as references for various `Number` constants. */
55198var INFINITY = 1 / 0,
55199 MAX_INTEGER = 1.7976931348623157e+308,
55200 NAN = 0 / 0;
55201
55202/** `Object#toString` result references. */
55203var symbolTag = '[object Symbol]';
55204
55205/** Used to match leading and trailing whitespace. */
55206var reTrim = /^\s+|\s+$/g;
55207
55208/** Used to detect bad signed hexadecimal string values. */
55209var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
55210
55211/** Used to detect binary string values. */
55212var reIsBinary = /^0b[01]+$/i;
55213
55214/** Used to detect octal string values. */
55215var reIsOctal = /^0o[0-7]+$/i;
55216
55217/** Built-in method references without a dependency on `root`. */
55218var freeParseInt = parseInt;
55219
55220/** Used for built-in method references. */
55221var objectProto = Object.prototype;
55222
55223/**
55224 * Used to resolve the
55225 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
55226 * of values.
55227 */
55228var objectToString = objectProto.toString;
55229
55230/**
55231 * Checks if `value` is an integer.
55232 *
55233 * **Note:** This method is based on
55234 * [`Number.isInteger`](https://mdn.io/Number/isInteger).
55235 *
55236 * @static
55237 * @memberOf _
55238 * @since 4.0.0
55239 * @category Lang
55240 * @param {*} value The value to check.
55241 * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
55242 * @example
55243 *
55244 * _.isInteger(3);
55245 * // => true
55246 *
55247 * _.isInteger(Number.MIN_VALUE);
55248 * // => false
55249 *
55250 * _.isInteger(Infinity);
55251 * // => false
55252 *
55253 * _.isInteger('3');
55254 * // => false
55255 */
55256function isInteger(value) {
55257 return typeof value == 'number' && value == toInteger(value);
55258}
55259
55260/**
55261 * Checks if `value` is the
55262 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
55263 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
55264 *
55265 * @static
55266 * @memberOf _
55267 * @since 0.1.0
55268 * @category Lang
55269 * @param {*} value The value to check.
55270 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
55271 * @example
55272 *
55273 * _.isObject({});
55274 * // => true
55275 *
55276 * _.isObject([1, 2, 3]);
55277 * // => true
55278 *
55279 * _.isObject(_.noop);
55280 * // => true
55281 *
55282 * _.isObject(null);
55283 * // => false
55284 */
55285function isObject(value) {
55286 var type = typeof value;
55287 return !!value && (type == 'object' || type == 'function');
55288}
55289
55290/**
55291 * Checks if `value` is object-like. A value is object-like if it's not `null`
55292 * and has a `typeof` result of "object".
55293 *
55294 * @static
55295 * @memberOf _
55296 * @since 4.0.0
55297 * @category Lang
55298 * @param {*} value The value to check.
55299 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
55300 * @example
55301 *
55302 * _.isObjectLike({});
55303 * // => true
55304 *
55305 * _.isObjectLike([1, 2, 3]);
55306 * // => true
55307 *
55308 * _.isObjectLike(_.noop);
55309 * // => false
55310 *
55311 * _.isObjectLike(null);
55312 * // => false
55313 */
55314function isObjectLike(value) {
55315 return !!value && typeof value == 'object';
55316}
55317
55318/**
55319 * Checks if `value` is classified as a `Symbol` primitive or object.
55320 *
55321 * @static
55322 * @memberOf _
55323 * @since 4.0.0
55324 * @category Lang
55325 * @param {*} value The value to check.
55326 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
55327 * @example
55328 *
55329 * _.isSymbol(Symbol.iterator);
55330 * // => true
55331 *
55332 * _.isSymbol('abc');
55333 * // => false
55334 */
55335function isSymbol(value) {
55336 return typeof value == 'symbol' ||
55337 (isObjectLike(value) && objectToString.call(value) == symbolTag);
55338}
55339
55340/**
55341 * Converts `value` to a finite number.
55342 *
55343 * @static
55344 * @memberOf _
55345 * @since 4.12.0
55346 * @category Lang
55347 * @param {*} value The value to convert.
55348 * @returns {number} Returns the converted number.
55349 * @example
55350 *
55351 * _.toFinite(3.2);
55352 * // => 3.2
55353 *
55354 * _.toFinite(Number.MIN_VALUE);
55355 * // => 5e-324
55356 *
55357 * _.toFinite(Infinity);
55358 * // => 1.7976931348623157e+308
55359 *
55360 * _.toFinite('3.2');
55361 * // => 3.2
55362 */
55363function toFinite(value) {
55364 if (!value) {
55365 return value === 0 ? value : 0;
55366 }
55367 value = toNumber(value);
55368 if (value === INFINITY || value === -INFINITY) {
55369 var sign = (value < 0 ? -1 : 1);
55370 return sign * MAX_INTEGER;
55371 }
55372 return value === value ? value : 0;
55373}
55374
55375/**
55376 * Converts `value` to an integer.
55377 *
55378 * **Note:** This method is loosely based on
55379 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
55380 *
55381 * @static
55382 * @memberOf _
55383 * @since 4.0.0
55384 * @category Lang
55385 * @param {*} value The value to convert.
55386 * @returns {number} Returns the converted integer.
55387 * @example
55388 *
55389 * _.toInteger(3.2);
55390 * // => 3
55391 *
55392 * _.toInteger(Number.MIN_VALUE);
55393 * // => 0
55394 *
55395 * _.toInteger(Infinity);
55396 * // => 1.7976931348623157e+308
55397 *
55398 * _.toInteger('3.2');
55399 * // => 3
55400 */
55401function toInteger(value) {
55402 var result = toFinite(value),
55403 remainder = result % 1;
55404
55405 return result === result ? (remainder ? result - remainder : result) : 0;
55406}
55407
55408/**
55409 * Converts `value` to a number.
55410 *
55411 * @static
55412 * @memberOf _
55413 * @since 4.0.0
55414 * @category Lang
55415 * @param {*} value The value to process.
55416 * @returns {number} Returns the number.
55417 * @example
55418 *
55419 * _.toNumber(3.2);
55420 * // => 3.2
55421 *
55422 * _.toNumber(Number.MIN_VALUE);
55423 * // => 5e-324
55424 *
55425 * _.toNumber(Infinity);
55426 * // => Infinity
55427 *
55428 * _.toNumber('3.2');
55429 * // => 3.2
55430 */
55431function toNumber(value) {
55432 if (typeof value == 'number') {
55433 return value;
55434 }
55435 if (isSymbol(value)) {
55436 return NAN;
55437 }
55438 if (isObject(value)) {
55439 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
55440 value = isObject(other) ? (other + '') : other;
55441 }
55442 if (typeof value != 'string') {
55443 return value === 0 ? value : +value;
55444 }
55445 value = value.replace(reTrim, '');
55446 var isBinary = reIsBinary.test(value);
55447 return (isBinary || reIsOctal.test(value))
55448 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
55449 : (reIsBadHex.test(value) ? NAN : +value);
55450}
55451
55452module.exports = isInteger;
55453
55454
55455/***/ }),
55456/* 684 */
55457/***/ (function(module, exports) {
55458
55459/**
55460 * lodash 3.0.3 (Custom Build) <https://lodash.com/>
55461 * Build: `lodash modularize exports="npm" -o ./`
55462 * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
55463 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55464 * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55465 * Available under MIT license <https://lodash.com/license>
55466 */
55467
55468/** `Object#toString` result references. */
55469var numberTag = '[object Number]';
55470
55471/** Used for built-in method references. */
55472var objectProto = Object.prototype;
55473
55474/**
55475 * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
55476 * of values.
55477 */
55478var objectToString = objectProto.toString;
55479
55480/**
55481 * Checks if `value` is object-like. A value is object-like if it's not `null`
55482 * and has a `typeof` result of "object".
55483 *
55484 * @static
55485 * @memberOf _
55486 * @category Lang
55487 * @param {*} value The value to check.
55488 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
55489 * @example
55490 *
55491 * _.isObjectLike({});
55492 * // => true
55493 *
55494 * _.isObjectLike([1, 2, 3]);
55495 * // => true
55496 *
55497 * _.isObjectLike(_.noop);
55498 * // => false
55499 *
55500 * _.isObjectLike(null);
55501 * // => false
55502 */
55503function isObjectLike(value) {
55504 return !!value && typeof value == 'object';
55505}
55506
55507/**
55508 * Checks if `value` is classified as a `Number` primitive or object.
55509 *
55510 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified
55511 * as numbers, use the `_.isFinite` method.
55512 *
55513 * @static
55514 * @memberOf _
55515 * @category Lang
55516 * @param {*} value The value to check.
55517 * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
55518 * @example
55519 *
55520 * _.isNumber(3);
55521 * // => true
55522 *
55523 * _.isNumber(Number.MIN_VALUE);
55524 * // => true
55525 *
55526 * _.isNumber(Infinity);
55527 * // => true
55528 *
55529 * _.isNumber('3');
55530 * // => false
55531 */
55532function isNumber(value) {
55533 return typeof value == 'number' ||
55534 (isObjectLike(value) && objectToString.call(value) == numberTag);
55535}
55536
55537module.exports = isNumber;
55538
55539
55540/***/ }),
55541/* 685 */
55542/***/ (function(module, exports) {
55543
55544/**
55545 * lodash (Custom Build) <https://lodash.com/>
55546 * Build: `lodash modularize exports="npm" -o ./`
55547 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
55548 * Released under MIT license <https://lodash.com/license>
55549 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55550 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55551 */
55552
55553/** `Object#toString` result references. */
55554var objectTag = '[object Object]';
55555
55556/**
55557 * Checks if `value` is a host object in IE < 9.
55558 *
55559 * @private
55560 * @param {*} value The value to check.
55561 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
55562 */
55563function isHostObject(value) {
55564 // Many host objects are `Object` objects that can coerce to strings
55565 // despite having improperly defined `toString` methods.
55566 var result = false;
55567 if (value != null && typeof value.toString != 'function') {
55568 try {
55569 result = !!(value + '');
55570 } catch (e) {}
55571 }
55572 return result;
55573}
55574
55575/**
55576 * Creates a unary function that invokes `func` with its argument transformed.
55577 *
55578 * @private
55579 * @param {Function} func The function to wrap.
55580 * @param {Function} transform The argument transform.
55581 * @returns {Function} Returns the new function.
55582 */
55583function overArg(func, transform) {
55584 return function(arg) {
55585 return func(transform(arg));
55586 };
55587}
55588
55589/** Used for built-in method references. */
55590var funcProto = Function.prototype,
55591 objectProto = Object.prototype;
55592
55593/** Used to resolve the decompiled source of functions. */
55594var funcToString = funcProto.toString;
55595
55596/** Used to check objects for own properties. */
55597var hasOwnProperty = objectProto.hasOwnProperty;
55598
55599/** Used to infer the `Object` constructor. */
55600var objectCtorString = funcToString.call(Object);
55601
55602/**
55603 * Used to resolve the
55604 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
55605 * of values.
55606 */
55607var objectToString = objectProto.toString;
55608
55609/** Built-in value references. */
55610var getPrototype = overArg(Object.getPrototypeOf, Object);
55611
55612/**
55613 * Checks if `value` is object-like. A value is object-like if it's not `null`
55614 * and has a `typeof` result of "object".
55615 *
55616 * @static
55617 * @memberOf _
55618 * @since 4.0.0
55619 * @category Lang
55620 * @param {*} value The value to check.
55621 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
55622 * @example
55623 *
55624 * _.isObjectLike({});
55625 * // => true
55626 *
55627 * _.isObjectLike([1, 2, 3]);
55628 * // => true
55629 *
55630 * _.isObjectLike(_.noop);
55631 * // => false
55632 *
55633 * _.isObjectLike(null);
55634 * // => false
55635 */
55636function isObjectLike(value) {
55637 return !!value && typeof value == 'object';
55638}
55639
55640/**
55641 * Checks if `value` is a plain object, that is, an object created by the
55642 * `Object` constructor or one with a `[[Prototype]]` of `null`.
55643 *
55644 * @static
55645 * @memberOf _
55646 * @since 0.8.0
55647 * @category Lang
55648 * @param {*} value The value to check.
55649 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
55650 * @example
55651 *
55652 * function Foo() {
55653 * this.a = 1;
55654 * }
55655 *
55656 * _.isPlainObject(new Foo);
55657 * // => false
55658 *
55659 * _.isPlainObject([1, 2, 3]);
55660 * // => false
55661 *
55662 * _.isPlainObject({ 'x': 0, 'y': 0 });
55663 * // => true
55664 *
55665 * _.isPlainObject(Object.create(null));
55666 * // => true
55667 */
55668function isPlainObject(value) {
55669 if (!isObjectLike(value) ||
55670 objectToString.call(value) != objectTag || isHostObject(value)) {
55671 return false;
55672 }
55673 var proto = getPrototype(value);
55674 if (proto === null) {
55675 return true;
55676 }
55677 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
55678 return (typeof Ctor == 'function' &&
55679 Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
55680}
55681
55682module.exports = isPlainObject;
55683
55684
55685/***/ }),
55686/* 686 */
55687/***/ (function(module, exports) {
55688
55689/**
55690 * lodash (Custom Build) <https://lodash.com/>
55691 * Build: `lodash modularize exports="npm" -o ./`
55692 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
55693 * Released under MIT license <https://lodash.com/license>
55694 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55695 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55696 */
55697
55698/** Used as the `TypeError` message for "Functions" methods. */
55699var FUNC_ERROR_TEXT = 'Expected a function';
55700
55701/** Used as references for various `Number` constants. */
55702var INFINITY = 1 / 0,
55703 MAX_INTEGER = 1.7976931348623157e+308,
55704 NAN = 0 / 0;
55705
55706/** `Object#toString` result references. */
55707var symbolTag = '[object Symbol]';
55708
55709/** Used to match leading and trailing whitespace. */
55710var reTrim = /^\s+|\s+$/g;
55711
55712/** Used to detect bad signed hexadecimal string values. */
55713var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
55714
55715/** Used to detect binary string values. */
55716var reIsBinary = /^0b[01]+$/i;
55717
55718/** Used to detect octal string values. */
55719var reIsOctal = /^0o[0-7]+$/i;
55720
55721/** Built-in method references without a dependency on `root`. */
55722var freeParseInt = parseInt;
55723
55724/** Used for built-in method references. */
55725var objectProto = Object.prototype;
55726
55727/**
55728 * Used to resolve the
55729 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
55730 * of values.
55731 */
55732var objectToString = objectProto.toString;
55733
55734/**
55735 * Creates a function that invokes `func`, with the `this` binding and arguments
55736 * of the created function, while it's called less than `n` times. Subsequent
55737 * calls to the created function return the result of the last `func` invocation.
55738 *
55739 * @static
55740 * @memberOf _
55741 * @since 3.0.0
55742 * @category Function
55743 * @param {number} n The number of calls at which `func` is no longer invoked.
55744 * @param {Function} func The function to restrict.
55745 * @returns {Function} Returns the new restricted function.
55746 * @example
55747 *
55748 * jQuery(element).on('click', _.before(5, addContactToList));
55749 * // => Allows adding up to 4 contacts to the list.
55750 */
55751function before(n, func) {
55752 var result;
55753 if (typeof func != 'function') {
55754 throw new TypeError(FUNC_ERROR_TEXT);
55755 }
55756 n = toInteger(n);
55757 return function() {
55758 if (--n > 0) {
55759 result = func.apply(this, arguments);
55760 }
55761 if (n <= 1) {
55762 func = undefined;
55763 }
55764 return result;
55765 };
55766}
55767
55768/**
55769 * Creates a function that is restricted to invoking `func` once. Repeat calls
55770 * to the function return the value of the first invocation. The `func` is
55771 * invoked with the `this` binding and arguments of the created function.
55772 *
55773 * @static
55774 * @memberOf _
55775 * @since 0.1.0
55776 * @category Function
55777 * @param {Function} func The function to restrict.
55778 * @returns {Function} Returns the new restricted function.
55779 * @example
55780 *
55781 * var initialize = _.once(createApplication);
55782 * initialize();
55783 * initialize();
55784 * // => `createApplication` is invoked once
55785 */
55786function once(func) {
55787 return before(2, func);
55788}
55789
55790/**
55791 * Checks if `value` is the
55792 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
55793 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
55794 *
55795 * @static
55796 * @memberOf _
55797 * @since 0.1.0
55798 * @category Lang
55799 * @param {*} value The value to check.
55800 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
55801 * @example
55802 *
55803 * _.isObject({});
55804 * // => true
55805 *
55806 * _.isObject([1, 2, 3]);
55807 * // => true
55808 *
55809 * _.isObject(_.noop);
55810 * // => true
55811 *
55812 * _.isObject(null);
55813 * // => false
55814 */
55815function isObject(value) {
55816 var type = typeof value;
55817 return !!value && (type == 'object' || type == 'function');
55818}
55819
55820/**
55821 * Checks if `value` is object-like. A value is object-like if it's not `null`
55822 * and has a `typeof` result of "object".
55823 *
55824 * @static
55825 * @memberOf _
55826 * @since 4.0.0
55827 * @category Lang
55828 * @param {*} value The value to check.
55829 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
55830 * @example
55831 *
55832 * _.isObjectLike({});
55833 * // => true
55834 *
55835 * _.isObjectLike([1, 2, 3]);
55836 * // => true
55837 *
55838 * _.isObjectLike(_.noop);
55839 * // => false
55840 *
55841 * _.isObjectLike(null);
55842 * // => false
55843 */
55844function isObjectLike(value) {
55845 return !!value && typeof value == 'object';
55846}
55847
55848/**
55849 * Checks if `value` is classified as a `Symbol` primitive or object.
55850 *
55851 * @static
55852 * @memberOf _
55853 * @since 4.0.0
55854 * @category Lang
55855 * @param {*} value The value to check.
55856 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
55857 * @example
55858 *
55859 * _.isSymbol(Symbol.iterator);
55860 * // => true
55861 *
55862 * _.isSymbol('abc');
55863 * // => false
55864 */
55865function isSymbol(value) {
55866 return typeof value == 'symbol' ||
55867 (isObjectLike(value) && objectToString.call(value) == symbolTag);
55868}
55869
55870/**
55871 * Converts `value` to a finite number.
55872 *
55873 * @static
55874 * @memberOf _
55875 * @since 4.12.0
55876 * @category Lang
55877 * @param {*} value The value to convert.
55878 * @returns {number} Returns the converted number.
55879 * @example
55880 *
55881 * _.toFinite(3.2);
55882 * // => 3.2
55883 *
55884 * _.toFinite(Number.MIN_VALUE);
55885 * // => 5e-324
55886 *
55887 * _.toFinite(Infinity);
55888 * // => 1.7976931348623157e+308
55889 *
55890 * _.toFinite('3.2');
55891 * // => 3.2
55892 */
55893function toFinite(value) {
55894 if (!value) {
55895 return value === 0 ? value : 0;
55896 }
55897 value = toNumber(value);
55898 if (value === INFINITY || value === -INFINITY) {
55899 var sign = (value < 0 ? -1 : 1);
55900 return sign * MAX_INTEGER;
55901 }
55902 return value === value ? value : 0;
55903}
55904
55905/**
55906 * Converts `value` to an integer.
55907 *
55908 * **Note:** This method is loosely based on
55909 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
55910 *
55911 * @static
55912 * @memberOf _
55913 * @since 4.0.0
55914 * @category Lang
55915 * @param {*} value The value to convert.
55916 * @returns {number} Returns the converted integer.
55917 * @example
55918 *
55919 * _.toInteger(3.2);
55920 * // => 3
55921 *
55922 * _.toInteger(Number.MIN_VALUE);
55923 * // => 0
55924 *
55925 * _.toInteger(Infinity);
55926 * // => 1.7976931348623157e+308
55927 *
55928 * _.toInteger('3.2');
55929 * // => 3
55930 */
55931function toInteger(value) {
55932 var result = toFinite(value),
55933 remainder = result % 1;
55934
55935 return result === result ? (remainder ? result - remainder : result) : 0;
55936}
55937
55938/**
55939 * Converts `value` to a number.
55940 *
55941 * @static
55942 * @memberOf _
55943 * @since 4.0.0
55944 * @category Lang
55945 * @param {*} value The value to process.
55946 * @returns {number} Returns the number.
55947 * @example
55948 *
55949 * _.toNumber(3.2);
55950 * // => 3.2
55951 *
55952 * _.toNumber(Number.MIN_VALUE);
55953 * // => 5e-324
55954 *
55955 * _.toNumber(Infinity);
55956 * // => Infinity
55957 *
55958 * _.toNumber('3.2');
55959 * // => 3.2
55960 */
55961function toNumber(value) {
55962 if (typeof value == 'number') {
55963 return value;
55964 }
55965 if (isSymbol(value)) {
55966 return NAN;
55967 }
55968 if (isObject(value)) {
55969 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
55970 value = isObject(other) ? (other + '') : other;
55971 }
55972 if (typeof value != 'string') {
55973 return value === 0 ? value : +value;
55974 }
55975 value = value.replace(reTrim, '');
55976 var isBinary = reIsBinary.test(value);
55977 return (isBinary || reIsOctal.test(value))
55978 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
55979 : (reIsBadHex.test(value) ? NAN : +value);
55980}
55981
55982module.exports = once;
55983
55984
55985/***/ }),
55986/* 687 */
55987/***/ (function(module, exports, __webpack_require__) {
55988
55989"use strict";
55990
55991
55992Object.defineProperty(exports, "__esModule", {
55993 value: true
55994});
55995
55996var _graphql = __webpack_require__(14);
55997
55998var _graphqlAuth = __webpack_require__(688);
55999
56000var _graphqlAuth2 = _interopRequireDefault(_graphqlAuth);
56001
56002var _graphqlRelay = __webpack_require__(96);
56003
56004var _User = __webpack_require__(729);
56005
56006var _Geolocations = __webpack_require__(730);
56007
56008var _Activity = __webpack_require__(338);
56009
56010var _Score = __webpack_require__(731);
56011
56012var _PubSub = __webpack_require__(732);
56013
56014var _PubSub2 = _interopRequireDefault(_PubSub);
56015
56016function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56017
56018function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
56019
56020var _nodeDefinitions = (0, _graphqlRelay.nodeDefinitions)(function (globalId, _ref) {
56021 var loaders = _ref.loaders;
56022
56023 var _fromGlobalId = (0, _graphqlRelay.fromGlobalId)(globalId),
56024 id = _fromGlobalId.id,
56025 type = _fromGlobalId.type;
56026
56027 if (type === 'User') {
56028 return loaders.user.load(id);
56029 }
56030 return null;
56031}, function (obj) {
56032 if (obj.hasOwnProperty('email')) {
56033 return UserType;
56034 }
56035 return null;
56036}),
56037 nodeField = _nodeDefinitions.nodeField,
56038 nodeInterface = _nodeDefinitions.nodeInterface;
56039
56040var UserType = (0, _User.getUserType)(nodeInterface);
56041var UserInputType = (0, _User.getUserInputType)();
56042
56043var ScoreType = (0, _Score.getScoreType)(nodeInterface);
56044var ScoreInputType = (0, _Score.getScoreInputType)();
56045
56046var ActivityType = (0, _Activity.getActivityType)('Activities');
56047var ActivityInputType = (0, _Activity.getActivityInputType)();
56048
56049var GeolocationType = (0, _Geolocations.getGeolocationType)(nodeInterface);
56050var GeolocationInputType = (0, _Geolocations.getGeolocationInputType)();
56051
56052var GeolocationsType = (0, _Geolocations.getGeolocationsType)(nodeInterface);
56053
56054var GeolocationDistanceType = (0, _Geolocations.getGeolocationsDistanceType)(nodeInterface);
56055
56056var QueryType = new _graphql.GraphQLObjectType({
56057 name: 'Query',
56058 description: 'Query root',
56059 fields: function fields() {
56060 return {
56061 users: {
56062 type: new _graphql.GraphQLList(UserType),
56063 description: 'get all users',
56064 resolve: (0, _graphqlAuth2.default)(function (root, args, _ref2) {
56065 var loaders = _ref2.loaders;
56066 return loaders.user.loadAll();
56067 })
56068 },
56069 node: nodeField,
56070 user: {
56071 type: UserType,
56072 description: 'get an user',
56073 args: {
56074 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLID) }
56075 },
56076 resolve: (0, _graphqlAuth2.default)(function (root, args, _ref3) {
56077 var loaders = _ref3.loaders;
56078 return loaders.user.load(args.id);
56079 })
56080 },
56081 activities: {
56082 type: new _graphql.GraphQLList(ActivityType),
56083 description: 'get all activity',
56084 resolve: function resolve(root, args, _ref4) {
56085 var loaders = _ref4.loaders;
56086 return loaders.activity.loadAll();
56087 }
56088 },
56089 activity: {
56090 type: ActivityType,
56091 description: 'get an activity',
56092 args: {
56093 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLID) }
56094 },
56095 resolve: function resolve(root, args, _ref5) {
56096 var loaders = _ref5.loaders;
56097 return loaders.activity.load(args.id);
56098 }
56099 },
56100 scores: {
56101 type: new _graphql.GraphQLList(ScoreType),
56102 description: 'get all scores',
56103 resolve: function resolve(root, args, _ref6) {
56104 var loaders = _ref6.loaders;
56105 return loaders.score.loadAll();
56106 }
56107 },
56108 score: {
56109 type: ScoreType,
56110 description: 'get a score',
56111 args: {
56112 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLID) }
56113 },
56114 resolve: function resolve(root, args, _ref7) {
56115 var loaders = _ref7.loaders;
56116 return loaders.score.load(args.id);
56117 }
56118 },
56119 geolocation: {
56120 type: GeolocationType,
56121 description: 'get user geolocation',
56122 args: {
56123 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56124 key: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) }
56125 },
56126 resolve: function resolve(root, args, _ref8) {
56127 var loaders = _ref8.loaders;
56128 return loaders.geolocation.load(args);
56129 }
56130 },
56131 geolocations: {
56132 type: new _graphql.GraphQLList(GeolocationsType),
56133 description: 'get user geolocation',
56134 args: {
56135 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56136 key: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56137 distance: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56138 unit: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) }
56139 },
56140 resolve: function resolve(root, args, _ref9) {
56141 var loaders = _ref9.loaders;
56142 return loaders.geolocation.loadCloseUsers(args);
56143 }
56144 },
56145 geolocationDistance: {
56146 type: GeolocationDistanceType,
56147 description: 'get user geolocation',
56148 args: {
56149 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56150 key: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) },
56151 foreignKey: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLString) }
56152 },
56153 resolve: function resolve(root, args, _ref10) {
56154 var loaders = _ref10.loaders;
56155 return loaders.geolocation.loadDistanceFromUser(args);
56156 }
56157 },
56158 userClearCache: {
56159 type: _graphql.GraphQLString,
56160 description: 'clear user cache',
56161 resolve: function resolve(root, args, _ref11) {
56162 var loaders = _ref11.loaders;
56163 return loaders.user.clearAll();
56164 }
56165 },
56166 geolocationClearCache: {
56167 type: _graphql.GraphQLString,
56168 description: 'clear geolocation cache',
56169 resolve: function resolve(root, args, _ref12) {
56170 var loaders = _ref12.loaders;
56171 return loaders.geolocation.clearAll();
56172 }
56173 },
56174 activityClearCache: {
56175 type: _graphql.GraphQLString,
56176 description: 'clear activity cache',
56177 resolve: function resolve(root, args, _ref13) {
56178 var loaders = _ref13.loaders;
56179 return loaders.activity.clearAll();
56180 }
56181 },
56182 scoresClearCache: {
56183 type: _graphql.GraphQLString,
56184 description: 'clear score cache',
56185 resolve: function resolve(root, args, _ref14) {
56186 var loaders = _ref14.loaders;
56187 return loaders.score.clearAll();
56188 }
56189 }
56190 };
56191 }
56192});
56193
56194var MutationType = new _graphql.GraphQLObjectType({
56195 name: 'Mutation',
56196 description: 'Mutation query root',
56197 fields: function fields() {
56198 return {
56199 addUser: {
56200 type: UserType,
56201 description: 'add an user',
56202 args: {
56203 user: {
56204 type: UserInputType
56205 }
56206 },
56207 resolve: function resolve(root, _ref15, _ref16) {
56208 var user = _ref15.user;
56209 var loaders = _ref16.loaders;
56210 return loaders.user.addUser(user);
56211 }
56212 },
56213 updateUser: {
56214 type: UserType,
56215 description: 'update an user',
56216 args: {
56217 user: {
56218 type: UserInputType
56219 }
56220 },
56221 resolve: function resolve(root, _ref17, _ref18) {
56222 var user = _ref17.user;
56223 var loaders = _ref18.loaders;
56224 return loaders.user.updateUser(user);
56225 }
56226 },
56227 updateGeolocation: {
56228 type: new _graphql.GraphQLList(GeolocationsType),
56229 description: 'update an geoloaction',
56230 args: {
56231 geolocation: {
56232 type: GeolocationInputType
56233 }
56234 },
56235 resolve: function () {
56236 var _ref19 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(root, _ref20, _ref21) {
56237 var geolocation = _ref20.geolocation;
56238 var loaders = _ref21.loaders;
56239 var matchs;
56240 return regeneratorRuntime.wrap(function _callee$(_context) {
56241 while (1) {
56242 switch (_context.prev = _context.next) {
56243 case 0:
56244 _context.next = 2;
56245 return loaders.geolocation.updateGeolocation(geolocation);
56246
56247 case 2:
56248 matchs = _context.sent;
56249
56250 _PubSub2.default.publish('MATCH_' + geolocation.key, matchs);
56251 return _context.abrupt('return', matchs);
56252
56253 case 5:
56254 case 'end':
56255 return _context.stop();
56256 }
56257 }
56258 }, _callee, undefined);
56259 }));
56260
56261 return function resolve(_x, _x2, _x3) {
56262 return _ref19.apply(this, arguments);
56263 };
56264 }()
56265 },
56266 addActivity: {
56267 type: ActivityType,
56268 description: 'add an activity',
56269 args: {
56270 activity: {
56271 type: ActivityInputType
56272 }
56273 },
56274 resolve: function resolve(root, _ref22, _ref23) {
56275 var activity = _ref22.activity;
56276 var loaders = _ref23.loaders;
56277 return loaders.activity.addActivity(activity);
56278 }
56279 },
56280 updateActivity: {
56281 type: ActivityType,
56282 description: 'update an activity',
56283 args: {
56284 activity: {
56285 type: ActivityInputType
56286 }
56287 },
56288 resolve: function resolve(root, _ref24, _ref25) {
56289 var activity = _ref24.activity;
56290 var loaders = _ref25.loaders;
56291 return loaders.activity.updateActivity(activity);
56292 }
56293 },
56294 addScore: {
56295 type: ScoreType,
56296 description: 'add a score',
56297 args: {
56298 score: {
56299 type: ScoreInputType
56300 }
56301 },
56302 resolve: function resolve(root, _ref26, _ref27) {
56303 var score = _ref26.score;
56304 var loaders = _ref27.loaders;
56305 return loaders.score.addScore(score);
56306 }
56307 },
56308 updateScore: {
56309 type: ScoreType,
56310 description: 'update a score',
56311 args: {
56312 score: {
56313 type: ScoreInputType
56314 }
56315 },
56316 resolve: function resolve(root, _ref28, _ref29) {
56317 var score = _ref28.score;
56318 var loaders = _ref29.loaders;
56319 return loaders.score.updateScore(score);
56320 }
56321 }
56322 };
56323 }
56324});
56325
56326var SubscriptionType = new _graphql.GraphQLObjectType({
56327 name: 'Subscription',
56328 description: 'Subs query root',
56329 fields: function fields() {
56330 return {
56331 subMatch: {
56332 type: new _graphql.GraphQLList(GeolocationsType),
56333 args: {
56334 id: { type: new _graphql.GraphQLNonNull(_graphql.GraphQLID) }
56335 },
56336 resolve: function resolve(payload, args, context, info) {
56337 return payload;
56338 },
56339 subscribe: function subscribe(root, _ref30, _ref31) {
56340 var id = _ref30.id;
56341 var loaders = _ref31.loaders;
56342 return _PubSub2.default.asyncIterator('MATCH_' + id);
56343 }
56344 }
56345 };
56346 }
56347});
56348
56349exports.default = new _graphql.GraphQLSchema({
56350 query: QueryType,
56351 mutation: MutationType,
56352 subscription: SubscriptionType
56353});
56354module.exports = exports['default'];
56355
56356/***/ }),
56357/* 688 */
56358/***/ (function(module, exports, __webpack_require__) {
56359
56360"use strict";
56361
56362
56363Object.defineProperty(exports, "__esModule", {
56364 value: true
56365});
56366exports.AuthorizationError = exports.ContextError = undefined;
56367
56368var _promise = __webpack_require__(322);
56369
56370var _promise2 = _interopRequireDefault(_promise);
56371
56372var _asyncToGenerator2 = __webpack_require__(723);
56373
56374var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
56375
56376exports.default = withAuth;
56377
56378function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56379
56380class ContextError extends Error {
56381 constructor(message = '`auth` property not found on context!') {
56382 super(message);
56383 this.message = message;
56384 this.name = 'ContextError';
56385 }
56386}
56387
56388exports.ContextError = ContextError;
56389class AuthorizationError extends Error {
56390 constructor(message = 'Permission Denied!') {
56391 super(message);
56392 this.message = message;
56393 this.name = 'AuthorizationError';
56394 }
56395}
56396
56397exports.AuthorizationError = AuthorizationError;
56398function validateScope(required, provided) {
56399 let hasScope = false;
56400
56401 required.forEach(scope => {
56402 provided.forEach(function (perm) {
56403 // user:* -> user:create, user:view:self
56404 var permRe = new RegExp('^' + perm.replace('*', '.*') + '$');
56405 if (permRe.exec(scope)) hasScope = true;
56406 });
56407 });
56408
56409 return hasScope;
56410}
56411
56412function withAuth(scope, callback) {
56413 const next = callback ? callback : scope;
56414 let requiredScope = callback ? scope : null;
56415
56416 return (() => {
56417 var _ref = (0, _asyncToGenerator3.default)(function* (_, __, context, info) {
56418 if (!context.auth) return new ContextError();
56419 if (!context.auth.isAuthenticated) return new AuthorizationError('Not Authenticated!');
56420
56421 if (requiredScope && typeof requiredScope === 'function') requiredScope = yield _promise2.default.resolve().then(function () {
56422 return requiredScope(_, __, context, info);
56423 });
56424
56425 if (requiredScope && requiredScope.length && !context.auth.scope || requiredScope && requiredScope.length && !validateScope(requiredScope, context.auth.scope)) {
56426 return new AuthorizationError();
56427 }
56428
56429 return next(_, __, context, info);
56430 });
56431
56432 return function (_x, _x2, _x3, _x4) {
56433 return _ref.apply(this, arguments);
56434 };
56435 })();
56436}
56437//# sourceMappingURL=index.js.map
56438
56439/***/ }),
56440/* 689 */
56441/***/ (function(module, exports, __webpack_require__) {
56442
56443__webpack_require__(690);
56444__webpack_require__(691);
56445__webpack_require__(706);
56446__webpack_require__(710);
56447__webpack_require__(721);
56448__webpack_require__(722);
56449module.exports = __webpack_require__(79).Promise;
56450
56451
56452/***/ }),
56453/* 690 */
56454/***/ (function(module, exports) {
56455
56456
56457
56458/***/ }),
56459/* 691 */
56460/***/ (function(module, exports, __webpack_require__) {
56461
56462"use strict";
56463
56464var $at = __webpack_require__(692)(true);
56465
56466// 21.1.3.27 String.prototype[@@iterator]()
56467__webpack_require__(323)(String, 'String', function (iterated) {
56468 this._t = String(iterated); // target
56469 this._i = 0; // next index
56470// 21.1.5.2.1 %StringIteratorPrototype%.next()
56471}, function () {
56472 var O = this._t;
56473 var index = this._i;
56474 var point;
56475 if (index >= O.length) return { value: undefined, done: true };
56476 point = $at(O, index);
56477 this._i += point.length;
56478 return { value: point, done: false };
56479});
56480
56481
56482/***/ }),
56483/* 692 */
56484/***/ (function(module, exports, __webpack_require__) {
56485
56486var toInteger = __webpack_require__(195);
56487var defined = __webpack_require__(196);
56488// true -> String#at
56489// false -> String#codePointAt
56490module.exports = function (TO_STRING) {
56491 return function (that, pos) {
56492 var s = String(defined(that));
56493 var i = toInteger(pos);
56494 var l = s.length;
56495 var a, b;
56496 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
56497 a = s.charCodeAt(i);
56498 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
56499 ? TO_STRING ? s.charAt(i) : a
56500 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
56501 };
56502};
56503
56504
56505/***/ }),
56506/* 693 */
56507/***/ (function(module, exports, __webpack_require__) {
56508
56509module.exports = !__webpack_require__(94) && !__webpack_require__(325)(function () {
56510 return Object.defineProperty(__webpack_require__(197)('div'), 'a', { get: function () { return 7; } }).a != 7;
56511});
56512
56513
56514/***/ }),
56515/* 694 */
56516/***/ (function(module, exports, __webpack_require__) {
56517
56518// 7.1.1 ToPrimitive(input [, PreferredType])
56519var isObject = __webpack_require__(93);
56520// instead of the ES6 spec version, we didn't implement @@toPrimitive case
56521// and the second argument - flag - preferred type is a string
56522module.exports = function (it, S) {
56523 if (!isObject(it)) return it;
56524 var fn, val;
56525 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
56526 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
56527 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
56528 throw TypeError("Can't convert object to primitive value");
56529};
56530
56531
56532/***/ }),
56533/* 695 */
56534/***/ (function(module, exports, __webpack_require__) {
56535
56536module.exports = __webpack_require__(80);
56537
56538
56539/***/ }),
56540/* 696 */
56541/***/ (function(module, exports, __webpack_require__) {
56542
56543"use strict";
56544
56545var create = __webpack_require__(697);
56546var descriptor = __webpack_require__(326);
56547var setToStringTag = __webpack_require__(200);
56548var IteratorPrototype = {};
56549
56550// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
56551__webpack_require__(80)(IteratorPrototype, __webpack_require__(32)('iterator'), function () { return this; });
56552
56553module.exports = function (Constructor, NAME, next) {
56554 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
56555 setToStringTag(Constructor, NAME + ' Iterator');
56556};
56557
56558
56559/***/ }),
56560/* 697 */
56561/***/ (function(module, exports, __webpack_require__) {
56562
56563// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
56564var anObject = __webpack_require__(70);
56565var dPs = __webpack_require__(698);
56566var enumBugKeys = __webpack_require__(330);
56567var IE_PROTO = __webpack_require__(199)('IE_PROTO');
56568var Empty = function () { /* empty */ };
56569var PROTOTYPE = 'prototype';
56570
56571// Create object with fake `null` prototype: use iframe Object with cleared prototype
56572var createDict = function () {
56573 // Thrash, waste and sodomy: IE GC bug
56574 var iframe = __webpack_require__(197)('iframe');
56575 var i = enumBugKeys.length;
56576 var lt = '<';
56577 var gt = '>';
56578 var iframeDocument;
56579 iframe.style.display = 'none';
56580 __webpack_require__(331).appendChild(iframe);
56581 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
56582 // createDict = iframe.contentWindow.Object;
56583 // html.removeChild(iframe);
56584 iframeDocument = iframe.contentWindow.document;
56585 iframeDocument.open();
56586 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
56587 iframeDocument.close();
56588 createDict = iframeDocument.F;
56589 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
56590 return createDict();
56591};
56592
56593module.exports = Object.create || function create(O, Properties) {
56594 var result;
56595 if (O !== null) {
56596 Empty[PROTOTYPE] = anObject(O);
56597 result = new Empty();
56598 Empty[PROTOTYPE] = null;
56599 // add "__proto__" for Object.getPrototypeOf polyfill
56600 result[IE_PROTO] = O;
56601 } else result = createDict();
56602 return Properties === undefined ? result : dPs(result, Properties);
56603};
56604
56605
56606/***/ }),
56607/* 698 */
56608/***/ (function(module, exports, __webpack_require__) {
56609
56610var dP = __webpack_require__(135);
56611var anObject = __webpack_require__(70);
56612var getKeys = __webpack_require__(699);
56613
56614module.exports = __webpack_require__(94) ? Object.defineProperties : function defineProperties(O, Properties) {
56615 anObject(O);
56616 var keys = getKeys(Properties);
56617 var length = keys.length;
56618 var i = 0;
56619 var P;
56620 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
56621 return O;
56622};
56623
56624
56625/***/ }),
56626/* 699 */
56627/***/ (function(module, exports, __webpack_require__) {
56628
56629// 19.1.2.14 / 15.2.3.14 Object.keys(O)
56630var $keys = __webpack_require__(700);
56631var enumBugKeys = __webpack_require__(330);
56632
56633module.exports = Object.keys || function keys(O) {
56634 return $keys(O, enumBugKeys);
56635};
56636
56637
56638/***/ }),
56639/* 700 */
56640/***/ (function(module, exports, __webpack_require__) {
56641
56642var has = __webpack_require__(136);
56643var toIObject = __webpack_require__(198);
56644var arrayIndexOf = __webpack_require__(702)(false);
56645var IE_PROTO = __webpack_require__(199)('IE_PROTO');
56646
56647module.exports = function (object, names) {
56648 var O = toIObject(object);
56649 var i = 0;
56650 var result = [];
56651 var key;
56652 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
56653 // Don't enum bug & hidden keys
56654 while (names.length > i) if (has(O, key = names[i++])) {
56655 ~arrayIndexOf(result, key) || result.push(key);
56656 }
56657 return result;
56658};
56659
56660
56661/***/ }),
56662/* 701 */
56663/***/ (function(module, exports, __webpack_require__) {
56664
56665// fallback for non-array-like ES3 and non-enumerable old V8 strings
56666var cof = __webpack_require__(137);
56667// eslint-disable-next-line no-prototype-builtins
56668module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
56669 return cof(it) == 'String' ? it.split('') : Object(it);
56670};
56671
56672
56673/***/ }),
56674/* 702 */
56675/***/ (function(module, exports, __webpack_require__) {
56676
56677// false -> Array#indexOf
56678// true -> Array#includes
56679var toIObject = __webpack_require__(198);
56680var toLength = __webpack_require__(327);
56681var toAbsoluteIndex = __webpack_require__(703);
56682module.exports = function (IS_INCLUDES) {
56683 return function ($this, el, fromIndex) {
56684 var O = toIObject($this);
56685 var length = toLength(O.length);
56686 var index = toAbsoluteIndex(fromIndex, length);
56687 var value;
56688 // Array#includes uses SameValueZero equality algorithm
56689 // eslint-disable-next-line no-self-compare
56690 if (IS_INCLUDES && el != el) while (length > index) {
56691 value = O[index++];
56692 // eslint-disable-next-line no-self-compare
56693 if (value != value) return true;
56694 // Array#indexOf ignores holes, Array#includes - not
56695 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
56696 if (O[index] === el) return IS_INCLUDES || index || 0;
56697 } return !IS_INCLUDES && -1;
56698 };
56699};
56700
56701
56702/***/ }),
56703/* 703 */
56704/***/ (function(module, exports, __webpack_require__) {
56705
56706var toInteger = __webpack_require__(195);
56707var max = Math.max;
56708var min = Math.min;
56709module.exports = function (index, length) {
56710 index = toInteger(index);
56711 return index < 0 ? max(index + length, 0) : min(index, length);
56712};
56713
56714
56715/***/ }),
56716/* 704 */
56717/***/ (function(module, exports, __webpack_require__) {
56718
56719// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
56720var has = __webpack_require__(136);
56721var toObject = __webpack_require__(705);
56722var IE_PROTO = __webpack_require__(199)('IE_PROTO');
56723var ObjectProto = Object.prototype;
56724
56725module.exports = Object.getPrototypeOf || function (O) {
56726 O = toObject(O);
56727 if (has(O, IE_PROTO)) return O[IE_PROTO];
56728 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
56729 return O.constructor.prototype;
56730 } return O instanceof Object ? ObjectProto : null;
56731};
56732
56733
56734/***/ }),
56735/* 705 */
56736/***/ (function(module, exports, __webpack_require__) {
56737
56738// 7.1.13 ToObject(argument)
56739var defined = __webpack_require__(196);
56740module.exports = function (it) {
56741 return Object(defined(it));
56742};
56743
56744
56745/***/ }),
56746/* 706 */
56747/***/ (function(module, exports, __webpack_require__) {
56748
56749__webpack_require__(707);
56750var global = __webpack_require__(31);
56751var hide = __webpack_require__(80);
56752var Iterators = __webpack_require__(95);
56753var TO_STRING_TAG = __webpack_require__(32)('toStringTag');
56754
56755var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
56756 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
56757 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
56758 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
56759 'TextTrackList,TouchList').split(',');
56760
56761for (var i = 0; i < DOMIterables.length; i++) {
56762 var NAME = DOMIterables[i];
56763 var Collection = global[NAME];
56764 var proto = Collection && Collection.prototype;
56765 if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
56766 Iterators[NAME] = Iterators.Array;
56767}
56768
56769
56770/***/ }),
56771/* 707 */
56772/***/ (function(module, exports, __webpack_require__) {
56773
56774"use strict";
56775
56776var addToUnscopables = __webpack_require__(708);
56777var step = __webpack_require__(709);
56778var Iterators = __webpack_require__(95);
56779var toIObject = __webpack_require__(198);
56780
56781// 22.1.3.4 Array.prototype.entries()
56782// 22.1.3.13 Array.prototype.keys()
56783// 22.1.3.29 Array.prototype.values()
56784// 22.1.3.30 Array.prototype[@@iterator]()
56785module.exports = __webpack_require__(323)(Array, 'Array', function (iterated, kind) {
56786 this._t = toIObject(iterated); // target
56787 this._i = 0; // next index
56788 this._k = kind; // kind
56789// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
56790}, function () {
56791 var O = this._t;
56792 var kind = this._k;
56793 var index = this._i++;
56794 if (!O || index >= O.length) {
56795 this._t = undefined;
56796 return step(1);
56797 }
56798 if (kind == 'keys') return step(0, index);
56799 if (kind == 'values') return step(0, O[index]);
56800 return step(0, [index, O[index]]);
56801}, 'values');
56802
56803// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
56804Iterators.Arguments = Iterators.Array;
56805
56806addToUnscopables('keys');
56807addToUnscopables('values');
56808addToUnscopables('entries');
56809
56810
56811/***/ }),
56812/* 708 */
56813/***/ (function(module, exports) {
56814
56815module.exports = function () { /* empty */ };
56816
56817
56818/***/ }),
56819/* 709 */
56820/***/ (function(module, exports) {
56821
56822module.exports = function (done, value) {
56823 return { value: value, done: !!done };
56824};
56825
56826
56827/***/ }),
56828/* 710 */
56829/***/ (function(module, exports, __webpack_require__) {
56830
56831"use strict";
56832
56833var LIBRARY = __webpack_require__(324);
56834var global = __webpack_require__(31);
56835var ctx = __webpack_require__(133);
56836var classof = __webpack_require__(332);
56837var $export = __webpack_require__(132);
56838var isObject = __webpack_require__(93);
56839var aFunction = __webpack_require__(134);
56840var anInstance = __webpack_require__(711);
56841var forOf = __webpack_require__(712);
56842var speciesConstructor = __webpack_require__(333);
56843var task = __webpack_require__(334).set;
56844var microtask = __webpack_require__(717)();
56845var newPromiseCapabilityModule = __webpack_require__(201);
56846var perform = __webpack_require__(335);
56847var promiseResolve = __webpack_require__(336);
56848var PROMISE = 'Promise';
56849var TypeError = global.TypeError;
56850var process = global.process;
56851var $Promise = global[PROMISE];
56852var isNode = classof(process) == 'process';
56853var empty = function () { /* empty */ };
56854var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
56855var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
56856
56857var USE_NATIVE = !!function () {
56858 try {
56859 // correct subclassing with @@species support
56860 var promise = $Promise.resolve(1);
56861 var FakePromise = (promise.constructor = {})[__webpack_require__(32)('species')] = function (exec) {
56862 exec(empty, empty);
56863 };
56864 // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
56865 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
56866 } catch (e) { /* empty */ }
56867}();
56868
56869// helpers
56870var isThenable = function (it) {
56871 var then;
56872 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
56873};
56874var notify = function (promise, isReject) {
56875 if (promise._n) return;
56876 promise._n = true;
56877 var chain = promise._c;
56878 microtask(function () {
56879 var value = promise._v;
56880 var ok = promise._s == 1;
56881 var i = 0;
56882 var run = function (reaction) {
56883 var handler = ok ? reaction.ok : reaction.fail;
56884 var resolve = reaction.resolve;
56885 var reject = reaction.reject;
56886 var domain = reaction.domain;
56887 var result, then;
56888 try {
56889 if (handler) {
56890 if (!ok) {
56891 if (promise._h == 2) onHandleUnhandled(promise);
56892 promise._h = 1;
56893 }
56894 if (handler === true) result = value;
56895 else {
56896 if (domain) domain.enter();
56897 result = handler(value);
56898 if (domain) domain.exit();
56899 }
56900 if (result === reaction.promise) {
56901 reject(TypeError('Promise-chain cycle'));
56902 } else if (then = isThenable(result)) {
56903 then.call(result, resolve, reject);
56904 } else resolve(result);
56905 } else reject(value);
56906 } catch (e) {
56907 reject(e);
56908 }
56909 };
56910 while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
56911 promise._c = [];
56912 promise._n = false;
56913 if (isReject && !promise._h) onUnhandled(promise);
56914 });
56915};
56916var onUnhandled = function (promise) {
56917 task.call(global, function () {
56918 var value = promise._v;
56919 var unhandled = isUnhandled(promise);
56920 var result, handler, console;
56921 if (unhandled) {
56922 result = perform(function () {
56923 if (isNode) {
56924 process.emit('unhandledRejection', value, promise);
56925 } else if (handler = global.onunhandledrejection) {
56926 handler({ promise: promise, reason: value });
56927 } else if ((console = global.console) && console.error) {
56928 console.error('Unhandled promise rejection', value);
56929 }
56930 });
56931 // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
56932 promise._h = isNode || isUnhandled(promise) ? 2 : 1;
56933 } promise._a = undefined;
56934 if (unhandled && result.e) throw result.v;
56935 });
56936};
56937var isUnhandled = function (promise) {
56938 return promise._h !== 1 && (promise._a || promise._c).length === 0;
56939};
56940var onHandleUnhandled = function (promise) {
56941 task.call(global, function () {
56942 var handler;
56943 if (isNode) {
56944 process.emit('rejectionHandled', promise);
56945 } else if (handler = global.onrejectionhandled) {
56946 handler({ promise: promise, reason: promise._v });
56947 }
56948 });
56949};
56950var $reject = function (value) {
56951 var promise = this;
56952 if (promise._d) return;
56953 promise._d = true;
56954 promise = promise._w || promise; // unwrap
56955 promise._v = value;
56956 promise._s = 2;
56957 if (!promise._a) promise._a = promise._c.slice();
56958 notify(promise, true);
56959};
56960var $resolve = function (value) {
56961 var promise = this;
56962 var then;
56963 if (promise._d) return;
56964 promise._d = true;
56965 promise = promise._w || promise; // unwrap
56966 try {
56967 if (promise === value) throw TypeError("Promise can't be resolved itself");
56968 if (then = isThenable(value)) {
56969 microtask(function () {
56970 var wrapper = { _w: promise, _d: false }; // wrap
56971 try {
56972 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
56973 } catch (e) {
56974 $reject.call(wrapper, e);
56975 }
56976 });
56977 } else {
56978 promise._v = value;
56979 promise._s = 1;
56980 notify(promise, false);
56981 }
56982 } catch (e) {
56983 $reject.call({ _w: promise, _d: false }, e); // wrap
56984 }
56985};
56986
56987// constructor polyfill
56988if (!USE_NATIVE) {
56989 // 25.4.3.1 Promise(executor)
56990 $Promise = function Promise(executor) {
56991 anInstance(this, $Promise, PROMISE, '_h');
56992 aFunction(executor);
56993 Internal.call(this);
56994 try {
56995 executor(ctx($resolve, this, 1), ctx($reject, this, 1));
56996 } catch (err) {
56997 $reject.call(this, err);
56998 }
56999 };
57000 // eslint-disable-next-line no-unused-vars
57001 Internal = function Promise(executor) {
57002 this._c = []; // <- awaiting reactions
57003 this._a = undefined; // <- checked in isUnhandled reactions
57004 this._s = 0; // <- state
57005 this._d = false; // <- done
57006 this._v = undefined; // <- value
57007 this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
57008 this._n = false; // <- notify
57009 };
57010 Internal.prototype = __webpack_require__(718)($Promise.prototype, {
57011 // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
57012 then: function then(onFulfilled, onRejected) {
57013 var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
57014 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
57015 reaction.fail = typeof onRejected == 'function' && onRejected;
57016 reaction.domain = isNode ? process.domain : undefined;
57017 this._c.push(reaction);
57018 if (this._a) this._a.push(reaction);
57019 if (this._s) notify(this, false);
57020 return reaction.promise;
57021 },
57022 // 25.4.5.1 Promise.prototype.catch(onRejected)
57023 'catch': function (onRejected) {
57024 return this.then(undefined, onRejected);
57025 }
57026 });
57027 OwnPromiseCapability = function () {
57028 var promise = new Internal();
57029 this.promise = promise;
57030 this.resolve = ctx($resolve, promise, 1);
57031 this.reject = ctx($reject, promise, 1);
57032 };
57033 newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
57034 return C === $Promise || C === Wrapper
57035 ? new OwnPromiseCapability(C)
57036 : newGenericPromiseCapability(C);
57037 };
57038}
57039
57040$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
57041__webpack_require__(200)($Promise, PROMISE);
57042__webpack_require__(719)(PROMISE);
57043Wrapper = __webpack_require__(79)[PROMISE];
57044
57045// statics
57046$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
57047 // 25.4.4.5 Promise.reject(r)
57048 reject: function reject(r) {
57049 var capability = newPromiseCapability(this);
57050 var $$reject = capability.reject;
57051 $$reject(r);
57052 return capability.promise;
57053 }
57054});
57055$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
57056 // 25.4.4.6 Promise.resolve(x)
57057 resolve: function resolve(x) {
57058 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
57059 }
57060});
57061$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(720)(function (iter) {
57062 $Promise.all(iter)['catch'](empty);
57063})), PROMISE, {
57064 // 25.4.4.1 Promise.all(iterable)
57065 all: function all(iterable) {
57066 var C = this;
57067 var capability = newPromiseCapability(C);
57068 var resolve = capability.resolve;
57069 var reject = capability.reject;
57070 var result = perform(function () {
57071 var values = [];
57072 var index = 0;
57073 var remaining = 1;
57074 forOf(iterable, false, function (promise) {
57075 var $index = index++;
57076 var alreadyCalled = false;
57077 values.push(undefined);
57078 remaining++;
57079 C.resolve(promise).then(function (value) {
57080 if (alreadyCalled) return;
57081 alreadyCalled = true;
57082 values[$index] = value;
57083 --remaining || resolve(values);
57084 }, reject);
57085 });
57086 --remaining || resolve(values);
57087 });
57088 if (result.e) reject(result.v);
57089 return capability.promise;
57090 },
57091 // 25.4.4.4 Promise.race(iterable)
57092 race: function race(iterable) {
57093 var C = this;
57094 var capability = newPromiseCapability(C);
57095 var reject = capability.reject;
57096 var result = perform(function () {
57097 forOf(iterable, false, function (promise) {
57098 C.resolve(promise).then(capability.resolve, reject);
57099 });
57100 });
57101 if (result.e) reject(result.v);
57102 return capability.promise;
57103 }
57104});
57105
57106
57107/***/ }),
57108/* 711 */
57109/***/ (function(module, exports) {
57110
57111module.exports = function (it, Constructor, name, forbiddenField) {
57112 if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
57113 throw TypeError(name + ': incorrect invocation!');
57114 } return it;
57115};
57116
57117
57118/***/ }),
57119/* 712 */
57120/***/ (function(module, exports, __webpack_require__) {
57121
57122var ctx = __webpack_require__(133);
57123var call = __webpack_require__(713);
57124var isArrayIter = __webpack_require__(714);
57125var anObject = __webpack_require__(70);
57126var toLength = __webpack_require__(327);
57127var getIterFn = __webpack_require__(715);
57128var BREAK = {};
57129var RETURN = {};
57130var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
57131 var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
57132 var f = ctx(fn, that, entries ? 2 : 1);
57133 var index = 0;
57134 var length, step, iterator, result;
57135 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
57136 // fast case for arrays with default iterator
57137 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
57138 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
57139 if (result === BREAK || result === RETURN) return result;
57140 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
57141 result = call(iterator, f, step.value, entries);
57142 if (result === BREAK || result === RETURN) return result;
57143 }
57144};
57145exports.BREAK = BREAK;
57146exports.RETURN = RETURN;
57147
57148
57149/***/ }),
57150/* 713 */
57151/***/ (function(module, exports, __webpack_require__) {
57152
57153// call something on iterator step with safe closing on error
57154var anObject = __webpack_require__(70);
57155module.exports = function (iterator, fn, value, entries) {
57156 try {
57157 return entries ? fn(anObject(value)[0], value[1]) : fn(value);
57158 // 7.4.6 IteratorClose(iterator, completion)
57159 } catch (e) {
57160 var ret = iterator['return'];
57161 if (ret !== undefined) anObject(ret.call(iterator));
57162 throw e;
57163 }
57164};
57165
57166
57167/***/ }),
57168/* 714 */
57169/***/ (function(module, exports, __webpack_require__) {
57170
57171// check on default Array iterator
57172var Iterators = __webpack_require__(95);
57173var ITERATOR = __webpack_require__(32)('iterator');
57174var ArrayProto = Array.prototype;
57175
57176module.exports = function (it) {
57177 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
57178};
57179
57180
57181/***/ }),
57182/* 715 */
57183/***/ (function(module, exports, __webpack_require__) {
57184
57185var classof = __webpack_require__(332);
57186var ITERATOR = __webpack_require__(32)('iterator');
57187var Iterators = __webpack_require__(95);
57188module.exports = __webpack_require__(79).getIteratorMethod = function (it) {
57189 if (it != undefined) return it[ITERATOR]
57190 || it['@@iterator']
57191 || Iterators[classof(it)];
57192};
57193
57194
57195/***/ }),
57196/* 716 */
57197/***/ (function(module, exports) {
57198
57199// fast apply, http://jsperf.lnkit.com/fast-apply/5
57200module.exports = function (fn, args, that) {
57201 var un = that === undefined;
57202 switch (args.length) {
57203 case 0: return un ? fn()
57204 : fn.call(that);
57205 case 1: return un ? fn(args[0])
57206 : fn.call(that, args[0]);
57207 case 2: return un ? fn(args[0], args[1])
57208 : fn.call(that, args[0], args[1]);
57209 case 3: return un ? fn(args[0], args[1], args[2])
57210 : fn.call(that, args[0], args[1], args[2]);
57211 case 4: return un ? fn(args[0], args[1], args[2], args[3])
57212 : fn.call(that, args[0], args[1], args[2], args[3]);
57213 } return fn.apply(that, args);
57214};
57215
57216
57217/***/ }),
57218/* 717 */
57219/***/ (function(module, exports, __webpack_require__) {
57220
57221var global = __webpack_require__(31);
57222var macrotask = __webpack_require__(334).set;
57223var Observer = global.MutationObserver || global.WebKitMutationObserver;
57224var process = global.process;
57225var Promise = global.Promise;
57226var isNode = __webpack_require__(137)(process) == 'process';
57227
57228module.exports = function () {
57229 var head, last, notify;
57230
57231 var flush = function () {
57232 var parent, fn;
57233 if (isNode && (parent = process.domain)) parent.exit();
57234 while (head) {
57235 fn = head.fn;
57236 head = head.next;
57237 try {
57238 fn();
57239 } catch (e) {
57240 if (head) notify();
57241 else last = undefined;
57242 throw e;
57243 }
57244 } last = undefined;
57245 if (parent) parent.enter();
57246 };
57247
57248 // Node.js
57249 if (isNode) {
57250 notify = function () {
57251 process.nextTick(flush);
57252 };
57253 // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
57254 } else if (Observer && !(global.navigator && global.navigator.standalone)) {
57255 var toggle = true;
57256 var node = document.createTextNode('');
57257 new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
57258 notify = function () {
57259 node.data = toggle = !toggle;
57260 };
57261 // environments with maybe non-completely correct, but existent Promise
57262 } else if (Promise && Promise.resolve) {
57263 var promise = Promise.resolve();
57264 notify = function () {
57265 promise.then(flush);
57266 };
57267 // for other environments - macrotask based on:
57268 // - setImmediate
57269 // - MessageChannel
57270 // - window.postMessag
57271 // - onreadystatechange
57272 // - setTimeout
57273 } else {
57274 notify = function () {
57275 // strange IE + webpack dev server bug - use .call(global)
57276 macrotask.call(global, flush);
57277 };
57278 }
57279
57280 return function (fn) {
57281 var task = { fn: fn, next: undefined };
57282 if (last) last.next = task;
57283 if (!head) {
57284 head = task;
57285 notify();
57286 } last = task;
57287 };
57288};
57289
57290
57291/***/ }),
57292/* 718 */
57293/***/ (function(module, exports, __webpack_require__) {
57294
57295var hide = __webpack_require__(80);
57296module.exports = function (target, src, safe) {
57297 for (var key in src) {
57298 if (safe && target[key]) target[key] = src[key];
57299 else hide(target, key, src[key]);
57300 } return target;
57301};
57302
57303
57304/***/ }),
57305/* 719 */
57306/***/ (function(module, exports, __webpack_require__) {
57307
57308"use strict";
57309
57310var global = __webpack_require__(31);
57311var core = __webpack_require__(79);
57312var dP = __webpack_require__(135);
57313var DESCRIPTORS = __webpack_require__(94);
57314var SPECIES = __webpack_require__(32)('species');
57315
57316module.exports = function (KEY) {
57317 var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
57318 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
57319 configurable: true,
57320 get: function () { return this; }
57321 });
57322};
57323
57324
57325/***/ }),
57326/* 720 */
57327/***/ (function(module, exports, __webpack_require__) {
57328
57329var ITERATOR = __webpack_require__(32)('iterator');
57330var SAFE_CLOSING = false;
57331
57332try {
57333 var riter = [7][ITERATOR]();
57334 riter['return'] = function () { SAFE_CLOSING = true; };
57335 // eslint-disable-next-line no-throw-literal
57336 Array.from(riter, function () { throw 2; });
57337} catch (e) { /* empty */ }
57338
57339module.exports = function (exec, skipClosing) {
57340 if (!skipClosing && !SAFE_CLOSING) return false;
57341 var safe = false;
57342 try {
57343 var arr = [7];
57344 var iter = arr[ITERATOR]();
57345 iter.next = function () { return { done: safe = true }; };
57346 arr[ITERATOR] = function () { return iter; };
57347 exec(arr);
57348 } catch (e) { /* empty */ }
57349 return safe;
57350};
57351
57352
57353/***/ }),
57354/* 721 */
57355/***/ (function(module, exports, __webpack_require__) {
57356
57357"use strict";
57358// https://github.com/tc39/proposal-promise-finally
57359
57360var $export = __webpack_require__(132);
57361var core = __webpack_require__(79);
57362var global = __webpack_require__(31);
57363var speciesConstructor = __webpack_require__(333);
57364var promiseResolve = __webpack_require__(336);
57365
57366$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
57367 var C = speciesConstructor(this, core.Promise || global.Promise);
57368 var isFunction = typeof onFinally == 'function';
57369 return this.then(
57370 isFunction ? function (x) {
57371 return promiseResolve(C, onFinally()).then(function () { return x; });
57372 } : onFinally,
57373 isFunction ? function (e) {
57374 return promiseResolve(C, onFinally()).then(function () { throw e; });
57375 } : onFinally
57376 );
57377} });
57378
57379
57380/***/ }),
57381/* 722 */
57382/***/ (function(module, exports, __webpack_require__) {
57383
57384"use strict";
57385
57386// https://github.com/tc39/proposal-promise-try
57387var $export = __webpack_require__(132);
57388var newPromiseCapability = __webpack_require__(201);
57389var perform = __webpack_require__(335);
57390
57391$export($export.S, 'Promise', { 'try': function (callbackfn) {
57392 var promiseCapability = newPromiseCapability.f(this);
57393 var result = perform(callbackfn);
57394 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
57395 return promiseCapability.promise;
57396} });
57397
57398
57399/***/ }),
57400/* 723 */
57401/***/ (function(module, exports, __webpack_require__) {
57402
57403"use strict";
57404
57405
57406exports.__esModule = true;
57407
57408var _promise = __webpack_require__(322);
57409
57410var _promise2 = _interopRequireDefault(_promise);
57411
57412function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
57413
57414exports.default = function (fn) {
57415 return function () {
57416 var gen = fn.apply(this, arguments);
57417 return new _promise2.default(function (resolve, reject) {
57418 function step(key, arg) {
57419 try {
57420 var info = gen[key](arg);
57421 var value = info.value;
57422 } catch (error) {
57423 reject(error);
57424 return;
57425 }
57426
57427 if (info.done) {
57428 resolve(value);
57429 } else {
57430 return _promise2.default.resolve(value).then(function (value) {
57431 step("next", value);
57432 }, function (err) {
57433 step("throw", err);
57434 });
57435 }
57436 }
57437
57438 return step("next");
57439 });
57440 };
57441};
57442
57443/***/ }),
57444/* 724 */
57445/***/ (function(module, exports, __webpack_require__) {
57446
57447"use strict";
57448
57449
57450Object.defineProperty(exports, "__esModule", {
57451 value: true
57452});
57453exports.connectionArgs = exports.backwardConnectionArgs = exports.forwardConnectionArgs = undefined;
57454
57455var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
57456 * Copyright (c) 2015-present, Facebook, Inc.
57457 *
57458 * This source code is licensed under the MIT license found in the
57459 * LICENSE file in the root directory of this source tree.
57460 *
57461 *
57462 */
57463
57464exports.connectionDefinitions = connectionDefinitions;
57465
57466var _graphql = __webpack_require__(14);
57467
57468/**
57469 * Returns a GraphQLFieldConfigArgumentMap appropriate to include on a field
57470 * whose return type is a connection type with forward pagination.
57471 */
57472var forwardConnectionArgs = exports.forwardConnectionArgs = {
57473 after: {
57474 type: _graphql.GraphQLString
57475 },
57476 first: {
57477 type: _graphql.GraphQLInt
57478 }
57479};
57480
57481/**
57482 * Returns a GraphQLFieldConfigArgumentMap appropriate to include on a field
57483 * whose return type is a connection type with backward pagination.
57484 */
57485var backwardConnectionArgs = exports.backwardConnectionArgs = {
57486 before: {
57487 type: _graphql.GraphQLString
57488 },
57489 last: {
57490 type: _graphql.GraphQLInt
57491 }
57492};
57493
57494/**
57495 * Returns a GraphQLFieldConfigArgumentMap appropriate to include on a field
57496 * whose return type is a connection type with bidirectional pagination.
57497 */
57498var connectionArgs = exports.connectionArgs = _extends({}, forwardConnectionArgs, backwardConnectionArgs);
57499
57500function resolveMaybeThunk(thingOrThunk) {
57501 return typeof thingOrThunk === 'function' ? thingOrThunk() : thingOrThunk;
57502}
57503
57504/**
57505 * Returns a GraphQLObjectType for a connection with the given name,
57506 * and whose nodes are of the specified type.
57507 */
57508function connectionDefinitions(config) {
57509 var nodeType = config.nodeType;
57510
57511 var name = config.name || nodeType.name;
57512 var edgeFields = config.edgeFields || {};
57513 var connectionFields = config.connectionFields || {};
57514 var resolveNode = config.resolveNode;
57515 var resolveCursor = config.resolveCursor;
57516 var edgeType = new _graphql.GraphQLObjectType({
57517 name: name + 'Edge',
57518 description: 'An edge in a connection.',
57519 fields: function fields() {
57520 return _extends({
57521 node: {
57522 type: nodeType,
57523 resolve: resolveNode,
57524 description: 'The item at the end of the edge'
57525 },
57526 cursor: {
57527 type: new _graphql.GraphQLNonNull(_graphql.GraphQLString),
57528 resolve: resolveCursor,
57529 description: 'A cursor for use in pagination'
57530 }
57531 }, resolveMaybeThunk(edgeFields));
57532 }
57533 });
57534
57535 var connectionType = new _graphql.GraphQLObjectType({
57536 name: name + 'Connection',
57537 description: 'A connection to a list of items.',
57538 fields: function fields() {
57539 return _extends({
57540 pageInfo: {
57541 type: new _graphql.GraphQLNonNull(pageInfoType),
57542 description: 'Information to aid in pagination.'
57543 },
57544 edges: {
57545 type: new _graphql.GraphQLList(edgeType),
57546 description: 'A list of edges.'
57547 }
57548 }, resolveMaybeThunk(connectionFields));
57549 }
57550 });
57551
57552 return { edgeType: edgeType, connectionType: connectionType };
57553}
57554
57555/**
57556 * The common page info type used by all connections.
57557 */
57558var pageInfoType = new _graphql.GraphQLObjectType({
57559 name: 'PageInfo',
57560 description: 'Information about pagination in a connection.',
57561 fields: function fields() {
57562 return {
57563 hasNextPage: {
57564 type: new _graphql.GraphQLNonNull(_graphql.GraphQLBoolean),
57565 description: 'When paginating forwards, are there more items?'
57566 },
57567 hasPreviousPage: {
57568 type: new _graphql.GraphQLNonNull(_graphql.GraphQLBoolean),
57569 description: 'When paginating backwards, are there more items?'
57570 },
57571 startCursor: {
57572 type: _graphql.GraphQLString,
57573 description: 'When paginating backwards, the cursor to continue.'
57574 },
57575 endCursor: {
57576 type: _graphql.GraphQLString,
57577 description: 'When paginating forwards, the cursor to continue.'
57578 }
57579 };
57580 }
57581});
57582
57583/***/ }),
57584/* 725 */
57585/***/ (function(module, exports, __webpack_require__) {
57586
57587"use strict";
57588
57589
57590Object.defineProperty(exports, "__esModule", {
57591 value: true
57592});
57593exports.connectionFromArray = connectionFromArray;
57594exports.connectionFromPromisedArray = connectionFromPromisedArray;
57595exports.connectionFromArraySlice = connectionFromArraySlice;
57596exports.connectionFromPromisedArraySlice = connectionFromPromisedArraySlice;
57597exports.offsetToCursor = offsetToCursor;
57598exports.cursorToOffset = cursorToOffset;
57599exports.cursorForObjectInConnection = cursorForObjectInConnection;
57600exports.getOffsetWithDefault = getOffsetWithDefault;
57601
57602var _base = __webpack_require__(337);
57603
57604/**
57605 * A simple function that accepts an array and connection arguments, and returns
57606 * a connection object for use in GraphQL. It uses array offsets as pagination,
57607 * so pagination will only work if the array is static.
57608 */
57609/**
57610 * Copyright (c) 2015-present, Facebook, Inc.
57611 *
57612 * This source code is licensed under the MIT license found in the
57613 * LICENSE file in the root directory of this source tree.
57614 *
57615 *
57616 */
57617
57618function connectionFromArray(data, args) {
57619 return connectionFromArraySlice(data, args, {
57620 sliceStart: 0,
57621 arrayLength: data.length
57622 });
57623}
57624
57625/**
57626 * A version of `connectionFromArray` that takes a promised array, and returns a
57627 * promised connection.
57628 */
57629function connectionFromPromisedArray(dataPromise, args) {
57630 return dataPromise.then(function (data) {
57631 return connectionFromArray(data, args);
57632 });
57633}
57634
57635/**
57636 * Given a slice (subset) of an array, returns a connection object for use in
57637 * GraphQL.
57638 *
57639 * This function is similar to `connectionFromArray`, but is intended for use
57640 * cases where you know the cardinality of the connection, consider it too large
57641 * to materialize the entire array, and instead wish pass in a slice of the
57642 * total result large enough to cover the range specified in `args`.
57643 */
57644function connectionFromArraySlice(arraySlice, args, meta) {
57645 var after = args.after,
57646 before = args.before,
57647 first = args.first,
57648 last = args.last;
57649 var sliceStart = meta.sliceStart,
57650 arrayLength = meta.arrayLength;
57651
57652 var sliceEnd = sliceStart + arraySlice.length;
57653 var beforeOffset = getOffsetWithDefault(before, arrayLength);
57654 var afterOffset = getOffsetWithDefault(after, -1);
57655
57656 var startOffset = Math.max(sliceStart - 1, afterOffset, -1) + 1;
57657 var endOffset = Math.min(sliceEnd, beforeOffset, arrayLength);
57658 if (typeof first === 'number') {
57659 if (first < 0) {
57660 throw new Error('Argument "first" must be a non-negative integer');
57661 }
57662
57663 endOffset = Math.min(endOffset, startOffset + first);
57664 }
57665 if (typeof last === 'number') {
57666 if (last < 0) {
57667 throw new Error('Argument "last" must be a non-negative integer');
57668 }
57669
57670 startOffset = Math.max(startOffset, endOffset - last);
57671 }
57672
57673 // If supplied slice is too large, trim it down before mapping over it.
57674 var slice = arraySlice.slice(Math.max(startOffset - sliceStart, 0), arraySlice.length - (sliceEnd - endOffset));
57675
57676 var edges = slice.map(function (value, index) {
57677 return {
57678 cursor: offsetToCursor(startOffset + index),
57679 node: value
57680 };
57681 });
57682
57683 var firstEdge = edges[0];
57684 var lastEdge = edges[edges.length - 1];
57685 var lowerBound = after ? afterOffset + 1 : 0;
57686 var upperBound = before ? beforeOffset : arrayLength;
57687 return {
57688 edges: edges,
57689 pageInfo: {
57690 startCursor: firstEdge ? firstEdge.cursor : null,
57691 endCursor: lastEdge ? lastEdge.cursor : null,
57692 hasPreviousPage: typeof last === 'number' ? startOffset > lowerBound : false,
57693 hasNextPage: typeof first === 'number' ? endOffset < upperBound : false
57694 }
57695 };
57696}
57697
57698/**
57699 * A version of `connectionFromArraySlice` that takes a promised array slice,
57700 * and returns a promised connection.
57701 */
57702function connectionFromPromisedArraySlice(dataPromise, args, arrayInfo) {
57703 return dataPromise.then(function (data) {
57704 return connectionFromArraySlice(data, args, arrayInfo);
57705 });
57706}
57707
57708var PREFIX = 'arrayconnection:';
57709
57710/**
57711 * Creates the cursor string from an offset.
57712 */
57713function offsetToCursor(offset) {
57714 return (0, _base.base64)(PREFIX + offset);
57715}
57716
57717/**
57718 * Rederives the offset from the cursor string.
57719 */
57720function cursorToOffset(cursor) {
57721 return parseInt((0, _base.unbase64)(cursor).substring(PREFIX.length), 10);
57722}
57723
57724/**
57725 * Return the cursor associated with an object in an array.
57726 */
57727function cursorForObjectInConnection(data, object) {
57728 var offset = data.indexOf(object);
57729 if (offset === -1) {
57730 return null;
57731 }
57732 return offsetToCursor(offset);
57733}
57734
57735/**
57736 * Given an optional cursor and a default offset, returns the offset
57737 * to use; if the cursor contains a valid offset, that will be used,
57738 * otherwise it will be the default.
57739 */
57740function getOffsetWithDefault(cursor, defaultOffset) {
57741 if (typeof cursor !== 'string') {
57742 return defaultOffset;
57743 }
57744 var offset = cursorToOffset(cursor);
57745 return isNaN(offset) ? defaultOffset : offset;
57746}
57747
57748/***/ }),
57749/* 726 */
57750/***/ (function(module, exports, __webpack_require__) {
57751
57752"use strict";
57753
57754
57755Object.defineProperty(exports, "__esModule", {
57756 value: true
57757});
57758
57759var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /**
57760 * Copyright (c) 2015-present, Facebook, Inc.
57761 *
57762 * This source code is licensed under the MIT license found in the
57763 * LICENSE file in the root directory of this source tree.
57764 *
57765 *
57766 */
57767
57768exports.mutationWithClientMutationId = mutationWithClientMutationId;
57769
57770var _graphql = __webpack_require__(14);
57771
57772function resolveMaybeThunk(thingOrThunk) {
57773 return typeof thingOrThunk === 'function' ? thingOrThunk() : thingOrThunk;
57774}
57775
57776/**
57777 * A description of a mutation consumable by mutationWithClientMutationId
57778 * to create a GraphQLFieldConfig for that mutation.
57779 *
57780 * The inputFields and outputFields should not include `clientMutationId`,
57781 * as this will be provided automatically.
57782 *
57783 * An input object will be created containing the input fields, and an
57784 * object will be created containing the output fields.
57785 *
57786 * mutateAndGetPayload will receive an Object with a key for each
57787 * input field, and it should return an Object with a key for each
57788 * output field. It may return synchronously, or return a Promise.
57789 */
57790
57791
57792/**
57793 * Returns a GraphQLFieldConfig for the mutation described by the
57794 * provided MutationConfig.
57795 */
57796function mutationWithClientMutationId(config) {
57797 var name = config.name,
57798 description = config.description,
57799 deprecationReason = config.deprecationReason,
57800 inputFields = config.inputFields,
57801 outputFields = config.outputFields,
57802 mutateAndGetPayload = config.mutateAndGetPayload;
57803
57804 var augmentedInputFields = function augmentedInputFields() {
57805 return _extends({}, resolveMaybeThunk(inputFields), {
57806 clientMutationId: {
57807 type: _graphql.GraphQLString
57808 }
57809 });
57810 };
57811 var augmentedOutputFields = function augmentedOutputFields() {
57812 return _extends({}, resolveMaybeThunk(outputFields), {
57813 clientMutationId: {
57814 type: _graphql.GraphQLString
57815 }
57816 });
57817 };
57818
57819 var outputType = new _graphql.GraphQLObjectType({
57820 name: name + 'Payload',
57821 fields: augmentedOutputFields
57822 });
57823
57824 var inputType = new _graphql.GraphQLInputObjectType({
57825 name: name + 'Input',
57826 fields: augmentedInputFields
57827 });
57828
57829 return {
57830 type: outputType,
57831 description: description,
57832 deprecationReason: deprecationReason,
57833 args: {
57834 input: { type: new _graphql.GraphQLNonNull(inputType) }
57835 },
57836 resolve: function resolve(_, _ref, context, info) {
57837 var input = _ref.input;
57838
57839 return Promise.resolve(mutateAndGetPayload(input, context, info)).then(function (payload) {
57840 payload.clientMutationId = input.clientMutationId;
57841 return payload;
57842 });
57843 }
57844 };
57845}
57846
57847/***/ }),
57848/* 727 */
57849/***/ (function(module, exports, __webpack_require__) {
57850
57851"use strict";
57852
57853
57854Object.defineProperty(exports, "__esModule", {
57855 value: true
57856});
57857exports.nodeDefinitions = nodeDefinitions;
57858exports.toGlobalId = toGlobalId;
57859exports.fromGlobalId = fromGlobalId;
57860exports.globalIdField = globalIdField;
57861
57862var _graphql = __webpack_require__(14);
57863
57864var _base = __webpack_require__(337);
57865
57866/**
57867 * Given a function to map from an ID to an underlying object, and a function
57868 * to map from an underlying object to the concrete GraphQLObjectType it
57869 * corresponds to, constructs a `Node` interface that objects can implement,
57870 * and a field config for a `node` root field.
57871 *
57872 * If the typeResolver is omitted, object resolution on the interface will be
57873 * handled with the `isTypeOf` method on object types, as with any GraphQL
57874 * interface without a provided `resolveType` method.
57875 */
57876/**
57877 * Copyright (c) 2015-present, Facebook, Inc.
57878 *
57879 * This source code is licensed under the MIT license found in the
57880 * LICENSE file in the root directory of this source tree.
57881 *
57882 *
57883 */
57884
57885function nodeDefinitions(idFetcher, typeResolver) {
57886 var nodeInterface = new _graphql.GraphQLInterfaceType({
57887 name: 'Node',
57888 description: 'An object with an ID',
57889 fields: function fields() {
57890 return {
57891 id: {
57892 type: new _graphql.GraphQLNonNull(_graphql.GraphQLID),
57893 description: 'The id of the object.'
57894 }
57895 };
57896 },
57897 resolveType: typeResolver
57898 });
57899
57900 var nodeField = {
57901 name: 'node',
57902 description: 'Fetches an object given its ID',
57903 type: nodeInterface,
57904 args: {
57905 id: {
57906 type: new _graphql.GraphQLNonNull(_graphql.GraphQLID),
57907 description: 'The ID of an object'
57908 }
57909 },
57910 resolve: function resolve(obj, _ref, context, info) {
57911 var id = _ref.id;
57912 return idFetcher(id, context, info);
57913 }
57914 };
57915
57916 var nodesField = {
57917 name: 'nodes',
57918 description: 'Fetches objects given their IDs',
57919 type: new _graphql.GraphQLNonNull(new _graphql.GraphQLList(nodeInterface)),
57920 args: {
57921 ids: {
57922 type: new _graphql.GraphQLNonNull(new _graphql.GraphQLList(new _graphql.GraphQLNonNull(_graphql.GraphQLID))),
57923 description: 'The IDs of objects'
57924 }
57925 },
57926 resolve: function resolve(obj, _ref2, context, info) {
57927 var ids = _ref2.ids;
57928 return Promise.all(ids.map(function (id) {
57929 return Promise.resolve(idFetcher(id, context, info));
57930 }));
57931 }
57932 };
57933
57934 return { nodeInterface: nodeInterface, nodeField: nodeField, nodesField: nodesField };
57935}
57936
57937/**
57938 * Takes a type name and an ID specific to that type name, and returns a
57939 * "global ID" that is unique among all types.
57940 */
57941function toGlobalId(type, id) {
57942 return (0, _base.base64)([type, id].join(':'));
57943}
57944
57945/**
57946 * Takes the "global ID" created by toGlobalID, and returns the type name and ID
57947 * used to create it.
57948 */
57949function fromGlobalId(globalId) {
57950 var unbasedGlobalId = (0, _base.unbase64)(globalId);
57951 var delimiterPos = unbasedGlobalId.indexOf(':');
57952 return {
57953 type: unbasedGlobalId.substring(0, delimiterPos),
57954 id: unbasedGlobalId.substring(delimiterPos + 1)
57955 };
57956}
57957
57958/**
57959 * Creates the configuration for an id field on a node, using `toGlobalId` to
57960 * construct the ID from the provided typename. The type-specific ID is fetched
57961 * by calling idFetcher on the object, or if not provided, by accessing the `id`
57962 * property on the object.
57963 */
57964function globalIdField(typeName, idFetcher) {
57965 return {
57966 name: 'id',
57967 description: 'The ID of an object',
57968 type: new _graphql.GraphQLNonNull(_graphql.GraphQLID),
57969 resolve: function resolve(obj, args, context, info) {
57970 return toGlobalId(typeName || info.parentType.name, idFetcher ? idFetcher(obj, context, info) : obj.id);
57971 }
57972 };
57973}
57974
57975/***/ }),
57976/* 728 */
57977/***/ (function(module, exports, __webpack_require__) {
57978
57979"use strict";
57980
57981
57982Object.defineProperty(exports, "__esModule", {
57983 value: true
57984});
57985exports.pluralIdentifyingRootField = pluralIdentifyingRootField;
57986
57987var _graphql = __webpack_require__(14);
57988
57989function pluralIdentifyingRootField(config) {
57990 var inputArgs = {};
57991 var inputType = config.inputType;
57992 if (inputType instanceof _graphql.GraphQLNonNull) {
57993 inputType = inputType.ofType;
57994 }
57995 inputArgs[config.argName] = {
57996 type: new _graphql.GraphQLNonNull(new _graphql.GraphQLList(new _graphql.GraphQLNonNull(inputType)))
57997 };
57998 return {
57999 description: config.description,
58000 type: new _graphql.GraphQLList(config.outputType),
58001 args: inputArgs,
58002 resolve: function resolve(obj, args, context, info) {
58003 var inputs = args[config.argName];
58004 return Promise.all(inputs.map(function (input) {
58005 return Promise.resolve(config.resolveSingleInput(input, context, info));
58006 }));
58007 }
58008 };
58009} /**
58010 * Copyright (c) 2015-present, Facebook, Inc.
58011 *
58012 * This source code is licensed under the MIT license found in the
58013 * LICENSE file in the root directory of this source tree.
58014 *
58015 *
58016 */
58017
58018/***/ }),
58019/* 729 */
58020/***/ (function(module, exports, __webpack_require__) {
58021
58022"use strict";
58023
58024
58025Object.defineProperty(exports, "__esModule", {
58026 value: true
58027});
58028
58029var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
58030
58031var _graphql = __webpack_require__(14);
58032
58033var _graphqlRelay = __webpack_require__(96);
58034
58035var _Activity = __webpack_require__(338);
58036
58037function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
58038
58039var setter = {
58040 isSocial: {
58041 type: _graphql.GraphQLString,
58042 description: 'is social account'
58043 },
58044 clientID: {
58045 type: _graphql.GraphQLString,
58046 description: 'clientID'
58047 },
58048 displayName: {
58049 type: _graphql.GraphQLString,
58050 description: 'display name'
58051 },
58052 lastName: {
58053 type: _graphql.GraphQLString,
58054 description: 'last name'
58055 },
58056 firstName: {
58057 type: _graphql.GraphQLString,
58058 description: 'first name'
58059 },
58060 email: {
58061 type: _graphql.GraphQLString,
58062 description: 'email'
58063 },
58064 nickname: {
58065 type: _graphql.GraphQLString,
58066 description: 'user name'
58067 },
58068 token: {
58069 type: _graphql.GraphQLString,
58070 description: 'token'
58071 },
58072 locale: {
58073 type: _graphql.GraphQLString,
58074 description: 'locals ex: fr'
58075 },
58076 provider: {
58077 type: _graphql.GraphQLString,
58078 description: 'auth provider'
58079 },
58080 picture: {
58081 type: _graphql.GraphQLString,
58082 description: 'picture'
58083 },
58084 updatedAT: {
58085 type: _graphql.GraphQLString,
58086 description: 'updated at'
58087 },
58088 userID: {
58089 type: _graphql.GraphQLString,
58090 description: 'user id'
58091 },
58092 activitiesID: {
58093 type: new _graphql.GraphQLList(_graphql.GraphQLString),
58094 description: 'activities id'
58095 }
58096};
58097
58098var getter = _extends({}, setter, {
58099 id: (0, _graphqlRelay.globalIdField)('User'),
58100 activities: {
58101 type: new _graphql.GraphQLList((0, _Activity.getActivityType)('OwnActivities')),
58102 description: 'activities id',
58103 resolve: function () {
58104 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(obj, args, _ref2) {
58105 var loaders = _ref2.loaders;
58106 var activities;
58107 return regeneratorRuntime.wrap(function _callee$(_context) {
58108 while (1) {
58109 switch (_context.prev = _context.next) {
58110 case 0:
58111 if (obj.activitiesID) {
58112 _context.next = 2;
58113 break;
58114 }
58115
58116 return _context.abrupt('return', null);
58117
58118 case 2:
58119 _context.next = 4;
58120 return loaders.activity.loadManyByURL(obj.activitiesID);
58121
58122 case 4:
58123 activities = _context.sent;
58124 return _context.abrupt('return', activities);
58125
58126 case 6:
58127 case 'end':
58128 return _context.stop();
58129 }
58130 }
58131 }, _callee, undefined);
58132 }));
58133
58134 return function resolve(_x, _x2, _x3) {
58135 return _ref.apply(this, arguments);
58136 };
58137 }()
58138 }
58139});
58140
58141var getUserType = function getUserType(nodeInterface) {
58142 var UserType = new _graphql.GraphQLObjectType({
58143 name: 'User',
58144 description: 'users',
58145 fields: getter,
58146 interfaces: [nodeInterface]
58147 });
58148 return UserType;
58149};
58150
58151var getUserInputType = function getUserInputType() {
58152 return new _graphql.GraphQLInputObjectType({
58153 name: 'UserInput',
58154 fields: setter
58155 });
58156};
58157
58158exports.default = { getUserType: getUserType, getUserInputType: getUserInputType };
58159module.exports = exports['default'];
58160
58161/***/ }),
58162/* 730 */
58163/***/ (function(module, exports, __webpack_require__) {
58164
58165"use strict";
58166
58167
58168Object.defineProperty(exports, "__esModule", {
58169 value: true
58170});
58171
58172var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
58173
58174var _graphql = __webpack_require__(14);
58175
58176var _graphqlRelay = __webpack_require__(96);
58177
58178// many locations
58179var setterLocations = {
58180 userId: {
58181 type: _graphql.GraphQLString,
58182 description: 'userId'
58183 },
58184 lat: {
58185 type: _graphql.GraphQLString,
58186 description: 'latitude'
58187 },
58188 lon: {
58189 type: _graphql.GraphQLString,
58190 description: 'longitude'
58191 }
58192};
58193
58194var getterLocations = _extends({}, setterLocations, {
58195 id: (0, _graphqlRelay.globalIdField)('Geolocations'),
58196 userId: _extends({}, setterLocations.userId, {
58197 resolve: function resolve(obj) {
58198 return obj.userId;
58199 }
58200 }),
58201 lat: _extends({}, setterLocations.lat, {
58202 resolve: function resolve(obj) {
58203 return obj.latitude;
58204 }
58205 }),
58206 lon: _extends({}, setterLocations.lon, {
58207 resolve: function resolve(obj) {
58208 return obj.longitude;
58209 }
58210 })
58211});
58212
58213var getGeolocationsType = function getGeolocationsType(nodeInterface) {
58214 var UserType = new _graphql.GraphQLObjectType({
58215 name: 'Geolocations',
58216 description: 'Geolocations users informations',
58217 fields: getterLocations,
58218 interfaces: [nodeInterface]
58219 });
58220 return UserType;
58221};
58222
58223var getGeolocationsInputType = function getGeolocationsInputType() {
58224 return new _graphql.GraphQLInputObjectType({
58225 name: 'GeolocationsInput',
58226 fields: setterLocations
58227 });
58228};
58229
58230// one location
58231var setterLocation = {
58232 collectionID: {
58233 type: _graphql.GraphQLString,
58234 description: 'id collection'
58235 },
58236 key: {
58237 type: _graphql.GraphQLString,
58238 description: 'latitude'
58239 },
58240 lat: {
58241 type: _graphql.GraphQLString,
58242 description: 'latitude'
58243 },
58244 lon: {
58245 type: _graphql.GraphQLString,
58246 description: 'longitude'
58247 }
58248};
58249
58250var setterLocationOptionals = {
58251 fetchCloseUsers: {
58252 type: _graphql.GraphQLBoolean,
58253 description: 'fetch close users in response'
58254 },
58255 unit: {
58256 type: _graphql.GraphQLString,
58257 description: 'unit distance: km, m'
58258 },
58259 distance: {
58260 type: _graphql.GraphQLString,
58261 description: 'rayon distance to scan'
58262 }
58263};
58264
58265var getterLocation = _extends({}, setterLocation, {
58266 id: (0, _graphqlRelay.globalIdField)('Geolocations'),
58267 collectionID: _extends({}, setterLocation.collectionID, {
58268 resolve: function resolve(obj) {
58269 return obj.data.id;
58270 }
58271 }),
58272 key: _extends({}, setterLocation.key, {
58273 resolve: function resolve(obj) {
58274 return obj.data.key;
58275 }
58276 }),
58277 lat: _extends({}, setterLocation.key, {
58278 resolve: function resolve(obj) {
58279 return obj.data.location[0];
58280 }
58281 }),
58282 lon: _extends({}, setterLocation.key, {
58283 resolve: function resolve(obj) {
58284 return obj.data.location[1];
58285 }
58286 })
58287});
58288
58289var getGeolocationType = function getGeolocationType(nodeInterface) {
58290 var UserType = new _graphql.GraphQLObjectType({
58291 name: 'Geolocation',
58292 description: 'Geolocations user informations',
58293 fields: getterLocation,
58294 interfaces: [nodeInterface]
58295 });
58296 return UserType;
58297};
58298
58299var getGeolocationInputType = function getGeolocationInputType() {
58300 return new _graphql.GraphQLInputObjectType({
58301 name: 'GeolocationInput',
58302 fields: _extends({}, setterLocation, setterLocationOptionals)
58303 });
58304};
58305
58306// distance
58307var setterDistanceLocation = {
58308 key: {
58309 type: _graphql.GraphQLString,
58310 description: 'from key'
58311 },
58312 foreignKey: {
58313 type: _graphql.GraphQLString,
58314 description: 'to foreignKey'
58315 },
58316 distance: {
58317 type: _graphql.GraphQLString,
58318 description: 'distance'
58319 }
58320};
58321
58322var getterDistanceLocation = _extends({}, setterDistanceLocation, {
58323 id: (0, _graphqlRelay.globalIdField)('Distance'),
58324 key: _extends({}, setterLocation.key, {
58325 resolve: function resolve(obj) {
58326 return obj.data.x;
58327 }
58328 }),
58329 foreignKey: _extends({}, setterLocation.key, {
58330 resolve: function resolve(obj) {
58331 return obj.data.y;
58332 }
58333 }),
58334 distance: _extends({}, setterLocation.key, {
58335 resolve: function resolve(obj) {
58336 return obj.data.distance;
58337 }
58338 })
58339});
58340
58341var getGeolocationsDistanceType = function getGeolocationsDistanceType(nodeInterface) {
58342 var UserType = new _graphql.GraphQLObjectType({
58343 name: 'Distance',
58344 description: 'Geolocations user informations',
58345 fields: getterDistanceLocation,
58346 interfaces: [nodeInterface]
58347 });
58348 return UserType;
58349};
58350
58351var getGeolocationsDistanceInputType = function getGeolocationsDistanceInputType() {
58352 return new _graphql.GraphQLInputObjectType({
58353 name: 'DistanceInput',
58354 fields: setterDistanceLocation
58355 });
58356};
58357
58358exports.default = {
58359 getGeolocationType: getGeolocationType,
58360 getGeolocationInputType: getGeolocationInputType,
58361 getGeolocationsType: getGeolocationsType,
58362 getGeolocationsInputType: getGeolocationsInputType,
58363 getGeolocationsDistanceType: getGeolocationsDistanceType,
58364 getGeolocationsDistanceInputType: getGeolocationsDistanceInputType
58365};
58366module.exports = exports['default'];
58367
58368/***/ }),
58369/* 731 */
58370/***/ (function(module, exports, __webpack_require__) {
58371
58372"use strict";
58373
58374
58375Object.defineProperty(exports, "__esModule", {
58376 value: true
58377});
58378
58379var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
58380
58381var _graphql = __webpack_require__(14);
58382
58383var _graphqlRelay = __webpack_require__(96);
58384
58385var setter = {
58386 scoreID: {
58387 type: _graphql.GraphQLString,
58388 description: 'id'
58389 },
58390 activityRequestID: {
58391 type: _graphql.GraphQLString,
58392 description: 'activity ID'
58393 },
58394 activitySearchID: {
58395 type: _graphql.GraphQLString,
58396 description: 'matched activities ids'
58397 },
58398 score: {
58399 type: _graphql.GraphQLString,
58400 description: 'matched activities ids'
58401 }
58402};
58403
58404var getter = _extends({}, setter, {
58405 id: (0, _graphqlRelay.globalIdField)('Score')
58406});
58407
58408var getScoreType = function getScoreType(nodeInterface) {
58409 var ScoreType = new _graphql.GraphQLObjectType({
58410 name: 'Score',
58411 description: 'Score',
58412 fields: getter,
58413 interfaces: [nodeInterface]
58414 });
58415 return ScoreType;
58416};
58417
58418var getScoreInputType = function getScoreInputType() {
58419 return new _graphql.GraphQLInputObjectType({
58420 name: 'ScoreInput',
58421 fields: setter
58422 });
58423};
58424
58425exports.default = { getScoreType: getScoreType, getScoreInputType: getScoreInputType };
58426module.exports = exports['default'];
58427
58428/***/ }),
58429/* 732 */
58430/***/ (function(module, exports, __webpack_require__) {
58431
58432"use strict";
58433
58434
58435Object.defineProperty(exports, "__esModule", {
58436 value: true
58437});
58438
58439var _graphqlSubscriptions = __webpack_require__(733);
58440
58441var pubsub = new _graphqlSubscriptions.PubSub();
58442
58443exports.default = pubsub;
58444module.exports = exports['default'];
58445
58446/***/ }),
58447/* 733 */
58448/***/ (function(module, exports, __webpack_require__) {
58449
58450"use strict";
58451
58452Object.defineProperty(exports, "__esModule", { value: true });
58453var pubsub_1 = __webpack_require__(734);
58454exports.PubSub = pubsub_1.PubSub;
58455var with_filter_1 = __webpack_require__(736);
58456exports.withFilter = with_filter_1.withFilter;
58457//# sourceMappingURL=index.js.map
58458
58459/***/ }),
58460/* 734 */
58461/***/ (function(module, exports, __webpack_require__) {
58462
58463"use strict";
58464
58465Object.defineProperty(exports, "__esModule", { value: true });
58466var events_1 = __webpack_require__(88);
58467var event_emitter_to_async_iterator_1 = __webpack_require__(735);
58468var PubSub = (function () {
58469 function PubSub(options) {
58470 if (options === void 0) { options = {}; }
58471 this.ee = options.eventEmitter || new events_1.EventEmitter();
58472 this.subscriptions = {};
58473 this.subIdCounter = 0;
58474 }
58475 PubSub.prototype.publish = function (triggerName, payload) {
58476 this.ee.emit(triggerName, payload);
58477 return true;
58478 };
58479 PubSub.prototype.subscribe = function (triggerName, onMessage) {
58480 this.ee.addListener(triggerName, onMessage);
58481 this.subIdCounter = this.subIdCounter + 1;
58482 this.subscriptions[this.subIdCounter] = [triggerName, onMessage];
58483 return Promise.resolve(this.subIdCounter);
58484 };
58485 PubSub.prototype.unsubscribe = function (subId) {
58486 var _a = this.subscriptions[subId], triggerName = _a[0], onMessage = _a[1];
58487 delete this.subscriptions[subId];
58488 this.ee.removeListener(triggerName, onMessage);
58489 };
58490 PubSub.prototype.asyncIterator = function (triggers) {
58491 return event_emitter_to_async_iterator_1.eventEmitterAsyncIterator(this.ee, triggers);
58492 };
58493 return PubSub;
58494}());
58495exports.PubSub = PubSub;
58496//# sourceMappingURL=pubsub.js.map
58497
58498/***/ }),
58499/* 735 */
58500/***/ (function(module, exports, __webpack_require__) {
58501
58502"use strict";
58503
58504Object.defineProperty(exports, "__esModule", { value: true });
58505var iterall_1 = __webpack_require__(39);
58506function eventEmitterAsyncIterator(eventEmitter, eventsNames) {
58507 var pullQueue = [];
58508 var pushQueue = [];
58509 var eventsArray = typeof eventsNames === 'string' ? [eventsNames] : eventsNames;
58510 var listening = true;
58511 var pushValue = function (event) {
58512 if (pullQueue.length !== 0) {
58513 pullQueue.shift()({ value: event, done: false });
58514 }
58515 else {
58516 pushQueue.push(event);
58517 }
58518 };
58519 var pullValue = function () {
58520 return new Promise(function (resolve) {
58521 if (pushQueue.length !== 0) {
58522 resolve({ value: pushQueue.shift(), done: false });
58523 }
58524 else {
58525 pullQueue.push(resolve);
58526 }
58527 });
58528 };
58529 var emptyQueue = function () {
58530 if (listening) {
58531 listening = false;
58532 removeEventListeners();
58533 pullQueue.forEach(function (resolve) { return resolve({ value: undefined, done: true }); });
58534 pullQueue.length = 0;
58535 pushQueue.length = 0;
58536 }
58537 };
58538 var addEventListeners = function () {
58539 for (var _i = 0, eventsArray_1 = eventsArray; _i < eventsArray_1.length; _i++) {
58540 var eventName = eventsArray_1[_i];
58541 eventEmitter.addListener(eventName, pushValue);
58542 }
58543 };
58544 var removeEventListeners = function () {
58545 for (var _i = 0, eventsArray_2 = eventsArray; _i < eventsArray_2.length; _i++) {
58546 var eventName = eventsArray_2[_i];
58547 eventEmitter.removeListener(eventName, pushValue);
58548 }
58549 };
58550 addEventListeners();
58551 return _a = {
58552 next: function () {
58553 return listening ? pullValue() : this.return();
58554 },
58555 return: function () {
58556 emptyQueue();
58557 return Promise.resolve({ value: undefined, done: true });
58558 },
58559 throw: function (error) {
58560 emptyQueue();
58561 return Promise.reject(error);
58562 }
58563 },
58564 _a[iterall_1.$$asyncIterator] = function () {
58565 return this;
58566 },
58567 _a;
58568 var _a;
58569}
58570exports.eventEmitterAsyncIterator = eventEmitterAsyncIterator;
58571//# sourceMappingURL=event-emitter-to-async-iterator.js.map
58572
58573/***/ }),
58574/* 736 */
58575/***/ (function(module, exports, __webpack_require__) {
58576
58577"use strict";
58578
58579Object.defineProperty(exports, "__esModule", { value: true });
58580var iterall_1 = __webpack_require__(39);
58581exports.withFilter = function (asyncIteratorFn, filterFn) {
58582 return function (rootValue, args, context, info) {
58583 var asyncIterator = asyncIteratorFn(rootValue, args, context, info);
58584 var getNextPromise = function () {
58585 return asyncIterator
58586 .next()
58587 .then(function (payload) { return Promise.all([
58588 payload,
58589 Promise.resolve(filterFn(payload.value, args, context, info)).catch(function () { return false; }),
58590 ]); })
58591 .then(function (_a) {
58592 var payload = _a[0], filterResult = _a[1];
58593 if (filterResult === true || payload.done === true) {
58594 return payload;
58595 }
58596 return getNextPromise();
58597 });
58598 };
58599 return _a = {
58600 next: function () {
58601 return getNextPromise();
58602 },
58603 return: function () {
58604 return asyncIterator.return();
58605 },
58606 throw: function (error) {
58607 return asyncIterator.throw(error);
58608 }
58609 },
58610 _a[iterall_1.$$asyncIterator] = function () {
58611 return this;
58612 },
58613 _a;
58614 var _a;
58615 };
58616};
58617//# sourceMappingURL=with-filter.js.map
58618
58619/***/ }),
58620/* 737 */
58621/***/ (function(module, exports, __webpack_require__) {
58622
58623"use strict";
58624
58625
58626Object.defineProperty(exports, "__esModule", {
58627 value: true
58628});
58629
58630var _User = __webpack_require__(738);
58631
58632var _Geolocation = __webpack_require__(745);
58633
58634var _Activity = __webpack_require__(846);
58635
58636var _Score = __webpack_require__(847);
58637
58638var cacheMap = new Map();
58639var userLoader = (0, _User.getUserLoader)(cacheMap);
58640var geolocationsLoader = (0, _Geolocation.getGeolocationsLoader)(cacheMap);
58641var activityLoader = (0, _Activity.getActivityLoader)(cacheMap);
58642var scoreLoader = (0, _Score.getScoreLoader)(cacheMap);
58643
58644// FB Dataloaders
58645exports.default = {
58646 user: userLoader,
58647 geolocation: geolocationsLoader,
58648 activity: activityLoader,
58649 score: scoreLoader
58650};
58651module.exports = exports['default'];
58652
58653/***/ }),
58654/* 738 */
58655/***/ (function(module, exports, __webpack_require__) {
58656
58657"use strict";
58658
58659
58660Object.defineProperty(exports, "__esModule", {
58661 value: true
58662});
58663
58664var _dataloader = __webpack_require__(138);
58665
58666var _dataloader2 = _interopRequireDefault(_dataloader);
58667
58668var _User = __webpack_require__(339);
58669
58670function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
58671
58672var getUserLoader = function getUserLoader(cacheMap) {
58673 var usersLoader = new _dataloader2.default(function (keys) {
58674 return Promise.all(keys.map(_User.getUsers));
58675 }, { cache: false }); // , { cacheMap }
58676
58677 var userLoader = new _dataloader2.default(function (keys) {
58678 return Promise.all(keys.map(_User.getUser));
58679 }, { cache: false });
58680
58681 // , {
58682 // cacheKeyFn: key => `${PATH}/${key}`,
58683 // cacheMap,
58684 // }
58685
58686 var userByURLLoader = new _dataloader2.default(function (keys) {
58687 return Promise.all(keys.map(_User.getUserByURL));
58688 }, { cache: false }); // , { cacheMap }
58689
58690 userLoader.loadAll = usersLoader.load.bind(usersLoader, '__all__');
58691 userLoader.loadByURL = userByURLLoader.load.bind(userByURLLoader);
58692 userLoader.loadManyByURL = userByURLLoader.loadMany.bind(userByURLLoader);
58693 userLoader.addUser = _User.addUser;
58694 userLoader.updateUser = _User.updateUser;
58695 return userLoader;
58696};
58697
58698exports.default = { getUserLoader: getUserLoader };
58699module.exports = exports['default'];
58700
58701/***/ }),
58702/* 739 */
58703/***/ (function(module, exports, __webpack_require__) {
58704
58705"use strict";
58706
58707
58708var iconvLite = __webpack_require__(188);
58709// Load Iconv from an external file to be able to disable Iconv for webpack
58710// Add /\/iconv-loader$/ to webpack.IgnorePlugin to ignore it
58711var Iconv = __webpack_require__(740);
58712
58713// Expose to the world
58714module.exports.convert = convert;
58715
58716/**
58717 * Convert encoding of an UTF-8 string or a buffer
58718 *
58719 * @param {String|Buffer} str String to be converted
58720 * @param {String} to Encoding to be converted to
58721 * @param {String} [from='UTF-8'] Encoding to be converted from
58722 * @param {Boolean} useLite If set to ture, force to use iconvLite
58723 * @return {Buffer} Encoded string
58724 */
58725function convert(str, to, from, useLite) {
58726 from = checkEncoding(from || 'UTF-8');
58727 to = checkEncoding(to || 'UTF-8');
58728 str = str || '';
58729
58730 var result;
58731
58732 if (from !== 'UTF-8' && typeof str === 'string') {
58733 str = new Buffer(str, 'binary');
58734 }
58735
58736 if (from === to) {
58737 if (typeof str === 'string') {
58738 result = new Buffer(str);
58739 } else {
58740 result = str;
58741 }
58742 } else if (Iconv && !useLite) {
58743 try {
58744 result = convertIconv(str, to, from);
58745 } catch (E) {
58746 console.error(E);
58747 try {
58748 result = convertIconvLite(str, to, from);
58749 } catch (E) {
58750 console.error(E);
58751 result = str;
58752 }
58753 }
58754 } else {
58755 try {
58756 result = convertIconvLite(str, to, from);
58757 } catch (E) {
58758 console.error(E);
58759 result = str;
58760 }
58761 }
58762
58763
58764 if (typeof result === 'string') {
58765 result = new Buffer(result, 'utf-8');
58766 }
58767
58768 return result;
58769}
58770
58771/**
58772 * Convert encoding of a string with node-iconv (if available)
58773 *
58774 * @param {String|Buffer} str String to be converted
58775 * @param {String} to Encoding to be converted to
58776 * @param {String} [from='UTF-8'] Encoding to be converted from
58777 * @return {Buffer} Encoded string
58778 */
58779function convertIconv(str, to, from) {
58780 var response, iconv;
58781 iconv = new Iconv(from, to + '//TRANSLIT//IGNORE');
58782 response = iconv.convert(str);
58783 return response.slice(0, response.length);
58784}
58785
58786/**
58787 * Convert encoding of astring with iconv-lite
58788 *
58789 * @param {String|Buffer} str String to be converted
58790 * @param {String} to Encoding to be converted to
58791 * @param {String} [from='UTF-8'] Encoding to be converted from
58792 * @return {Buffer} Encoded string
58793 */
58794function convertIconvLite(str, to, from) {
58795 if (to === 'UTF-8') {
58796 return iconvLite.decode(str, from);
58797 } else if (from === 'UTF-8') {
58798 return iconvLite.encode(str, to);
58799 } else {
58800 return iconvLite.encode(iconvLite.decode(str, from), to);
58801 }
58802}
58803
58804/**
58805 * Converts charset name if needed
58806 *
58807 * @param {String} name Character set
58808 * @return {String} Character set name
58809 */
58810function checkEncoding(name) {
58811 return (name || '').toString().trim().
58812 replace(/^latin[\-_]?(\d+)$/i, 'ISO-8859-$1').
58813 replace(/^win(?:dows)?[\-_]?(\d+)$/i, 'WINDOWS-$1').
58814 replace(/^utf[\-_]?(\d+)$/i, 'UTF-$1').
58815 replace(/^ks_c_5601\-1987$/i, 'CP949').
58816 replace(/^us[\-_]?ascii$/i, 'ASCII').
58817 toUpperCase();
58818}
58819
58820
58821/***/ }),
58822/* 740 */
58823/***/ (function(module, exports, __webpack_require__) {
58824
58825"use strict";
58826
58827
58828var iconv_package;
58829var Iconv;
58830
58831try {
58832 // this is to fool browserify so it doesn't try (in vain) to install iconv.
58833 iconv_package = 'iconv';
58834 Iconv = !(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()).Iconv;
58835} catch (E) {
58836 // node-iconv not present
58837}
58838
58839module.exports = Iconv;
58840
58841
58842/***/ }),
58843/* 741 */
58844/***/ (function(module, exports) {
58845
58846function webpackEmptyContext(req) {
58847 throw new Error("Cannot find module '" + req + "'.");
58848}
58849webpackEmptyContext.keys = function() { return []; };
58850webpackEmptyContext.resolve = webpackEmptyContext;
58851module.exports = webpackEmptyContext;
58852webpackEmptyContext.id = 741;
58853
58854/***/ }),
58855/* 742 */
58856/***/ (function(module, exports, __webpack_require__) {
58857
58858"use strict";
58859
58860
58861var isStream = module.exports = function (stream) {
58862 return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';
58863};
58864
58865isStream.writable = function (stream) {
58866 return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';
58867};
58868
58869isStream.readable = function (stream) {
58870 return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';
58871};
58872
58873isStream.duplex = function (stream) {
58874 return isStream.writable(stream) && isStream.readable(stream);
58875};
58876
58877isStream.transform = function (stream) {
58878 return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';
58879};
58880
58881
58882/***/ }),
58883/* 743 */
58884/***/ (function(module, exports, __webpack_require__) {
58885
58886
58887/**
58888 * response.js
58889 *
58890 * Response class provides content decoding
58891 */
58892
58893var http = __webpack_require__(43);
58894var Headers = __webpack_require__(203);
58895var Body = __webpack_require__(202);
58896
58897module.exports = Response;
58898
58899/**
58900 * Response class
58901 *
58902 * @param Stream body Readable stream
58903 * @param Object opts Response options
58904 * @return Void
58905 */
58906function Response(body, opts) {
58907
58908 opts = opts || {};
58909
58910 this.url = opts.url;
58911 this.status = opts.status || 200;
58912 this.statusText = opts.statusText || http.STATUS_CODES[this.status];
58913 this.headers = new Headers(opts.headers);
58914 this.ok = this.status >= 200 && this.status < 300;
58915
58916 Body.call(this, body, opts);
58917
58918}
58919
58920Response.prototype = Object.create(Body.prototype);
58921
58922/**
58923 * Clone this response
58924 *
58925 * @return Response
58926 */
58927Response.prototype.clone = function() {
58928 return new Response(this._clone(this), {
58929 url: this.url
58930 , status: this.status
58931 , statusText: this.statusText
58932 , headers: this.headers
58933 , ok: this.ok
58934 });
58935};
58936
58937
58938/***/ }),
58939/* 744 */
58940/***/ (function(module, exports, __webpack_require__) {
58941
58942
58943/**
58944 * request.js
58945 *
58946 * Request class contains server only options
58947 */
58948
58949var parse_url = __webpack_require__(53).parse;
58950var Headers = __webpack_require__(203);
58951var Body = __webpack_require__(202);
58952
58953module.exports = Request;
58954
58955/**
58956 * Request class
58957 *
58958 * @param Mixed input Url or Request instance
58959 * @param Object init Custom options
58960 * @return Void
58961 */
58962function Request(input, init) {
58963 var url, url_parsed;
58964
58965 // normalize input
58966 if (!(input instanceof Request)) {
58967 url = input;
58968 url_parsed = parse_url(url);
58969 input = {};
58970 } else {
58971 url = input.url;
58972 url_parsed = parse_url(url);
58973 }
58974
58975 // normalize init
58976 init = init || {};
58977
58978 // fetch spec options
58979 this.method = init.method || input.method || 'GET';
58980 this.redirect = init.redirect || input.redirect || 'follow';
58981 this.headers = new Headers(init.headers || input.headers || {});
58982 this.url = url;
58983
58984 // server only options
58985 this.follow = init.follow !== undefined ?
58986 init.follow : input.follow !== undefined ?
58987 input.follow : 20;
58988 this.compress = init.compress !== undefined ?
58989 init.compress : input.compress !== undefined ?
58990 input.compress : true;
58991 this.counter = init.counter || input.counter || 0;
58992 this.agent = init.agent || input.agent;
58993
58994 Body.call(this, init.body || this._clone(input), {
58995 timeout: init.timeout || input.timeout || 0,
58996 size: init.size || input.size || 0
58997 });
58998
58999 // server request options
59000 this.protocol = url_parsed.protocol;
59001 this.hostname = url_parsed.hostname;
59002 this.port = url_parsed.port;
59003 this.path = url_parsed.path;
59004 this.auth = url_parsed.auth;
59005}
59006
59007Request.prototype = Object.create(Body.prototype);
59008
59009/**
59010 * Clone this request
59011 *
59012 * @return Request
59013 */
59014Request.prototype.clone = function() {
59015 return new Request(this);
59016};
59017
59018
59019/***/ }),
59020/* 745 */
59021/***/ (function(module, exports, __webpack_require__) {
59022
59023"use strict";
59024
59025
59026Object.defineProperty(exports, "__esModule", {
59027 value: true
59028});
59029
59030var _dataloader = __webpack_require__(138);
59031
59032var _dataloader2 = _interopRequireDefault(_dataloader);
59033
59034var _Geolocation = __webpack_require__(746);
59035
59036function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59037
59038// loader
59039var getGeolocationsLoader = function getGeolocationsLoader(cacheMap) {
59040 var geolocationsLoader = new _dataloader2.default(function (params) {
59041 return Promise.all(params.map(_Geolocation.getLocation));
59042 }, { cache: false });
59043
59044 // , {
59045 // cacheKeyFn: params => `/${params.id}/${params.key}`,
59046 // cacheMap,
59047 // }
59048
59049 var geolocationsCloseUsersLoader = new _dataloader2.default(function (params) {
59050 return Promise.all(params.map(_Geolocation.getCloseUsersLocations));
59051 }, { cache: false });
59052
59053 // , {
59054 // cacheKeyFn: params => `/${params.id}/${params.key}/${params.distance}/${params.unit}`,
59055 // cacheMap,
59056 // }
59057
59058 var geolocationsDistanceLoader = new _dataloader2.default(function (params) {
59059 return Promise.all(params.map(_Geolocation.getDistanceLocation));
59060 }, { cache: false });
59061
59062 // , {
59063 // cacheKeyFn: params => `/${params.id}/${params.key}/${params.foreignKey}`,
59064 // cacheMap,
59065 // }
59066
59067 geolocationsLoader.load = geolocationsLoader.load.bind(geolocationsLoader);
59068 geolocationsLoader.loadCloseUsers = geolocationsCloseUsersLoader.load.bind(geolocationsCloseUsersLoader);
59069 geolocationsLoader.loadDistanceFromUser = geolocationsDistanceLoader.load.bind(geolocationsDistanceLoader);
59070 geolocationsLoader.updateGeolocation = _Geolocation.updateGeolocation;
59071
59072 return geolocationsLoader;
59073};
59074
59075exports.default = { getGeolocationsLoader: getGeolocationsLoader };
59076module.exports = exports['default'];
59077
59078/***/ }),
59079/* 746 */
59080/***/ (function(module, exports, __webpack_require__) {
59081
59082"use strict";
59083
59084
59085Object.defineProperty(exports, "__esModule", {
59086 value: true
59087});
59088
59089var _nodeFetch = __webpack_require__(97);
59090
59091var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
59092
59093var _MatchingWorkflow = __webpack_require__(747);
59094
59095var _MatchingWorkflow2 = _interopRequireDefault(_MatchingWorkflow);
59096
59097var _Geolocation = __webpack_require__(845);
59098
59099function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59100
59101function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
59102
59103var BASE_URL = 'http://geolocations-dev.madbean.ovh';
59104
59105// resolvers setters
59106var updateGeolocation = function () {
59107 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(location) {
59108 var options, updated;
59109 return regeneratorRuntime.wrap(function _callee$(_context) {
59110 while (1) {
59111 switch (_context.prev = _context.next) {
59112 case 0:
59113 options = {
59114 method: 'POST',
59115 headers: {
59116 'Content-Type': 'application/json',
59117 Accept: 'application/json'
59118 },
59119 body: JSON.stringify([{
59120 latitude: location.lat,
59121 longitude: location.lon,
59122 key: location.key
59123 }])
59124 };
59125
59126 // update location
59127
59128 _context.prev = 1;
59129 _context.next = 4;
59130 return (0, _nodeFetch2.default)(BASE_URL + '/' + location.collectionID, options).then(function (data) {
59131 return data.json();
59132 });
59133
59134 case 4:
59135 updated = _context.sent;
59136
59137 if (!(location.fetchCloseUsers && updated.data.success)) {
59138 _context.next = 7;
59139 break;
59140 }
59141
59142 return _context.abrupt('return', (0, _MatchingWorkflow2.default)().execMatchingWorkflow(location, getCloseUsersLocations));
59143
59144 case 7:
59145 _context.next = 12;
59146 break;
59147
59148 case 9:
59149 _context.prev = 9;
59150 _context.t0 = _context['catch'](1);
59151
59152 console.error(_context.t0);
59153
59154 case 12:
59155 return _context.abrupt('return', []);
59156
59157 case 13:
59158 case 'end':
59159 return _context.stop();
59160 }
59161 }
59162 }, _callee, undefined, [[1, 9]]);
59163 }));
59164
59165 return function updateGeolocation(_x) {
59166 return _ref.apply(this, arguments);
59167 };
59168}();
59169
59170// resolvers
59171var getJSONFromRelativeURL = function getJSONFromRelativeURL(relativeURL) {
59172 return (0, _nodeFetch2.default)('' + BASE_URL + relativeURL).then(function (res) {
59173 return res.json();
59174 });
59175};
59176
59177var getLocationByURL = function getLocationByURL(relativeURL) {
59178 return getJSONFromRelativeURL(relativeURL).then(function (json) {
59179 return json;
59180 });
59181};
59182
59183var getLocation = function getLocation(_ref2) {
59184 var id = _ref2.id,
59185 key = _ref2.key;
59186 return getLocationByURL('/' + id + '/' + key);
59187};
59188
59189var getDistanceLocation = function getDistanceLocation(_ref3) {
59190 var id = _ref3.id,
59191 key = _ref3.key,
59192 foreignKey = _ref3.foreignKey;
59193 return getLocationByURL('/' + id + '/' + key + '/' + foreignKey);
59194};
59195
59196var getCloseUsersLocations = function getCloseUsersLocations(_ref4) {
59197 var id = _ref4.id,
59198 key = _ref4.key,
59199 distance = _ref4.distance,
59200 unit = _ref4.unit;
59201 return getLocationByURL('/' + id + '/' + key + '/' + distance + '/' + unit).then(function (json) {
59202 return (0, _Geolocation.formatUsersLocations)(json.data);
59203 });
59204};
59205
59206exports.default = {
59207 getCloseUsersLocations: getCloseUsersLocations,
59208 getDistanceLocation: getDistanceLocation,
59209 getLocation: getLocation,
59210 updateGeolocation: updateGeolocation
59211};
59212module.exports = exports['default'];
59213
59214/***/ }),
59215/* 747 */
59216/***/ (function(module, exports, __webpack_require__) {
59217
59218"use strict";
59219
59220
59221Object.defineProperty(exports, "__esModule", {
59222 value: true
59223});
59224
59225var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
59226
59227var _stringSimilarity = __webpack_require__(748);
59228
59229var _stringSimilarity2 = _interopRequireDefault(_stringSimilarity);
59230
59231var _Score = __webpack_require__(356);
59232
59233var _Activity = __webpack_require__(357);
59234
59235var _User = __webpack_require__(339);
59236
59237var _Notifier = __webpack_require__(844);
59238
59239function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
59240
59241function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
59242
59243function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
59244
59245var DEFAULT_VALUES = {
59246 distance: '50',
59247 unit: 'km'
59248};
59249
59250var getDefinedUser = function getDefinedUser(user) {
59251 var userIsDefined = user != null && user !== undefined;
59252 return userIsDefined;
59253};
59254
59255var fillActivities = function () {
59256 var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(user) {
59257 var activities;
59258 return regeneratorRuntime.wrap(function _callee$(_context) {
59259 while (1) {
59260 switch (_context.prev = _context.next) {
59261 case 0:
59262 _context.next = 2;
59263 return Promise.all(user.activitiesID.map(_Activity.getEntity));
59264
59265 case 2:
59266 activities = _context.sent;
59267 return _context.abrupt('return', _extends({}, user, { activities: activities }));
59268
59269 case 4:
59270 case 'end':
59271 return _context.stop();
59272 }
59273 }
59274 }, _callee, undefined);
59275 }));
59276
59277 return function fillActivities(_x) {
59278 return _ref.apply(this, arguments);
59279 };
59280}();
59281
59282var hasActivities = function hasActivities(user) {
59283 return user && user.activitiesID && user.activitiesID.length > 0;
59284};
59285
59286var getCurrentUser = function getCurrentUser(users, key) {
59287 return users.filter(getDefinedUser).filter(function (user) {
59288 return user.userID === key;
59289 });
59290};
59291
59292var isNotCurrentUser = function isNotCurrentUser(user, key) {
59293 return user.userID !== key;
59294};
59295
59296var isRequest = function isRequest(activity) {
59297 return activity.type === 'request';
59298};
59299
59300var isSerach = function isSerach(activity) {
59301 return activity.type === 'search';
59302};
59303
59304var isActive = function isActive(activity) {
59305 return activity.active;
59306};
59307
59308var hasPositiveScore = function hasPositiveScore(users, userID) {
59309 return users.map(function (user) {
59310 return user.userID;
59311 }).includes(userID);
59312};
59313
59314var hasSearchActivity = function hasSearchActivity(user) {
59315 if (user.activities && user.activities.length > 0) return false;
59316
59317 return user.activities.filter(isSerach).length > 0;
59318};
59319
59320var hasRequestActivity = function hasRequestActivity(user) {
59321 return user.activities.filter(isRequest).length > 0;
59322};
59323
59324var getScoreActivities = function getScoreActivities(request, searchActivities) {
59325 return searchActivities.map(function (search) {
59326 return getScoreActivity(search, request);
59327 });
59328};
59329
59330var getScoreActivity = function getScoreActivity(search, request) {
59331 var scoreName = _stringSimilarity2.default.compareTwoStrings(search.name, request.name);
59332
59333 var scoreDescription = _stringSimilarity2.default.compareTwoStrings(search.description, request.description);
59334
59335 var scoreActivity = _stringSimilarity2.default.compareTwoStrings(search.activity, request.activity);
59336
59337 var scoreSkills = _stringSimilarity2.default.compareTwoStrings(search.skills.toString(), request.skills.toString());
59338
59339 var scoreSkillDescription = _stringSimilarity2.default.compareTwoStrings(search.skills.toString(), request.description);
59340
59341 var scoreDescriptionSkill = _stringSimilarity2.default.compareTwoStrings(search.description, request.skills.toString());
59342
59343 var total = scoreName + scoreDescription + scoreActivity + scoreSkills + scoreSkillDescription + scoreDescriptionSkill;
59344
59345 console.log('-------------------------------------------------------------------------');
59346 console.log('[' + search.userID + ' | ' + request.userID + ']');
59347 console.log('-------------------------------------------------------------------------');
59348 console.log('scoreName:', scoreName);
59349 console.log('scoreDescription:', scoreDescription);
59350 console.log('scoreActivity:', scoreActivity);
59351 console.log('scoreSkills:', scoreSkills);
59352 console.log('scoreSkillDescription:', scoreSkillDescription);
59353 console.log('scoreDescriptionSkill:', scoreDescriptionSkill);
59354 console.log('SEARCH ACTIVITY ID:', search.activityID);
59355 console.log('REQUEST ACTIVITY ID:', request.activityID);
59356 console.log('-------------------------------------------------------------------------');
59357 console.log('TOTAL:', total / 6);
59358 console.log('-------------------------------------------------------------------------');
59359 console.log('*************************************************************************');
59360
59361 return {
59362 score: total / 6,
59363 activitySearchID: search.activityID,
59364 activityRequestID: request.activityID,
59365 scoreID: search.activityID + request.activityID
59366 };
59367};
59368
59369exports.default = function () {
59370 return {
59371 execMatchingWorkflow: function () {
59372 var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(location, getCloseUsersLocations) {
59373 var _ref4;
59374
59375 var matchedUsers, users, currentUser, currentUserWithSearchActivities, usersWithActivities, usersWithRequestActivitiesActive, userWithMatchedActivities, userWithPositiveMatchedActivities;
59376 return regeneratorRuntime.wrap(function _callee3$(_context3) {
59377 while (1) {
59378 switch (_context3.prev = _context3.next) {
59379 case 0:
59380 _context3.next = 2;
59381 return getCloseUsersLocations({
59382 id: location.collectionID,
59383 key: location.key,
59384 distance: location.distance || DEFAULT_VALUES.distance,
59385 unit: location.unit || DEFAULT_VALUES.unit
59386 });
59387
59388 case 2:
59389 matchedUsers = _context3.sent;
59390
59391 if (matchedUsers) {
59392 _context3.next = 5;
59393 break;
59394 }
59395
59396 return _context3.abrupt('return', matchedUsers);
59397
59398 case 5:
59399 _context3.next = 7;
59400 return Promise.all(matchedUsers.map(function (user) {
59401 return user.userName;
59402 }).map(_User.getUser));
59403
59404 case 7:
59405 users = _context3.sent;
59406 currentUser = getCurrentUser(users, location.key)[0];
59407
59408 if (hasActivities(currentUser)) {
59409 _context3.next = 11;
59410 break;
59411 }
59412
59413 return _context3.abrupt('return', matchedUsers);
59414
59415 case 11:
59416 _context3.next = 13;
59417 return fillActivities(currentUser);
59418
59419 case 13:
59420 currentUserWithSearchActivities = _context3.sent;
59421
59422 if (hasSearchActivity(currentUserWithSearchActivities)) {
59423 _context3.next = 16;
59424 break;
59425 }
59426
59427 return _context3.abrupt('return', matchedUsers);
59428
59429 case 16:
59430 _context3.next = 18;
59431 return Promise.all(users.filter(getDefinedUser).filter(function (user) {
59432 return isNotCurrentUser(user, location.key);
59433 }).filter(hasActivities).map(fillActivities));
59434
59435 case 18:
59436 usersWithActivities = _context3.sent;
59437 usersWithRequestActivitiesActive = usersWithActivities.filter(hasRequestActivity);
59438 userWithMatchedActivities = usersWithRequestActivitiesActive.map(function (user) {
59439 var _ref3;
59440
59441 var userScores = user.activities.filter(isRequest).map(function (request) {
59442 var requestScores = getScoreActivities(request, currentUserWithSearchActivities.activities);
59443 return requestScores;
59444 });
59445 var mergedUserScores = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(userScores));
59446 return _extends({}, user, { scores: mergedUserScores });
59447 });
59448 userWithPositiveMatchedActivities = (_ref4 = []).concat.apply(_ref4, _toConsumableArray(userWithMatchedActivities.map(function (user) {
59449 var positivesScores = user.scores.filter(function (score) {
59450 return score.score > 0.5;
59451 });
59452 return _extends({}, user, { scores: positivesScores });
59453 })));
59454
59455
59456 userWithPositiveMatchedActivities.forEach(function (user) {
59457 return user.scores.forEach(function () {
59458 var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(score) {
59459 var existingScore, searchActivity, matchedActivitiesID;
59460 return regeneratorRuntime.wrap(function _callee2$(_context2) {
59461 while (1) {
59462 switch (_context2.prev = _context2.next) {
59463 case 0:
59464 _context2.next = 2;
59465 return (0, _Score.getEntity)(score.scoreID);
59466
59467 case 2:
59468 existingScore = _context2.sent;
59469 searchActivity = currentUserWithSearchActivities.activities.filter(function (activity) {
59470 return activity.activityID === score.activitySearchID;
59471 })[0];
59472 matchedActivitiesID = searchActivity.matchedActivitiesID ? searchActivity.matchedActivitiesID : [];
59473
59474
59475 if (!existingScore) {
59476 (0, _Score.addEntity)(score);
59477
59478 (0, _Activity.updateEntity)({
59479 activityID: score.activitySearchID,
59480 matchedActivitiesID: [].concat(_toConsumableArray(matchedActivitiesID), [score.activityRequestID])
59481 });
59482
59483 (0, _Notifier.notifyMatchedActivity)(currentUserWithSearchActivities, searchActivity, user);
59484 } else if (score.socre !== existingScore.score) {
59485 (0, _Score.updateEntity)(score);
59486 }
59487
59488 case 6:
59489 case 'end':
59490 return _context2.stop();
59491 }
59492 }
59493 }, _callee2, undefined);
59494 }));
59495
59496 return function (_x4) {
59497 return _ref5.apply(this, arguments);
59498 };
59499 }());
59500 });
59501
59502 return _context3.abrupt('return', matchedUsers.filter(function (user) {
59503 return hasPositiveScore(userWithPositiveMatchedActivities, user.userName);
59504 }));
59505
59506 case 24:
59507 case 'end':
59508 return _context3.stop();
59509 }
59510 }
59511 }, _callee3, undefined);
59512 }));
59513
59514 return function execMatchingWorkflow(_x2, _x3) {
59515 return _ref2.apply(this, arguments);
59516 };
59517 }(),
59518 acceptToMeetWorkflow: function () {
59519 var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
59520 return regeneratorRuntime.wrap(function _callee4$(_context4) {
59521 while (1) {
59522 switch (_context4.prev = _context4.next) {
59523 case 0:
59524 case 'end':
59525 return _context4.stop();
59526 }
59527 }
59528 }, _callee4, undefined);
59529 }));
59530
59531 return function acceptToMeetWorkflow() {
59532 return _ref6.apply(this, arguments);
59533 };
59534 }()
59535 };
59536};
59537
59538module.exports = exports['default'];
59539
59540/***/ }),
59541/* 748 */
59542/***/ (function(module, exports, __webpack_require__) {
59543
59544var _forEach = __webpack_require__(749);
59545var _map = __webpack_require__(769);
59546var _every = __webpack_require__(834);
59547var _maxBy = __webpack_require__(838);
59548var _flattenDeep = __webpack_require__(841);
59549
59550exports.compareTwoStrings = compareTwoStrings;
59551exports.findBestMatch = findBestMatch;
59552
59553function compareTwoStrings(str1, str2) {
59554 var result = null;
59555 result = calculateResultIfIdentical(str1, str2);
59556 if (result != null) {
59557 return result;
59558 }
59559 result = calculateResultIfEitherIsEmpty(str1, str2);
59560 if (result != null) {
59561 return result;
59562 }
59563 result = calculateResultIfBothAreSingleCharacter(str1, str2);
59564 if (result != null) {
59565 return result;
59566 }
59567
59568 var pairs1 = wordLetterPairs(str1.toUpperCase());
59569 var pairs2 = wordLetterPairs(str2.toUpperCase());
59570 var intersection = 0;
59571 var union = pairs1.length + pairs2.length;
59572
59573 _forEach(pairs1, function (pair1) {
59574 for(var i = 0; i < pairs2.length; i++) {
59575 var pair2 = pairs2[i];
59576 if (pair1 === pair2) {
59577 intersection++;
59578 pairs2.splice(i, 1);
59579 break;
59580 }
59581 }
59582 });
59583
59584 return (2.0 * intersection) / union;
59585
59586 // private functions ---------------------------
59587 function letterPairs(str) {
59588 var numPairs = str.length - 1;
59589 var pairs = [];
59590 for(var i = 0; i < numPairs; i++) {
59591 pairs[i] = str.substring(i, i + 2);
59592 }
59593 return pairs;
59594 }
59595
59596 function wordLetterPairs(str) {
59597 return _flattenDeep(_map(str.split(' '), letterPairs));
59598 }
59599
59600 function isEdgeCaseWithOneOrZeroChars(str1, str2) {
59601 if (str1.length == str2.length && str1.length == 1) {
59602 return true;
59603 }
59604 return false;
59605 }
59606
59607 function calculateResultIfIdentical(str1, str2) {
59608 if (str1.toUpperCase() == str2.toUpperCase()) {
59609 return 1;
59610 }
59611 return null;
59612 }
59613
59614 function calculateResultIfBothAreSingleCharacter(str1, str2) {
59615 if (str1.length == 1 && str2.length == 1) {
59616 return 0;
59617 }
59618 }
59619
59620 function calculateResultIfEitherIsEmpty(str1, str2) {
59621 // if both are empty strings
59622 if (str1.length == 0 && str2.length == 0) {
59623 return 1;
59624 }
59625
59626 // if only one is empty string
59627 if ((str1.length + str2.length) > 0 && (str1.length * str2.length) == 0) {
59628 return 0;
59629 }
59630 return null;
59631 }
59632}
59633
59634
59635function findBestMatch(mainString, targetStrings) {
59636 if (!areArgsValid(mainString, targetStrings)) {
59637 throw new Error('Bad arguments: First argument should be a string, second should be an array of strings');
59638 }
59639 var ratings = _map(targetStrings, function (targetString) {
59640 return {
59641 target: targetString,
59642 rating: compareTwoStrings(mainString, targetString)
59643 };
59644 });
59645
59646 return {
59647 ratings: ratings,
59648 bestMatch: _maxBy(ratings, 'rating')
59649 };
59650
59651 // private functions ---------------------------
59652 function areArgsValid(mainString, targetStrings) {
59653 var mainStringIsAString = (typeof mainString === 'string');
59654
59655 var targetStringsIsAnArrayOfStrings = Array.isArray(targetStrings) &&
59656 targetStrings.length > 0 &&
59657 _every(targetStrings, function (targetString) {
59658 return (typeof targetString === 'string');
59659 });
59660
59661 return mainStringIsAString && targetStringsIsAnArrayOfStrings;
59662 }
59663}
59664
59665
59666/***/ }),
59667/* 749 */
59668/***/ (function(module, exports, __webpack_require__) {
59669
59670var arrayEach = __webpack_require__(750),
59671 baseEach = __webpack_require__(204),
59672 castFunction = __webpack_require__(768),
59673 isArray = __webpack_require__(24);
59674
59675/**
59676 * Iterates over elements of `collection` and invokes `iteratee` for each element.
59677 * The iteratee is invoked with three arguments: (value, index|key, collection).
59678 * Iteratee functions may exit iteration early by explicitly returning `false`.
59679 *
59680 * **Note:** As with other "Collections" methods, objects with a "length"
59681 * property are iterated like arrays. To avoid this behavior use `_.forIn`
59682 * or `_.forOwn` for object iteration.
59683 *
59684 * @static
59685 * @memberOf _
59686 * @since 0.1.0
59687 * @alias each
59688 * @category Collection
59689 * @param {Array|Object} collection The collection to iterate over.
59690 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
59691 * @returns {Array|Object} Returns `collection`.
59692 * @see _.forEachRight
59693 * @example
59694 *
59695 * _.forEach([1, 2], function(value) {
59696 * console.log(value);
59697 * });
59698 * // => Logs `1` then `2`.
59699 *
59700 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
59701 * console.log(key);
59702 * });
59703 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
59704 */
59705function forEach(collection, iteratee) {
59706 var func = isArray(collection) ? arrayEach : baseEach;
59707 return func(collection, castFunction(iteratee));
59708}
59709
59710module.exports = forEach;
59711
59712
59713/***/ }),
59714/* 750 */
59715/***/ (function(module, exports) {
59716
59717/**
59718 * A specialized version of `_.forEach` for arrays without support for
59719 * iteratee shorthands.
59720 *
59721 * @private
59722 * @param {Array} [array] The array to iterate over.
59723 * @param {Function} iteratee The function invoked per iteration.
59724 * @returns {Array} Returns `array`.
59725 */
59726function arrayEach(array, iteratee) {
59727 var index = -1,
59728 length = array == null ? 0 : array.length;
59729
59730 while (++index < length) {
59731 if (iteratee(array[index], index, array) === false) {
59732 break;
59733 }
59734 }
59735 return array;
59736}
59737
59738module.exports = arrayEach;
59739
59740
59741/***/ }),
59742/* 751 */
59743/***/ (function(module, exports, __webpack_require__) {
59744
59745var baseFor = __webpack_require__(752),
59746 keys = __webpack_require__(205);
59747
59748/**
59749 * The base implementation of `_.forOwn` without support for iteratee shorthands.
59750 *
59751 * @private
59752 * @param {Object} object The object to iterate over.
59753 * @param {Function} iteratee The function invoked per iteration.
59754 * @returns {Object} Returns `object`.
59755 */
59756function baseForOwn(object, iteratee) {
59757 return object && baseFor(object, iteratee, keys);
59758}
59759
59760module.exports = baseForOwn;
59761
59762
59763/***/ }),
59764/* 752 */
59765/***/ (function(module, exports, __webpack_require__) {
59766
59767var createBaseFor = __webpack_require__(753);
59768
59769/**
59770 * The base implementation of `baseForOwn` which iterates over `object`
59771 * properties returned by `keysFunc` and invokes `iteratee` for each property.
59772 * Iteratee functions may exit iteration early by explicitly returning `false`.
59773 *
59774 * @private
59775 * @param {Object} object The object to iterate over.
59776 * @param {Function} iteratee The function invoked per iteration.
59777 * @param {Function} keysFunc The function to get the keys of `object`.
59778 * @returns {Object} Returns `object`.
59779 */
59780var baseFor = createBaseFor();
59781
59782module.exports = baseFor;
59783
59784
59785/***/ }),
59786/* 753 */
59787/***/ (function(module, exports) {
59788
59789/**
59790 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
59791 *
59792 * @private
59793 * @param {boolean} [fromRight] Specify iterating from right to left.
59794 * @returns {Function} Returns the new base function.
59795 */
59796function createBaseFor(fromRight) {
59797 return function(object, iteratee, keysFunc) {
59798 var index = -1,
59799 iterable = Object(object),
59800 props = keysFunc(object),
59801 length = props.length;
59802
59803 while (length--) {
59804 var key = props[fromRight ? length : ++index];
59805 if (iteratee(iterable[key], key, iterable) === false) {
59806 break;
59807 }
59808 }
59809 return object;
59810 };
59811}
59812
59813module.exports = createBaseFor;
59814
59815
59816/***/ }),
59817/* 754 */
59818/***/ (function(module, exports, __webpack_require__) {
59819
59820var baseTimes = __webpack_require__(755),
59821 isArguments = __webpack_require__(206),
59822 isArray = __webpack_require__(24),
59823 isBuffer = __webpack_require__(342),
59824 isIndex = __webpack_require__(207),
59825 isTypedArray = __webpack_require__(343);
59826
59827/** Used for built-in method references. */
59828var objectProto = Object.prototype;
59829
59830/** Used to check objects for own properties. */
59831var hasOwnProperty = objectProto.hasOwnProperty;
59832
59833/**
59834 * Creates an array of the enumerable property names of the array-like `value`.
59835 *
59836 * @private
59837 * @param {*} value The value to query.
59838 * @param {boolean} inherited Specify returning inherited property names.
59839 * @returns {Array} Returns the array of property names.
59840 */
59841function arrayLikeKeys(value, inherited) {
59842 var isArr = isArray(value),
59843 isArg = !isArr && isArguments(value),
59844 isBuff = !isArr && !isArg && isBuffer(value),
59845 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
59846 skipIndexes = isArr || isArg || isBuff || isType,
59847 result = skipIndexes ? baseTimes(value.length, String) : [],
59848 length = result.length;
59849
59850 for (var key in value) {
59851 if ((inherited || hasOwnProperty.call(value, key)) &&
59852 !(skipIndexes && (
59853 // Safari 9 has enumerable `arguments.length` in strict mode.
59854 key == 'length' ||
59855 // Node.js 0.10 has enumerable non-index properties on buffers.
59856 (isBuff && (key == 'offset' || key == 'parent')) ||
59857 // PhantomJS 2 has enumerable non-index properties on typed arrays.
59858 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
59859 // Skip index properties.
59860 isIndex(key, length)
59861 ))) {
59862 result.push(key);
59863 }
59864 }
59865 return result;
59866}
59867
59868module.exports = arrayLikeKeys;
59869
59870
59871/***/ }),
59872/* 755 */
59873/***/ (function(module, exports) {
59874
59875/**
59876 * The base implementation of `_.times` without support for iteratee shorthands
59877 * or max array length checks.
59878 *
59879 * @private
59880 * @param {number} n The number of times to invoke `iteratee`.
59881 * @param {Function} iteratee The function invoked per iteration.
59882 * @returns {Array} Returns the array of results.
59883 */
59884function baseTimes(n, iteratee) {
59885 var index = -1,
59886 result = Array(n);
59887
59888 while (++index < n) {
59889 result[index] = iteratee(index);
59890 }
59891 return result;
59892}
59893
59894module.exports = baseTimes;
59895
59896
59897/***/ }),
59898/* 756 */
59899/***/ (function(module, exports, __webpack_require__) {
59900
59901var baseGetTag = __webpack_require__(98),
59902 isObjectLike = __webpack_require__(100);
59903
59904/** `Object#toString` result references. */
59905var argsTag = '[object Arguments]';
59906
59907/**
59908 * The base implementation of `_.isArguments`.
59909 *
59910 * @private
59911 * @param {*} value The value to check.
59912 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
59913 */
59914function baseIsArguments(value) {
59915 return isObjectLike(value) && baseGetTag(value) == argsTag;
59916}
59917
59918module.exports = baseIsArguments;
59919
59920
59921/***/ }),
59922/* 757 */
59923/***/ (function(module, exports, __webpack_require__) {
59924
59925var Symbol = __webpack_require__(99);
59926
59927/** Used for built-in method references. */
59928var objectProto = Object.prototype;
59929
59930/** Used to check objects for own properties. */
59931var hasOwnProperty = objectProto.hasOwnProperty;
59932
59933/**
59934 * Used to resolve the
59935 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
59936 * of values.
59937 */
59938var nativeObjectToString = objectProto.toString;
59939
59940/** Built-in value references. */
59941var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
59942
59943/**
59944 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
59945 *
59946 * @private
59947 * @param {*} value The value to query.
59948 * @returns {string} Returns the raw `toStringTag`.
59949 */
59950function getRawTag(value) {
59951 var isOwn = hasOwnProperty.call(value, symToStringTag),
59952 tag = value[symToStringTag];
59953
59954 try {
59955 value[symToStringTag] = undefined;
59956 var unmasked = true;
59957 } catch (e) {}
59958
59959 var result = nativeObjectToString.call(value);
59960 if (unmasked) {
59961 if (isOwn) {
59962 value[symToStringTag] = tag;
59963 } else {
59964 delete value[symToStringTag];
59965 }
59966 }
59967 return result;
59968}
59969
59970module.exports = getRawTag;
59971
59972
59973/***/ }),
59974/* 758 */
59975/***/ (function(module, exports) {
59976
59977/** Used for built-in method references. */
59978var objectProto = Object.prototype;
59979
59980/**
59981 * Used to resolve the
59982 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
59983 * of values.
59984 */
59985var nativeObjectToString = objectProto.toString;
59986
59987/**
59988 * Converts `value` to a string using `Object.prototype.toString`.
59989 *
59990 * @private
59991 * @param {*} value The value to convert.
59992 * @returns {string} Returns the converted string.
59993 */
59994function objectToString(value) {
59995 return nativeObjectToString.call(value);
59996}
59997
59998module.exports = objectToString;
59999
60000
60001/***/ }),
60002/* 759 */
60003/***/ (function(module, exports) {
60004
60005/**
60006 * This method returns `false`.
60007 *
60008 * @static
60009 * @memberOf _
60010 * @since 4.13.0
60011 * @category Util
60012 * @returns {boolean} Returns `false`.
60013 * @example
60014 *
60015 * _.times(2, _.stubFalse);
60016 * // => [false, false]
60017 */
60018function stubFalse() {
60019 return false;
60020}
60021
60022module.exports = stubFalse;
60023
60024
60025/***/ }),
60026/* 760 */
60027/***/ (function(module, exports, __webpack_require__) {
60028
60029var baseGetTag = __webpack_require__(98),
60030 isLength = __webpack_require__(208),
60031 isObjectLike = __webpack_require__(100);
60032
60033/** `Object#toString` result references. */
60034var argsTag = '[object Arguments]',
60035 arrayTag = '[object Array]',
60036 boolTag = '[object Boolean]',
60037 dateTag = '[object Date]',
60038 errorTag = '[object Error]',
60039 funcTag = '[object Function]',
60040 mapTag = '[object Map]',
60041 numberTag = '[object Number]',
60042 objectTag = '[object Object]',
60043 regexpTag = '[object RegExp]',
60044 setTag = '[object Set]',
60045 stringTag = '[object String]',
60046 weakMapTag = '[object WeakMap]';
60047
60048var arrayBufferTag = '[object ArrayBuffer]',
60049 dataViewTag = '[object DataView]',
60050 float32Tag = '[object Float32Array]',
60051 float64Tag = '[object Float64Array]',
60052 int8Tag = '[object Int8Array]',
60053 int16Tag = '[object Int16Array]',
60054 int32Tag = '[object Int32Array]',
60055 uint8Tag = '[object Uint8Array]',
60056 uint8ClampedTag = '[object Uint8ClampedArray]',
60057 uint16Tag = '[object Uint16Array]',
60058 uint32Tag = '[object Uint32Array]';
60059
60060/** Used to identify `toStringTag` values of typed arrays. */
60061var typedArrayTags = {};
60062typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
60063typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
60064typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
60065typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
60066typedArrayTags[uint32Tag] = true;
60067typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
60068typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
60069typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
60070typedArrayTags[errorTag] = typedArrayTags[funcTag] =
60071typedArrayTags[mapTag] = typedArrayTags[numberTag] =
60072typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
60073typedArrayTags[setTag] = typedArrayTags[stringTag] =
60074typedArrayTags[weakMapTag] = false;
60075
60076/**
60077 * The base implementation of `_.isTypedArray` without Node.js optimizations.
60078 *
60079 * @private
60080 * @param {*} value The value to check.
60081 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
60082 */
60083function baseIsTypedArray(value) {
60084 return isObjectLike(value) &&
60085 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
60086}
60087
60088module.exports = baseIsTypedArray;
60089
60090
60091/***/ }),
60092/* 761 */
60093/***/ (function(module, exports) {
60094
60095/**
60096 * The base implementation of `_.unary` without support for storing metadata.
60097 *
60098 * @private
60099 * @param {Function} func The function to cap arguments for.
60100 * @returns {Function} Returns the new capped function.
60101 */
60102function baseUnary(func) {
60103 return function(value) {
60104 return func(value);
60105 };
60106}
60107
60108module.exports = baseUnary;
60109
60110
60111/***/ }),
60112/* 762 */
60113/***/ (function(module, exports, __webpack_require__) {
60114
60115/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(341);
60116
60117/** Detect free variable `exports`. */
60118var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
60119
60120/** Detect free variable `module`. */
60121var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
60122
60123/** Detect the popular CommonJS extension `module.exports`. */
60124var moduleExports = freeModule && freeModule.exports === freeExports;
60125
60126/** Detect free variable `process` from Node.js. */
60127var freeProcess = moduleExports && freeGlobal.process;
60128
60129/** Used to access faster Node.js helpers. */
60130var nodeUtil = (function() {
60131 try {
60132 return freeProcess && freeProcess.binding && freeProcess.binding('util');
60133 } catch (e) {}
60134}());
60135
60136module.exports = nodeUtil;
60137
60138/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(193)(module)))
60139
60140/***/ }),
60141/* 763 */
60142/***/ (function(module, exports, __webpack_require__) {
60143
60144var isPrototype = __webpack_require__(764),
60145 nativeKeys = __webpack_require__(765);
60146
60147/** Used for built-in method references. */
60148var objectProto = Object.prototype;
60149
60150/** Used to check objects for own properties. */
60151var hasOwnProperty = objectProto.hasOwnProperty;
60152
60153/**
60154 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
60155 *
60156 * @private
60157 * @param {Object} object The object to query.
60158 * @returns {Array} Returns the array of property names.
60159 */
60160function baseKeys(object) {
60161 if (!isPrototype(object)) {
60162 return nativeKeys(object);
60163 }
60164 var result = [];
60165 for (var key in Object(object)) {
60166 if (hasOwnProperty.call(object, key) && key != 'constructor') {
60167 result.push(key);
60168 }
60169 }
60170 return result;
60171}
60172
60173module.exports = baseKeys;
60174
60175
60176/***/ }),
60177/* 764 */
60178/***/ (function(module, exports) {
60179
60180/** Used for built-in method references. */
60181var objectProto = Object.prototype;
60182
60183/**
60184 * Checks if `value` is likely a prototype object.
60185 *
60186 * @private
60187 * @param {*} value The value to check.
60188 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
60189 */
60190function isPrototype(value) {
60191 var Ctor = value && value.constructor,
60192 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
60193
60194 return value === proto;
60195}
60196
60197module.exports = isPrototype;
60198
60199
60200/***/ }),
60201/* 765 */
60202/***/ (function(module, exports, __webpack_require__) {
60203
60204var overArg = __webpack_require__(766);
60205
60206/* Built-in method references for those with the same name as other `lodash` methods. */
60207var nativeKeys = overArg(Object.keys, Object);
60208
60209module.exports = nativeKeys;
60210
60211
60212/***/ }),
60213/* 766 */
60214/***/ (function(module, exports) {
60215
60216/**
60217 * Creates a unary function that invokes `func` with its argument transformed.
60218 *
60219 * @private
60220 * @param {Function} func The function to wrap.
60221 * @param {Function} transform The argument transform.
60222 * @returns {Function} Returns the new function.
60223 */
60224function overArg(func, transform) {
60225 return function(arg) {
60226 return func(transform(arg));
60227 };
60228}
60229
60230module.exports = overArg;
60231
60232
60233/***/ }),
60234/* 767 */
60235/***/ (function(module, exports, __webpack_require__) {
60236
60237var isArrayLike = __webpack_require__(139);
60238
60239/**
60240 * Creates a `baseEach` or `baseEachRight` function.
60241 *
60242 * @private
60243 * @param {Function} eachFunc The function to iterate over a collection.
60244 * @param {boolean} [fromRight] Specify iterating from right to left.
60245 * @returns {Function} Returns the new base function.
60246 */
60247function createBaseEach(eachFunc, fromRight) {
60248 return function(collection, iteratee) {
60249 if (collection == null) {
60250 return collection;
60251 }
60252 if (!isArrayLike(collection)) {
60253 return eachFunc(collection, iteratee);
60254 }
60255 var length = collection.length,
60256 index = fromRight ? length : -1,
60257 iterable = Object(collection);
60258
60259 while ((fromRight ? index-- : ++index < length)) {
60260 if (iteratee(iterable[index], index, iterable) === false) {
60261 break;
60262 }
60263 }
60264 return collection;
60265 };
60266}
60267
60268module.exports = createBaseEach;
60269
60270
60271/***/ }),
60272/* 768 */
60273/***/ (function(module, exports, __webpack_require__) {
60274
60275var identity = __webpack_require__(345);
60276
60277/**
60278 * Casts `value` to `identity` if it's not a function.
60279 *
60280 * @private
60281 * @param {*} value The value to inspect.
60282 * @returns {Function} Returns cast function.
60283 */
60284function castFunction(value) {
60285 return typeof value == 'function' ? value : identity;
60286}
60287
60288module.exports = castFunction;
60289
60290
60291/***/ }),
60292/* 769 */
60293/***/ (function(module, exports, __webpack_require__) {
60294
60295var arrayMap = __webpack_require__(346),
60296 baseIteratee = __webpack_require__(209),
60297 baseMap = __webpack_require__(833),
60298 isArray = __webpack_require__(24);
60299
60300/**
60301 * Creates an array of values by running each element in `collection` thru
60302 * `iteratee`. The iteratee is invoked with three arguments:
60303 * (value, index|key, collection).
60304 *
60305 * Many lodash methods are guarded to work as iteratees for methods like
60306 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
60307 *
60308 * The guarded methods are:
60309 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
60310 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
60311 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
60312 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
60313 *
60314 * @static
60315 * @memberOf _
60316 * @since 0.1.0
60317 * @category Collection
60318 * @param {Array|Object} collection The collection to iterate over.
60319 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
60320 * @returns {Array} Returns the new mapped array.
60321 * @example
60322 *
60323 * function square(n) {
60324 * return n * n;
60325 * }
60326 *
60327 * _.map([4, 8], square);
60328 * // => [16, 64]
60329 *
60330 * _.map({ 'a': 4, 'b': 8 }, square);
60331 * // => [16, 64] (iteration order is not guaranteed)
60332 *
60333 * var users = [
60334 * { 'user': 'barney' },
60335 * { 'user': 'fred' }
60336 * ];
60337 *
60338 * // The `_.property` iteratee shorthand.
60339 * _.map(users, 'user');
60340 * // => ['barney', 'fred']
60341 */
60342function map(collection, iteratee) {
60343 var func = isArray(collection) ? arrayMap : baseMap;
60344 return func(collection, baseIteratee(iteratee, 3));
60345}
60346
60347module.exports = map;
60348
60349
60350/***/ }),
60351/* 770 */
60352/***/ (function(module, exports, __webpack_require__) {
60353
60354var baseIsMatch = __webpack_require__(771),
60355 getMatchData = __webpack_require__(819),
60356 matchesStrictComparable = __webpack_require__(353);
60357
60358/**
60359 * The base implementation of `_.matches` which doesn't clone `source`.
60360 *
60361 * @private
60362 * @param {Object} source The object of property values to match.
60363 * @returns {Function} Returns the new spec function.
60364 */
60365function baseMatches(source) {
60366 var matchData = getMatchData(source);
60367 if (matchData.length == 1 && matchData[0][2]) {
60368 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
60369 }
60370 return function(object) {
60371 return object === source || baseIsMatch(object, source, matchData);
60372 };
60373}
60374
60375module.exports = baseMatches;
60376
60377
60378/***/ }),
60379/* 771 */
60380/***/ (function(module, exports, __webpack_require__) {
60381
60382var Stack = __webpack_require__(347),
60383 baseIsEqual = __webpack_require__(349);
60384
60385/** Used to compose bitmasks for value comparisons. */
60386var COMPARE_PARTIAL_FLAG = 1,
60387 COMPARE_UNORDERED_FLAG = 2;
60388
60389/**
60390 * The base implementation of `_.isMatch` without support for iteratee shorthands.
60391 *
60392 * @private
60393 * @param {Object} object The object to inspect.
60394 * @param {Object} source The object of property values to match.
60395 * @param {Array} matchData The property names, values, and compare flags to match.
60396 * @param {Function} [customizer] The function to customize comparisons.
60397 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
60398 */
60399function baseIsMatch(object, source, matchData, customizer) {
60400 var index = matchData.length,
60401 length = index,
60402 noCustomizer = !customizer;
60403
60404 if (object == null) {
60405 return !length;
60406 }
60407 object = Object(object);
60408 while (index--) {
60409 var data = matchData[index];
60410 if ((noCustomizer && data[2])
60411 ? data[1] !== object[data[0]]
60412 : !(data[0] in object)
60413 ) {
60414 return false;
60415 }
60416 }
60417 while (++index < length) {
60418 data = matchData[index];
60419 var key = data[0],
60420 objValue = object[key],
60421 srcValue = data[1];
60422
60423 if (noCustomizer && data[2]) {
60424 if (objValue === undefined && !(key in object)) {
60425 return false;
60426 }
60427 } else {
60428 var stack = new Stack;
60429 if (customizer) {
60430 var result = customizer(objValue, srcValue, key, object, source, stack);
60431 }
60432 if (!(result === undefined
60433 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
60434 : result
60435 )) {
60436 return false;
60437 }
60438 }
60439 }
60440 return true;
60441}
60442
60443module.exports = baseIsMatch;
60444
60445
60446/***/ }),
60447/* 772 */
60448/***/ (function(module, exports) {
60449
60450/**
60451 * Removes all key-value entries from the list cache.
60452 *
60453 * @private
60454 * @name clear
60455 * @memberOf ListCache
60456 */
60457function listCacheClear() {
60458 this.__data__ = [];
60459 this.size = 0;
60460}
60461
60462module.exports = listCacheClear;
60463
60464
60465/***/ }),
60466/* 773 */
60467/***/ (function(module, exports, __webpack_require__) {
60468
60469var assocIndexOf = __webpack_require__(142);
60470
60471/** Used for built-in method references. */
60472var arrayProto = Array.prototype;
60473
60474/** Built-in value references. */
60475var splice = arrayProto.splice;
60476
60477/**
60478 * Removes `key` and its value from the list cache.
60479 *
60480 * @private
60481 * @name delete
60482 * @memberOf ListCache
60483 * @param {string} key The key of the value to remove.
60484 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
60485 */
60486function listCacheDelete(key) {
60487 var data = this.__data__,
60488 index = assocIndexOf(data, key);
60489
60490 if (index < 0) {
60491 return false;
60492 }
60493 var lastIndex = data.length - 1;
60494 if (index == lastIndex) {
60495 data.pop();
60496 } else {
60497 splice.call(data, index, 1);
60498 }
60499 --this.size;
60500 return true;
60501}
60502
60503module.exports = listCacheDelete;
60504
60505
60506/***/ }),
60507/* 774 */
60508/***/ (function(module, exports, __webpack_require__) {
60509
60510var assocIndexOf = __webpack_require__(142);
60511
60512/**
60513 * Gets the list cache value for `key`.
60514 *
60515 * @private
60516 * @name get
60517 * @memberOf ListCache
60518 * @param {string} key The key of the value to get.
60519 * @returns {*} Returns the entry value.
60520 */
60521function listCacheGet(key) {
60522 var data = this.__data__,
60523 index = assocIndexOf(data, key);
60524
60525 return index < 0 ? undefined : data[index][1];
60526}
60527
60528module.exports = listCacheGet;
60529
60530
60531/***/ }),
60532/* 775 */
60533/***/ (function(module, exports, __webpack_require__) {
60534
60535var assocIndexOf = __webpack_require__(142);
60536
60537/**
60538 * Checks if a list cache value for `key` exists.
60539 *
60540 * @private
60541 * @name has
60542 * @memberOf ListCache
60543 * @param {string} key The key of the entry to check.
60544 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
60545 */
60546function listCacheHas(key) {
60547 return assocIndexOf(this.__data__, key) > -1;
60548}
60549
60550module.exports = listCacheHas;
60551
60552
60553/***/ }),
60554/* 776 */
60555/***/ (function(module, exports, __webpack_require__) {
60556
60557var assocIndexOf = __webpack_require__(142);
60558
60559/**
60560 * Sets the list cache `key` to `value`.
60561 *
60562 * @private
60563 * @name set
60564 * @memberOf ListCache
60565 * @param {string} key The key of the value to set.
60566 * @param {*} value The value to set.
60567 * @returns {Object} Returns the list cache instance.
60568 */
60569function listCacheSet(key, value) {
60570 var data = this.__data__,
60571 index = assocIndexOf(data, key);
60572
60573 if (index < 0) {
60574 ++this.size;
60575 data.push([key, value]);
60576 } else {
60577 data[index][1] = value;
60578 }
60579 return this;
60580}
60581
60582module.exports = listCacheSet;
60583
60584
60585/***/ }),
60586/* 777 */
60587/***/ (function(module, exports, __webpack_require__) {
60588
60589var ListCache = __webpack_require__(141);
60590
60591/**
60592 * Removes all key-value entries from the stack.
60593 *
60594 * @private
60595 * @name clear
60596 * @memberOf Stack
60597 */
60598function stackClear() {
60599 this.__data__ = new ListCache;
60600 this.size = 0;
60601}
60602
60603module.exports = stackClear;
60604
60605
60606/***/ }),
60607/* 778 */
60608/***/ (function(module, exports) {
60609
60610/**
60611 * Removes `key` and its value from the stack.
60612 *
60613 * @private
60614 * @name delete
60615 * @memberOf Stack
60616 * @param {string} key The key of the value to remove.
60617 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
60618 */
60619function stackDelete(key) {
60620 var data = this.__data__,
60621 result = data['delete'](key);
60622
60623 this.size = data.size;
60624 return result;
60625}
60626
60627module.exports = stackDelete;
60628
60629
60630/***/ }),
60631/* 779 */
60632/***/ (function(module, exports) {
60633
60634/**
60635 * Gets the stack value for `key`.
60636 *
60637 * @private
60638 * @name get
60639 * @memberOf Stack
60640 * @param {string} key The key of the value to get.
60641 * @returns {*} Returns the entry value.
60642 */
60643function stackGet(key) {
60644 return this.__data__.get(key);
60645}
60646
60647module.exports = stackGet;
60648
60649
60650/***/ }),
60651/* 780 */
60652/***/ (function(module, exports) {
60653
60654/**
60655 * Checks if a stack value for `key` exists.
60656 *
60657 * @private
60658 * @name has
60659 * @memberOf Stack
60660 * @param {string} key The key of the entry to check.
60661 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
60662 */
60663function stackHas(key) {
60664 return this.__data__.has(key);
60665}
60666
60667module.exports = stackHas;
60668
60669
60670/***/ }),
60671/* 781 */
60672/***/ (function(module, exports, __webpack_require__) {
60673
60674var ListCache = __webpack_require__(141),
60675 Map = __webpack_require__(211),
60676 MapCache = __webpack_require__(212);
60677
60678/** Used as the size to enable large array optimizations. */
60679var LARGE_ARRAY_SIZE = 200;
60680
60681/**
60682 * Sets the stack `key` to `value`.
60683 *
60684 * @private
60685 * @name set
60686 * @memberOf Stack
60687 * @param {string} key The key of the value to set.
60688 * @param {*} value The value to set.
60689 * @returns {Object} Returns the stack cache instance.
60690 */
60691function stackSet(key, value) {
60692 var data = this.__data__;
60693 if (data instanceof ListCache) {
60694 var pairs = data.__data__;
60695 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
60696 pairs.push([key, value]);
60697 this.size = ++data.size;
60698 return this;
60699 }
60700 data = this.__data__ = new MapCache(pairs);
60701 }
60702 data.set(key, value);
60703 this.size = data.size;
60704 return this;
60705}
60706
60707module.exports = stackSet;
60708
60709
60710/***/ }),
60711/* 782 */
60712/***/ (function(module, exports, __webpack_require__) {
60713
60714var isFunction = __webpack_require__(344),
60715 isMasked = __webpack_require__(783),
60716 isObject = __webpack_require__(140),
60717 toSource = __webpack_require__(348);
60718
60719/**
60720 * Used to match `RegExp`
60721 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
60722 */
60723var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
60724
60725/** Used to detect host constructors (Safari). */
60726var reIsHostCtor = /^\[object .+?Constructor\]$/;
60727
60728/** Used for built-in method references. */
60729var funcProto = Function.prototype,
60730 objectProto = Object.prototype;
60731
60732/** Used to resolve the decompiled source of functions. */
60733var funcToString = funcProto.toString;
60734
60735/** Used to check objects for own properties. */
60736var hasOwnProperty = objectProto.hasOwnProperty;
60737
60738/** Used to detect if a method is native. */
60739var reIsNative = RegExp('^' +
60740 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
60741 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
60742);
60743
60744/**
60745 * The base implementation of `_.isNative` without bad shim checks.
60746 *
60747 * @private
60748 * @param {*} value The value to check.
60749 * @returns {boolean} Returns `true` if `value` is a native function,
60750 * else `false`.
60751 */
60752function baseIsNative(value) {
60753 if (!isObject(value) || isMasked(value)) {
60754 return false;
60755 }
60756 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
60757 return pattern.test(toSource(value));
60758}
60759
60760module.exports = baseIsNative;
60761
60762
60763/***/ }),
60764/* 783 */
60765/***/ (function(module, exports, __webpack_require__) {
60766
60767var coreJsData = __webpack_require__(784);
60768
60769/** Used to detect methods masquerading as native. */
60770var maskSrcKey = (function() {
60771 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
60772 return uid ? ('Symbol(src)_1.' + uid) : '';
60773}());
60774
60775/**
60776 * Checks if `func` has its source masked.
60777 *
60778 * @private
60779 * @param {Function} func The function to check.
60780 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
60781 */
60782function isMasked(func) {
60783 return !!maskSrcKey && (maskSrcKey in func);
60784}
60785
60786module.exports = isMasked;
60787
60788
60789/***/ }),
60790/* 784 */
60791/***/ (function(module, exports, __webpack_require__) {
60792
60793var root = __webpack_require__(49);
60794
60795/** Used to detect overreaching core-js shims. */
60796var coreJsData = root['__core-js_shared__'];
60797
60798module.exports = coreJsData;
60799
60800
60801/***/ }),
60802/* 785 */
60803/***/ (function(module, exports) {
60804
60805/**
60806 * Gets the value at `key` of `object`.
60807 *
60808 * @private
60809 * @param {Object} [object] The object to query.
60810 * @param {string} key The key of the property to get.
60811 * @returns {*} Returns the property value.
60812 */
60813function getValue(object, key) {
60814 return object == null ? undefined : object[key];
60815}
60816
60817module.exports = getValue;
60818
60819
60820/***/ }),
60821/* 786 */
60822/***/ (function(module, exports, __webpack_require__) {
60823
60824var Hash = __webpack_require__(787),
60825 ListCache = __webpack_require__(141),
60826 Map = __webpack_require__(211);
60827
60828/**
60829 * Removes all key-value entries from the map.
60830 *
60831 * @private
60832 * @name clear
60833 * @memberOf MapCache
60834 */
60835function mapCacheClear() {
60836 this.size = 0;
60837 this.__data__ = {
60838 'hash': new Hash,
60839 'map': new (Map || ListCache),
60840 'string': new Hash
60841 };
60842}
60843
60844module.exports = mapCacheClear;
60845
60846
60847/***/ }),
60848/* 787 */
60849/***/ (function(module, exports, __webpack_require__) {
60850
60851var hashClear = __webpack_require__(788),
60852 hashDelete = __webpack_require__(789),
60853 hashGet = __webpack_require__(790),
60854 hashHas = __webpack_require__(791),
60855 hashSet = __webpack_require__(792);
60856
60857/**
60858 * Creates a hash object.
60859 *
60860 * @private
60861 * @constructor
60862 * @param {Array} [entries] The key-value pairs to cache.
60863 */
60864function Hash(entries) {
60865 var index = -1,
60866 length = entries == null ? 0 : entries.length;
60867
60868 this.clear();
60869 while (++index < length) {
60870 var entry = entries[index];
60871 this.set(entry[0], entry[1]);
60872 }
60873}
60874
60875// Add methods to `Hash`.
60876Hash.prototype.clear = hashClear;
60877Hash.prototype['delete'] = hashDelete;
60878Hash.prototype.get = hashGet;
60879Hash.prototype.has = hashHas;
60880Hash.prototype.set = hashSet;
60881
60882module.exports = Hash;
60883
60884
60885/***/ }),
60886/* 788 */
60887/***/ (function(module, exports, __webpack_require__) {
60888
60889var nativeCreate = __webpack_require__(143);
60890
60891/**
60892 * Removes all key-value entries from the hash.
60893 *
60894 * @private
60895 * @name clear
60896 * @memberOf Hash
60897 */
60898function hashClear() {
60899 this.__data__ = nativeCreate ? nativeCreate(null) : {};
60900 this.size = 0;
60901}
60902
60903module.exports = hashClear;
60904
60905
60906/***/ }),
60907/* 789 */
60908/***/ (function(module, exports) {
60909
60910/**
60911 * Removes `key` and its value from the hash.
60912 *
60913 * @private
60914 * @name delete
60915 * @memberOf Hash
60916 * @param {Object} hash The hash to modify.
60917 * @param {string} key The key of the value to remove.
60918 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
60919 */
60920function hashDelete(key) {
60921 var result = this.has(key) && delete this.__data__[key];
60922 this.size -= result ? 1 : 0;
60923 return result;
60924}
60925
60926module.exports = hashDelete;
60927
60928
60929/***/ }),
60930/* 790 */
60931/***/ (function(module, exports, __webpack_require__) {
60932
60933var nativeCreate = __webpack_require__(143);
60934
60935/** Used to stand-in for `undefined` hash values. */
60936var HASH_UNDEFINED = '__lodash_hash_undefined__';
60937
60938/** Used for built-in method references. */
60939var objectProto = Object.prototype;
60940
60941/** Used to check objects for own properties. */
60942var hasOwnProperty = objectProto.hasOwnProperty;
60943
60944/**
60945 * Gets the hash value for `key`.
60946 *
60947 * @private
60948 * @name get
60949 * @memberOf Hash
60950 * @param {string} key The key of the value to get.
60951 * @returns {*} Returns the entry value.
60952 */
60953function hashGet(key) {
60954 var data = this.__data__;
60955 if (nativeCreate) {
60956 var result = data[key];
60957 return result === HASH_UNDEFINED ? undefined : result;
60958 }
60959 return hasOwnProperty.call(data, key) ? data[key] : undefined;
60960}
60961
60962module.exports = hashGet;
60963
60964
60965/***/ }),
60966/* 791 */
60967/***/ (function(module, exports, __webpack_require__) {
60968
60969var nativeCreate = __webpack_require__(143);
60970
60971/** Used for built-in method references. */
60972var objectProto = Object.prototype;
60973
60974/** Used to check objects for own properties. */
60975var hasOwnProperty = objectProto.hasOwnProperty;
60976
60977/**
60978 * Checks if a hash value for `key` exists.
60979 *
60980 * @private
60981 * @name has
60982 * @memberOf Hash
60983 * @param {string} key The key of the entry to check.
60984 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
60985 */
60986function hashHas(key) {
60987 var data = this.__data__;
60988 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
60989}
60990
60991module.exports = hashHas;
60992
60993
60994/***/ }),
60995/* 792 */
60996/***/ (function(module, exports, __webpack_require__) {
60997
60998var nativeCreate = __webpack_require__(143);
60999
61000/** Used to stand-in for `undefined` hash values. */
61001var HASH_UNDEFINED = '__lodash_hash_undefined__';
61002
61003/**
61004 * Sets the hash `key` to `value`.
61005 *
61006 * @private
61007 * @name set
61008 * @memberOf Hash
61009 * @param {string} key The key of the value to set.
61010 * @param {*} value The value to set.
61011 * @returns {Object} Returns the hash instance.
61012 */
61013function hashSet(key, value) {
61014 var data = this.__data__;
61015 this.size += this.has(key) ? 0 : 1;
61016 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
61017 return this;
61018}
61019
61020module.exports = hashSet;
61021
61022
61023/***/ }),
61024/* 793 */
61025/***/ (function(module, exports, __webpack_require__) {
61026
61027var getMapData = __webpack_require__(144);
61028
61029/**
61030 * Removes `key` and its value from the map.
61031 *
61032 * @private
61033 * @name delete
61034 * @memberOf MapCache
61035 * @param {string} key The key of the value to remove.
61036 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
61037 */
61038function mapCacheDelete(key) {
61039 var result = getMapData(this, key)['delete'](key);
61040 this.size -= result ? 1 : 0;
61041 return result;
61042}
61043
61044module.exports = mapCacheDelete;
61045
61046
61047/***/ }),
61048/* 794 */
61049/***/ (function(module, exports) {
61050
61051/**
61052 * Checks if `value` is suitable for use as unique object key.
61053 *
61054 * @private
61055 * @param {*} value The value to check.
61056 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
61057 */
61058function isKeyable(value) {
61059 var type = typeof value;
61060 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
61061 ? (value !== '__proto__')
61062 : (value === null);
61063}
61064
61065module.exports = isKeyable;
61066
61067
61068/***/ }),
61069/* 795 */
61070/***/ (function(module, exports, __webpack_require__) {
61071
61072var getMapData = __webpack_require__(144);
61073
61074/**
61075 * Gets the map value for `key`.
61076 *
61077 * @private
61078 * @name get
61079 * @memberOf MapCache
61080 * @param {string} key The key of the value to get.
61081 * @returns {*} Returns the entry value.
61082 */
61083function mapCacheGet(key) {
61084 return getMapData(this, key).get(key);
61085}
61086
61087module.exports = mapCacheGet;
61088
61089
61090/***/ }),
61091/* 796 */
61092/***/ (function(module, exports, __webpack_require__) {
61093
61094var getMapData = __webpack_require__(144);
61095
61096/**
61097 * Checks if a map value for `key` exists.
61098 *
61099 * @private
61100 * @name has
61101 * @memberOf MapCache
61102 * @param {string} key The key of the entry to check.
61103 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
61104 */
61105function mapCacheHas(key) {
61106 return getMapData(this, key).has(key);
61107}
61108
61109module.exports = mapCacheHas;
61110
61111
61112/***/ }),
61113/* 797 */
61114/***/ (function(module, exports, __webpack_require__) {
61115
61116var getMapData = __webpack_require__(144);
61117
61118/**
61119 * Sets the map `key` to `value`.
61120 *
61121 * @private
61122 * @name set
61123 * @memberOf MapCache
61124 * @param {string} key The key of the value to set.
61125 * @param {*} value The value to set.
61126 * @returns {Object} Returns the map cache instance.
61127 */
61128function mapCacheSet(key, value) {
61129 var data = getMapData(this, key),
61130 size = data.size;
61131
61132 data.set(key, value);
61133 this.size += data.size == size ? 0 : 1;
61134 return this;
61135}
61136
61137module.exports = mapCacheSet;
61138
61139
61140/***/ }),
61141/* 798 */
61142/***/ (function(module, exports, __webpack_require__) {
61143
61144var Stack = __webpack_require__(347),
61145 equalArrays = __webpack_require__(350),
61146 equalByTag = __webpack_require__(804),
61147 equalObjects = __webpack_require__(808),
61148 getTag = __webpack_require__(814),
61149 isArray = __webpack_require__(24),
61150 isBuffer = __webpack_require__(342),
61151 isTypedArray = __webpack_require__(343);
61152
61153/** Used to compose bitmasks for value comparisons. */
61154var COMPARE_PARTIAL_FLAG = 1;
61155
61156/** `Object#toString` result references. */
61157var argsTag = '[object Arguments]',
61158 arrayTag = '[object Array]',
61159 objectTag = '[object Object]';
61160
61161/** Used for built-in method references. */
61162var objectProto = Object.prototype;
61163
61164/** Used to check objects for own properties. */
61165var hasOwnProperty = objectProto.hasOwnProperty;
61166
61167/**
61168 * A specialized version of `baseIsEqual` for arrays and objects which performs
61169 * deep comparisons and tracks traversed objects enabling objects with circular
61170 * references to be compared.
61171 *
61172 * @private
61173 * @param {Object} object The object to compare.
61174 * @param {Object} other The other object to compare.
61175 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
61176 * @param {Function} customizer The function to customize comparisons.
61177 * @param {Function} equalFunc The function to determine equivalents of values.
61178 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
61179 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
61180 */
61181function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
61182 var objIsArr = isArray(object),
61183 othIsArr = isArray(other),
61184 objTag = objIsArr ? arrayTag : getTag(object),
61185 othTag = othIsArr ? arrayTag : getTag(other);
61186
61187 objTag = objTag == argsTag ? objectTag : objTag;
61188 othTag = othTag == argsTag ? objectTag : othTag;
61189
61190 var objIsObj = objTag == objectTag,
61191 othIsObj = othTag == objectTag,
61192 isSameTag = objTag == othTag;
61193
61194 if (isSameTag && isBuffer(object)) {
61195 if (!isBuffer(other)) {
61196 return false;
61197 }
61198 objIsArr = true;
61199 objIsObj = false;
61200 }
61201 if (isSameTag && !objIsObj) {
61202 stack || (stack = new Stack);
61203 return (objIsArr || isTypedArray(object))
61204 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
61205 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
61206 }
61207 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
61208 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
61209 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
61210
61211 if (objIsWrapped || othIsWrapped) {
61212 var objUnwrapped = objIsWrapped ? object.value() : object,
61213 othUnwrapped = othIsWrapped ? other.value() : other;
61214
61215 stack || (stack = new Stack);
61216 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
61217 }
61218 }
61219 if (!isSameTag) {
61220 return false;
61221 }
61222 stack || (stack = new Stack);
61223 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
61224}
61225
61226module.exports = baseIsEqualDeep;
61227
61228
61229/***/ }),
61230/* 799 */
61231/***/ (function(module, exports, __webpack_require__) {
61232
61233var MapCache = __webpack_require__(212),
61234 setCacheAdd = __webpack_require__(800),
61235 setCacheHas = __webpack_require__(801);
61236
61237/**
61238 *
61239 * Creates an array cache object to store unique values.
61240 *
61241 * @private
61242 * @constructor
61243 * @param {Array} [values] The values to cache.
61244 */
61245function SetCache(values) {
61246 var index = -1,
61247 length = values == null ? 0 : values.length;
61248
61249 this.__data__ = new MapCache;
61250 while (++index < length) {
61251 this.add(values[index]);
61252 }
61253}
61254
61255// Add methods to `SetCache`.
61256SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
61257SetCache.prototype.has = setCacheHas;
61258
61259module.exports = SetCache;
61260
61261
61262/***/ }),
61263/* 800 */
61264/***/ (function(module, exports) {
61265
61266/** Used to stand-in for `undefined` hash values. */
61267var HASH_UNDEFINED = '__lodash_hash_undefined__';
61268
61269/**
61270 * Adds `value` to the array cache.
61271 *
61272 * @private
61273 * @name add
61274 * @memberOf SetCache
61275 * @alias push
61276 * @param {*} value The value to cache.
61277 * @returns {Object} Returns the cache instance.
61278 */
61279function setCacheAdd(value) {
61280 this.__data__.set(value, HASH_UNDEFINED);
61281 return this;
61282}
61283
61284module.exports = setCacheAdd;
61285
61286
61287/***/ }),
61288/* 801 */
61289/***/ (function(module, exports) {
61290
61291/**
61292 * Checks if `value` is in the array cache.
61293 *
61294 * @private
61295 * @name has
61296 * @memberOf SetCache
61297 * @param {*} value The value to search for.
61298 * @returns {number} Returns `true` if `value` is found, else `false`.
61299 */
61300function setCacheHas(value) {
61301 return this.__data__.has(value);
61302}
61303
61304module.exports = setCacheHas;
61305
61306
61307/***/ }),
61308/* 802 */
61309/***/ (function(module, exports) {
61310
61311/**
61312 * A specialized version of `_.some` for arrays without support for iteratee
61313 * shorthands.
61314 *
61315 * @private
61316 * @param {Array} [array] The array to iterate over.
61317 * @param {Function} predicate The function invoked per iteration.
61318 * @returns {boolean} Returns `true` if any element passes the predicate check,
61319 * else `false`.
61320 */
61321function arraySome(array, predicate) {
61322 var index = -1,
61323 length = array == null ? 0 : array.length;
61324
61325 while (++index < length) {
61326 if (predicate(array[index], index, array)) {
61327 return true;
61328 }
61329 }
61330 return false;
61331}
61332
61333module.exports = arraySome;
61334
61335
61336/***/ }),
61337/* 803 */
61338/***/ (function(module, exports) {
61339
61340/**
61341 * Checks if a `cache` value for `key` exists.
61342 *
61343 * @private
61344 * @param {Object} cache The cache to query.
61345 * @param {string} key The key of the entry to check.
61346 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
61347 */
61348function cacheHas(cache, key) {
61349 return cache.has(key);
61350}
61351
61352module.exports = cacheHas;
61353
61354
61355/***/ }),
61356/* 804 */
61357/***/ (function(module, exports, __webpack_require__) {
61358
61359var Symbol = __webpack_require__(99),
61360 Uint8Array = __webpack_require__(805),
61361 eq = __webpack_require__(210),
61362 equalArrays = __webpack_require__(350),
61363 mapToArray = __webpack_require__(806),
61364 setToArray = __webpack_require__(807);
61365
61366/** Used to compose bitmasks for value comparisons. */
61367var COMPARE_PARTIAL_FLAG = 1,
61368 COMPARE_UNORDERED_FLAG = 2;
61369
61370/** `Object#toString` result references. */
61371var boolTag = '[object Boolean]',
61372 dateTag = '[object Date]',
61373 errorTag = '[object Error]',
61374 mapTag = '[object Map]',
61375 numberTag = '[object Number]',
61376 regexpTag = '[object RegExp]',
61377 setTag = '[object Set]',
61378 stringTag = '[object String]',
61379 symbolTag = '[object Symbol]';
61380
61381var arrayBufferTag = '[object ArrayBuffer]',
61382 dataViewTag = '[object DataView]';
61383
61384/** Used to convert symbols to primitives and strings. */
61385var symbolProto = Symbol ? Symbol.prototype : undefined,
61386 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
61387
61388/**
61389 * A specialized version of `baseIsEqualDeep` for comparing objects of
61390 * the same `toStringTag`.
61391 *
61392 * **Note:** This function only supports comparing values with tags of
61393 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
61394 *
61395 * @private
61396 * @param {Object} object The object to compare.
61397 * @param {Object} other The other object to compare.
61398 * @param {string} tag The `toStringTag` of the objects to compare.
61399 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
61400 * @param {Function} customizer The function to customize comparisons.
61401 * @param {Function} equalFunc The function to determine equivalents of values.
61402 * @param {Object} stack Tracks traversed `object` and `other` objects.
61403 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
61404 */
61405function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
61406 switch (tag) {
61407 case dataViewTag:
61408 if ((object.byteLength != other.byteLength) ||
61409 (object.byteOffset != other.byteOffset)) {
61410 return false;
61411 }
61412 object = object.buffer;
61413 other = other.buffer;
61414
61415 case arrayBufferTag:
61416 if ((object.byteLength != other.byteLength) ||
61417 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
61418 return false;
61419 }
61420 return true;
61421
61422 case boolTag:
61423 case dateTag:
61424 case numberTag:
61425 // Coerce booleans to `1` or `0` and dates to milliseconds.
61426 // Invalid dates are coerced to `NaN`.
61427 return eq(+object, +other);
61428
61429 case errorTag:
61430 return object.name == other.name && object.message == other.message;
61431
61432 case regexpTag:
61433 case stringTag:
61434 // Coerce regexes to strings and treat strings, primitives and objects,
61435 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
61436 // for more details.
61437 return object == (other + '');
61438
61439 case mapTag:
61440 var convert = mapToArray;
61441
61442 case setTag:
61443 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
61444 convert || (convert = setToArray);
61445
61446 if (object.size != other.size && !isPartial) {
61447 return false;
61448 }
61449 // Assume cyclic values are equal.
61450 var stacked = stack.get(object);
61451 if (stacked) {
61452 return stacked == other;
61453 }
61454 bitmask |= COMPARE_UNORDERED_FLAG;
61455
61456 // Recursively compare objects (susceptible to call stack limits).
61457 stack.set(object, other);
61458 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
61459 stack['delete'](object);
61460 return result;
61461
61462 case symbolTag:
61463 if (symbolValueOf) {
61464 return symbolValueOf.call(object) == symbolValueOf.call(other);
61465 }
61466 }
61467 return false;
61468}
61469
61470module.exports = equalByTag;
61471
61472
61473/***/ }),
61474/* 805 */
61475/***/ (function(module, exports, __webpack_require__) {
61476
61477var root = __webpack_require__(49);
61478
61479/** Built-in value references. */
61480var Uint8Array = root.Uint8Array;
61481
61482module.exports = Uint8Array;
61483
61484
61485/***/ }),
61486/* 806 */
61487/***/ (function(module, exports) {
61488
61489/**
61490 * Converts `map` to its key-value pairs.
61491 *
61492 * @private
61493 * @param {Object} map The map to convert.
61494 * @returns {Array} Returns the key-value pairs.
61495 */
61496function mapToArray(map) {
61497 var index = -1,
61498 result = Array(map.size);
61499
61500 map.forEach(function(value, key) {
61501 result[++index] = [key, value];
61502 });
61503 return result;
61504}
61505
61506module.exports = mapToArray;
61507
61508
61509/***/ }),
61510/* 807 */
61511/***/ (function(module, exports) {
61512
61513/**
61514 * Converts `set` to an array of its values.
61515 *
61516 * @private
61517 * @param {Object} set The set to convert.
61518 * @returns {Array} Returns the values.
61519 */
61520function setToArray(set) {
61521 var index = -1,
61522 result = Array(set.size);
61523
61524 set.forEach(function(value) {
61525 result[++index] = value;
61526 });
61527 return result;
61528}
61529
61530module.exports = setToArray;
61531
61532
61533/***/ }),
61534/* 808 */
61535/***/ (function(module, exports, __webpack_require__) {
61536
61537var getAllKeys = __webpack_require__(809);
61538
61539/** Used to compose bitmasks for value comparisons. */
61540var COMPARE_PARTIAL_FLAG = 1;
61541
61542/** Used for built-in method references. */
61543var objectProto = Object.prototype;
61544
61545/** Used to check objects for own properties. */
61546var hasOwnProperty = objectProto.hasOwnProperty;
61547
61548/**
61549 * A specialized version of `baseIsEqualDeep` for objects with support for
61550 * partial deep comparisons.
61551 *
61552 * @private
61553 * @param {Object} object The object to compare.
61554 * @param {Object} other The other object to compare.
61555 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
61556 * @param {Function} customizer The function to customize comparisons.
61557 * @param {Function} equalFunc The function to determine equivalents of values.
61558 * @param {Object} stack Tracks traversed `object` and `other` objects.
61559 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
61560 */
61561function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
61562 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
61563 objProps = getAllKeys(object),
61564 objLength = objProps.length,
61565 othProps = getAllKeys(other),
61566 othLength = othProps.length;
61567
61568 if (objLength != othLength && !isPartial) {
61569 return false;
61570 }
61571 var index = objLength;
61572 while (index--) {
61573 var key = objProps[index];
61574 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
61575 return false;
61576 }
61577 }
61578 // Assume cyclic values are equal.
61579 var stacked = stack.get(object);
61580 if (stacked && stack.get(other)) {
61581 return stacked == other;
61582 }
61583 var result = true;
61584 stack.set(object, other);
61585 stack.set(other, object);
61586
61587 var skipCtor = isPartial;
61588 while (++index < objLength) {
61589 key = objProps[index];
61590 var objValue = object[key],
61591 othValue = other[key];
61592
61593 if (customizer) {
61594 var compared = isPartial
61595 ? customizer(othValue, objValue, key, other, object, stack)
61596 : customizer(objValue, othValue, key, object, other, stack);
61597 }
61598 // Recursively compare objects (susceptible to call stack limits).
61599 if (!(compared === undefined
61600 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
61601 : compared
61602 )) {
61603 result = false;
61604 break;
61605 }
61606 skipCtor || (skipCtor = key == 'constructor');
61607 }
61608 if (result && !skipCtor) {
61609 var objCtor = object.constructor,
61610 othCtor = other.constructor;
61611
61612 // Non `Object` object instances with different constructors are not equal.
61613 if (objCtor != othCtor &&
61614 ('constructor' in object && 'constructor' in other) &&
61615 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
61616 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
61617 result = false;
61618 }
61619 }
61620 stack['delete'](object);
61621 stack['delete'](other);
61622 return result;
61623}
61624
61625module.exports = equalObjects;
61626
61627
61628/***/ }),
61629/* 809 */
61630/***/ (function(module, exports, __webpack_require__) {
61631
61632var baseGetAllKeys = __webpack_require__(810),
61633 getSymbols = __webpack_require__(811),
61634 keys = __webpack_require__(205);
61635
61636/**
61637 * Creates an array of own enumerable property names and symbols of `object`.
61638 *
61639 * @private
61640 * @param {Object} object The object to query.
61641 * @returns {Array} Returns the array of property names and symbols.
61642 */
61643function getAllKeys(object) {
61644 return baseGetAllKeys(object, keys, getSymbols);
61645}
61646
61647module.exports = getAllKeys;
61648
61649
61650/***/ }),
61651/* 810 */
61652/***/ (function(module, exports, __webpack_require__) {
61653
61654var arrayPush = __webpack_require__(351),
61655 isArray = __webpack_require__(24);
61656
61657/**
61658 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
61659 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
61660 * symbols of `object`.
61661 *
61662 * @private
61663 * @param {Object} object The object to query.
61664 * @param {Function} keysFunc The function to get the keys of `object`.
61665 * @param {Function} symbolsFunc The function to get the symbols of `object`.
61666 * @returns {Array} Returns the array of property names and symbols.
61667 */
61668function baseGetAllKeys(object, keysFunc, symbolsFunc) {
61669 var result = keysFunc(object);
61670 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
61671}
61672
61673module.exports = baseGetAllKeys;
61674
61675
61676/***/ }),
61677/* 811 */
61678/***/ (function(module, exports, __webpack_require__) {
61679
61680var arrayFilter = __webpack_require__(812),
61681 stubArray = __webpack_require__(813);
61682
61683/** Used for built-in method references. */
61684var objectProto = Object.prototype;
61685
61686/** Built-in value references. */
61687var propertyIsEnumerable = objectProto.propertyIsEnumerable;
61688
61689/* Built-in method references for those with the same name as other `lodash` methods. */
61690var nativeGetSymbols = Object.getOwnPropertySymbols;
61691
61692/**
61693 * Creates an array of the own enumerable symbols of `object`.
61694 *
61695 * @private
61696 * @param {Object} object The object to query.
61697 * @returns {Array} Returns the array of symbols.
61698 */
61699var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
61700 if (object == null) {
61701 return [];
61702 }
61703 object = Object(object);
61704 return arrayFilter(nativeGetSymbols(object), function(symbol) {
61705 return propertyIsEnumerable.call(object, symbol);
61706 });
61707};
61708
61709module.exports = getSymbols;
61710
61711
61712/***/ }),
61713/* 812 */
61714/***/ (function(module, exports) {
61715
61716/**
61717 * A specialized version of `_.filter` for arrays without support for
61718 * iteratee shorthands.
61719 *
61720 * @private
61721 * @param {Array} [array] The array to iterate over.
61722 * @param {Function} predicate The function invoked per iteration.
61723 * @returns {Array} Returns the new filtered array.
61724 */
61725function arrayFilter(array, predicate) {
61726 var index = -1,
61727 length = array == null ? 0 : array.length,
61728 resIndex = 0,
61729 result = [];
61730
61731 while (++index < length) {
61732 var value = array[index];
61733 if (predicate(value, index, array)) {
61734 result[resIndex++] = value;
61735 }
61736 }
61737 return result;
61738}
61739
61740module.exports = arrayFilter;
61741
61742
61743/***/ }),
61744/* 813 */
61745/***/ (function(module, exports) {
61746
61747/**
61748 * This method returns a new empty array.
61749 *
61750 * @static
61751 * @memberOf _
61752 * @since 4.13.0
61753 * @category Util
61754 * @returns {Array} Returns the new empty array.
61755 * @example
61756 *
61757 * var arrays = _.times(2, _.stubArray);
61758 *
61759 * console.log(arrays);
61760 * // => [[], []]
61761 *
61762 * console.log(arrays[0] === arrays[1]);
61763 * // => false
61764 */
61765function stubArray() {
61766 return [];
61767}
61768
61769module.exports = stubArray;
61770
61771
61772/***/ }),
61773/* 814 */
61774/***/ (function(module, exports, __webpack_require__) {
61775
61776var DataView = __webpack_require__(815),
61777 Map = __webpack_require__(211),
61778 Promise = __webpack_require__(816),
61779 Set = __webpack_require__(817),
61780 WeakMap = __webpack_require__(818),
61781 baseGetTag = __webpack_require__(98),
61782 toSource = __webpack_require__(348);
61783
61784/** `Object#toString` result references. */
61785var mapTag = '[object Map]',
61786 objectTag = '[object Object]',
61787 promiseTag = '[object Promise]',
61788 setTag = '[object Set]',
61789 weakMapTag = '[object WeakMap]';
61790
61791var dataViewTag = '[object DataView]';
61792
61793/** Used to detect maps, sets, and weakmaps. */
61794var dataViewCtorString = toSource(DataView),
61795 mapCtorString = toSource(Map),
61796 promiseCtorString = toSource(Promise),
61797 setCtorString = toSource(Set),
61798 weakMapCtorString = toSource(WeakMap);
61799
61800/**
61801 * Gets the `toStringTag` of `value`.
61802 *
61803 * @private
61804 * @param {*} value The value to query.
61805 * @returns {string} Returns the `toStringTag`.
61806 */
61807var getTag = baseGetTag;
61808
61809// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
61810if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
61811 (Map && getTag(new Map) != mapTag) ||
61812 (Promise && getTag(Promise.resolve()) != promiseTag) ||
61813 (Set && getTag(new Set) != setTag) ||
61814 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
61815 getTag = function(value) {
61816 var result = baseGetTag(value),
61817 Ctor = result == objectTag ? value.constructor : undefined,
61818 ctorString = Ctor ? toSource(Ctor) : '';
61819
61820 if (ctorString) {
61821 switch (ctorString) {
61822 case dataViewCtorString: return dataViewTag;
61823 case mapCtorString: return mapTag;
61824 case promiseCtorString: return promiseTag;
61825 case setCtorString: return setTag;
61826 case weakMapCtorString: return weakMapTag;
61827 }
61828 }
61829 return result;
61830 };
61831}
61832
61833module.exports = getTag;
61834
61835
61836/***/ }),
61837/* 815 */
61838/***/ (function(module, exports, __webpack_require__) {
61839
61840var getNative = __webpack_require__(81),
61841 root = __webpack_require__(49);
61842
61843/* Built-in method references that are verified to be native. */
61844var DataView = getNative(root, 'DataView');
61845
61846module.exports = DataView;
61847
61848
61849/***/ }),
61850/* 816 */
61851/***/ (function(module, exports, __webpack_require__) {
61852
61853var getNative = __webpack_require__(81),
61854 root = __webpack_require__(49);
61855
61856/* Built-in method references that are verified to be native. */
61857var Promise = getNative(root, 'Promise');
61858
61859module.exports = Promise;
61860
61861
61862/***/ }),
61863/* 817 */
61864/***/ (function(module, exports, __webpack_require__) {
61865
61866var getNative = __webpack_require__(81),
61867 root = __webpack_require__(49);
61868
61869/* Built-in method references that are verified to be native. */
61870var Set = getNative(root, 'Set');
61871
61872module.exports = Set;
61873
61874
61875/***/ }),
61876/* 818 */
61877/***/ (function(module, exports, __webpack_require__) {
61878
61879var getNative = __webpack_require__(81),
61880 root = __webpack_require__(49);
61881
61882/* Built-in method references that are verified to be native. */
61883var WeakMap = getNative(root, 'WeakMap');
61884
61885module.exports = WeakMap;
61886
61887
61888/***/ }),
61889/* 819 */
61890/***/ (function(module, exports, __webpack_require__) {
61891
61892var isStrictComparable = __webpack_require__(352),
61893 keys = __webpack_require__(205);
61894
61895/**
61896 * Gets the property names, values, and compare flags of `object`.
61897 *
61898 * @private
61899 * @param {Object} object The object to query.
61900 * @returns {Array} Returns the match data of `object`.
61901 */
61902function getMatchData(object) {
61903 var result = keys(object),
61904 length = result.length;
61905
61906 while (length--) {
61907 var key = result[length],
61908 value = object[key];
61909
61910 result[length] = [key, value, isStrictComparable(value)];
61911 }
61912 return result;
61913}
61914
61915module.exports = getMatchData;
61916
61917
61918/***/ }),
61919/* 820 */
61920/***/ (function(module, exports, __webpack_require__) {
61921
61922var baseIsEqual = __webpack_require__(349),
61923 get = __webpack_require__(821),
61924 hasIn = __webpack_require__(827),
61925 isKey = __webpack_require__(213),
61926 isStrictComparable = __webpack_require__(352),
61927 matchesStrictComparable = __webpack_require__(353),
61928 toKey = __webpack_require__(146);
61929
61930/** Used to compose bitmasks for value comparisons. */
61931var COMPARE_PARTIAL_FLAG = 1,
61932 COMPARE_UNORDERED_FLAG = 2;
61933
61934/**
61935 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
61936 *
61937 * @private
61938 * @param {string} path The path of the property to get.
61939 * @param {*} srcValue The value to match.
61940 * @returns {Function} Returns the new spec function.
61941 */
61942function baseMatchesProperty(path, srcValue) {
61943 if (isKey(path) && isStrictComparable(srcValue)) {
61944 return matchesStrictComparable(toKey(path), srcValue);
61945 }
61946 return function(object) {
61947 var objValue = get(object, path);
61948 return (objValue === undefined && objValue === srcValue)
61949 ? hasIn(object, path)
61950 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
61951 };
61952}
61953
61954module.exports = baseMatchesProperty;
61955
61956
61957/***/ }),
61958/* 821 */
61959/***/ (function(module, exports, __webpack_require__) {
61960
61961var baseGet = __webpack_require__(354);
61962
61963/**
61964 * Gets the value at `path` of `object`. If the resolved value is
61965 * `undefined`, the `defaultValue` is returned in its place.
61966 *
61967 * @static
61968 * @memberOf _
61969 * @since 3.7.0
61970 * @category Object
61971 * @param {Object} object The object to query.
61972 * @param {Array|string} path The path of the property to get.
61973 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
61974 * @returns {*} Returns the resolved value.
61975 * @example
61976 *
61977 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
61978 *
61979 * _.get(object, 'a[0].b.c');
61980 * // => 3
61981 *
61982 * _.get(object, ['a', '0', 'b', 'c']);
61983 * // => 3
61984 *
61985 * _.get(object, 'a.b.c', 'default');
61986 * // => 'default'
61987 */
61988function get(object, path, defaultValue) {
61989 var result = object == null ? undefined : baseGet(object, path);
61990 return result === undefined ? defaultValue : result;
61991}
61992
61993module.exports = get;
61994
61995
61996/***/ }),
61997/* 822 */
61998/***/ (function(module, exports, __webpack_require__) {
61999
62000var memoizeCapped = __webpack_require__(823);
62001
62002/** Used to match property names within property paths. */
62003var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
62004
62005/** Used to match backslashes in property paths. */
62006var reEscapeChar = /\\(\\)?/g;
62007
62008/**
62009 * Converts `string` to a property path array.
62010 *
62011 * @private
62012 * @param {string} string The string to convert.
62013 * @returns {Array} Returns the property path array.
62014 */
62015var stringToPath = memoizeCapped(function(string) {
62016 var result = [];
62017 if (string.charCodeAt(0) === 46 /* . */) {
62018 result.push('');
62019 }
62020 string.replace(rePropName, function(match, number, quote, subString) {
62021 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
62022 });
62023 return result;
62024});
62025
62026module.exports = stringToPath;
62027
62028
62029/***/ }),
62030/* 823 */
62031/***/ (function(module, exports, __webpack_require__) {
62032
62033var memoize = __webpack_require__(824);
62034
62035/** Used as the maximum memoize cache size. */
62036var MAX_MEMOIZE_SIZE = 500;
62037
62038/**
62039 * A specialized version of `_.memoize` which clears the memoized function's
62040 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
62041 *
62042 * @private
62043 * @param {Function} func The function to have its output memoized.
62044 * @returns {Function} Returns the new memoized function.
62045 */
62046function memoizeCapped(func) {
62047 var result = memoize(func, function(key) {
62048 if (cache.size === MAX_MEMOIZE_SIZE) {
62049 cache.clear();
62050 }
62051 return key;
62052 });
62053
62054 var cache = result.cache;
62055 return result;
62056}
62057
62058module.exports = memoizeCapped;
62059
62060
62061/***/ }),
62062/* 824 */
62063/***/ (function(module, exports, __webpack_require__) {
62064
62065var MapCache = __webpack_require__(212);
62066
62067/** Error message constants. */
62068var FUNC_ERROR_TEXT = 'Expected a function';
62069
62070/**
62071 * Creates a function that memoizes the result of `func`. If `resolver` is
62072 * provided, it determines the cache key for storing the result based on the
62073 * arguments provided to the memoized function. By default, the first argument
62074 * provided to the memoized function is used as the map cache key. The `func`
62075 * is invoked with the `this` binding of the memoized function.
62076 *
62077 * **Note:** The cache is exposed as the `cache` property on the memoized
62078 * function. Its creation may be customized by replacing the `_.memoize.Cache`
62079 * constructor with one whose instances implement the
62080 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
62081 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
62082 *
62083 * @static
62084 * @memberOf _
62085 * @since 0.1.0
62086 * @category Function
62087 * @param {Function} func The function to have its output memoized.
62088 * @param {Function} [resolver] The function to resolve the cache key.
62089 * @returns {Function} Returns the new memoized function.
62090 * @example
62091 *
62092 * var object = { 'a': 1, 'b': 2 };
62093 * var other = { 'c': 3, 'd': 4 };
62094 *
62095 * var values = _.memoize(_.values);
62096 * values(object);
62097 * // => [1, 2]
62098 *
62099 * values(other);
62100 * // => [3, 4]
62101 *
62102 * object.a = 2;
62103 * values(object);
62104 * // => [1, 2]
62105 *
62106 * // Modify the result cache.
62107 * values.cache.set(object, ['a', 'b']);
62108 * values(object);
62109 * // => ['a', 'b']
62110 *
62111 * // Replace `_.memoize.Cache`.
62112 * _.memoize.Cache = WeakMap;
62113 */
62114function memoize(func, resolver) {
62115 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
62116 throw new TypeError(FUNC_ERROR_TEXT);
62117 }
62118 var memoized = function() {
62119 var args = arguments,
62120 key = resolver ? resolver.apply(this, args) : args[0],
62121 cache = memoized.cache;
62122
62123 if (cache.has(key)) {
62124 return cache.get(key);
62125 }
62126 var result = func.apply(this, args);
62127 memoized.cache = cache.set(key, result) || cache;
62128 return result;
62129 };
62130 memoized.cache = new (memoize.Cache || MapCache);
62131 return memoized;
62132}
62133
62134// Expose `MapCache`.
62135memoize.Cache = MapCache;
62136
62137module.exports = memoize;
62138
62139
62140/***/ }),
62141/* 825 */
62142/***/ (function(module, exports, __webpack_require__) {
62143
62144var baseToString = __webpack_require__(826);
62145
62146/**
62147 * Converts `value` to a string. An empty string is returned for `null`
62148 * and `undefined` values. The sign of `-0` is preserved.
62149 *
62150 * @static
62151 * @memberOf _
62152 * @since 4.0.0
62153 * @category Lang
62154 * @param {*} value The value to convert.
62155 * @returns {string} Returns the converted string.
62156 * @example
62157 *
62158 * _.toString(null);
62159 * // => ''
62160 *
62161 * _.toString(-0);
62162 * // => '-0'
62163 *
62164 * _.toString([1, 2, 3]);
62165 * // => '1,2,3'
62166 */
62167function toString(value) {
62168 return value == null ? '' : baseToString(value);
62169}
62170
62171module.exports = toString;
62172
62173
62174/***/ }),
62175/* 826 */
62176/***/ (function(module, exports, __webpack_require__) {
62177
62178var Symbol = __webpack_require__(99),
62179 arrayMap = __webpack_require__(346),
62180 isArray = __webpack_require__(24),
62181 isSymbol = __webpack_require__(145);
62182
62183/** Used as references for various `Number` constants. */
62184var INFINITY = 1 / 0;
62185
62186/** Used to convert symbols to primitives and strings. */
62187var symbolProto = Symbol ? Symbol.prototype : undefined,
62188 symbolToString = symbolProto ? symbolProto.toString : undefined;
62189
62190/**
62191 * The base implementation of `_.toString` which doesn't convert nullish
62192 * values to empty strings.
62193 *
62194 * @private
62195 * @param {*} value The value to process.
62196 * @returns {string} Returns the string.
62197 */
62198function baseToString(value) {
62199 // Exit early for strings to avoid a performance hit in some environments.
62200 if (typeof value == 'string') {
62201 return value;
62202 }
62203 if (isArray(value)) {
62204 // Recursively convert values (susceptible to call stack limits).
62205 return arrayMap(value, baseToString) + '';
62206 }
62207 if (isSymbol(value)) {
62208 return symbolToString ? symbolToString.call(value) : '';
62209 }
62210 var result = (value + '');
62211 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
62212}
62213
62214module.exports = baseToString;
62215
62216
62217/***/ }),
62218/* 827 */
62219/***/ (function(module, exports, __webpack_require__) {
62220
62221var baseHasIn = __webpack_require__(828),
62222 hasPath = __webpack_require__(829);
62223
62224/**
62225 * Checks if `path` is a direct or inherited property of `object`.
62226 *
62227 * @static
62228 * @memberOf _
62229 * @since 4.0.0
62230 * @category Object
62231 * @param {Object} object The object to query.
62232 * @param {Array|string} path The path to check.
62233 * @returns {boolean} Returns `true` if `path` exists, else `false`.
62234 * @example
62235 *
62236 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
62237 *
62238 * _.hasIn(object, 'a');
62239 * // => true
62240 *
62241 * _.hasIn(object, 'a.b');
62242 * // => true
62243 *
62244 * _.hasIn(object, ['a', 'b']);
62245 * // => true
62246 *
62247 * _.hasIn(object, 'b');
62248 * // => false
62249 */
62250function hasIn(object, path) {
62251 return object != null && hasPath(object, path, baseHasIn);
62252}
62253
62254module.exports = hasIn;
62255
62256
62257/***/ }),
62258/* 828 */
62259/***/ (function(module, exports) {
62260
62261/**
62262 * The base implementation of `_.hasIn` without support for deep paths.
62263 *
62264 * @private
62265 * @param {Object} [object] The object to query.
62266 * @param {Array|string} key The key to check.
62267 * @returns {boolean} Returns `true` if `key` exists, else `false`.
62268 */
62269function baseHasIn(object, key) {
62270 return object != null && key in Object(object);
62271}
62272
62273module.exports = baseHasIn;
62274
62275
62276/***/ }),
62277/* 829 */
62278/***/ (function(module, exports, __webpack_require__) {
62279
62280var castPath = __webpack_require__(355),
62281 isArguments = __webpack_require__(206),
62282 isArray = __webpack_require__(24),
62283 isIndex = __webpack_require__(207),
62284 isLength = __webpack_require__(208),
62285 toKey = __webpack_require__(146);
62286
62287/**
62288 * Checks if `path` exists on `object`.
62289 *
62290 * @private
62291 * @param {Object} object The object to query.
62292 * @param {Array|string} path The path to check.
62293 * @param {Function} hasFunc The function to check properties.
62294 * @returns {boolean} Returns `true` if `path` exists, else `false`.
62295 */
62296function hasPath(object, path, hasFunc) {
62297 path = castPath(path, object);
62298
62299 var index = -1,
62300 length = path.length,
62301 result = false;
62302
62303 while (++index < length) {
62304 var key = toKey(path[index]);
62305 if (!(result = object != null && hasFunc(object, key))) {
62306 break;
62307 }
62308 object = object[key];
62309 }
62310 if (result || ++index != length) {
62311 return result;
62312 }
62313 length = object == null ? 0 : object.length;
62314 return !!length && isLength(length) && isIndex(key, length) &&
62315 (isArray(object) || isArguments(object));
62316}
62317
62318module.exports = hasPath;
62319
62320
62321/***/ }),
62322/* 830 */
62323/***/ (function(module, exports, __webpack_require__) {
62324
62325var baseProperty = __webpack_require__(831),
62326 basePropertyDeep = __webpack_require__(832),
62327 isKey = __webpack_require__(213),
62328 toKey = __webpack_require__(146);
62329
62330/**
62331 * Creates a function that returns the value at `path` of a given object.
62332 *
62333 * @static
62334 * @memberOf _
62335 * @since 2.4.0
62336 * @category Util
62337 * @param {Array|string} path The path of the property to get.
62338 * @returns {Function} Returns the new accessor function.
62339 * @example
62340 *
62341 * var objects = [
62342 * { 'a': { 'b': 2 } },
62343 * { 'a': { 'b': 1 } }
62344 * ];
62345 *
62346 * _.map(objects, _.property('a.b'));
62347 * // => [2, 1]
62348 *
62349 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
62350 * // => [1, 2]
62351 */
62352function property(path) {
62353 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
62354}
62355
62356module.exports = property;
62357
62358
62359/***/ }),
62360/* 831 */
62361/***/ (function(module, exports) {
62362
62363/**
62364 * The base implementation of `_.property` without support for deep paths.
62365 *
62366 * @private
62367 * @param {string} key The key of the property to get.
62368 * @returns {Function} Returns the new accessor function.
62369 */
62370function baseProperty(key) {
62371 return function(object) {
62372 return object == null ? undefined : object[key];
62373 };
62374}
62375
62376module.exports = baseProperty;
62377
62378
62379/***/ }),
62380/* 832 */
62381/***/ (function(module, exports, __webpack_require__) {
62382
62383var baseGet = __webpack_require__(354);
62384
62385/**
62386 * A specialized version of `baseProperty` which supports deep paths.
62387 *
62388 * @private
62389 * @param {Array|string} path The path of the property to get.
62390 * @returns {Function} Returns the new accessor function.
62391 */
62392function basePropertyDeep(path) {
62393 return function(object) {
62394 return baseGet(object, path);
62395 };
62396}
62397
62398module.exports = basePropertyDeep;
62399
62400
62401/***/ }),
62402/* 833 */
62403/***/ (function(module, exports, __webpack_require__) {
62404
62405var baseEach = __webpack_require__(204),
62406 isArrayLike = __webpack_require__(139);
62407
62408/**
62409 * The base implementation of `_.map` without support for iteratee shorthands.
62410 *
62411 * @private
62412 * @param {Array|Object} collection The collection to iterate over.
62413 * @param {Function} iteratee The function invoked per iteration.
62414 * @returns {Array} Returns the new mapped array.
62415 */
62416function baseMap(collection, iteratee) {
62417 var index = -1,
62418 result = isArrayLike(collection) ? Array(collection.length) : [];
62419
62420 baseEach(collection, function(value, key, collection) {
62421 result[++index] = iteratee(value, key, collection);
62422 });
62423 return result;
62424}
62425
62426module.exports = baseMap;
62427
62428
62429/***/ }),
62430/* 834 */
62431/***/ (function(module, exports, __webpack_require__) {
62432
62433var arrayEvery = __webpack_require__(835),
62434 baseEvery = __webpack_require__(836),
62435 baseIteratee = __webpack_require__(209),
62436 isArray = __webpack_require__(24),
62437 isIterateeCall = __webpack_require__(837);
62438
62439/**
62440 * Checks if `predicate` returns truthy for **all** elements of `collection`.
62441 * Iteration is stopped once `predicate` returns falsey. The predicate is
62442 * invoked with three arguments: (value, index|key, collection).
62443 *
62444 * **Note:** This method returns `true` for
62445 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
62446 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
62447 * elements of empty collections.
62448 *
62449 * @static
62450 * @memberOf _
62451 * @since 0.1.0
62452 * @category Collection
62453 * @param {Array|Object} collection The collection to iterate over.
62454 * @param {Function} [predicate=_.identity] The function invoked per iteration.
62455 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
62456 * @returns {boolean} Returns `true` if all elements pass the predicate check,
62457 * else `false`.
62458 * @example
62459 *
62460 * _.every([true, 1, null, 'yes'], Boolean);
62461 * // => false
62462 *
62463 * var users = [
62464 * { 'user': 'barney', 'age': 36, 'active': false },
62465 * { 'user': 'fred', 'age': 40, 'active': false }
62466 * ];
62467 *
62468 * // The `_.matches` iteratee shorthand.
62469 * _.every(users, { 'user': 'barney', 'active': false });
62470 * // => false
62471 *
62472 * // The `_.matchesProperty` iteratee shorthand.
62473 * _.every(users, ['active', false]);
62474 * // => true
62475 *
62476 * // The `_.property` iteratee shorthand.
62477 * _.every(users, 'active');
62478 * // => false
62479 */
62480function every(collection, predicate, guard) {
62481 var func = isArray(collection) ? arrayEvery : baseEvery;
62482 if (guard && isIterateeCall(collection, predicate, guard)) {
62483 predicate = undefined;
62484 }
62485 return func(collection, baseIteratee(predicate, 3));
62486}
62487
62488module.exports = every;
62489
62490
62491/***/ }),
62492/* 835 */
62493/***/ (function(module, exports) {
62494
62495/**
62496 * A specialized version of `_.every` for arrays without support for
62497 * iteratee shorthands.
62498 *
62499 * @private
62500 * @param {Array} [array] The array to iterate over.
62501 * @param {Function} predicate The function invoked per iteration.
62502 * @returns {boolean} Returns `true` if all elements pass the predicate check,
62503 * else `false`.
62504 */
62505function arrayEvery(array, predicate) {
62506 var index = -1,
62507 length = array == null ? 0 : array.length;
62508
62509 while (++index < length) {
62510 if (!predicate(array[index], index, array)) {
62511 return false;
62512 }
62513 }
62514 return true;
62515}
62516
62517module.exports = arrayEvery;
62518
62519
62520/***/ }),
62521/* 836 */
62522/***/ (function(module, exports, __webpack_require__) {
62523
62524var baseEach = __webpack_require__(204);
62525
62526/**
62527 * The base implementation of `_.every` without support for iteratee shorthands.
62528 *
62529 * @private
62530 * @param {Array|Object} collection The collection to iterate over.
62531 * @param {Function} predicate The function invoked per iteration.
62532 * @returns {boolean} Returns `true` if all elements pass the predicate check,
62533 * else `false`
62534 */
62535function baseEvery(collection, predicate) {
62536 var result = true;
62537 baseEach(collection, function(value, index, collection) {
62538 result = !!predicate(value, index, collection);
62539 return result;
62540 });
62541 return result;
62542}
62543
62544module.exports = baseEvery;
62545
62546
62547/***/ }),
62548/* 837 */
62549/***/ (function(module, exports, __webpack_require__) {
62550
62551var eq = __webpack_require__(210),
62552 isArrayLike = __webpack_require__(139),
62553 isIndex = __webpack_require__(207),
62554 isObject = __webpack_require__(140);
62555
62556/**
62557 * Checks if the given arguments are from an iteratee call.
62558 *
62559 * @private
62560 * @param {*} value The potential iteratee value argument.
62561 * @param {*} index The potential iteratee index or key argument.
62562 * @param {*} object The potential iteratee object argument.
62563 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
62564 * else `false`.
62565 */
62566function isIterateeCall(value, index, object) {
62567 if (!isObject(object)) {
62568 return false;
62569 }
62570 var type = typeof index;
62571 if (type == 'number'
62572 ? (isArrayLike(object) && isIndex(index, object.length))
62573 : (type == 'string' && index in object)
62574 ) {
62575 return eq(object[index], value);
62576 }
62577 return false;
62578}
62579
62580module.exports = isIterateeCall;
62581
62582
62583/***/ }),
62584/* 838 */
62585/***/ (function(module, exports, __webpack_require__) {
62586
62587var baseExtremum = __webpack_require__(839),
62588 baseGt = __webpack_require__(840),
62589 baseIteratee = __webpack_require__(209);
62590
62591/**
62592 * This method is like `_.max` except that it accepts `iteratee` which is
62593 * invoked for each element in `array` to generate the criterion by which
62594 * the value is ranked. The iteratee is invoked with one argument: (value).
62595 *
62596 * @static
62597 * @memberOf _
62598 * @since 4.0.0
62599 * @category Math
62600 * @param {Array} array The array to iterate over.
62601 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
62602 * @returns {*} Returns the maximum value.
62603 * @example
62604 *
62605 * var objects = [{ 'n': 1 }, { 'n': 2 }];
62606 *
62607 * _.maxBy(objects, function(o) { return o.n; });
62608 * // => { 'n': 2 }
62609 *
62610 * // The `_.property` iteratee shorthand.
62611 * _.maxBy(objects, 'n');
62612 * // => { 'n': 2 }
62613 */
62614function maxBy(array, iteratee) {
62615 return (array && array.length)
62616 ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)
62617 : undefined;
62618}
62619
62620module.exports = maxBy;
62621
62622
62623/***/ }),
62624/* 839 */
62625/***/ (function(module, exports, __webpack_require__) {
62626
62627var isSymbol = __webpack_require__(145);
62628
62629/**
62630 * The base implementation of methods like `_.max` and `_.min` which accepts a
62631 * `comparator` to determine the extremum value.
62632 *
62633 * @private
62634 * @param {Array} array The array to iterate over.
62635 * @param {Function} iteratee The iteratee invoked per iteration.
62636 * @param {Function} comparator The comparator used to compare values.
62637 * @returns {*} Returns the extremum value.
62638 */
62639function baseExtremum(array, iteratee, comparator) {
62640 var index = -1,
62641 length = array.length;
62642
62643 while (++index < length) {
62644 var value = array[index],
62645 current = iteratee(value);
62646
62647 if (current != null && (computed === undefined
62648 ? (current === current && !isSymbol(current))
62649 : comparator(current, computed)
62650 )) {
62651 var computed = current,
62652 result = value;
62653 }
62654 }
62655 return result;
62656}
62657
62658module.exports = baseExtremum;
62659
62660
62661/***/ }),
62662/* 840 */
62663/***/ (function(module, exports) {
62664
62665/**
62666 * The base implementation of `_.gt` which doesn't coerce arguments.
62667 *
62668 * @private
62669 * @param {*} value The value to compare.
62670 * @param {*} other The other value to compare.
62671 * @returns {boolean} Returns `true` if `value` is greater than `other`,
62672 * else `false`.
62673 */
62674function baseGt(value, other) {
62675 return value > other;
62676}
62677
62678module.exports = baseGt;
62679
62680
62681/***/ }),
62682/* 841 */
62683/***/ (function(module, exports, __webpack_require__) {
62684
62685var baseFlatten = __webpack_require__(842);
62686
62687/** Used as references for various `Number` constants. */
62688var INFINITY = 1 / 0;
62689
62690/**
62691 * Recursively flattens `array`.
62692 *
62693 * @static
62694 * @memberOf _
62695 * @since 3.0.0
62696 * @category Array
62697 * @param {Array} array The array to flatten.
62698 * @returns {Array} Returns the new flattened array.
62699 * @example
62700 *
62701 * _.flattenDeep([1, [2, [3, [4]], 5]]);
62702 * // => [1, 2, 3, 4, 5]
62703 */
62704function flattenDeep(array) {
62705 var length = array == null ? 0 : array.length;
62706 return length ? baseFlatten(array, INFINITY) : [];
62707}
62708
62709module.exports = flattenDeep;
62710
62711
62712/***/ }),
62713/* 842 */
62714/***/ (function(module, exports, __webpack_require__) {
62715
62716var arrayPush = __webpack_require__(351),
62717 isFlattenable = __webpack_require__(843);
62718
62719/**
62720 * The base implementation of `_.flatten` with support for restricting flattening.
62721 *
62722 * @private
62723 * @param {Array} array The array to flatten.
62724 * @param {number} depth The maximum recursion depth.
62725 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
62726 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
62727 * @param {Array} [result=[]] The initial result value.
62728 * @returns {Array} Returns the new flattened array.
62729 */
62730function baseFlatten(array, depth, predicate, isStrict, result) {
62731 var index = -1,
62732 length = array.length;
62733
62734 predicate || (predicate = isFlattenable);
62735 result || (result = []);
62736
62737 while (++index < length) {
62738 var value = array[index];
62739 if (depth > 0 && predicate(value)) {
62740 if (depth > 1) {
62741 // Recursively flatten arrays (susceptible to call stack limits).
62742 baseFlatten(value, depth - 1, predicate, isStrict, result);
62743 } else {
62744 arrayPush(result, value);
62745 }
62746 } else if (!isStrict) {
62747 result[result.length] = value;
62748 }
62749 }
62750 return result;
62751}
62752
62753module.exports = baseFlatten;
62754
62755
62756/***/ }),
62757/* 843 */
62758/***/ (function(module, exports, __webpack_require__) {
62759
62760var Symbol = __webpack_require__(99),
62761 isArguments = __webpack_require__(206),
62762 isArray = __webpack_require__(24);
62763
62764/** Built-in value references. */
62765var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
62766
62767/**
62768 * Checks if `value` is a flattenable `arguments` object or array.
62769 *
62770 * @private
62771 * @param {*} value The value to check.
62772 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
62773 */
62774function isFlattenable(value) {
62775 return isArray(value) || isArguments(value) ||
62776 !!(spreadableSymbol && value && value[spreadableSymbol]);
62777}
62778
62779module.exports = isFlattenable;
62780
62781
62782/***/ }),
62783/* 844 */
62784/***/ (function(module, exports, __webpack_require__) {
62785
62786"use strict";
62787
62788
62789Object.defineProperty(exports, "__esModule", {
62790 value: true
62791});
62792
62793var _nodeFetch = __webpack_require__(97);
62794
62795var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
62796
62797function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62798
62799var BASE_URL = 'http://notifications-dev.madbean.ovh';
62800var PATH = '/notifications';
62801
62802var notifyMatchedActivity = function notifyMatchedActivity(user, activity, client) {
62803 var message = {
62804 title: 'Nouveau match!',
62805 body: 'Rencontrez vite ' + client.displayName + ' pour l\'activit\xE9e :' + activity.name,
62806 email: user.email
62807 };
62808
62809 var options = {
62810 method: 'POST',
62811 headers: {
62812 'Content-Type': 'application/json',
62813 Accept: 'application/json'
62814 },
62815 body: JSON.stringify(message)
62816 };
62817
62818 (0, _nodeFetch2.default)('' + BASE_URL + PATH, options).catch(console.log);
62819};
62820
62821exports.default = {
62822 notifyMatchedActivity: notifyMatchedActivity
62823};
62824module.exports = exports['default'];
62825
62826/***/ }),
62827/* 845 */
62828/***/ (function(module, exports, __webpack_require__) {
62829
62830"use strict";
62831
62832
62833Object.defineProperty(exports, "__esModule", {
62834 value: true
62835});
62836// helper
62837var formatUsersLocations = function formatUsersLocations(users) {
62838 var formatedUsers = users.map(function (user) {
62839 var latitude = parseFloat(user[1][0]);
62840 var longitude = parseFloat(user[1][1]);
62841 var userId = user[0];
62842
62843 var formatedUser = {
62844 latitude: latitude,
62845 longitude: longitude,
62846 userId: userId
62847 };
62848 return formatedUser;
62849 });
62850 return formatedUsers;
62851};
62852
62853exports.default = { formatUsersLocations: formatUsersLocations };
62854module.exports = exports["default"];
62855
62856/***/ }),
62857/* 846 */
62858/***/ (function(module, exports, __webpack_require__) {
62859
62860"use strict";
62861
62862
62863Object.defineProperty(exports, "__esModule", {
62864 value: true
62865});
62866
62867var _dataloader = __webpack_require__(138);
62868
62869var _dataloader2 = _interopRequireDefault(_dataloader);
62870
62871var _Activity = __webpack_require__(357);
62872
62873function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62874
62875var getActivityLoader = function getActivityLoader(cacheMap) {
62876 var activitiesLoader = new _dataloader2.default(function (keys) {
62877 return Promise.all(keys.map(_Activity.getEntities));
62878 }, { cache: false }); // , { cacheMap }
62879
62880 var activityLoader = new _dataloader2.default(function (keys) {
62881 return Promise.all(keys.map(_Activity.getEntity));
62882 }, { cache: false });
62883
62884 // , {
62885 // cacheKeyFn: key => `${PATH}/${key}`,
62886 // cacheMap,
62887 // }
62888
62889 var activityByURLLoader = new _dataloader2.default(function (keys) {
62890 return Promise.all(keys.map(function (key) {
62891 return (0, _Activity.getEntityByURL)(_Activity.PATH + '/' + key);
62892 }));
62893 }, { cache: false }); // , { cacheMap }
62894
62895 activityLoader.loadAll = activitiesLoader.load.bind(activitiesLoader, '__all__');
62896 activityLoader.loadByURL = activityByURLLoader.load.bind(activityByURLLoader);
62897 activityLoader.loadManyByURL = activityByURLLoader.loadMany.bind(activityByURLLoader);
62898 activityLoader.addActivity = _Activity.addEntity;
62899 activityLoader.updateActivity = _Activity.updateEntity;
62900
62901 return activityLoader;
62902};
62903
62904exports.default = { getActivityLoader: getActivityLoader };
62905module.exports = exports['default'];
62906
62907/***/ }),
62908/* 847 */
62909/***/ (function(module, exports, __webpack_require__) {
62910
62911"use strict";
62912
62913
62914Object.defineProperty(exports, "__esModule", {
62915 value: true
62916});
62917
62918var _dataloader = __webpack_require__(138);
62919
62920var _dataloader2 = _interopRequireDefault(_dataloader);
62921
62922var _Score = __webpack_require__(356);
62923
62924function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
62925
62926var getScoreLoader = function getScoreLoader(cacheMap) {
62927 var scoresLoader = new _dataloader2.default(function (keys) {
62928 return Promise.all(keys.map(_Score.getEntities));
62929 }, { cache: false }); // , { cacheMap }
62930
62931 var scoreLoader = new _dataloader2.default(function (keys) {
62932 return Promise.all(keys.map(_Score.getEntity));
62933 }, { cache: false });
62934
62935 // , {
62936 // cacheKeyFn: key => `${PATH}/${key}`,
62937 // cacheMap,
62938 // }
62939
62940 var scoreByURLLoader = new _dataloader2.default(function (keys) {
62941 return Promise.all(keys.map(_Score.getEntityByURL));
62942 }, { cache: false }); // , { cacheMap }
62943
62944 scoreLoader.loadAll = scoresLoader.load.bind(scoresLoader, '__all__');
62945 scoreLoader.loadByURL = scoreByURLLoader.load.bind(scoreByURLLoader);
62946 scoreLoader.loadManyByURL = scoreByURLLoader.loadMany.bind(scoreByURLLoader);
62947 scoreLoader.addScore = _Score.addEntity;
62948 scoreLoader.updateScore = _Score.updateEntity;
62949
62950 return scoreLoader;
62951};
62952
62953exports.default = { getScoreLoader: getScoreLoader };
62954module.exports = exports['default'];
62955
62956/***/ }),
62957/* 848 */
62958/***/ (function(module, exports, __webpack_require__) {
62959
62960"use strict";
62961
62962
62963Object.defineProperty(exports, "__esModule", {
62964 value: true
62965});
62966
62967var userMapper = function userMapper(user) {
62968 return {
62969 lastName: user.name.familyName || null,
62970 firstName: user.name.givenName || null,
62971 email: user.emails && user.emails.length > 0 ? user.emails[0].value : null,
62972 displayName: user.displayName || null,
62973 picture: user.picture || null,
62974 gender: user.gender || null,
62975 locale: user.locale || null,
62976 clientID: user._json.clientID || null,
62977 updatedAT: user._json.updated_at || null,
62978 userID: user.identities && user.identities.length > 0 ? user.identities[0].user_id + user.identities[0].provider : null,
62979 nickname: user.nickname || null,
62980 provider: user.provider || null,
62981 isSocial: user.identities && user.identities.length > 0 ? user.identities[0].isSocial : false,
62982 token: user.token ? user.token : null
62983 };
62984};
62985
62986// TODO fix user id
62987exports.default = { userMapper: userMapper };
62988module.exports = exports["default"];
62989
62990/***/ })
62991/******/ ]);
62992});
62993//# sourceMappingURL=service.middle.bundle.js.map
\No newline at end of file