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){
|
---|
2 | module.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){
|
---|
11 | var stringify = require('../common/stringify')
|
---|
12 | var constant = require('./constants')
|
---|
13 | var util = require('../common/util')
|
---|
14 |
|
---|
15 | function 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 |
|
---|
320 | module.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 |
|
---|
326 | var Karma = require('./karma')
|
---|
327 | var StatusUpdater = require('./updater')
|
---|
328 | var util = require('../common/util')
|
---|
329 | var constants = require('./constants')
|
---|
330 |
|
---|
331 | var KARMA_URL_ROOT = constants.KARMA_URL_ROOT
|
---|
332 | var KARMA_PROXY_PATH = constants.KARMA_PROXY_PATH
|
---|
333 | var BROWSER_SOCKET_TIMEOUT = constants.BROWSER_SOCKET_TIMEOUT
|
---|
334 |
|
---|
335 | // Connect to the server using socket.io https://socket.io/
|
---|
336 | var 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
|
---|
345 | var updater = new StatusUpdater(socket, util.elm('title'), util.elm('banner'), util.elm('browsers'))
|
---|
346 | window.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){
|
---|
350 | var VERSION = require('./constants').VERSION
|
---|
351 |
|
---|
352 | function 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 |
|
---|
429 | module.exports = StatusUpdater
|
---|
430 |
|
---|
431 | },{"./constants":1}],5:[function(require,module,exports){
|
---|
432 | var serialize = null
|
---|
433 | try {
|
---|
434 | serialize = require('dom-serialize')
|
---|
435 | } catch (e) {
|
---|
436 | // Ignore failure on IE8
|
---|
437 | }
|
---|
438 |
|
---|
439 | var instanceOf = require('./util').instanceOf
|
---|
440 |
|
---|
441 | function isNode (obj) {
|
---|
442 | return (obj.tagName || obj.nodeName) && obj.nodeType
|
---|
443 | }
|
---|
444 |
|
---|
445 | function 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 |
|
---|
531 | module.exports = stringify
|
---|
532 |
|
---|
533 | },{"./util":6,"dom-serialize":8}],6:[function(require,module,exports){
|
---|
534 | exports.instanceOf = function (value, constructorName) {
|
---|
535 | return Object.prototype.toString.apply(value) === '[object ' + constructorName + ']'
|
---|
536 | }
|
---|
537 |
|
---|
538 | exports.elm = function (id) {
|
---|
539 | return document.getElementById(id)
|
---|
540 | }
|
---|
541 |
|
---|
542 | exports.generateId = function (prefix) {
|
---|
543 | return prefix + Math.floor(Math.random() * 10000)
|
---|
544 | }
|
---|
545 |
|
---|
546 | exports.isUndefined = function (value) {
|
---|
547 | return typeof value === 'undefined'
|
---|
548 | }
|
---|
549 |
|
---|
550 | exports.isDefined = function (value) {
|
---|
551 | return !exports.isUndefined(value)
|
---|
552 | }
|
---|
553 |
|
---|
554 | exports.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 |
|
---|
570 | var NativeCustomEvent = global.CustomEvent;
|
---|
571 |
|
---|
572 | function 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 |
|
---|
589 | module.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
|
---|
603 | function 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 |
|
---|
625 | var extend = require('extend');
|
---|
626 | var encode = require('ent/encode');
|
---|
627 | var CustomEvent = require('custom-event');
|
---|
628 | var voidElements = require('void-elements');
|
---|
629 |
|
---|
630 | /**
|
---|
631 | * Module exports.
|
---|
632 | */
|
---|
633 |
|
---|
634 | exports = module.exports = serialize;
|
---|
635 | exports.serializeElement = serializeElement;
|
---|
636 | exports.serializeAttribute = serializeAttribute;
|
---|
637 | exports.serializeText = serializeText;
|
---|
638 | exports.serializeComment = serializeComment;
|
---|
639 | exports.serializeDocument = serializeDocument;
|
---|
640 | exports.serializeDoctype = serializeDoctype;
|
---|
641 | exports.serializeDocumentFragment = serializeDocumentFragment;
|
---|
642 | exports.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 |
|
---|
655 | function 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 |
|
---|
745 | function 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 |
|
---|
755 | function 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 |
|
---|
784 | function 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 |
|
---|
795 | function serializeComment (node) {
|
---|
796 | return '<!--' + node.nodeValue + '-->';
|
---|
797 | }
|
---|
798 |
|
---|
799 | /**
|
---|
800 | * Serialize a Document node.
|
---|
801 | */
|
---|
802 |
|
---|
803 | function 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 |
|
---|
812 | function 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 |
|
---|
835 | function 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 |
|
---|
843 | function 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){
|
---|
852 | var punycode = require('punycode');
|
---|
853 | var revEntities = require('./reversed.json');
|
---|
854 |
|
---|
855 | module.exports = encode;
|
---|
856 |
|
---|
857 | function 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){
|
---|
893 | module.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 |
|
---|
2211 | var hasOwn = Object.prototype.hasOwnProperty;
|
---|
2212 | var toStr = Object.prototype.toString;
|
---|
2213 | var defineProperty = Object.defineProperty;
|
---|
2214 | var gOPD = Object.getOwnPropertyDescriptor;
|
---|
2215 |
|
---|
2216 | var 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 |
|
---|
2224 | var 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
|
---|
2245 | var 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
|
---|
2259 | var 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 |
|
---|
2273 | module.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 |
|
---|
2870 | module.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]);
|
---|