source: trip-planner-front/node_modules/karma/static/karma.js@ ceaed42

Last change on this file since ceaed42 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 73.6 KB
Line 
1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2module.exports = {
3 VERSION: '%KARMA_VERSION%',
4 KARMA_URL_ROOT: '%KARMA_URL_ROOT%',
5 KARMA_PROXY_PATH: '%KARMA_PROXY_PATH%',
6 BROWSER_SOCKET_TIMEOUT: '%BROWSER_SOCKET_TIMEOUT%',
7 CONTEXT_URL: 'context.html'
8}
9
10},{}],2:[function(require,module,exports){
11var stringify = require('../common/stringify')
12var constant = require('./constants')
13var util = require('../common/util')
14
15function Karma (updater, socket, iframe, opener, navigator, location, document) {
16 this.updater = updater
17 var startEmitted = false
18 var self = this
19 var queryParams = util.parseQueryParams(location.search)
20 var browserId = queryParams.id || util.generateId('manual-')
21 var displayName = queryParams.displayName
22 var returnUrl = queryParams['return_url' + ''] || null
23
24 var resultsBufferLimit = 50
25 var resultsBuffer = []
26
27 // This is a no-op if not running with a Trusted Types CSP policy, and
28 // lets tests declare that they trust the way that karma creates and handles
29 // URLs.
30 //
31 // More info about the proposed Trusted Types standard at
32 // https://github.com/WICG/trusted-types
33 var policy = {
34 createURL: function (s) {
35 return s
36 },
37 createScriptURL: function (s) {
38 return s
39 }
40 }
41 var trustedTypes = window.trustedTypes || window.TrustedTypes
42 if (trustedTypes) {
43 policy = trustedTypes.createPolicy('karma', policy)
44 if (!policy.createURL) {
45 // Install createURL for newer browsers. Only browsers that implement an
46 // old version of the spec require createURL.
47 // Should be safe to delete all reference to createURL by
48 // February 2020.
49 // https://github.com/WICG/trusted-types/pull/204
50 policy.createURL = function (s) { return s }
51 }
52 }
53
54 // To start we will signal the server that we are not reconnecting. If the socket loses
55 // connection and was able to reconnect to the Karma server we will get a
56 // second 'connect' event. There we will pass 'true' and that will be passed to the
57 // Karma server then, so that Karma can differentiate between a socket client
58 // econnect and a full browser reconnect.
59 var socketReconnect = false
60
61 this.VERSION = constant.VERSION
62 this.config = {}
63
64 // Expose for testing purposes as there is no global socket.io
65 // registry anymore.
66 this.socket = socket
67
68 // Set up postMessage bindings for current window
69 // DEV: These are to allow windows in separate processes execute local tasks
70 // Electron is one of these environments
71 if (window.addEventListener) {
72 window.addEventListener('message', function handleMessage (evt) {
73 // Resolve the origin of our message
74 var origin = evt.origin || evt.originalEvent.origin
75
76 // If the message isn't from our host, then reject it
77 if (origin !== window.location.origin) {
78 return
79 }
80
81 // Take action based on the message type
82 var method = evt.data.__karmaMethod
83 if (method) {
84 if (!self[method]) {
85 self.error('Received `postMessage` for "' + method + '" but the method doesn\'t exist')
86 return
87 }
88 self[method].apply(self, evt.data.__karmaArguments)
89 }
90 }, false)
91 }
92
93 var childWindow = null
94 function navigateContextTo (url) {
95 if (self.config.useIframe === false) {
96 // run in new window
97 if (self.config.runInParent === false) {
98 // If there is a window already open, then close it
99 // DEV: In some environments (e.g. Electron), we don't have setter access for location
100 if (childWindow !== null && childWindow.closed !== true) {
101 // The onbeforeunload listener was added by context to catch
102 // unexpected navigations while running tests.
103 childWindow.onbeforeunload = undefined
104 childWindow.close()
105 }
106 childWindow = opener(url)
107 // run context on parent element (client_with_context)
108 // using window.__karma__.scriptUrls to get the html element strings and load them dynamically
109 } else if (url !== 'about:blank') {
110 var loadScript = function (idx) {
111 if (idx < window.__karma__.scriptUrls.length) {
112 var parser = new DOMParser()
113 // Revert escaped characters with special roles in HTML before parsing
114 var string = window.__karma__.scriptUrls[idx]
115 .replace(/\\x3C/g, '<')
116 .replace(/\\x3E/g, '>')
117 var doc = parser.parseFromString(string, 'text/html')
118 var ele = doc.head.firstChild || doc.body.firstChild
119 // script elements created by DomParser are marked as unexecutable,
120 // create a new script element manually and copy necessary properties
121 // so it is executable
122 if (ele.tagName && ele.tagName.toLowerCase() === 'script') {
123 var tmp = ele
124 ele = document.createElement('script')
125 ele.src = policy.createScriptURL(tmp.src)
126 ele.crossOrigin = tmp.crossOrigin
127 }
128 ele.onload = function () {
129 loadScript(idx + 1)
130 }
131 document.body.appendChild(ele)
132 } else {
133 window.__karma__.loaded()
134 }
135 }
136 loadScript(0)
137 }
138 // run in iframe
139 } else {
140 // The onbeforeunload listener was added by the context to catch
141 // unexpected navigations while running tests.
142 iframe.contentWindow.onbeforeunload = undefined
143 iframe.src = policy.createURL(url)
144 }
145 }
146
147 this.log = function (type, args) {
148 var values = []
149
150 for (var i = 0; i < args.length; i++) {
151 values.push(this.stringify(args[i], 3))
152 }
153
154 this.info({ log: values.join(', '), type: type })
155 }
156
157 this.stringify = stringify
158
159 function getLocation (url, lineno, colno) {
160 var location = ''
161
162 if (url !== undefined) {
163 location += url
164 }
165
166 if (lineno !== undefined) {
167 location += ':' + lineno
168 }
169
170 if (colno !== undefined) {
171 location += ':' + colno
172 }
173
174 return location
175 }
176
177 // error during js file loading (most likely syntax error)
178 // we are not going to execute at all. `window.onerror` callback.
179 this.error = function (messageOrEvent, source, lineno, colno, error) {
180 var message
181 if (typeof messageOrEvent === 'string') {
182 message = messageOrEvent
183
184 var location = getLocation(source, lineno, colno)
185 if (location !== '') {
186 message += '\nat ' + location
187 }
188 if (error && error.stack) {
189 message += '\n\n' + error.stack
190 }
191 } else {
192 // create an object with the string representation of the message to
193 // ensure all its content is properly transferred to the console log
194 message = { message: messageOrEvent, str: messageOrEvent.toString() }
195 }
196
197 socket.emit('karma_error', message)
198 self.updater.updateTestStatus('karma_error ' + message)
199 this.complete()
200 return false
201 }
202
203 this.result = function (originalResult) {
204 var convertedResult = {}
205
206 // Convert all array-like objects to real arrays.
207 for (var propertyName in originalResult) {
208 if (Object.prototype.hasOwnProperty.call(originalResult, propertyName)) {
209 var propertyValue = originalResult[propertyName]
210
211 if (Object.prototype.toString.call(propertyValue) === '[object Array]') {
212 convertedResult[propertyName] = Array.prototype.slice.call(propertyValue)
213 } else {
214 convertedResult[propertyName] = propertyValue
215 }
216 }
217 }
218
219 if (!startEmitted) {
220 socket.emit('start', { total: null })
221 self.updater.updateTestStatus('start')
222 startEmitted = true
223 }
224
225 if (resultsBufferLimit === 1) {
226 self.updater.updateTestStatus('result')
227 return socket.emit('result', convertedResult)
228 }
229
230 resultsBuffer.push(convertedResult)
231
232 if (resultsBuffer.length === resultsBufferLimit) {
233 socket.emit('result', resultsBuffer)
234 self.updater.updateTestStatus('result')
235 resultsBuffer = []
236 }
237 }
238
239 this.complete = function (result) {
240 if (resultsBuffer.length) {
241 socket.emit('result', resultsBuffer)
242 resultsBuffer = []
243 }
244
245 // A test could have incorrectly issued a navigate. Wait one turn
246 // to ensure the error from an incorrect navigate is processed.
247 var config = this.config
248 setTimeout(function () {
249 socket.emit('complete', result || {})
250 if (config.clearContext) {
251 navigateContextTo('about:blank')
252 } else {
253 self.updater.updateTestStatus('complete')
254 }
255 if (returnUrl) {
256 location.href = returnUrl
257 }
258 })
259 }
260
261 this.info = function (info) {
262 // TODO(vojta): introduce special API for this
263 if (!startEmitted && util.isDefined(info.total)) {
264 socket.emit('start', info)
265 startEmitted = true
266 } else {
267 socket.emit('info', info)
268 }
269 }
270
271 socket.on('execute', function (cfg) {
272 self.updater.updateTestStatus('execute')
273 // reset startEmitted and reload the iframe
274 startEmitted = false
275 self.config = cfg
276
277 navigateContextTo(constant.CONTEXT_URL)
278
279 if (self.config.clientDisplayNone) {
280 [].forEach.call(document.querySelectorAll('#banner, #browsers'), function (el) {
281 el.style.display = 'none'
282 })
283 }
284
285 // clear the console before run
286 // works only on FF (Safari, Chrome do not allow to clear console from js source)
287 if (window.console && window.console.clear) {
288 window.console.clear()
289 }
290 })
291 socket.on('stop', function () {
292 this.complete()
293 }.bind(this))
294
295 // Report the browser name and Id. Note that this event can also fire if the connection has
296 // been temporarily lost, but the socket reconnected automatically. Read more in the docs:
297 // https://socket.io/docs/client-api/#Event-%E2%80%98connect%E2%80%99
298 socket.on('connect', function () {
299 socket.io.engine.on('upgrade', function () {
300 resultsBufferLimit = 1
301 // Flush any results which were buffered before the upgrade to WebSocket protocol.
302 if (resultsBuffer.length > 0) {
303 socket.emit('result', resultsBuffer)
304 resultsBuffer = []
305 }
306 })
307 var info = {
308 name: navigator.userAgent,
309 id: browserId,
310 isSocketReconnect: socketReconnect
311 }
312 if (displayName) {
313 info.displayName = displayName
314 }
315 socket.emit('register', info)
316 socketReconnect = true
317 })
318}
319
320module.exports = Karma
321
322},{"../common/stringify":5,"../common/util":6,"./constants":1}],3:[function(require,module,exports){
323/* global io */
324/* eslint-disable no-new */
325
326var Karma = require('./karma')
327var StatusUpdater = require('./updater')
328var util = require('../common/util')
329var constants = require('./constants')
330
331var KARMA_URL_ROOT = constants.KARMA_URL_ROOT
332var KARMA_PROXY_PATH = constants.KARMA_PROXY_PATH
333var BROWSER_SOCKET_TIMEOUT = constants.BROWSER_SOCKET_TIMEOUT
334
335// Connect to the server using socket.io https://socket.io/
336var socket = io(location.host, {
337 reconnectionDelay: 500,
338 reconnectionDelayMax: Infinity,
339 timeout: BROWSER_SOCKET_TIMEOUT,
340 path: KARMA_PROXY_PATH + KARMA_URL_ROOT.substr(1) + 'socket.io',
341 'sync disconnect on unload': true
342})
343
344// instantiate the updater of the view
345var updater = new StatusUpdater(socket, util.elm('title'), util.elm('banner'), util.elm('browsers'))
346window.karma = new Karma(updater, socket, util.elm('context'), window.open,
347 window.navigator, window.location, window.document)
348
349},{"../common/util":6,"./constants":1,"./karma":2,"./updater":4}],4:[function(require,module,exports){
350var VERSION = require('./constants').VERSION
351
352function StatusUpdater (socket, titleElement, bannerElement, browsersElement) {
353 function updateBrowsersInfo (browsers) {
354 if (!browsersElement) {
355 return
356 }
357 var status
358
359 // clear browsersElement
360 while (browsersElement.firstChild) {
361 browsersElement.removeChild(browsersElement.firstChild)
362 }
363
364 for (var i = 0; i < browsers.length; i++) {
365 status = browsers[i].isConnected ? 'idle' : 'executing'
366 var li = document.createElement('li')
367 li.setAttribute('class', status)
368 li.textContent = browsers[i].name + ' is ' + status
369 browsersElement.appendChild(li)
370 }
371 }
372
373 var connectionText = 'never-connected'
374 var testText = 'loading'
375 var pingText = ''
376
377 function updateBanner () {
378 if (!titleElement || !bannerElement) {
379 return
380 }
381 titleElement.textContent = 'Karma v ' + VERSION + ' - ' + connectionText + '; test: ' + testText + '; ' + pingText
382 bannerElement.className = connectionText === 'connected' ? 'online' : 'offline'
383 }
384
385 function updateConnectionStatus (connectionStatus) {
386 connectionText = connectionStatus || connectionText
387 updateBanner()
388 }
389 function updateTestStatus (testStatus) {
390 testText = testStatus || testText
391 updateBanner()
392 }
393 function updatePingStatus (pingStatus) {
394 pingText = pingStatus || pingText
395 updateBanner()
396 }
397
398 socket.on('connect', function () {
399 updateConnectionStatus('connected')
400 })
401 socket.on('disconnect', function () {
402 updateConnectionStatus('disconnected')
403 })
404 socket.on('reconnecting', function (sec) {
405 updateConnectionStatus('reconnecting in ' + sec + ' seconds')
406 })
407 socket.on('reconnect', function () {
408 updateConnectionStatus('reconnected')
409 })
410 socket.on('reconnect_failed', function () {
411 updateConnectionStatus('reconnect_failed')
412 })
413
414 socket.on('info', updateBrowsersInfo)
415 socket.on('disconnect', function () {
416 updateBrowsersInfo([])
417 })
418
419 socket.on('ping', function () {
420 updatePingStatus('ping...')
421 })
422 socket.on('pong', function (latency) {
423 updatePingStatus('ping ' + latency + 'ms')
424 })
425
426 return { updateTestStatus: updateTestStatus }
427}
428
429module.exports = StatusUpdater
430
431},{"./constants":1}],5:[function(require,module,exports){
432var serialize = null
433try {
434 serialize = require('dom-serialize')
435} catch (e) {
436 // Ignore failure on IE8
437}
438
439var instanceOf = require('./util').instanceOf
440
441function isNode (obj) {
442 return (obj.tagName || obj.nodeName) && obj.nodeType
443}
444
445function stringify (obj, depth) {
446 if (depth === 0) {
447 return '...'
448 }
449
450 if (obj === null) {
451 return 'null'
452 }
453
454 switch (typeof obj) {
455 case 'symbol':
456 return obj.toString()
457 case 'string':
458 return "'" + obj + "'"
459 case 'undefined':
460 return 'undefined'
461 case 'function':
462 try {
463 // function abc(a, b, c) { /* code goes here */ }
464 // -> function abc(a, b, c) { ... }
465 return obj.toString().replace(/\{[\s\S]*\}/, '{ ... }')
466 } catch (err) {
467 if (err instanceof TypeError) {
468 // Support older browsers
469 return 'function ' + (obj.name || '') + '() { ... }'
470 } else {
471 throw err
472 }
473 }
474 case 'boolean':
475 return obj ? 'true' : 'false'
476 case 'object':
477 var strs = []
478 if (instanceOf(obj, 'Array')) {
479 strs.push('[')
480 for (var i = 0, ii = obj.length; i < ii; i++) {
481 if (i) {
482 strs.push(', ')
483 }
484 strs.push(stringify(obj[i], depth - 1))
485 }
486 strs.push(']')
487 } else if (instanceOf(obj, 'Date')) {
488 return obj.toString()
489 } else if (instanceOf(obj, 'Text')) {
490 return obj.nodeValue
491 } else if (instanceOf(obj, 'Comment')) {
492 return '<!--' + obj.nodeValue + '-->'
493 } else if (obj.outerHTML) {
494 return obj.outerHTML
495 } else if (isNode(obj)) {
496 if (serialize) {
497 return serialize(obj)
498 } else {
499 return 'Skipping stringify, no support for dom-serialize'
500 }
501 } else if (instanceOf(obj, 'Error')) {
502 return obj.toString() + '\n' + obj.stack
503 } else {
504 var constructor = 'Object'
505 if (obj.constructor && typeof obj.constructor === 'function') {
506 constructor = obj.constructor.name
507 }
508
509 strs.push(constructor)
510 strs.push('{')
511 var first = true
512 for (var key in obj) {
513 if (Object.prototype.hasOwnProperty.call(obj, key)) {
514 if (first) {
515 first = false
516 } else {
517 strs.push(', ')
518 }
519
520 strs.push(key + ': ' + stringify(obj[key], depth - 1))
521 }
522 }
523 strs.push('}')
524 }
525 return strs.join('')
526 default:
527 return obj
528 }
529}
530
531module.exports = stringify
532
533},{"./util":6,"dom-serialize":8}],6:[function(require,module,exports){
534exports.instanceOf = function (value, constructorName) {
535 return Object.prototype.toString.apply(value) === '[object ' + constructorName + ']'
536}
537
538exports.elm = function (id) {
539 return document.getElementById(id)
540}
541
542exports.generateId = function (prefix) {
543 return prefix + Math.floor(Math.random() * 10000)
544}
545
546exports.isUndefined = function (value) {
547 return typeof value === 'undefined'
548}
549
550exports.isDefined = function (value) {
551 return !exports.isUndefined(value)
552}
553
554exports.parseQueryParams = function (locationSearch) {
555 var params = {}
556 var pairs = locationSearch.substr(1).split('&')
557 var keyValue
558
559 for (var i = 0; i < pairs.length; i++) {
560 keyValue = pairs[i].split('=')
561 params[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1])
562 }
563
564 return params
565}
566
567},{}],7:[function(require,module,exports){
568(function (global){
569
570var NativeCustomEvent = global.CustomEvent;
571
572function useNative () {
573 try {
574 var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });
575 return 'cat' === p.type && 'bar' === p.detail.foo;
576 } catch (e) {
577 }
578 return false;
579}
580
581/**
582 * Cross-browser `CustomEvent` constructor.
583 *
584 * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent
585 *
586 * @public
587 */
588
589module.exports = useNative() ? NativeCustomEvent :
590
591// IE >= 9
592'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {
593 var e = document.createEvent('CustomEvent');
594 if (params) {
595 e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);
596 } else {
597 e.initCustomEvent(type, false, false, void 0);
598 }
599 return e;
600} :
601
602// IE <= 8
603function CustomEvent (type, params) {
604 var e = document.createEventObject();
605 e.type = type;
606 if (params) {
607 e.bubbles = Boolean(params.bubbles);
608 e.cancelable = Boolean(params.cancelable);
609 e.detail = params.detail;
610 } else {
611 e.bubbles = false;
612 e.cancelable = false;
613 e.detail = void 0;
614 }
615 return e;
616}
617
618}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
619},{}],8:[function(require,module,exports){
620
621/**
622 * Module dependencies.
623 */
624
625var extend = require('extend');
626var encode = require('ent/encode');
627var CustomEvent = require('custom-event');
628var voidElements = require('void-elements');
629
630/**
631 * Module exports.
632 */
633
634exports = module.exports = serialize;
635exports.serializeElement = serializeElement;
636exports.serializeAttribute = serializeAttribute;
637exports.serializeText = serializeText;
638exports.serializeComment = serializeComment;
639exports.serializeDocument = serializeDocument;
640exports.serializeDoctype = serializeDoctype;
641exports.serializeDocumentFragment = serializeDocumentFragment;
642exports.serializeNodeList = serializeNodeList;
643
644/**
645 * Serializes any DOM node. Returns a string.
646 *
647 * @param {Node} node - DOM Node to serialize
648 * @param {String} [context] - optional arbitrary "context" string to use (useful for event listeners)
649 * @param {Function} [fn] - optional callback function to use in the "serialize" event for this call
650 * @param {EventTarget} [eventTarget] - optional EventTarget instance to emit the "serialize" event on (defaults to `node`)
651 * return {String}
652 * @public
653 */
654
655function serialize (node, context, fn, eventTarget) {
656 if (!node) return '';
657 if ('function' === typeof context) {
658 fn = context;
659 context = null;
660 }
661 if (!context) context = null;
662
663 var rtn;
664 var nodeType = node.nodeType;
665
666 if (!nodeType && 'number' === typeof node.length) {
667 // assume it's a NodeList or Array of Nodes
668 rtn = exports.serializeNodeList(node, context, fn);
669 } else {
670
671 if ('function' === typeof fn) {
672 // one-time "serialize" event listener
673 node.addEventListener('serialize', fn, false);
674 }
675
676 // emit a custom "serialize" event on `node`, in case there
677 // are event listeners for custom serialization of this node
678 var e = new CustomEvent('serialize', {
679 bubbles: true,
680 cancelable: true,
681 detail: {
682 serialize: null,
683 context: context
684 }
685 });
686
687 e.serializeTarget = node;
688
689 var target = eventTarget || node;
690 var cancelled = !target.dispatchEvent(e);
691
692 // `e.detail.serialize` can be set to a:
693 // String - returned directly
694 // Node - goes through serializer logic instead of `node`
695 // Anything else - get Stringified first, and then returned directly
696 var s = e.detail.serialize;
697 if (s != null) {
698 if ('string' === typeof s) {
699 rtn = s;
700 } else if ('number' === typeof s.nodeType) {
701 // make it go through the serialization logic
702 rtn = serialize(s, context, null, target);
703 } else {
704 rtn = String(s);
705 }
706 } else if (!cancelled) {
707 // default serialization logic
708 switch (nodeType) {
709 case 1 /* element */:
710 rtn = exports.serializeElement(node, context, eventTarget);
711 break;
712 case 2 /* attribute */:
713 rtn = exports.serializeAttribute(node);
714 break;
715 case 3 /* text */:
716 rtn = exports.serializeText(node);
717 break;
718 case 8 /* comment */:
719 rtn = exports.serializeComment(node);
720 break;
721 case 9 /* document */:
722 rtn = exports.serializeDocument(node, context, eventTarget);
723 break;
724 case 10 /* doctype */:
725 rtn = exports.serializeDoctype(node);
726 break;
727 case 11 /* document fragment */:
728 rtn = exports.serializeDocumentFragment(node, context, eventTarget);
729 break;
730 }
731 }
732
733 if ('function' === typeof fn) {
734 node.removeEventListener('serialize', fn, false);
735 }
736 }
737
738 return rtn || '';
739}
740
741/**
742 * Serialize an Attribute node.
743 */
744
745function serializeAttribute (node, opts) {
746 return node.name + '="' + encode(node.value, extend({
747 named: true
748 }, opts)) + '"';
749}
750
751/**
752 * Serialize a DOM element.
753 */
754
755function serializeElement (node, context, eventTarget) {
756 var c, i, l;
757 var name = node.nodeName.toLowerCase();
758
759 // opening tag
760 var r = '<' + name;
761
762 // attributes
763 for (i = 0, c = node.attributes, l = c.length; i < l; i++) {
764 r += ' ' + exports.serializeAttribute(c[i]);
765 }
766
767 r += '>';
768
769 // child nodes
770 r += exports.serializeNodeList(node.childNodes, context, null, eventTarget);
771
772 // closing tag, only for non-void elements
773 if (!voidElements[name]) {
774 r += '</' + name + '>';
775 }
776
777 return r;
778}
779
780/**
781 * Serialize a text node.
782 */
783
784function serializeText (node, opts) {
785 return encode(node.nodeValue, extend({
786 named: true,
787 special: { '<': true, '>': true, '&': true }
788 }, opts));
789}
790
791/**
792 * Serialize a comment node.
793 */
794
795function serializeComment (node) {
796 return '<!--' + node.nodeValue + '-->';
797}
798
799/**
800 * Serialize a Document node.
801 */
802
803function serializeDocument (node, context, eventTarget) {
804 return exports.serializeNodeList(node.childNodes, context, null, eventTarget);
805}
806
807/**
808 * Serialize a DOCTYPE node.
809 * See: http://stackoverflow.com/a/10162353
810 */
811
812function serializeDoctype (node) {
813 var r = '<!DOCTYPE ' + node.name;
814
815 if (node.publicId) {
816 r += ' PUBLIC "' + node.publicId + '"';
817 }
818
819 if (!node.publicId && node.systemId) {
820 r += ' SYSTEM';
821 }
822
823 if (node.systemId) {
824 r += ' "' + node.systemId + '"';
825 }
826
827 r += '>';
828 return r;
829}
830
831/**
832 * Serialize a DocumentFragment instance.
833 */
834
835function serializeDocumentFragment (node, context, eventTarget) {
836 return exports.serializeNodeList(node.childNodes, context, null, eventTarget);
837}
838
839/**
840 * Serialize a NodeList/Array of nodes.
841 */
842
843function serializeNodeList (list, context, fn, eventTarget) {
844 var r = '';
845 for (var i = 0, l = list.length; i < l; i++) {
846 r += serialize(list[i], context, fn, eventTarget);
847 }
848 return r;
849}
850
851},{"custom-event":7,"ent/encode":9,"extend":11,"void-elements":13}],9:[function(require,module,exports){
852var punycode = require('punycode');
853var revEntities = require('./reversed.json');
854
855module.exports = encode;
856
857function encode (str, opts) {
858 if (typeof str !== 'string') {
859 throw new TypeError('Expected a String');
860 }
861 if (!opts) opts = {};
862
863 var numeric = true;
864 if (opts.named) numeric = false;
865 if (opts.numeric !== undefined) numeric = opts.numeric;
866
867 var special = opts.special || {
868 '"': true, "'": true,
869 '<': true, '>': true,
870 '&': true
871 };
872
873 var codePoints = punycode.ucs2.decode(str);
874 var chars = [];
875 for (var i = 0; i < codePoints.length; i++) {
876 var cc = codePoints[i];
877 var c = punycode.ucs2.encode([ cc ]);
878 var e = revEntities[cc];
879 if (e && (cc >= 127 || special[c]) && !numeric) {
880 chars.push('&' + (/;$/.test(e) ? e : e + ';'));
881 }
882 else if (cc < 32 || cc >= 127 || special[c]) {
883 chars.push('&#' + cc + ';');
884 }
885 else {
886 chars.push(c);
887 }
888 }
889 return chars.join('');
890}
891
892},{"./reversed.json":10,"punycode":12}],10:[function(require,module,exports){
893module.exports={
894 "9": "Tab;",
895 "10": "NewLine;",
896 "33": "excl;",
897 "34": "quot;",
898 "35": "num;",
899 "36": "dollar;",
900 "37": "percnt;",
901 "38": "amp;",
902 "39": "apos;",
903 "40": "lpar;",
904 "41": "rpar;",
905 "42": "midast;",
906 "43": "plus;",
907 "44": "comma;",
908 "46": "period;",
909 "47": "sol;",
910 "58": "colon;",
911 "59": "semi;",
912 "60": "lt;",
913 "61": "equals;",
914 "62": "gt;",
915 "63": "quest;",
916 "64": "commat;",
917 "91": "lsqb;",
918 "92": "bsol;",
919 "93": "rsqb;",
920 "94": "Hat;",
921 "95": "UnderBar;",
922 "96": "grave;",
923 "123": "lcub;",
924 "124": "VerticalLine;",
925 "125": "rcub;",
926 "160": "NonBreakingSpace;",
927 "161": "iexcl;",
928 "162": "cent;",
929 "163": "pound;",
930 "164": "curren;",
931 "165": "yen;",
932 "166": "brvbar;",
933 "167": "sect;",
934 "168": "uml;",
935 "169": "copy;",
936 "170": "ordf;",
937 "171": "laquo;",
938 "172": "not;",
939 "173": "shy;",
940 "174": "reg;",
941 "175": "strns;",
942 "176": "deg;",
943 "177": "pm;",
944 "178": "sup2;",
945 "179": "sup3;",
946 "180": "DiacriticalAcute;",
947 "181": "micro;",
948 "182": "para;",
949 "183": "middot;",
950 "184": "Cedilla;",
951 "185": "sup1;",
952 "186": "ordm;",
953 "187": "raquo;",
954 "188": "frac14;",
955 "189": "half;",
956 "190": "frac34;",
957 "191": "iquest;",
958 "192": "Agrave;",
959 "193": "Aacute;",
960 "194": "Acirc;",
961 "195": "Atilde;",
962 "196": "Auml;",
963 "197": "Aring;",
964 "198": "AElig;",
965 "199": "Ccedil;",
966 "200": "Egrave;",
967 "201": "Eacute;",
968 "202": "Ecirc;",
969 "203": "Euml;",
970 "204": "Igrave;",
971 "205": "Iacute;",
972 "206": "Icirc;",
973 "207": "Iuml;",
974 "208": "ETH;",
975 "209": "Ntilde;",
976 "210": "Ograve;",
977 "211": "Oacute;",
978 "212": "Ocirc;",
979 "213": "Otilde;",
980 "214": "Ouml;",
981 "215": "times;",
982 "216": "Oslash;",
983 "217": "Ugrave;",
984 "218": "Uacute;",
985 "219": "Ucirc;",
986 "220": "Uuml;",
987 "221": "Yacute;",
988 "222": "THORN;",
989 "223": "szlig;",
990 "224": "agrave;",
991 "225": "aacute;",
992 "226": "acirc;",
993 "227": "atilde;",
994 "228": "auml;",
995 "229": "aring;",
996 "230": "aelig;",
997 "231": "ccedil;",
998 "232": "egrave;",
999 "233": "eacute;",
1000 "234": "ecirc;",
1001 "235": "euml;",
1002 "236": "igrave;",
1003 "237": "iacute;",
1004 "238": "icirc;",
1005 "239": "iuml;",
1006 "240": "eth;",
1007 "241": "ntilde;",
1008 "242": "ograve;",
1009 "243": "oacute;",
1010 "244": "ocirc;",
1011 "245": "otilde;",
1012 "246": "ouml;",
1013 "247": "divide;",
1014 "248": "oslash;",
1015 "249": "ugrave;",
1016 "250": "uacute;",
1017 "251": "ucirc;",
1018 "252": "uuml;",
1019 "253": "yacute;",
1020 "254": "thorn;",
1021 "255": "yuml;",
1022 "256": "Amacr;",
1023 "257": "amacr;",
1024 "258": "Abreve;",
1025 "259": "abreve;",
1026 "260": "Aogon;",
1027 "261": "aogon;",
1028 "262": "Cacute;",
1029 "263": "cacute;",
1030 "264": "Ccirc;",
1031 "265": "ccirc;",
1032 "266": "Cdot;",
1033 "267": "cdot;",
1034 "268": "Ccaron;",
1035 "269": "ccaron;",
1036 "270": "Dcaron;",
1037 "271": "dcaron;",
1038 "272": "Dstrok;",
1039 "273": "dstrok;",
1040 "274": "Emacr;",
1041 "275": "emacr;",
1042 "278": "Edot;",
1043 "279": "edot;",
1044 "280": "Eogon;",
1045 "281": "eogon;",
1046 "282": "Ecaron;",
1047 "283": "ecaron;",
1048 "284": "Gcirc;",
1049 "285": "gcirc;",
1050 "286": "Gbreve;",
1051 "287": "gbreve;",
1052 "288": "Gdot;",
1053 "289": "gdot;",
1054 "290": "Gcedil;",
1055 "292": "Hcirc;",
1056 "293": "hcirc;",
1057 "294": "Hstrok;",
1058 "295": "hstrok;",
1059 "296": "Itilde;",
1060 "297": "itilde;",
1061 "298": "Imacr;",
1062 "299": "imacr;",
1063 "302": "Iogon;",
1064 "303": "iogon;",
1065 "304": "Idot;",
1066 "305": "inodot;",
1067 "306": "IJlig;",
1068 "307": "ijlig;",
1069 "308": "Jcirc;",
1070 "309": "jcirc;",
1071 "310": "Kcedil;",
1072 "311": "kcedil;",
1073 "312": "kgreen;",
1074 "313": "Lacute;",
1075 "314": "lacute;",
1076 "315": "Lcedil;",
1077 "316": "lcedil;",
1078 "317": "Lcaron;",
1079 "318": "lcaron;",
1080 "319": "Lmidot;",
1081 "320": "lmidot;",
1082 "321": "Lstrok;",
1083 "322": "lstrok;",
1084 "323": "Nacute;",
1085 "324": "nacute;",
1086 "325": "Ncedil;",
1087 "326": "ncedil;",
1088 "327": "Ncaron;",
1089 "328": "ncaron;",
1090 "329": "napos;",
1091 "330": "ENG;",
1092 "331": "eng;",
1093 "332": "Omacr;",
1094 "333": "omacr;",
1095 "336": "Odblac;",
1096 "337": "odblac;",
1097 "338": "OElig;",
1098 "339": "oelig;",
1099 "340": "Racute;",
1100 "341": "racute;",
1101 "342": "Rcedil;",
1102 "343": "rcedil;",
1103 "344": "Rcaron;",
1104 "345": "rcaron;",
1105 "346": "Sacute;",
1106 "347": "sacute;",
1107 "348": "Scirc;",
1108 "349": "scirc;",
1109 "350": "Scedil;",
1110 "351": "scedil;",
1111 "352": "Scaron;",
1112 "353": "scaron;",
1113 "354": "Tcedil;",
1114 "355": "tcedil;",
1115 "356": "Tcaron;",
1116 "357": "tcaron;",
1117 "358": "Tstrok;",
1118 "359": "tstrok;",
1119 "360": "Utilde;",
1120 "361": "utilde;",
1121 "362": "Umacr;",
1122 "363": "umacr;",
1123 "364": "Ubreve;",
1124 "365": "ubreve;",
1125 "366": "Uring;",
1126 "367": "uring;",
1127 "368": "Udblac;",
1128 "369": "udblac;",
1129 "370": "Uogon;",
1130 "371": "uogon;",
1131 "372": "Wcirc;",
1132 "373": "wcirc;",
1133 "374": "Ycirc;",
1134 "375": "ycirc;",
1135 "376": "Yuml;",
1136 "377": "Zacute;",
1137 "378": "zacute;",
1138 "379": "Zdot;",
1139 "380": "zdot;",
1140 "381": "Zcaron;",
1141 "382": "zcaron;",
1142 "402": "fnof;",
1143 "437": "imped;",
1144 "501": "gacute;",
1145 "567": "jmath;",
1146 "710": "circ;",
1147 "711": "Hacek;",
1148 "728": "breve;",
1149 "729": "dot;",
1150 "730": "ring;",
1151 "731": "ogon;",
1152 "732": "tilde;",
1153 "733": "DiacriticalDoubleAcute;",
1154 "785": "DownBreve;",
1155 "913": "Alpha;",
1156 "914": "Beta;",
1157 "915": "Gamma;",
1158 "916": "Delta;",
1159 "917": "Epsilon;",
1160 "918": "Zeta;",
1161 "919": "Eta;",
1162 "920": "Theta;",
1163 "921": "Iota;",
1164 "922": "Kappa;",
1165 "923": "Lambda;",
1166 "924": "Mu;",
1167 "925": "Nu;",
1168 "926": "Xi;",
1169 "927": "Omicron;",
1170 "928": "Pi;",
1171 "929": "Rho;",
1172 "931": "Sigma;",
1173 "932": "Tau;",
1174 "933": "Upsilon;",
1175 "934": "Phi;",
1176 "935": "Chi;",
1177 "936": "Psi;",
1178 "937": "Omega;",
1179 "945": "alpha;",
1180 "946": "beta;",
1181 "947": "gamma;",
1182 "948": "delta;",
1183 "949": "epsilon;",
1184 "950": "zeta;",
1185 "951": "eta;",
1186 "952": "theta;",
1187 "953": "iota;",
1188 "954": "kappa;",
1189 "955": "lambda;",
1190 "956": "mu;",
1191 "957": "nu;",
1192 "958": "xi;",
1193 "959": "omicron;",
1194 "960": "pi;",
1195 "961": "rho;",
1196 "962": "varsigma;",
1197 "963": "sigma;",
1198 "964": "tau;",
1199 "965": "upsilon;",
1200 "966": "phi;",
1201 "967": "chi;",
1202 "968": "psi;",
1203 "969": "omega;",
1204 "977": "vartheta;",
1205 "978": "upsih;",
1206 "981": "varphi;",
1207 "982": "varpi;",
1208 "988": "Gammad;",
1209 "989": "gammad;",
1210 "1008": "varkappa;",
1211 "1009": "varrho;",
1212 "1013": "varepsilon;",
1213 "1014": "bepsi;",
1214 "1025": "IOcy;",
1215 "1026": "DJcy;",
1216 "1027": "GJcy;",
1217 "1028": "Jukcy;",
1218 "1029": "DScy;",
1219 "1030": "Iukcy;",
1220 "1031": "YIcy;",
1221 "1032": "Jsercy;",
1222 "1033": "LJcy;",
1223 "1034": "NJcy;",
1224 "1035": "TSHcy;",
1225 "1036": "KJcy;",
1226 "1038": "Ubrcy;",
1227 "1039": "DZcy;",
1228 "1040": "Acy;",
1229 "1041": "Bcy;",
1230 "1042": "Vcy;",
1231 "1043": "Gcy;",
1232 "1044": "Dcy;",
1233 "1045": "IEcy;",
1234 "1046": "ZHcy;",
1235 "1047": "Zcy;",
1236 "1048": "Icy;",
1237 "1049": "Jcy;",
1238 "1050": "Kcy;",
1239 "1051": "Lcy;",
1240 "1052": "Mcy;",
1241 "1053": "Ncy;",
1242 "1054": "Ocy;",
1243 "1055": "Pcy;",
1244 "1056": "Rcy;",
1245 "1057": "Scy;",
1246 "1058": "Tcy;",
1247 "1059": "Ucy;",
1248 "1060": "Fcy;",
1249 "1061": "KHcy;",
1250 "1062": "TScy;",
1251 "1063": "CHcy;",
1252 "1064": "SHcy;",
1253 "1065": "SHCHcy;",
1254 "1066": "HARDcy;",
1255 "1067": "Ycy;",
1256 "1068": "SOFTcy;",
1257 "1069": "Ecy;",
1258 "1070": "YUcy;",
1259 "1071": "YAcy;",
1260 "1072": "acy;",
1261 "1073": "bcy;",
1262 "1074": "vcy;",
1263 "1075": "gcy;",
1264 "1076": "dcy;",
1265 "1077": "iecy;",
1266 "1078": "zhcy;",
1267 "1079": "zcy;",
1268 "1080": "icy;",
1269 "1081": "jcy;",
1270 "1082": "kcy;",
1271 "1083": "lcy;",
1272 "1084": "mcy;",
1273 "1085": "ncy;",
1274 "1086": "ocy;",
1275 "1087": "pcy;",
1276 "1088": "rcy;",
1277 "1089": "scy;",
1278 "1090": "tcy;",
1279 "1091": "ucy;",
1280 "1092": "fcy;",
1281 "1093": "khcy;",
1282 "1094": "tscy;",
1283 "1095": "chcy;",
1284 "1096": "shcy;",
1285 "1097": "shchcy;",
1286 "1098": "hardcy;",
1287 "1099": "ycy;",
1288 "1100": "softcy;",
1289 "1101": "ecy;",
1290 "1102": "yucy;",
1291 "1103": "yacy;",
1292 "1105": "iocy;",
1293 "1106": "djcy;",
1294 "1107": "gjcy;",
1295 "1108": "jukcy;",
1296 "1109": "dscy;",
1297 "1110": "iukcy;",
1298 "1111": "yicy;",
1299 "1112": "jsercy;",
1300 "1113": "ljcy;",
1301 "1114": "njcy;",
1302 "1115": "tshcy;",
1303 "1116": "kjcy;",
1304 "1118": "ubrcy;",
1305 "1119": "dzcy;",
1306 "8194": "ensp;",
1307 "8195": "emsp;",
1308 "8196": "emsp13;",
1309 "8197": "emsp14;",
1310 "8199": "numsp;",
1311 "8200": "puncsp;",
1312 "8201": "ThinSpace;",
1313 "8202": "VeryThinSpace;",
1314 "8203": "ZeroWidthSpace;",
1315 "8204": "zwnj;",
1316 "8205": "zwj;",
1317 "8206": "lrm;",
1318 "8207": "rlm;",
1319 "8208": "hyphen;",
1320 "8211": "ndash;",
1321 "8212": "mdash;",
1322 "8213": "horbar;",
1323 "8214": "Vert;",
1324 "8216": "OpenCurlyQuote;",
1325 "8217": "rsquor;",
1326 "8218": "sbquo;",
1327 "8220": "OpenCurlyDoubleQuote;",
1328 "8221": "rdquor;",
1329 "8222": "ldquor;",
1330 "8224": "dagger;",
1331 "8225": "ddagger;",
1332 "8226": "bullet;",
1333 "8229": "nldr;",
1334 "8230": "mldr;",
1335 "8240": "permil;",
1336 "8241": "pertenk;",
1337 "8242": "prime;",
1338 "8243": "Prime;",
1339 "8244": "tprime;",
1340 "8245": "bprime;",
1341 "8249": "lsaquo;",
1342 "8250": "rsaquo;",
1343 "8254": "OverBar;",
1344 "8257": "caret;",
1345 "8259": "hybull;",
1346 "8260": "frasl;",
1347 "8271": "bsemi;",
1348 "8279": "qprime;",
1349 "8287": "MediumSpace;",
1350 "8288": "NoBreak;",
1351 "8289": "ApplyFunction;",
1352 "8290": "it;",
1353 "8291": "InvisibleComma;",
1354 "8364": "euro;",
1355 "8411": "TripleDot;",
1356 "8412": "DotDot;",
1357 "8450": "Copf;",
1358 "8453": "incare;",
1359 "8458": "gscr;",
1360 "8459": "Hscr;",
1361 "8460": "Poincareplane;",
1362 "8461": "quaternions;",
1363 "8462": "planckh;",
1364 "8463": "plankv;",
1365 "8464": "Iscr;",
1366 "8465": "imagpart;",
1367 "8466": "Lscr;",
1368 "8467": "ell;",
1369 "8469": "Nopf;",
1370 "8470": "numero;",
1371 "8471": "copysr;",
1372 "8472": "wp;",
1373 "8473": "primes;",
1374 "8474": "rationals;",
1375 "8475": "Rscr;",
1376 "8476": "Rfr;",
1377 "8477": "Ropf;",
1378 "8478": "rx;",
1379 "8482": "trade;",
1380 "8484": "Zopf;",
1381 "8487": "mho;",
1382 "8488": "Zfr;",
1383 "8489": "iiota;",
1384 "8492": "Bscr;",
1385 "8493": "Cfr;",
1386 "8495": "escr;",
1387 "8496": "expectation;",
1388 "8497": "Fscr;",
1389 "8499": "phmmat;",
1390 "8500": "oscr;",
1391 "8501": "aleph;",
1392 "8502": "beth;",
1393 "8503": "gimel;",
1394 "8504": "daleth;",
1395 "8517": "DD;",
1396 "8518": "DifferentialD;",
1397 "8519": "exponentiale;",
1398 "8520": "ImaginaryI;",
1399 "8531": "frac13;",
1400 "8532": "frac23;",
1401 "8533": "frac15;",
1402 "8534": "frac25;",
1403 "8535": "frac35;",
1404 "8536": "frac45;",
1405 "8537": "frac16;",
1406 "8538": "frac56;",
1407 "8539": "frac18;",
1408 "8540": "frac38;",
1409 "8541": "frac58;",
1410 "8542": "frac78;",
1411 "8592": "slarr;",
1412 "8593": "uparrow;",
1413 "8594": "srarr;",
1414 "8595": "ShortDownArrow;",
1415 "8596": "leftrightarrow;",
1416 "8597": "varr;",
1417 "8598": "UpperLeftArrow;",
1418 "8599": "UpperRightArrow;",
1419 "8600": "searrow;",
1420 "8601": "swarrow;",
1421 "8602": "nleftarrow;",
1422 "8603": "nrightarrow;",
1423 "8605": "rightsquigarrow;",
1424 "8606": "twoheadleftarrow;",
1425 "8607": "Uarr;",
1426 "8608": "twoheadrightarrow;",
1427 "8609": "Darr;",
1428 "8610": "leftarrowtail;",
1429 "8611": "rightarrowtail;",
1430 "8612": "mapstoleft;",
1431 "8613": "UpTeeArrow;",
1432 "8614": "RightTeeArrow;",
1433 "8615": "mapstodown;",
1434 "8617": "larrhk;",
1435 "8618": "rarrhk;",
1436 "8619": "looparrowleft;",
1437 "8620": "rarrlp;",
1438 "8621": "leftrightsquigarrow;",
1439 "8622": "nleftrightarrow;",
1440 "8624": "lsh;",
1441 "8625": "rsh;",
1442 "8626": "ldsh;",
1443 "8627": "rdsh;",
1444 "8629": "crarr;",
1445 "8630": "curvearrowleft;",
1446 "8631": "curvearrowright;",
1447 "8634": "olarr;",
1448 "8635": "orarr;",
1449 "8636": "lharu;",
1450 "8637": "lhard;",
1451 "8638": "upharpoonright;",
1452 "8639": "upharpoonleft;",
1453 "8640": "RightVector;",
1454 "8641": "rightharpoondown;",
1455 "8642": "RightDownVector;",
1456 "8643": "LeftDownVector;",
1457 "8644": "rlarr;",
1458 "8645": "UpArrowDownArrow;",
1459 "8646": "lrarr;",
1460 "8647": "llarr;",
1461 "8648": "uuarr;",
1462 "8649": "rrarr;",
1463 "8650": "downdownarrows;",
1464 "8651": "ReverseEquilibrium;",
1465 "8652": "rlhar;",
1466 "8653": "nLeftarrow;",
1467 "8654": "nLeftrightarrow;",
1468 "8655": "nRightarrow;",
1469 "8656": "Leftarrow;",
1470 "8657": "Uparrow;",
1471 "8658": "Rightarrow;",
1472 "8659": "Downarrow;",
1473 "8660": "Leftrightarrow;",
1474 "8661": "vArr;",
1475 "8662": "nwArr;",
1476 "8663": "neArr;",
1477 "8664": "seArr;",
1478 "8665": "swArr;",
1479 "8666": "Lleftarrow;",
1480 "8667": "Rrightarrow;",
1481 "8669": "zigrarr;",
1482 "8676": "LeftArrowBar;",
1483 "8677": "RightArrowBar;",
1484 "8693": "duarr;",
1485 "8701": "loarr;",
1486 "8702": "roarr;",
1487 "8703": "hoarr;",
1488 "8704": "forall;",
1489 "8705": "complement;",
1490 "8706": "PartialD;",
1491 "8707": "Exists;",
1492 "8708": "NotExists;",
1493 "8709": "varnothing;",
1494 "8711": "nabla;",
1495 "8712": "isinv;",
1496 "8713": "notinva;",
1497 "8715": "SuchThat;",
1498 "8716": "NotReverseElement;",
1499 "8719": "Product;",
1500 "8720": "Coproduct;",
1501 "8721": "sum;",
1502 "8722": "minus;",
1503 "8723": "mp;",
1504 "8724": "plusdo;",
1505 "8726": "ssetmn;",
1506 "8727": "lowast;",
1507 "8728": "SmallCircle;",
1508 "8730": "Sqrt;",
1509 "8733": "vprop;",
1510 "8734": "infin;",
1511 "8735": "angrt;",
1512 "8736": "angle;",
1513 "8737": "measuredangle;",
1514 "8738": "angsph;",
1515 "8739": "VerticalBar;",
1516 "8740": "nsmid;",
1517 "8741": "spar;",
1518 "8742": "nspar;",
1519 "8743": "wedge;",
1520 "8744": "vee;",
1521 "8745": "cap;",
1522 "8746": "cup;",
1523 "8747": "Integral;",
1524 "8748": "Int;",
1525 "8749": "tint;",
1526 "8750": "oint;",
1527 "8751": "DoubleContourIntegral;",
1528 "8752": "Cconint;",
1529 "8753": "cwint;",
1530 "8754": "cwconint;",
1531 "8755": "CounterClockwiseContourIntegral;",
1532 "8756": "therefore;",
1533 "8757": "because;",
1534 "8758": "ratio;",
1535 "8759": "Proportion;",
1536 "8760": "minusd;",
1537 "8762": "mDDot;",
1538 "8763": "homtht;",
1539 "8764": "Tilde;",
1540 "8765": "bsim;",
1541 "8766": "mstpos;",
1542 "8767": "acd;",
1543 "8768": "wreath;",
1544 "8769": "nsim;",
1545 "8770": "esim;",
1546 "8771": "TildeEqual;",
1547 "8772": "nsimeq;",
1548 "8773": "TildeFullEqual;",
1549 "8774": "simne;",
1550 "8775": "NotTildeFullEqual;",
1551 "8776": "TildeTilde;",
1552 "8777": "NotTildeTilde;",
1553 "8778": "approxeq;",
1554 "8779": "apid;",
1555 "8780": "bcong;",
1556 "8781": "CupCap;",
1557 "8782": "HumpDownHump;",
1558 "8783": "HumpEqual;",
1559 "8784": "esdot;",
1560 "8785": "eDot;",
1561 "8786": "fallingdotseq;",
1562 "8787": "risingdotseq;",
1563 "8788": "coloneq;",
1564 "8789": "eqcolon;",
1565 "8790": "eqcirc;",
1566 "8791": "cire;",
1567 "8793": "wedgeq;",
1568 "8794": "veeeq;",
1569 "8796": "trie;",
1570 "8799": "questeq;",
1571 "8800": "NotEqual;",
1572 "8801": "equiv;",
1573 "8802": "NotCongruent;",
1574 "8804": "leq;",
1575 "8805": "GreaterEqual;",
1576 "8806": "LessFullEqual;",
1577 "8807": "GreaterFullEqual;",
1578 "8808": "lneqq;",
1579 "8809": "gneqq;",
1580 "8810": "NestedLessLess;",
1581 "8811": "NestedGreaterGreater;",
1582 "8812": "twixt;",
1583 "8813": "NotCupCap;",
1584 "8814": "NotLess;",
1585 "8815": "NotGreater;",
1586 "8816": "NotLessEqual;",
1587 "8817": "NotGreaterEqual;",
1588 "8818": "lsim;",
1589 "8819": "gtrsim;",
1590 "8820": "NotLessTilde;",
1591 "8821": "NotGreaterTilde;",
1592 "8822": "lg;",
1593 "8823": "gtrless;",
1594 "8824": "ntlg;",
1595 "8825": "ntgl;",
1596 "8826": "Precedes;",
1597 "8827": "Succeeds;",
1598 "8828": "PrecedesSlantEqual;",
1599 "8829": "SucceedsSlantEqual;",
1600 "8830": "prsim;",
1601 "8831": "succsim;",
1602 "8832": "nprec;",
1603 "8833": "nsucc;",
1604 "8834": "subset;",
1605 "8835": "supset;",
1606 "8836": "nsub;",
1607 "8837": "nsup;",
1608 "8838": "SubsetEqual;",
1609 "8839": "supseteq;",
1610 "8840": "nsubseteq;",
1611 "8841": "nsupseteq;",
1612 "8842": "subsetneq;",
1613 "8843": "supsetneq;",
1614 "8845": "cupdot;",
1615 "8846": "uplus;",
1616 "8847": "SquareSubset;",
1617 "8848": "SquareSuperset;",
1618 "8849": "SquareSubsetEqual;",
1619 "8850": "SquareSupersetEqual;",
1620 "8851": "SquareIntersection;",
1621 "8852": "SquareUnion;",
1622 "8853": "oplus;",
1623 "8854": "ominus;",
1624 "8855": "otimes;",
1625 "8856": "osol;",
1626 "8857": "odot;",
1627 "8858": "ocir;",
1628 "8859": "oast;",
1629 "8861": "odash;",
1630 "8862": "plusb;",
1631 "8863": "minusb;",
1632 "8864": "timesb;",
1633 "8865": "sdotb;",
1634 "8866": "vdash;",
1635 "8867": "LeftTee;",
1636 "8868": "top;",
1637 "8869": "UpTee;",
1638 "8871": "models;",
1639 "8872": "vDash;",
1640 "8873": "Vdash;",
1641 "8874": "Vvdash;",
1642 "8875": "VDash;",
1643 "8876": "nvdash;",
1644 "8877": "nvDash;",
1645 "8878": "nVdash;",
1646 "8879": "nVDash;",
1647 "8880": "prurel;",
1648 "8882": "vltri;",
1649 "8883": "vrtri;",
1650 "8884": "trianglelefteq;",
1651 "8885": "trianglerighteq;",
1652 "8886": "origof;",
1653 "8887": "imof;",
1654 "8888": "mumap;",
1655 "8889": "hercon;",
1656 "8890": "intercal;",
1657 "8891": "veebar;",
1658 "8893": "barvee;",
1659 "8894": "angrtvb;",
1660 "8895": "lrtri;",
1661 "8896": "xwedge;",
1662 "8897": "xvee;",
1663 "8898": "xcap;",
1664 "8899": "xcup;",
1665 "8900": "diamond;",
1666 "8901": "sdot;",
1667 "8902": "Star;",
1668 "8903": "divonx;",
1669 "8904": "bowtie;",
1670 "8905": "ltimes;",
1671 "8906": "rtimes;",
1672 "8907": "lthree;",
1673 "8908": "rthree;",
1674 "8909": "bsime;",
1675 "8910": "cuvee;",
1676 "8911": "cuwed;",
1677 "8912": "Subset;",
1678 "8913": "Supset;",
1679 "8914": "Cap;",
1680 "8915": "Cup;",
1681 "8916": "pitchfork;",
1682 "8917": "epar;",
1683 "8918": "ltdot;",
1684 "8919": "gtrdot;",
1685 "8920": "Ll;",
1686 "8921": "ggg;",
1687 "8922": "LessEqualGreater;",
1688 "8923": "gtreqless;",
1689 "8926": "curlyeqprec;",
1690 "8927": "curlyeqsucc;",
1691 "8928": "nprcue;",
1692 "8929": "nsccue;",
1693 "8930": "nsqsube;",
1694 "8931": "nsqsupe;",
1695 "8934": "lnsim;",
1696 "8935": "gnsim;",
1697 "8936": "prnsim;",
1698 "8937": "succnsim;",
1699 "8938": "ntriangleleft;",
1700 "8939": "ntriangleright;",
1701 "8940": "ntrianglelefteq;",
1702 "8941": "ntrianglerighteq;",
1703 "8942": "vellip;",
1704 "8943": "ctdot;",
1705 "8944": "utdot;",
1706 "8945": "dtdot;",
1707 "8946": "disin;",
1708 "8947": "isinsv;",
1709 "8948": "isins;",
1710 "8949": "isindot;",
1711 "8950": "notinvc;",
1712 "8951": "notinvb;",
1713 "8953": "isinE;",
1714 "8954": "nisd;",
1715 "8955": "xnis;",
1716 "8956": "nis;",
1717 "8957": "notnivc;",
1718 "8958": "notnivb;",
1719 "8965": "barwedge;",
1720 "8966": "doublebarwedge;",
1721 "8968": "LeftCeiling;",
1722 "8969": "RightCeiling;",
1723 "8970": "lfloor;",
1724 "8971": "RightFloor;",
1725 "8972": "drcrop;",
1726 "8973": "dlcrop;",
1727 "8974": "urcrop;",
1728 "8975": "ulcrop;",
1729 "8976": "bnot;",
1730 "8978": "profline;",
1731 "8979": "profsurf;",
1732 "8981": "telrec;",
1733 "8982": "target;",
1734 "8988": "ulcorner;",
1735 "8989": "urcorner;",
1736 "8990": "llcorner;",
1737 "8991": "lrcorner;",
1738 "8994": "sfrown;",
1739 "8995": "ssmile;",
1740 "9005": "cylcty;",
1741 "9006": "profalar;",
1742 "9014": "topbot;",
1743 "9021": "ovbar;",
1744 "9023": "solbar;",
1745 "9084": "angzarr;",
1746 "9136": "lmoustache;",
1747 "9137": "rmoustache;",
1748 "9140": "tbrk;",
1749 "9141": "UnderBracket;",
1750 "9142": "bbrktbrk;",
1751 "9180": "OverParenthesis;",
1752 "9181": "UnderParenthesis;",
1753 "9182": "OverBrace;",
1754 "9183": "UnderBrace;",
1755 "9186": "trpezium;",
1756 "9191": "elinters;",
1757 "9251": "blank;",
1758 "9416": "oS;",
1759 "9472": "HorizontalLine;",
1760 "9474": "boxv;",
1761 "9484": "boxdr;",
1762 "9488": "boxdl;",
1763 "9492": "boxur;",
1764 "9496": "boxul;",
1765 "9500": "boxvr;",
1766 "9508": "boxvl;",
1767 "9516": "boxhd;",
1768 "9524": "boxhu;",
1769 "9532": "boxvh;",
1770 "9552": "boxH;",
1771 "9553": "boxV;",
1772 "9554": "boxdR;",
1773 "9555": "boxDr;",
1774 "9556": "boxDR;",
1775 "9557": "boxdL;",
1776 "9558": "boxDl;",
1777 "9559": "boxDL;",
1778 "9560": "boxuR;",
1779 "9561": "boxUr;",
1780 "9562": "boxUR;",
1781 "9563": "boxuL;",
1782 "9564": "boxUl;",
1783 "9565": "boxUL;",
1784 "9566": "boxvR;",
1785 "9567": "boxVr;",
1786 "9568": "boxVR;",
1787 "9569": "boxvL;",
1788 "9570": "boxVl;",
1789 "9571": "boxVL;",
1790 "9572": "boxHd;",
1791 "9573": "boxhD;",
1792 "9574": "boxHD;",
1793 "9575": "boxHu;",
1794 "9576": "boxhU;",
1795 "9577": "boxHU;",
1796 "9578": "boxvH;",
1797 "9579": "boxVh;",
1798 "9580": "boxVH;",
1799 "9600": "uhblk;",
1800 "9604": "lhblk;",
1801 "9608": "block;",
1802 "9617": "blk14;",
1803 "9618": "blk12;",
1804 "9619": "blk34;",
1805 "9633": "square;",
1806 "9642": "squf;",
1807 "9643": "EmptyVerySmallSquare;",
1808 "9645": "rect;",
1809 "9646": "marker;",
1810 "9649": "fltns;",
1811 "9651": "xutri;",
1812 "9652": "utrif;",
1813 "9653": "utri;",
1814 "9656": "rtrif;",
1815 "9657": "triangleright;",
1816 "9661": "xdtri;",
1817 "9662": "dtrif;",
1818 "9663": "triangledown;",
1819 "9666": "ltrif;",
1820 "9667": "triangleleft;",
1821 "9674": "lozenge;",
1822 "9675": "cir;",
1823 "9708": "tridot;",
1824 "9711": "xcirc;",
1825 "9720": "ultri;",
1826 "9721": "urtri;",
1827 "9722": "lltri;",
1828 "9723": "EmptySmallSquare;",
1829 "9724": "FilledSmallSquare;",
1830 "9733": "starf;",
1831 "9734": "star;",
1832 "9742": "phone;",
1833 "9792": "female;",
1834 "9794": "male;",
1835 "9824": "spadesuit;",
1836 "9827": "clubsuit;",
1837 "9829": "heartsuit;",
1838 "9830": "diams;",
1839 "9834": "sung;",
1840 "9837": "flat;",
1841 "9838": "natural;",
1842 "9839": "sharp;",
1843 "10003": "checkmark;",
1844 "10007": "cross;",
1845 "10016": "maltese;",
1846 "10038": "sext;",
1847 "10072": "VerticalSeparator;",
1848 "10098": "lbbrk;",
1849 "10099": "rbbrk;",
1850 "10184": "bsolhsub;",
1851 "10185": "suphsol;",
1852 "10214": "lobrk;",
1853 "10215": "robrk;",
1854 "10216": "LeftAngleBracket;",
1855 "10217": "RightAngleBracket;",
1856 "10218": "Lang;",
1857 "10219": "Rang;",
1858 "10220": "loang;",
1859 "10221": "roang;",
1860 "10229": "xlarr;",
1861 "10230": "xrarr;",
1862 "10231": "xharr;",
1863 "10232": "xlArr;",
1864 "10233": "xrArr;",
1865 "10234": "xhArr;",
1866 "10236": "xmap;",
1867 "10239": "dzigrarr;",
1868 "10498": "nvlArr;",
1869 "10499": "nvrArr;",
1870 "10500": "nvHarr;",
1871 "10501": "Map;",
1872 "10508": "lbarr;",
1873 "10509": "rbarr;",
1874 "10510": "lBarr;",
1875 "10511": "rBarr;",
1876 "10512": "RBarr;",
1877 "10513": "DDotrahd;",
1878 "10514": "UpArrowBar;",
1879 "10515": "DownArrowBar;",
1880 "10518": "Rarrtl;",
1881 "10521": "latail;",
1882 "10522": "ratail;",
1883 "10523": "lAtail;",
1884 "10524": "rAtail;",
1885 "10525": "larrfs;",
1886 "10526": "rarrfs;",
1887 "10527": "larrbfs;",
1888 "10528": "rarrbfs;",
1889 "10531": "nwarhk;",
1890 "10532": "nearhk;",
1891 "10533": "searhk;",
1892 "10534": "swarhk;",
1893 "10535": "nwnear;",
1894 "10536": "toea;",
1895 "10537": "tosa;",
1896 "10538": "swnwar;",
1897 "10547": "rarrc;",
1898 "10549": "cudarrr;",
1899 "10550": "ldca;",
1900 "10551": "rdca;",
1901 "10552": "cudarrl;",
1902 "10553": "larrpl;",
1903 "10556": "curarrm;",
1904 "10557": "cularrp;",
1905 "10565": "rarrpl;",
1906 "10568": "harrcir;",
1907 "10569": "Uarrocir;",
1908 "10570": "lurdshar;",
1909 "10571": "ldrushar;",
1910 "10574": "LeftRightVector;",
1911 "10575": "RightUpDownVector;",
1912 "10576": "DownLeftRightVector;",
1913 "10577": "LeftUpDownVector;",
1914 "10578": "LeftVectorBar;",
1915 "10579": "RightVectorBar;",
1916 "10580": "RightUpVectorBar;",
1917 "10581": "RightDownVectorBar;",
1918 "10582": "DownLeftVectorBar;",
1919 "10583": "DownRightVectorBar;",
1920 "10584": "LeftUpVectorBar;",
1921 "10585": "LeftDownVectorBar;",
1922 "10586": "LeftTeeVector;",
1923 "10587": "RightTeeVector;",
1924 "10588": "RightUpTeeVector;",
1925 "10589": "RightDownTeeVector;",
1926 "10590": "DownLeftTeeVector;",
1927 "10591": "DownRightTeeVector;",
1928 "10592": "LeftUpTeeVector;",
1929 "10593": "LeftDownTeeVector;",
1930 "10594": "lHar;",
1931 "10595": "uHar;",
1932 "10596": "rHar;",
1933 "10597": "dHar;",
1934 "10598": "luruhar;",
1935 "10599": "ldrdhar;",
1936 "10600": "ruluhar;",
1937 "10601": "rdldhar;",
1938 "10602": "lharul;",
1939 "10603": "llhard;",
1940 "10604": "rharul;",
1941 "10605": "lrhard;",
1942 "10606": "UpEquilibrium;",
1943 "10607": "ReverseUpEquilibrium;",
1944 "10608": "RoundImplies;",
1945 "10609": "erarr;",
1946 "10610": "simrarr;",
1947 "10611": "larrsim;",
1948 "10612": "rarrsim;",
1949 "10613": "rarrap;",
1950 "10614": "ltlarr;",
1951 "10616": "gtrarr;",
1952 "10617": "subrarr;",
1953 "10619": "suplarr;",
1954 "10620": "lfisht;",
1955 "10621": "rfisht;",
1956 "10622": "ufisht;",
1957 "10623": "dfisht;",
1958 "10629": "lopar;",
1959 "10630": "ropar;",
1960 "10635": "lbrke;",
1961 "10636": "rbrke;",
1962 "10637": "lbrkslu;",
1963 "10638": "rbrksld;",
1964 "10639": "lbrksld;",
1965 "10640": "rbrkslu;",
1966 "10641": "langd;",
1967 "10642": "rangd;",
1968 "10643": "lparlt;",
1969 "10644": "rpargt;",
1970 "10645": "gtlPar;",
1971 "10646": "ltrPar;",
1972 "10650": "vzigzag;",
1973 "10652": "vangrt;",
1974 "10653": "angrtvbd;",
1975 "10660": "ange;",
1976 "10661": "range;",
1977 "10662": "dwangle;",
1978 "10663": "uwangle;",
1979 "10664": "angmsdaa;",
1980 "10665": "angmsdab;",
1981 "10666": "angmsdac;",
1982 "10667": "angmsdad;",
1983 "10668": "angmsdae;",
1984 "10669": "angmsdaf;",
1985 "10670": "angmsdag;",
1986 "10671": "angmsdah;",
1987 "10672": "bemptyv;",
1988 "10673": "demptyv;",
1989 "10674": "cemptyv;",
1990 "10675": "raemptyv;",
1991 "10676": "laemptyv;",
1992 "10677": "ohbar;",
1993 "10678": "omid;",
1994 "10679": "opar;",
1995 "10681": "operp;",
1996 "10683": "olcross;",
1997 "10684": "odsold;",
1998 "10686": "olcir;",
1999 "10687": "ofcir;",
2000 "10688": "olt;",
2001 "10689": "ogt;",
2002 "10690": "cirscir;",
2003 "10691": "cirE;",
2004 "10692": "solb;",
2005 "10693": "bsolb;",
2006 "10697": "boxbox;",
2007 "10701": "trisb;",
2008 "10702": "rtriltri;",
2009 "10703": "LeftTriangleBar;",
2010 "10704": "RightTriangleBar;",
2011 "10716": "iinfin;",
2012 "10717": "infintie;",
2013 "10718": "nvinfin;",
2014 "10723": "eparsl;",
2015 "10724": "smeparsl;",
2016 "10725": "eqvparsl;",
2017 "10731": "lozf;",
2018 "10740": "RuleDelayed;",
2019 "10742": "dsol;",
2020 "10752": "xodot;",
2021 "10753": "xoplus;",
2022 "10754": "xotime;",
2023 "10756": "xuplus;",
2024 "10758": "xsqcup;",
2025 "10764": "qint;",
2026 "10765": "fpartint;",
2027 "10768": "cirfnint;",
2028 "10769": "awint;",
2029 "10770": "rppolint;",
2030 "10771": "scpolint;",
2031 "10772": "npolint;",
2032 "10773": "pointint;",
2033 "10774": "quatint;",
2034 "10775": "intlarhk;",
2035 "10786": "pluscir;",
2036 "10787": "plusacir;",
2037 "10788": "simplus;",
2038 "10789": "plusdu;",
2039 "10790": "plussim;",
2040 "10791": "plustwo;",
2041 "10793": "mcomma;",
2042 "10794": "minusdu;",
2043 "10797": "loplus;",
2044 "10798": "roplus;",
2045 "10799": "Cross;",
2046 "10800": "timesd;",
2047 "10801": "timesbar;",
2048 "10803": "smashp;",
2049 "10804": "lotimes;",
2050 "10805": "rotimes;",
2051 "10806": "otimesas;",
2052 "10807": "Otimes;",
2053 "10808": "odiv;",
2054 "10809": "triplus;",
2055 "10810": "triminus;",
2056 "10811": "tritime;",
2057 "10812": "iprod;",
2058 "10815": "amalg;",
2059 "10816": "capdot;",
2060 "10818": "ncup;",
2061 "10819": "ncap;",
2062 "10820": "capand;",
2063 "10821": "cupor;",
2064 "10822": "cupcap;",
2065 "10823": "capcup;",
2066 "10824": "cupbrcap;",
2067 "10825": "capbrcup;",
2068 "10826": "cupcup;",
2069 "10827": "capcap;",
2070 "10828": "ccups;",
2071 "10829": "ccaps;",
2072 "10832": "ccupssm;",
2073 "10835": "And;",
2074 "10836": "Or;",
2075 "10837": "andand;",
2076 "10838": "oror;",
2077 "10839": "orslope;",
2078 "10840": "andslope;",
2079 "10842": "andv;",
2080 "10843": "orv;",
2081 "10844": "andd;",
2082 "10845": "ord;",
2083 "10847": "wedbar;",
2084 "10854": "sdote;",
2085 "10858": "simdot;",
2086 "10861": "congdot;",
2087 "10862": "easter;",
2088 "10863": "apacir;",
2089 "10864": "apE;",
2090 "10865": "eplus;",
2091 "10866": "pluse;",
2092 "10867": "Esim;",
2093 "10868": "Colone;",
2094 "10869": "Equal;",
2095 "10871": "eDDot;",
2096 "10872": "equivDD;",
2097 "10873": "ltcir;",
2098 "10874": "gtcir;",
2099 "10875": "ltquest;",
2100 "10876": "gtquest;",
2101 "10877": "LessSlantEqual;",
2102 "10878": "GreaterSlantEqual;",
2103 "10879": "lesdot;",
2104 "10880": "gesdot;",
2105 "10881": "lesdoto;",
2106 "10882": "gesdoto;",
2107 "10883": "lesdotor;",
2108 "10884": "gesdotol;",
2109 "10885": "lessapprox;",
2110 "10886": "gtrapprox;",
2111 "10887": "lneq;",
2112 "10888": "gneq;",
2113 "10889": "lnapprox;",
2114 "10890": "gnapprox;",
2115 "10891": "lesseqqgtr;",
2116 "10892": "gtreqqless;",
2117 "10893": "lsime;",
2118 "10894": "gsime;",
2119 "10895": "lsimg;",
2120 "10896": "gsiml;",
2121 "10897": "lgE;",
2122 "10898": "glE;",
2123 "10899": "lesges;",
2124 "10900": "gesles;",
2125 "10901": "eqslantless;",
2126 "10902": "eqslantgtr;",
2127 "10903": "elsdot;",
2128 "10904": "egsdot;",
2129 "10905": "el;",
2130 "10906": "eg;",
2131 "10909": "siml;",
2132 "10910": "simg;",
2133 "10911": "simlE;",
2134 "10912": "simgE;",
2135 "10913": "LessLess;",
2136 "10914": "GreaterGreater;",
2137 "10916": "glj;",
2138 "10917": "gla;",
2139 "10918": "ltcc;",
2140 "10919": "gtcc;",
2141 "10920": "lescc;",
2142 "10921": "gescc;",
2143 "10922": "smt;",
2144 "10923": "lat;",
2145 "10924": "smte;",
2146 "10925": "late;",
2147 "10926": "bumpE;",
2148 "10927": "preceq;",
2149 "10928": "succeq;",
2150 "10931": "prE;",
2151 "10932": "scE;",
2152 "10933": "prnE;",
2153 "10934": "succneqq;",
2154 "10935": "precapprox;",
2155 "10936": "succapprox;",
2156 "10937": "prnap;",
2157 "10938": "succnapprox;",
2158 "10939": "Pr;",
2159 "10940": "Sc;",
2160 "10941": "subdot;",
2161 "10942": "supdot;",
2162 "10943": "subplus;",
2163 "10944": "supplus;",
2164 "10945": "submult;",
2165 "10946": "supmult;",
2166 "10947": "subedot;",
2167 "10948": "supedot;",
2168 "10949": "subseteqq;",
2169 "10950": "supseteqq;",
2170 "10951": "subsim;",
2171 "10952": "supsim;",
2172 "10955": "subsetneqq;",
2173 "10956": "supsetneqq;",
2174 "10959": "csub;",
2175 "10960": "csup;",
2176 "10961": "csube;",
2177 "10962": "csupe;",
2178 "10963": "subsup;",
2179 "10964": "supsub;",
2180 "10965": "subsub;",
2181 "10966": "supsup;",
2182 "10967": "suphsub;",
2183 "10968": "supdsub;",
2184 "10969": "forkv;",
2185 "10970": "topfork;",
2186 "10971": "mlcp;",
2187 "10980": "DoubleLeftTee;",
2188 "10982": "Vdashl;",
2189 "10983": "Barv;",
2190 "10984": "vBar;",
2191 "10985": "vBarv;",
2192 "10987": "Vbar;",
2193 "10988": "Not;",
2194 "10989": "bNot;",
2195 "10990": "rnmid;",
2196 "10991": "cirmid;",
2197 "10992": "midcir;",
2198 "10993": "topcir;",
2199 "10994": "nhpar;",
2200 "10995": "parsim;",
2201 "11005": "parsl;",
2202 "64256": "fflig;",
2203 "64257": "filig;",
2204 "64258": "fllig;",
2205 "64259": "ffilig;",
2206 "64260": "ffllig;"
2207}
2208},{}],11:[function(require,module,exports){
2209'use strict';
2210
2211var hasOwn = Object.prototype.hasOwnProperty;
2212var toStr = Object.prototype.toString;
2213var defineProperty = Object.defineProperty;
2214var gOPD = Object.getOwnPropertyDescriptor;
2215
2216var isArray = function isArray(arr) {
2217 if (typeof Array.isArray === 'function') {
2218 return Array.isArray(arr);
2219 }
2220
2221 return toStr.call(arr) === '[object Array]';
2222};
2223
2224var isPlainObject = function isPlainObject(obj) {
2225 if (!obj || toStr.call(obj) !== '[object Object]') {
2226 return false;
2227 }
2228
2229 var hasOwnConstructor = hasOwn.call(obj, 'constructor');
2230 var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
2231 // Not own constructor property must be Object
2232 if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
2233 return false;
2234 }
2235
2236 // Own properties are enumerated firstly, so to speed up,
2237 // if last one is own, then all properties are own.
2238 var key;
2239 for (key in obj) { /**/ }
2240
2241 return typeof key === 'undefined' || hasOwn.call(obj, key);
2242};
2243
2244// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
2245var setProperty = function setProperty(target, options) {
2246 if (defineProperty && options.name === '__proto__') {
2247 defineProperty(target, options.name, {
2248 enumerable: true,
2249 configurable: true,
2250 value: options.newValue,
2251 writable: true
2252 });
2253 } else {
2254 target[options.name] = options.newValue;
2255 }
2256};
2257
2258// Return undefined instead of __proto__ if '__proto__' is not an own property
2259var getProperty = function getProperty(obj, name) {
2260 if (name === '__proto__') {
2261 if (!hasOwn.call(obj, name)) {
2262 return void 0;
2263 } else if (gOPD) {
2264 // In early versions of node, obj['__proto__'] is buggy when obj has
2265 // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
2266 return gOPD(obj, name).value;
2267 }
2268 }
2269
2270 return obj[name];
2271};
2272
2273module.exports = function extend() {
2274 var options, name, src, copy, copyIsArray, clone;
2275 var target = arguments[0];
2276 var i = 1;
2277 var length = arguments.length;
2278 var deep = false;
2279
2280 // Handle a deep copy situation
2281 if (typeof target === 'boolean') {
2282 deep = target;
2283 target = arguments[1] || {};
2284 // skip the boolean and the target
2285 i = 2;
2286 }
2287 if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
2288 target = {};
2289 }
2290
2291 for (; i < length; ++i) {
2292 options = arguments[i];
2293 // Only deal with non-null/undefined values
2294 if (options != null) {
2295 // Extend the base object
2296 for (name in options) {
2297 src = getProperty(target, name);
2298 copy = getProperty(options, name);
2299
2300 // Prevent never-ending loop
2301 if (target !== copy) {
2302 // Recurse if we're merging plain objects or arrays
2303 if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
2304 if (copyIsArray) {
2305 copyIsArray = false;
2306 clone = src && isArray(src) ? src : [];
2307 } else {
2308 clone = src && isPlainObject(src) ? src : {};
2309 }
2310
2311 // Never move original objects, clone them
2312 setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
2313
2314 // Don't bring in undefined values
2315 } else if (typeof copy !== 'undefined') {
2316 setProperty(target, { name: name, newValue: copy });
2317 }
2318 }
2319 }
2320 }
2321 }
2322
2323 // Return the modified object
2324 return target;
2325};
2326
2327},{}],12:[function(require,module,exports){
2328(function (global){
2329/*! https://mths.be/punycode v1.4.1 by @mathias */
2330;(function(root) {
2331
2332 /** Detect free variables */
2333 var freeExports = typeof exports == 'object' && exports &&
2334 !exports.nodeType && exports;
2335 var freeModule = typeof module == 'object' && module &&
2336 !module.nodeType && module;
2337 var freeGlobal = typeof global == 'object' && global;
2338 if (
2339 freeGlobal.global === freeGlobal ||
2340 freeGlobal.window === freeGlobal ||
2341 freeGlobal.self === freeGlobal
2342 ) {
2343 root = freeGlobal;
2344 }
2345
2346 /**
2347 * The `punycode` object.
2348 * @name punycode
2349 * @type Object
2350 */
2351 var punycode,
2352
2353 /** Highest positive signed 32-bit float value */
2354 maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
2355
2356 /** Bootstring parameters */
2357 base = 36,
2358 tMin = 1,
2359 tMax = 26,
2360 skew = 38,
2361 damp = 700,
2362 initialBias = 72,
2363 initialN = 128, // 0x80
2364 delimiter = '-', // '\x2D'
2365
2366 /** Regular expressions */
2367 regexPunycode = /^xn--/,
2368 regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
2369 regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
2370
2371 /** Error messages */
2372 errors = {
2373 'overflow': 'Overflow: input needs wider integers to process',
2374 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
2375 'invalid-input': 'Invalid input'
2376 },
2377
2378 /** Convenience shortcuts */
2379 baseMinusTMin = base - tMin,
2380 floor = Math.floor,
2381 stringFromCharCode = String.fromCharCode,
2382
2383 /** Temporary variable */
2384 key;
2385
2386 /*--------------------------------------------------------------------------*/
2387
2388 /**
2389 * A generic error utility function.
2390 * @private
2391 * @param {String} type The error type.
2392 * @returns {Error} Throws a `RangeError` with the applicable error message.
2393 */
2394 function error(type) {
2395 throw new RangeError(errors[type]);
2396 }
2397
2398 /**
2399 * A generic `Array#map` utility function.
2400 * @private
2401 * @param {Array} array The array to iterate over.
2402 * @param {Function} callback The function that gets called for every array
2403 * item.
2404 * @returns {Array} A new array of values returned by the callback function.
2405 */
2406 function map(array, fn) {
2407 var length = array.length;
2408 var result = [];
2409 while (length--) {
2410 result[length] = fn(array[length]);
2411 }
2412 return result;
2413 }
2414
2415 /**
2416 * A simple `Array#map`-like wrapper to work with domain name strings or email
2417 * addresses.
2418 * @private
2419 * @param {String} domain The domain name or email address.
2420 * @param {Function} callback The function that gets called for every
2421 * character.
2422 * @returns {Array} A new string of characters returned by the callback
2423 * function.
2424 */
2425 function mapDomain(string, fn) {
2426 var parts = string.split('@');
2427 var result = '';
2428 if (parts.length > 1) {
2429 // In email addresses, only the domain name should be punycoded. Leave
2430 // the local part (i.e. everything up to `@`) intact.
2431 result = parts[0] + '@';
2432 string = parts[1];
2433 }
2434 // Avoid `split(regex)` for IE8 compatibility. See #17.
2435 string = string.replace(regexSeparators, '\x2E');
2436 var labels = string.split('.');
2437 var encoded = map(labels, fn).join('.');
2438 return result + encoded;
2439 }
2440
2441 /**
2442 * Creates an array containing the numeric code points of each Unicode
2443 * character in the string. While JavaScript uses UCS-2 internally,
2444 * this function will convert a pair of surrogate halves (each of which
2445 * UCS-2 exposes as separate characters) into a single code point,
2446 * matching UTF-16.
2447 * @see `punycode.ucs2.encode`
2448 * @see <https://mathiasbynens.be/notes/javascript-encoding>
2449 * @memberOf punycode.ucs2
2450 * @name decode
2451 * @param {String} string The Unicode input string (UCS-2).
2452 * @returns {Array} The new array of code points.
2453 */
2454 function ucs2decode(string) {
2455 var output = [],
2456 counter = 0,
2457 length = string.length,
2458 value,
2459 extra;
2460 while (counter < length) {
2461 value = string.charCodeAt(counter++);
2462 if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
2463 // high surrogate, and there is a next character
2464 extra = string.charCodeAt(counter++);
2465 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
2466 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
2467 } else {
2468 // unmatched surrogate; only append this code unit, in case the next
2469 // code unit is the high surrogate of a surrogate pair
2470 output.push(value);
2471 counter--;
2472 }
2473 } else {
2474 output.push(value);
2475 }
2476 }
2477 return output;
2478 }
2479
2480 /**
2481 * Creates a string based on an array of numeric code points.
2482 * @see `punycode.ucs2.decode`
2483 * @memberOf punycode.ucs2
2484 * @name encode
2485 * @param {Array} codePoints The array of numeric code points.
2486 * @returns {String} The new Unicode string (UCS-2).
2487 */
2488 function ucs2encode(array) {
2489 return map(array, function(value) {
2490 var output = '';
2491 if (value > 0xFFFF) {
2492 value -= 0x10000;
2493 output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
2494 value = 0xDC00 | value & 0x3FF;
2495 }
2496 output += stringFromCharCode(value);
2497 return output;
2498 }).join('');
2499 }
2500
2501 /**
2502 * Converts a basic code point into a digit/integer.
2503 * @see `digitToBasic()`
2504 * @private
2505 * @param {Number} codePoint The basic numeric code point value.
2506 * @returns {Number} The numeric value of a basic code point (for use in
2507 * representing integers) in the range `0` to `base - 1`, or `base` if
2508 * the code point does not represent a value.
2509 */
2510 function basicToDigit(codePoint) {
2511 if (codePoint - 48 < 10) {
2512 return codePoint - 22;
2513 }
2514 if (codePoint - 65 < 26) {
2515 return codePoint - 65;
2516 }
2517 if (codePoint - 97 < 26) {
2518 return codePoint - 97;
2519 }
2520 return base;
2521 }
2522
2523 /**
2524 * Converts a digit/integer into a basic code point.
2525 * @see `basicToDigit()`
2526 * @private
2527 * @param {Number} digit The numeric value of a basic code point.
2528 * @returns {Number} The basic code point whose value (when used for
2529 * representing integers) is `digit`, which needs to be in the range
2530 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
2531 * used; else, the lowercase form is used. The behavior is undefined
2532 * if `flag` is non-zero and `digit` has no uppercase form.
2533 */
2534 function digitToBasic(digit, flag) {
2535 // 0..25 map to ASCII a..z or A..Z
2536 // 26..35 map to ASCII 0..9
2537 return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
2538 }
2539
2540 /**
2541 * Bias adaptation function as per section 3.4 of RFC 3492.
2542 * https://tools.ietf.org/html/rfc3492#section-3.4
2543 * @private
2544 */
2545 function adapt(delta, numPoints, firstTime) {
2546 var k = 0;
2547 delta = firstTime ? floor(delta / damp) : delta >> 1;
2548 delta += floor(delta / numPoints);
2549 for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
2550 delta = floor(delta / baseMinusTMin);
2551 }
2552 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
2553 }
2554
2555 /**
2556 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
2557 * symbols.
2558 * @memberOf punycode
2559 * @param {String} input The Punycode string of ASCII-only symbols.
2560 * @returns {String} The resulting string of Unicode symbols.
2561 */
2562 function decode(input) {
2563 // Don't use UCS-2
2564 var output = [],
2565 inputLength = input.length,
2566 out,
2567 i = 0,
2568 n = initialN,
2569 bias = initialBias,
2570 basic,
2571 j,
2572 index,
2573 oldi,
2574 w,
2575 k,
2576 digit,
2577 t,
2578 /** Cached calculation results */
2579 baseMinusT;
2580
2581 // Handle the basic code points: let `basic` be the number of input code
2582 // points before the last delimiter, or `0` if there is none, then copy
2583 // the first basic code points to the output.
2584
2585 basic = input.lastIndexOf(delimiter);
2586 if (basic < 0) {
2587 basic = 0;
2588 }
2589
2590 for (j = 0; j < basic; ++j) {
2591 // if it's not a basic code point
2592 if (input.charCodeAt(j) >= 0x80) {
2593 error('not-basic');
2594 }
2595 output.push(input.charCodeAt(j));
2596 }
2597
2598 // Main decoding loop: start just after the last delimiter if any basic code
2599 // points were copied; start at the beginning otherwise.
2600
2601 for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
2602
2603 // `index` is the index of the next character to be consumed.
2604 // Decode a generalized variable-length integer into `delta`,
2605 // which gets added to `i`. The overflow checking is easier
2606 // if we increase `i` as we go, then subtract off its starting
2607 // value at the end to obtain `delta`.
2608 for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
2609
2610 if (index >= inputLength) {
2611 error('invalid-input');
2612 }
2613
2614 digit = basicToDigit(input.charCodeAt(index++));
2615
2616 if (digit >= base || digit > floor((maxInt - i) / w)) {
2617 error('overflow');
2618 }
2619
2620 i += digit * w;
2621 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
2622
2623 if (digit < t) {
2624 break;
2625 }
2626
2627 baseMinusT = base - t;
2628 if (w > floor(maxInt / baseMinusT)) {
2629 error('overflow');
2630 }
2631
2632 w *= baseMinusT;
2633
2634 }
2635
2636 out = output.length + 1;
2637 bias = adapt(i - oldi, out, oldi == 0);
2638
2639 // `i` was supposed to wrap around from `out` to `0`,
2640 // incrementing `n` each time, so we'll fix that now:
2641 if (floor(i / out) > maxInt - n) {
2642 error('overflow');
2643 }
2644
2645 n += floor(i / out);
2646 i %= out;
2647
2648 // Insert `n` at position `i` of the output
2649 output.splice(i++, 0, n);
2650
2651 }
2652
2653 return ucs2encode(output);
2654 }
2655
2656 /**
2657 * Converts a string of Unicode symbols (e.g. a domain name label) to a
2658 * Punycode string of ASCII-only symbols.
2659 * @memberOf punycode
2660 * @param {String} input The string of Unicode symbols.
2661 * @returns {String} The resulting Punycode string of ASCII-only symbols.
2662 */
2663 function encode(input) {
2664 var n,
2665 delta,
2666 handledCPCount,
2667 basicLength,
2668 bias,
2669 j,
2670 m,
2671 q,
2672 k,
2673 t,
2674 currentValue,
2675 output = [],
2676 /** `inputLength` will hold the number of code points in `input`. */
2677 inputLength,
2678 /** Cached calculation results */
2679 handledCPCountPlusOne,
2680 baseMinusT,
2681 qMinusT;
2682
2683 // Convert the input in UCS-2 to Unicode
2684 input = ucs2decode(input);
2685
2686 // Cache the length
2687 inputLength = input.length;
2688
2689 // Initialize the state
2690 n = initialN;
2691 delta = 0;
2692 bias = initialBias;
2693
2694 // Handle the basic code points
2695 for (j = 0; j < inputLength; ++j) {
2696 currentValue = input[j];
2697 if (currentValue < 0x80) {
2698 output.push(stringFromCharCode(currentValue));
2699 }
2700 }
2701
2702 handledCPCount = basicLength = output.length;
2703
2704 // `handledCPCount` is the number of code points that have been handled;
2705 // `basicLength` is the number of basic code points.
2706
2707 // Finish the basic string - if it is not empty - with a delimiter
2708 if (basicLength) {
2709 output.push(delimiter);
2710 }
2711
2712 // Main encoding loop:
2713 while (handledCPCount < inputLength) {
2714
2715 // All non-basic code points < n have been handled already. Find the next
2716 // larger one:
2717 for (m = maxInt, j = 0; j < inputLength; ++j) {
2718 currentValue = input[j];
2719 if (currentValue >= n && currentValue < m) {
2720 m = currentValue;
2721 }
2722 }
2723
2724 // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
2725 // but guard against overflow
2726 handledCPCountPlusOne = handledCPCount + 1;
2727 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
2728 error('overflow');
2729 }
2730
2731 delta += (m - n) * handledCPCountPlusOne;
2732 n = m;
2733
2734 for (j = 0; j < inputLength; ++j) {
2735 currentValue = input[j];
2736
2737 if (currentValue < n && ++delta > maxInt) {
2738 error('overflow');
2739 }
2740
2741 if (currentValue == n) {
2742 // Represent delta as a generalized variable-length integer
2743 for (q = delta, k = base; /* no condition */; k += base) {
2744 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
2745 if (q < t) {
2746 break;
2747 }
2748 qMinusT = q - t;
2749 baseMinusT = base - t;
2750 output.push(
2751 stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
2752 );
2753 q = floor(qMinusT / baseMinusT);
2754 }
2755
2756 output.push(stringFromCharCode(digitToBasic(q, 0)));
2757 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
2758 delta = 0;
2759 ++handledCPCount;
2760 }
2761 }
2762
2763 ++delta;
2764 ++n;
2765
2766 }
2767 return output.join('');
2768 }
2769
2770 /**
2771 * Converts a Punycode string representing a domain name or an email address
2772 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
2773 * it doesn't matter if you call it on a string that has already been
2774 * converted to Unicode.
2775 * @memberOf punycode
2776 * @param {String} input The Punycoded domain name or email address to
2777 * convert to Unicode.
2778 * @returns {String} The Unicode representation of the given Punycode
2779 * string.
2780 */
2781 function toUnicode(input) {
2782 return mapDomain(input, function(string) {
2783 return regexPunycode.test(string)
2784 ? decode(string.slice(4).toLowerCase())
2785 : string;
2786 });
2787 }
2788
2789 /**
2790 * Converts a Unicode string representing a domain name or an email address to
2791 * Punycode. Only the non-ASCII parts of the domain name will be converted,
2792 * i.e. it doesn't matter if you call it with a domain that's already in
2793 * ASCII.
2794 * @memberOf punycode
2795 * @param {String} input The domain name or email address to convert, as a
2796 * Unicode string.
2797 * @returns {String} The Punycode representation of the given domain name or
2798 * email address.
2799 */
2800 function toASCII(input) {
2801 return mapDomain(input, function(string) {
2802 return regexNonASCII.test(string)
2803 ? 'xn--' + encode(string)
2804 : string;
2805 });
2806 }
2807
2808 /*--------------------------------------------------------------------------*/
2809
2810 /** Define the public API */
2811 punycode = {
2812 /**
2813 * A string representing the current Punycode.js version number.
2814 * @memberOf punycode
2815 * @type String
2816 */
2817 'version': '1.4.1',
2818 /**
2819 * An object of methods to convert from JavaScript's internal character
2820 * representation (UCS-2) to Unicode code points, and back.
2821 * @see <https://mathiasbynens.be/notes/javascript-encoding>
2822 * @memberOf punycode
2823 * @type Object
2824 */
2825 'ucs2': {
2826 'decode': ucs2decode,
2827 'encode': ucs2encode
2828 },
2829 'decode': decode,
2830 'encode': encode,
2831 'toASCII': toASCII,
2832 'toUnicode': toUnicode
2833 };
2834
2835 /** Expose `punycode` */
2836 // Some AMD build optimizers, like r.js, check for specific condition patterns
2837 // like the following:
2838 if (
2839 typeof define == 'function' &&
2840 typeof define.amd == 'object' &&
2841 define.amd
2842 ) {
2843 define('punycode', function() {
2844 return punycode;
2845 });
2846 } else if (freeExports && freeModule) {
2847 if (module.exports == freeExports) {
2848 // in Node.js, io.js, or RingoJS v0.8.0+
2849 freeModule.exports = punycode;
2850 } else {
2851 // in Narwhal or RingoJS v0.7.0-
2852 for (key in punycode) {
2853 punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
2854 }
2855 }
2856 } else {
2857 // in Rhino or a web browser
2858 root.punycode = punycode;
2859 }
2860
2861}(this));
2862
2863}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
2864},{}],13:[function(require,module,exports){
2865/**
2866 * This file automatically generated from `pre-publish.js`.
2867 * Do not manually edit.
2868 */
2869
2870module.exports = {
2871 "area": true,
2872 "base": true,
2873 "br": true,
2874 "col": true,
2875 "embed": true,
2876 "hr": true,
2877 "img": true,
2878 "input": true,
2879 "keygen": true,
2880 "link": true,
2881 "menuitem": true,
2882 "meta": true,
2883 "param": true,
2884 "source": true,
2885 "track": true,
2886 "wbr": true
2887};
2888
2889},{}]},{},[3]);
Note: See TracBrowser for help on using the repository browser.