pmc-aesthetics-pres

presentation files about permacomputing aesthetics
git clone http://git.permacomputing.net/repos/pmc-aesthetics-pres.git # read-only access
Log | Files | Refs

remark-0.15.0.min.js (1364905B)


      1 require=(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 // Copyright Joyent, Inc. and other Node contributors.
      3 //
      4 // Permission is hereby granted, free of charge, to any person obtaining a
      5 // copy of this software and associated documentation files (the
      6 // "Software"), to deal in the Software without restriction, including
      7 // without limitation the rights to use, copy, modify, merge, publish,
      8 // distribute, sublicense, and/or sell copies of the Software, and to permit
      9 // persons to whom the Software is furnished to do so, subject to the
     10 // following conditions:
     11 //
     12 // The above copyright notice and this permission notice shall be included
     13 // in all copies or substantial portions of the Software.
     14 //
     15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     16 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
     18 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
     19 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
     20 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
     21 // USE OR OTHER DEALINGS IN THE SOFTWARE.
     22 
     23 function EventEmitter() {
     24   this._events = this._events || {};
     25   this._maxListeners = this._maxListeners || undefined;
     26 }
     27 module.exports = EventEmitter;
     28 
     29 // Backwards-compat with node 0.10.x
     30 EventEmitter.EventEmitter = EventEmitter;
     31 
     32 EventEmitter.prototype._events = undefined;
     33 EventEmitter.prototype._maxListeners = undefined;
     34 
     35 // By default EventEmitters will print a warning if more than 10 listeners are
     36 // added to it. This is a useful default which helps finding memory leaks.
     37 EventEmitter.defaultMaxListeners = 10;
     38 
     39 // Obviously not all Emitters should be limited to 10. This function allows
     40 // that to be increased. Set to zero for unlimited.
     41 EventEmitter.prototype.setMaxListeners = function(n) {
     42   if (!isNumber(n) || n < 0 || isNaN(n))
     43     throw TypeError('n must be a positive number');
     44   this._maxListeners = n;
     45   return this;
     46 };
     47 
     48 EventEmitter.prototype.emit = function(type) {
     49   var er, handler, len, args, i, listeners;
     50 
     51   if (!this._events)
     52     this._events = {};
     53 
     54   // If there is no 'error' event listener then throw.
     55   if (type === 'error') {
     56     if (!this._events.error ||
     57         (isObject(this._events.error) && !this._events.error.length)) {
     58       er = arguments[1];
     59       if (er instanceof Error) {
     60         throw er; // Unhandled 'error' event
     61       } else {
     62         // At least give some kind of context to the user
     63         var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
     64         err.context = er;
     65         throw err;
     66       }
     67     }
     68   }
     69 
     70   handler = this._events[type];
     71 
     72   if (isUndefined(handler))
     73     return false;
     74 
     75   if (isFunction(handler)) {
     76     switch (arguments.length) {
     77       // fast cases
     78       case 1:
     79         handler.call(this);
     80         break;
     81       case 2:
     82         handler.call(this, arguments[1]);
     83         break;
     84       case 3:
     85         handler.call(this, arguments[1], arguments[2]);
     86         break;
     87       // slower
     88       default:
     89         args = Array.prototype.slice.call(arguments, 1);
     90         handler.apply(this, args);
     91     }
     92   } else if (isObject(handler)) {
     93     args = Array.prototype.slice.call(arguments, 1);
     94     listeners = handler.slice();
     95     len = listeners.length;
     96     for (i = 0; i < len; i++)
     97       listeners[i].apply(this, args);
     98   }
     99 
    100   return true;
    101 };
    102 
    103 EventEmitter.prototype.addListener = function(type, listener) {
    104   var m;
    105 
    106   if (!isFunction(listener))
    107     throw TypeError('listener must be a function');
    108 
    109   if (!this._events)
    110     this._events = {};
    111 
    112   // To avoid recursion in the case that type === "newListener"! Before
    113   // adding it to the listeners, first emit "newListener".
    114   if (this._events.newListener)
    115     this.emit('newListener', type,
    116               isFunction(listener.listener) ?
    117               listener.listener : listener);
    118 
    119   if (!this._events[type])
    120     // Optimize the case of one listener. Don't need the extra array object.
    121     this._events[type] = listener;
    122   else if (isObject(this._events[type]))
    123     // If we've already got an array, just append.
    124     this._events[type].push(listener);
    125   else
    126     // Adding the second element, need to change to array.
    127     this._events[type] = [this._events[type], listener];
    128 
    129   // Check for listener leak
    130   if (isObject(this._events[type]) && !this._events[type].warned) {
    131     if (!isUndefined(this._maxListeners)) {
    132       m = this._maxListeners;
    133     } else {
    134       m = EventEmitter.defaultMaxListeners;
    135     }
    136 
    137     if (m && m > 0 && this._events[type].length > m) {
    138       this._events[type].warned = true;
    139       console.error('(node) warning: possible EventEmitter memory ' +
    140                     'leak detected. %d listeners added. ' +
    141                     'Use emitter.setMaxListeners() to increase limit.',
    142                     this._events[type].length);
    143       if (typeof console.trace === 'function') {
    144         // not supported in IE 10
    145         console.trace();
    146       }
    147     }
    148   }
    149 
    150   return this;
    151 };
    152 
    153 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
    154 
    155 EventEmitter.prototype.once = function(type, listener) {
    156   if (!isFunction(listener))
    157     throw TypeError('listener must be a function');
    158 
    159   var fired = false;
    160 
    161   function g() {
    162     this.removeListener(type, g);
    163 
    164     if (!fired) {
    165       fired = true;
    166       listener.apply(this, arguments);
    167     }
    168   }
    169 
    170   g.listener = listener;
    171   this.on(type, g);
    172 
    173   return this;
    174 };
    175 
    176 // emits a 'removeListener' event iff the listener was removed
    177 EventEmitter.prototype.removeListener = function(type, listener) {
    178   var list, position, length, i;
    179 
    180   if (!isFunction(listener))
    181     throw TypeError('listener must be a function');
    182 
    183   if (!this._events || !this._events[type])
    184     return this;
    185 
    186   list = this._events[type];
    187   length = list.length;
    188   position = -1;
    189 
    190   if (list === listener ||
    191       (isFunction(list.listener) && list.listener === listener)) {
    192     delete this._events[type];
    193     if (this._events.removeListener)
    194       this.emit('removeListener', type, listener);
    195 
    196   } else if (isObject(list)) {
    197     for (i = length; i-- > 0;) {
    198       if (list[i] === listener ||
    199           (list[i].listener && list[i].listener === listener)) {
    200         position = i;
    201         break;
    202       }
    203     }
    204 
    205     if (position < 0)
    206       return this;
    207 
    208     if (list.length === 1) {
    209       list.length = 0;
    210       delete this._events[type];
    211     } else {
    212       list.splice(position, 1);
    213     }
    214 
    215     if (this._events.removeListener)
    216       this.emit('removeListener', type, listener);
    217   }
    218 
    219   return this;
    220 };
    221 
    222 EventEmitter.prototype.removeAllListeners = function(type) {
    223   var key, listeners;
    224 
    225   if (!this._events)
    226     return this;
    227 
    228   // not listening for removeListener, no need to emit
    229   if (!this._events.removeListener) {
    230     if (arguments.length === 0)
    231       this._events = {};
    232     else if (this._events[type])
    233       delete this._events[type];
    234     return this;
    235   }
    236 
    237   // emit removeListener for all listeners on all events
    238   if (arguments.length === 0) {
    239     for (key in this._events) {
    240       if (key === 'removeListener') continue;
    241       this.removeAllListeners(key);
    242     }
    243     this.removeAllListeners('removeListener');
    244     this._events = {};
    245     return this;
    246   }
    247 
    248   listeners = this._events[type];
    249 
    250   if (isFunction(listeners)) {
    251     this.removeListener(type, listeners);
    252   } else if (listeners) {
    253     // LIFO order
    254     while (listeners.length)
    255       this.removeListener(type, listeners[listeners.length - 1]);
    256   }
    257   delete this._events[type];
    258 
    259   return this;
    260 };
    261 
    262 EventEmitter.prototype.listeners = function(type) {
    263   var ret;
    264   if (!this._events || !this._events[type])
    265     ret = [];
    266   else if (isFunction(this._events[type]))
    267     ret = [this._events[type]];
    268   else
    269     ret = this._events[type].slice();
    270   return ret;
    271 };
    272 
    273 EventEmitter.prototype.listenerCount = function(type) {
    274   if (this._events) {
    275     var evlistener = this._events[type];
    276 
    277     if (isFunction(evlistener))
    278       return 1;
    279     else if (evlistener)
    280       return evlistener.length;
    281   }
    282   return 0;
    283 };
    284 
    285 EventEmitter.listenerCount = function(emitter, type) {
    286   return emitter.listenerCount(type);
    287 };
    288 
    289 function isFunction(arg) {
    290   return typeof arg === 'function';
    291 }
    292 
    293 function isNumber(arg) {
    294   return typeof arg === 'number';
    295 }
    296 
    297 function isObject(arg) {
    298   return typeof arg === 'object' && arg !== null;
    299 }
    300 
    301 function isUndefined(arg) {
    302   return arg === void 0;
    303 }
    304 
    305 },{}],2:[function(require,module,exports){
    306 'use strict';
    307 
    308 var hasOwn = Object.prototype.hasOwnProperty;
    309 var toStr = Object.prototype.toString;
    310 var defineProperty = Object.defineProperty;
    311 var gOPD = Object.getOwnPropertyDescriptor;
    312 
    313 var isArray = function isArray(arr) {
    314 	if (typeof Array.isArray === 'function') {
    315 		return Array.isArray(arr);
    316 	}
    317 
    318 	return toStr.call(arr) === '[object Array]';
    319 };
    320 
    321 var isPlainObject = function isPlainObject(obj) {
    322 	if (!obj || toStr.call(obj) !== '[object Object]') {
    323 		return false;
    324 	}
    325 
    326 	var hasOwnConstructor = hasOwn.call(obj, 'constructor');
    327 	var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
    328 	// Not own constructor property must be Object
    329 	if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
    330 		return false;
    331 	}
    332 
    333 	// Own properties are enumerated firstly, so to speed up,
    334 	// if last one is own, then all properties are own.
    335 	var key;
    336 	for (key in obj) { /**/ }
    337 
    338 	return typeof key === 'undefined' || hasOwn.call(obj, key);
    339 };
    340 
    341 // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
    342 var setProperty = function setProperty(target, options) {
    343 	if (defineProperty && options.name === '__proto__') {
    344 		defineProperty(target, options.name, {
    345 			enumerable: true,
    346 			configurable: true,
    347 			value: options.newValue,
    348 			writable: true
    349 		});
    350 	} else {
    351 		target[options.name] = options.newValue;
    352 	}
    353 };
    354 
    355 // Return undefined instead of __proto__ if '__proto__' is not an own property
    356 var getProperty = function getProperty(obj, name) {
    357 	if (name === '__proto__') {
    358 		if (!hasOwn.call(obj, name)) {
    359 			return void 0;
    360 		} else if (gOPD) {
    361 			// In early versions of node, obj['__proto__'] is buggy when obj has
    362 			// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
    363 			return gOPD(obj, name).value;
    364 		}
    365 	}
    366 
    367 	return obj[name];
    368 };
    369 
    370 module.exports = function extend() {
    371 	var options, name, src, copy, copyIsArray, clone;
    372 	var target = arguments[0];
    373 	var i = 1;
    374 	var length = arguments.length;
    375 	var deep = false;
    376 
    377 	// Handle a deep copy situation
    378 	if (typeof target === 'boolean') {
    379 		deep = target;
    380 		target = arguments[1] || {};
    381 		// skip the boolean and the target
    382 		i = 2;
    383 	}
    384 	if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
    385 		target = {};
    386 	}
    387 
    388 	for (; i < length; ++i) {
    389 		options = arguments[i];
    390 		// Only deal with non-null/undefined values
    391 		if (options != null) {
    392 			// Extend the base object
    393 			for (name in options) {
    394 				src = getProperty(target, name);
    395 				copy = getProperty(options, name);
    396 
    397 				// Prevent never-ending loop
    398 				if (target !== copy) {
    399 					// Recurse if we're merging plain objects or arrays
    400 					if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
    401 						if (copyIsArray) {
    402 							copyIsArray = false;
    403 							clone = src && isArray(src) ? src : [];
    404 						} else {
    405 							clone = src && isPlainObject(src) ? src : {};
    406 						}
    407 
    408 						// Never move original objects, clone them
    409 						setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
    410 
    411 					// Don't bring in undefined values
    412 					} else if (typeof copy !== 'undefined') {
    413 						setProperty(target, { name: name, newValue: copy });
    414 					}
    415 				}
    416 			}
    417 		}
    418 	}
    419 
    420 	// Return the modified object
    421 	return target;
    422 };
    423 
    424 },{}],3:[function(require,module,exports){
    425 (function (global){
    426 /**
    427  * marked - a markdown parser
    428  * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
    429  * https://github.com/chjj/marked
    430  */
    431 
    432 ;(function() {
    433 
    434 /**
    435  * Block-Level Grammar
    436  */
    437 
    438 var block = {
    439   newline: /^\n+/,
    440   code: /^( {4}[^\n]+\n*)+/,
    441   fences: noop,
    442   hr: /^( *[-*_]){3,} *(?:\n+|$)/,
    443   heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
    444   nptable: noop,
    445   lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
    446   blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,
    447   list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
    448   html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,
    449   def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
    450   table: noop,
    451   paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
    452   text: /^[^\n]+/
    453 };
    454 
    455 block.bullet = /(?:[*+-]|\d+\.)/;
    456 block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
    457 block.item = replace(block.item, 'gm')
    458   (/bull/g, block.bullet)
    459   ();
    460 
    461 block.list = replace(block.list)
    462   (/bull/g, block.bullet)
    463   ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))')
    464   ('def', '\\n+(?=' + block.def.source + ')')
    465   ();
    466 
    467 block._tag = '(?!(?:'
    468   + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
    469   + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
    470   + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';
    471 
    472 block.html = replace(block.html)
    473   ('comment', /<!--[\s\S]*?-->/)
    474   ('closed', /<(tag)[\s\S]+?<\/\1>/)
    475   ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
    476   (/tag/g, block._tag)
    477   ();
    478 
    479 block.paragraph = replace(block.paragraph)
    480   ('hr', block.hr)
    481   ('heading', block.heading)
    482   ('lheading', block.lheading)
    483   ('blockquote', block.blockquote)
    484   ('tag', '<' + block._tag)
    485   ('def', block.def)
    486   ();
    487 
    488 /**
    489  * Normal Block Grammar
    490  */
    491 
    492 block.normal = merge({}, block);
    493 
    494 /**
    495  * GFM Block Grammar
    496  */
    497 
    498 block.gfm = merge({}, block.normal, {
    499   fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,
    500   paragraph: /^/,
    501   heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/
    502 });
    503 
    504 block.gfm.paragraph = replace(block.paragraph)
    505   ('(?!', '(?!'
    506     + block.gfm.fences.source.replace('\\1', '\\2') + '|'
    507     + block.list.source.replace('\\1', '\\3') + '|')
    508   ();
    509 
    510 /**
    511  * GFM + Tables Block Grammar
    512  */
    513 
    514 block.tables = merge({}, block.gfm, {
    515   nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
    516   table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
    517 });
    518 
    519 /**
    520  * Block Lexer
    521  */
    522 
    523 function Lexer(options) {
    524   this.tokens = [];
    525   this.tokens.links = {};
    526   this.options = options || marked.defaults;
    527   this.rules = block.normal;
    528 
    529   if (this.options.gfm) {
    530     if (this.options.tables) {
    531       this.rules = block.tables;
    532     } else {
    533       this.rules = block.gfm;
    534     }
    535   }
    536 }
    537 
    538 /**
    539  * Expose Block Rules
    540  */
    541 
    542 Lexer.rules = block;
    543 
    544 /**
    545  * Static Lex Method
    546  */
    547 
    548 Lexer.lex = function(src, options) {
    549   var lexer = new Lexer(options);
    550   return lexer.lex(src);
    551 };
    552 
    553 /**
    554  * Preprocessing
    555  */
    556 
    557 Lexer.prototype.lex = function(src) {
    558   src = src
    559     .replace(/\r\n|\r/g, '\n')
    560     .replace(/\t/g, '    ')
    561     .replace(/\u00a0/g, ' ')
    562     .replace(/\u2424/g, '\n');
    563 
    564   return this.token(src, true);
    565 };
    566 
    567 /**
    568  * Lexing
    569  */
    570 
    571 Lexer.prototype.token = function(src, top, bq) {
    572   var src = src.replace(/^ +$/gm, '')
    573     , next
    574     , loose
    575     , cap
    576     , bull
    577     , b
    578     , item
    579     , space
    580     , i
    581     , l;
    582 
    583   while (src) {
    584     // newline
    585     if (cap = this.rules.newline.exec(src)) {
    586       src = src.substring(cap[0].length);
    587       if (cap[0].length > 1) {
    588         this.tokens.push({
    589           type: 'space'
    590         });
    591       }
    592     }
    593 
    594     // code
    595     if (cap = this.rules.code.exec(src)) {
    596       src = src.substring(cap[0].length);
    597       cap = cap[0].replace(/^ {4}/gm, '');
    598       this.tokens.push({
    599         type: 'code',
    600         text: !this.options.pedantic
    601           ? cap.replace(/\n+$/, '')
    602           : cap
    603       });
    604       continue;
    605     }
    606 
    607     // fences (gfm)
    608     if (cap = this.rules.fences.exec(src)) {
    609       src = src.substring(cap[0].length);
    610       this.tokens.push({
    611         type: 'code',
    612         lang: cap[2],
    613         text: cap[3] || ''
    614       });
    615       continue;
    616     }
    617 
    618     // heading
    619     if (cap = this.rules.heading.exec(src)) {
    620       src = src.substring(cap[0].length);
    621       this.tokens.push({
    622         type: 'heading',
    623         depth: cap[1].length,
    624         text: cap[2]
    625       });
    626       continue;
    627     }
    628 
    629     // table no leading pipe (gfm)
    630     if (top && (cap = this.rules.nptable.exec(src))) {
    631       src = src.substring(cap[0].length);
    632 
    633       item = {
    634         type: 'table',
    635         header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
    636         align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
    637         cells: cap[3].replace(/\n$/, '').split('\n')
    638       };
    639 
    640       for (i = 0; i < item.align.length; i++) {
    641         if (/^ *-+: *$/.test(item.align[i])) {
    642           item.align[i] = 'right';
    643         } else if (/^ *:-+: *$/.test(item.align[i])) {
    644           item.align[i] = 'center';
    645         } else if (/^ *:-+ *$/.test(item.align[i])) {
    646           item.align[i] = 'left';
    647         } else {
    648           item.align[i] = null;
    649         }
    650       }
    651 
    652       for (i = 0; i < item.cells.length; i++) {
    653         item.cells[i] = item.cells[i].split(/ *\| */);
    654       }
    655 
    656       this.tokens.push(item);
    657 
    658       continue;
    659     }
    660 
    661     // lheading
    662     if (cap = this.rules.lheading.exec(src)) {
    663       src = src.substring(cap[0].length);
    664       this.tokens.push({
    665         type: 'heading',
    666         depth: cap[2] === '=' ? 1 : 2,
    667         text: cap[1]
    668       });
    669       continue;
    670     }
    671 
    672     // hr
    673     if (cap = this.rules.hr.exec(src)) {
    674       src = src.substring(cap[0].length);
    675       this.tokens.push({
    676         type: 'hr'
    677       });
    678       continue;
    679     }
    680 
    681     // blockquote
    682     if (cap = this.rules.blockquote.exec(src)) {
    683       src = src.substring(cap[0].length);
    684 
    685       this.tokens.push({
    686         type: 'blockquote_start'
    687       });
    688 
    689       cap = cap[0].replace(/^ *> ?/gm, '');
    690 
    691       // Pass `top` to keep the current
    692       // "toplevel" state. This is exactly
    693       // how markdown.pl works.
    694       this.token(cap, top, true);
    695 
    696       this.tokens.push({
    697         type: 'blockquote_end'
    698       });
    699 
    700       continue;
    701     }
    702 
    703     // list
    704     if (cap = this.rules.list.exec(src)) {
    705       src = src.substring(cap[0].length);
    706       bull = cap[2];
    707 
    708       this.tokens.push({
    709         type: 'list_start',
    710         ordered: bull.length > 1
    711       });
    712 
    713       // Get each top-level item.
    714       cap = cap[0].match(this.rules.item);
    715 
    716       next = false;
    717       l = cap.length;
    718       i = 0;
    719 
    720       for (; i < l; i++) {
    721         item = cap[i];
    722 
    723         // Remove the list item's bullet
    724         // so it is seen as the next token.
    725         space = item.length;
    726         item = item.replace(/^ *([*+-]|\d+\.) +/, '');
    727 
    728         // Outdent whatever the
    729         // list item contains. Hacky.
    730         if (~item.indexOf('\n ')) {
    731           space -= item.length;
    732           item = !this.options.pedantic
    733             ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
    734             : item.replace(/^ {1,4}/gm, '');
    735         }
    736 
    737         // Determine whether the next list item belongs here.
    738         // Backpedal if it does not belong in this list.
    739         if (this.options.smartLists && i !== l - 1) {
    740           b = block.bullet.exec(cap[i + 1])[0];
    741           if (bull !== b && !(bull.length > 1 && b.length > 1)) {
    742             src = cap.slice(i + 1).join('\n') + src;
    743             i = l - 1;
    744           }
    745         }
    746 
    747         // Determine whether item is loose or not.
    748         // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
    749         // for discount behavior.
    750         loose = next || /\n\n(?!\s*$)/.test(item);
    751         if (i !== l - 1) {
    752           next = item.charAt(item.length - 1) === '\n';
    753           if (!loose) loose = next;
    754         }
    755 
    756         this.tokens.push({
    757           type: loose
    758             ? 'loose_item_start'
    759             : 'list_item_start'
    760         });
    761 
    762         // Recurse.
    763         this.token(item, false, bq);
    764 
    765         this.tokens.push({
    766           type: 'list_item_end'
    767         });
    768       }
    769 
    770       this.tokens.push({
    771         type: 'list_end'
    772       });
    773 
    774       continue;
    775     }
    776 
    777     // html
    778     if (cap = this.rules.html.exec(src)) {
    779       src = src.substring(cap[0].length);
    780       this.tokens.push({
    781         type: this.options.sanitize
    782           ? 'paragraph'
    783           : 'html',
    784         pre: !this.options.sanitizer
    785           && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
    786         text: cap[0]
    787       });
    788       continue;
    789     }
    790 
    791     // def
    792     if ((!bq && top) && (cap = this.rules.def.exec(src))) {
    793       src = src.substring(cap[0].length);
    794       this.tokens.links[cap[1].toLowerCase()] = {
    795         href: cap[2],
    796         title: cap[3]
    797       };
    798       continue;
    799     }
    800 
    801     // table (gfm)
    802     if (top && (cap = this.rules.table.exec(src))) {
    803       src = src.substring(cap[0].length);
    804 
    805       item = {
    806         type: 'table',
    807         header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
    808         align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
    809         cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
    810       };
    811 
    812       for (i = 0; i < item.align.length; i++) {
    813         if (/^ *-+: *$/.test(item.align[i])) {
    814           item.align[i] = 'right';
    815         } else if (/^ *:-+: *$/.test(item.align[i])) {
    816           item.align[i] = 'center';
    817         } else if (/^ *:-+ *$/.test(item.align[i])) {
    818           item.align[i] = 'left';
    819         } else {
    820           item.align[i] = null;
    821         }
    822       }
    823 
    824       for (i = 0; i < item.cells.length; i++) {
    825         item.cells[i] = item.cells[i]
    826           .replace(/^ *\| *| *\| *$/g, '')
    827           .split(/ *\| */);
    828       }
    829 
    830       this.tokens.push(item);
    831 
    832       continue;
    833     }
    834 
    835     // top-level paragraph
    836     if (top && (cap = this.rules.paragraph.exec(src))) {
    837       src = src.substring(cap[0].length);
    838       this.tokens.push({
    839         type: 'paragraph',
    840         text: cap[1].charAt(cap[1].length - 1) === '\n'
    841           ? cap[1].slice(0, -1)
    842           : cap[1]
    843       });
    844       continue;
    845     }
    846 
    847     // text
    848     if (cap = this.rules.text.exec(src)) {
    849       // Top-level should never reach here.
    850       src = src.substring(cap[0].length);
    851       this.tokens.push({
    852         type: 'text',
    853         text: cap[0]
    854       });
    855       continue;
    856     }
    857 
    858     if (src) {
    859       throw new
    860         Error('Infinite loop on byte: ' + src.charCodeAt(0));
    861     }
    862   }
    863 
    864   return this.tokens;
    865 };
    866 
    867 /**
    868  * Inline-Level Grammar
    869  */
    870 
    871 var inline = {
    872   escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
    873   autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
    874   url: noop,
    875   tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
    876   link: /^!?\[(inside)\]\(href\)/,
    877   reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
    878   nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
    879   strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
    880   em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
    881   code: /^(`+)([\s\S]*?[^`])\1(?!`)/,
    882   br: /^ {2,}\n(?!\s*$)/,
    883   del: noop,
    884   text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
    885 };
    886 
    887 inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
    888 inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
    889 
    890 inline.link = replace(inline.link)
    891   ('inside', inline._inside)
    892   ('href', inline._href)
    893   ();
    894 
    895 inline.reflink = replace(inline.reflink)
    896   ('inside', inline._inside)
    897   ();
    898 
    899 /**
    900  * Normal Inline Grammar
    901  */
    902 
    903 inline.normal = merge({}, inline);
    904 
    905 /**
    906  * Pedantic Inline Grammar
    907  */
    908 
    909 inline.pedantic = merge({}, inline.normal, {
    910   strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
    911   em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
    912 });
    913 
    914 /**
    915  * GFM Inline Grammar
    916  */
    917 
    918 inline.gfm = merge({}, inline.normal, {
    919   escape: replace(inline.escape)('])', '~|])')(),
    920   url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
    921   del: /^~~(?=\S)([\s\S]*?\S)~~/,
    922   text: replace(inline.text)
    923     (']|', '~]|')
    924     ('|', '|https?://|')
    925     ()
    926 });
    927 
    928 /**
    929  * GFM + Line Breaks Inline Grammar
    930  */
    931 
    932 inline.breaks = merge({}, inline.gfm, {
    933   br: replace(inline.br)('{2,}', '*')(),
    934   text: replace(inline.gfm.text)('{2,}', '*')()
    935 });
    936 
    937 /**
    938  * Inline Lexer & Compiler
    939  */
    940 
    941 function InlineLexer(links, options) {
    942   this.options = options || marked.defaults;
    943   this.links = links;
    944   this.rules = inline.normal;
    945   this.renderer = this.options.renderer || new Renderer;
    946   this.renderer.options = this.options;
    947 
    948   if (!this.links) {
    949     throw new
    950       Error('Tokens array requires a `links` property.');
    951   }
    952 
    953   if (this.options.gfm) {
    954     if (this.options.breaks) {
    955       this.rules = inline.breaks;
    956     } else {
    957       this.rules = inline.gfm;
    958     }
    959   } else if (this.options.pedantic) {
    960     this.rules = inline.pedantic;
    961   }
    962 }
    963 
    964 /**
    965  * Expose Inline Rules
    966  */
    967 
    968 InlineLexer.rules = inline;
    969 
    970 /**
    971  * Static Lexing/Compiling Method
    972  */
    973 
    974 InlineLexer.output = function(src, links, options) {
    975   var inline = new InlineLexer(links, options);
    976   return inline.output(src);
    977 };
    978 
    979 /**
    980  * Lexing/Compiling
    981  */
    982 
    983 InlineLexer.prototype.output = function(src) {
    984   var out = ''
    985     , link
    986     , text
    987     , href
    988     , cap;
    989 
    990   while (src) {
    991     // escape
    992     if (cap = this.rules.escape.exec(src)) {
    993       src = src.substring(cap[0].length);
    994       out += cap[1];
    995       continue;
    996     }
    997 
    998     // autolink
    999     if (cap = this.rules.autolink.exec(src)) {
   1000       src = src.substring(cap[0].length);
   1001       if (cap[2] === '@') {
   1002         text = escape(
   1003           cap[1].charAt(6) === ':'
   1004           ? this.mangle(cap[1].substring(7))
   1005           : this.mangle(cap[1])
   1006         );
   1007         href = this.mangle('mailto:') + text;
   1008       } else {
   1009         text = escape(cap[1]);
   1010         href = text;
   1011       }
   1012       out += this.renderer.link(href, null, text);
   1013       continue;
   1014     }
   1015 
   1016     // url (gfm)
   1017     if (!this.inLink && (cap = this.rules.url.exec(src))) {
   1018       src = src.substring(cap[0].length);
   1019       text = escape(cap[1]);
   1020       href = text;
   1021       out += this.renderer.link(href, null, text);
   1022       continue;
   1023     }
   1024 
   1025     // tag
   1026     if (cap = this.rules.tag.exec(src)) {
   1027       if (!this.inLink && /^<a /i.test(cap[0])) {
   1028         this.inLink = true;
   1029       } else if (this.inLink && /^<\/a>/i.test(cap[0])) {
   1030         this.inLink = false;
   1031       }
   1032       src = src.substring(cap[0].length);
   1033       out += this.options.sanitize
   1034         ? this.options.sanitizer
   1035           ? this.options.sanitizer(cap[0])
   1036           : escape(cap[0])
   1037         : cap[0]
   1038       continue;
   1039     }
   1040 
   1041     // link
   1042     if (cap = this.rules.link.exec(src)) {
   1043       src = src.substring(cap[0].length);
   1044       this.inLink = true;
   1045       out += this.outputLink(cap, {
   1046         href: cap[2],
   1047         title: cap[3]
   1048       });
   1049       this.inLink = false;
   1050       continue;
   1051     }
   1052 
   1053     // reflink, nolink
   1054     if ((cap = this.rules.reflink.exec(src))
   1055         || (cap = this.rules.nolink.exec(src))) {
   1056       src = src.substring(cap[0].length);
   1057       link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
   1058       link = this.links[link.toLowerCase()];
   1059       if (!link || !link.href) {
   1060         out += cap[0].charAt(0);
   1061         src = cap[0].substring(1) + src;
   1062         continue;
   1063       }
   1064       this.inLink = true;
   1065       out += this.outputLink(cap, link);
   1066       this.inLink = false;
   1067       continue;
   1068     }
   1069 
   1070     // strong
   1071     if (cap = this.rules.strong.exec(src)) {
   1072       src = src.substring(cap[0].length);
   1073       out += this.renderer.strong(this.output(cap[2] || cap[1]));
   1074       continue;
   1075     }
   1076 
   1077     // em
   1078     if (cap = this.rules.em.exec(src)) {
   1079       src = src.substring(cap[0].length);
   1080       out += this.renderer.em(this.output(cap[2] || cap[1]));
   1081       continue;
   1082     }
   1083 
   1084     // code
   1085     if (cap = this.rules.code.exec(src)) {
   1086       src = src.substring(cap[0].length);
   1087       out += this.renderer.codespan(escape(cap[2].trim(), true));
   1088       continue;
   1089     }
   1090 
   1091     // br
   1092     if (cap = this.rules.br.exec(src)) {
   1093       src = src.substring(cap[0].length);
   1094       out += this.renderer.br();
   1095       continue;
   1096     }
   1097 
   1098     // del (gfm)
   1099     if (cap = this.rules.del.exec(src)) {
   1100       src = src.substring(cap[0].length);
   1101       out += this.renderer.del(this.output(cap[1]));
   1102       continue;
   1103     }
   1104 
   1105     // text
   1106     if (cap = this.rules.text.exec(src)) {
   1107       src = src.substring(cap[0].length);
   1108       out += this.renderer.text(escape(this.smartypants(cap[0])));
   1109       continue;
   1110     }
   1111 
   1112     if (src) {
   1113       throw new
   1114         Error('Infinite loop on byte: ' + src.charCodeAt(0));
   1115     }
   1116   }
   1117 
   1118   return out;
   1119 };
   1120 
   1121 /**
   1122  * Compile Link
   1123  */
   1124 
   1125 InlineLexer.prototype.outputLink = function(cap, link) {
   1126   var href = escape(link.href)
   1127     , title = link.title ? escape(link.title) : null;
   1128 
   1129   return cap[0].charAt(0) !== '!'
   1130     ? this.renderer.link(href, title, this.output(cap[1]))
   1131     : this.renderer.image(href, title, escape(cap[1]));
   1132 };
   1133 
   1134 /**
   1135  * Smartypants Transformations
   1136  */
   1137 
   1138 InlineLexer.prototype.smartypants = function(text) {
   1139   if (!this.options.smartypants) return text;
   1140   return text
   1141     // em-dashes
   1142     .replace(/---/g, '\u2014')
   1143     // en-dashes
   1144     .replace(/--/g, '\u2013')
   1145     // opening singles
   1146     .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
   1147     // closing singles & apostrophes
   1148     .replace(/'/g, '\u2019')
   1149     // opening doubles
   1150     .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
   1151     // closing doubles
   1152     .replace(/"/g, '\u201d')
   1153     // ellipses
   1154     .replace(/\.{3}/g, '\u2026');
   1155 };
   1156 
   1157 /**
   1158  * Mangle Links
   1159  */
   1160 
   1161 InlineLexer.prototype.mangle = function(text) {
   1162   if (!this.options.mangle) return text;
   1163   var out = ''
   1164     , l = text.length
   1165     , i = 0
   1166     , ch;
   1167 
   1168   for (; i < l; i++) {
   1169     ch = text.charCodeAt(i);
   1170     if (Math.random() > 0.5) {
   1171       ch = 'x' + ch.toString(16);
   1172     }
   1173     out += '&#' + ch + ';';
   1174   }
   1175 
   1176   return out;
   1177 };
   1178 
   1179 /**
   1180  * Renderer
   1181  */
   1182 
   1183 function Renderer(options) {
   1184   this.options = options || {};
   1185 }
   1186 
   1187 Renderer.prototype.code = function(code, lang, escaped) {
   1188   if (this.options.highlight) {
   1189     var out = this.options.highlight(code, lang);
   1190     if (out != null && out !== code) {
   1191       escaped = true;
   1192       code = out;
   1193     }
   1194   }
   1195 
   1196   if (!lang) {
   1197     return '<pre><code>'
   1198       + (escaped ? code : escape(code, true))
   1199       + '\n</code></pre>';
   1200   }
   1201 
   1202   return '<pre><code class="'
   1203     + this.options.langPrefix
   1204     + escape(lang, true)
   1205     + '">'
   1206     + (escaped ? code : escape(code, true))
   1207     + '\n</code></pre>\n';
   1208 };
   1209 
   1210 Renderer.prototype.blockquote = function(quote) {
   1211   return '<blockquote>\n' + quote + '</blockquote>\n';
   1212 };
   1213 
   1214 Renderer.prototype.html = function(html) {
   1215   return html;
   1216 };
   1217 
   1218 Renderer.prototype.heading = function(text, level, raw) {
   1219   return '<h'
   1220     + level
   1221     + ' id="'
   1222     + this.options.headerPrefix
   1223     + raw.toLowerCase().replace(/[^\w]+/g, '-')
   1224     + '">'
   1225     + text
   1226     + '</h'
   1227     + level
   1228     + '>\n';
   1229 };
   1230 
   1231 Renderer.prototype.hr = function() {
   1232   return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
   1233 };
   1234 
   1235 Renderer.prototype.list = function(body, ordered) {
   1236   var type = ordered ? 'ol' : 'ul';
   1237   return '<' + type + '>\n' + body + '</' + type + '>\n';
   1238 };
   1239 
   1240 Renderer.prototype.listitem = function(text) {
   1241   return '<li>' + text + '</li>\n';
   1242 };
   1243 
   1244 Renderer.prototype.paragraph = function(text) {
   1245   return '<p>' + text + '</p>\n';
   1246 };
   1247 
   1248 Renderer.prototype.table = function(header, body) {
   1249   return '<table>\n'
   1250     + '<thead>\n'
   1251     + header
   1252     + '</thead>\n'
   1253     + '<tbody>\n'
   1254     + body
   1255     + '</tbody>\n'
   1256     + '</table>\n';
   1257 };
   1258 
   1259 Renderer.prototype.tablerow = function(content) {
   1260   return '<tr>\n' + content + '</tr>\n';
   1261 };
   1262 
   1263 Renderer.prototype.tablecell = function(content, flags) {
   1264   var type = flags.header ? 'th' : 'td';
   1265   var tag = flags.align
   1266     ? '<' + type + ' style="text-align:' + flags.align + '">'
   1267     : '<' + type + '>';
   1268   return tag + content + '</' + type + '>\n';
   1269 };
   1270 
   1271 // span level renderer
   1272 Renderer.prototype.strong = function(text) {
   1273   return '<strong>' + text + '</strong>';
   1274 };
   1275 
   1276 Renderer.prototype.em = function(text) {
   1277   return '<em>' + text + '</em>';
   1278 };
   1279 
   1280 Renderer.prototype.codespan = function(text) {
   1281   return '<code>' + text + '</code>';
   1282 };
   1283 
   1284 Renderer.prototype.br = function() {
   1285   return this.options.xhtml ? '<br/>' : '<br>';
   1286 };
   1287 
   1288 Renderer.prototype.del = function(text) {
   1289   return '<del>' + text + '</del>';
   1290 };
   1291 
   1292 Renderer.prototype.link = function(href, title, text) {
   1293   if (this.options.sanitize) {
   1294     try {
   1295       var prot = decodeURIComponent(unescape(href))
   1296         .replace(/[^\w:]/g, '')
   1297         .toLowerCase();
   1298     } catch (e) {
   1299       return '';
   1300     }
   1301     if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
   1302       return '';
   1303     }
   1304   }
   1305   if (this.options.baseUrl && !originIndependentUrl.test(href)) {
   1306     href = resolveUrl(this.options.baseUrl, href);
   1307   }
   1308   var out = '<a href="' + href + '"';
   1309   if (title) {
   1310     out += ' title="' + title + '"';
   1311   }
   1312   out += '>' + text + '</a>';
   1313   return out;
   1314 };
   1315 
   1316 Renderer.prototype.image = function(href, title, text) {
   1317   if (this.options.baseUrl && !originIndependentUrl.test(href)) {
   1318     href = resolveUrl(this.options.baseUrl, href);
   1319   }
   1320   var out = '<img src="' + href + '" alt="' + text + '"';
   1321   if (title) {
   1322     out += ' title="' + title + '"';
   1323   }
   1324   out += this.options.xhtml ? '/>' : '>';
   1325   return out;
   1326 };
   1327 
   1328 Renderer.prototype.text = function(text) {
   1329   return text;
   1330 };
   1331 
   1332 /**
   1333  * Parsing & Compiling
   1334  */
   1335 
   1336 function Parser(options) {
   1337   this.tokens = [];
   1338   this.token = null;
   1339   this.options = options || marked.defaults;
   1340   this.options.renderer = this.options.renderer || new Renderer;
   1341   this.renderer = this.options.renderer;
   1342   this.renderer.options = this.options;
   1343 }
   1344 
   1345 /**
   1346  * Static Parse Method
   1347  */
   1348 
   1349 Parser.parse = function(src, options, renderer) {
   1350   var parser = new Parser(options, renderer);
   1351   return parser.parse(src);
   1352 };
   1353 
   1354 /**
   1355  * Parse Loop
   1356  */
   1357 
   1358 Parser.prototype.parse = function(src) {
   1359   this.inline = new InlineLexer(src.links, this.options, this.renderer);
   1360   this.tokens = src.reverse();
   1361 
   1362   var out = '';
   1363   while (this.next()) {
   1364     out += this.tok();
   1365   }
   1366 
   1367   return out;
   1368 };
   1369 
   1370 /**
   1371  * Next Token
   1372  */
   1373 
   1374 Parser.prototype.next = function() {
   1375   return this.token = this.tokens.pop();
   1376 };
   1377 
   1378 /**
   1379  * Preview Next Token
   1380  */
   1381 
   1382 Parser.prototype.peek = function() {
   1383   return this.tokens[this.tokens.length - 1] || 0;
   1384 };
   1385 
   1386 /**
   1387  * Parse Text Tokens
   1388  */
   1389 
   1390 Parser.prototype.parseText = function() {
   1391   var body = this.token.text;
   1392 
   1393   while (this.peek().type === 'text') {
   1394     body += '\n' + this.next().text;
   1395   }
   1396 
   1397   return this.inline.output(body);
   1398 };
   1399 
   1400 /**
   1401  * Parse Current Token
   1402  */
   1403 
   1404 Parser.prototype.tok = function() {
   1405   switch (this.token.type) {
   1406     case 'space': {
   1407       return '';
   1408     }
   1409     case 'hr': {
   1410       return this.renderer.hr();
   1411     }
   1412     case 'heading': {
   1413       return this.renderer.heading(
   1414         this.inline.output(this.token.text),
   1415         this.token.depth,
   1416         this.token.text);
   1417     }
   1418     case 'code': {
   1419       return this.renderer.code(this.token.text,
   1420         this.token.lang,
   1421         this.token.escaped);
   1422     }
   1423     case 'table': {
   1424       var header = ''
   1425         , body = ''
   1426         , i
   1427         , row
   1428         , cell
   1429         , flags
   1430         , j;
   1431 
   1432       // header
   1433       cell = '';
   1434       for (i = 0; i < this.token.header.length; i++) {
   1435         flags = { header: true, align: this.token.align[i] };
   1436         cell += this.renderer.tablecell(
   1437           this.inline.output(this.token.header[i]),
   1438           { header: true, align: this.token.align[i] }
   1439         );
   1440       }
   1441       header += this.renderer.tablerow(cell);
   1442 
   1443       for (i = 0; i < this.token.cells.length; i++) {
   1444         row = this.token.cells[i];
   1445 
   1446         cell = '';
   1447         for (j = 0; j < row.length; j++) {
   1448           cell += this.renderer.tablecell(
   1449             this.inline.output(row[j]),
   1450             { header: false, align: this.token.align[j] }
   1451           );
   1452         }
   1453 
   1454         body += this.renderer.tablerow(cell);
   1455       }
   1456       return this.renderer.table(header, body);
   1457     }
   1458     case 'blockquote_start': {
   1459       var body = '';
   1460 
   1461       while (this.next().type !== 'blockquote_end') {
   1462         body += this.tok();
   1463       }
   1464 
   1465       return this.renderer.blockquote(body);
   1466     }
   1467     case 'list_start': {
   1468       var body = ''
   1469         , ordered = this.token.ordered;
   1470 
   1471       while (this.next().type !== 'list_end') {
   1472         body += this.tok();
   1473       }
   1474 
   1475       return this.renderer.list(body, ordered);
   1476     }
   1477     case 'list_item_start': {
   1478       var body = '';
   1479 
   1480       while (this.next().type !== 'list_item_end') {
   1481         body += this.token.type === 'text'
   1482           ? this.parseText()
   1483           : this.tok();
   1484       }
   1485 
   1486       return this.renderer.listitem(body);
   1487     }
   1488     case 'loose_item_start': {
   1489       var body = '';
   1490 
   1491       while (this.next().type !== 'list_item_end') {
   1492         body += this.tok();
   1493       }
   1494 
   1495       return this.renderer.listitem(body);
   1496     }
   1497     case 'html': {
   1498       var html = !this.token.pre && !this.options.pedantic
   1499         ? this.inline.output(this.token.text)
   1500         : this.token.text;
   1501       return this.renderer.html(html);
   1502     }
   1503     case 'paragraph': {
   1504       return this.renderer.paragraph(this.inline.output(this.token.text));
   1505     }
   1506     case 'text': {
   1507       return this.renderer.paragraph(this.parseText());
   1508     }
   1509   }
   1510 };
   1511 
   1512 /**
   1513  * Helpers
   1514  */
   1515 
   1516 function escape(html, encode) {
   1517   return html
   1518     .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
   1519     .replace(/</g, '&lt;')
   1520     .replace(/>/g, '&gt;')
   1521     .replace(/"/g, '&quot;')
   1522     .replace(/'/g, '&#39;');
   1523 }
   1524 
   1525 function unescape(html) {
   1526 	// explicitly match decimal, hex, and named HTML entities
   1527   return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) {
   1528     n = n.toLowerCase();
   1529     if (n === 'colon') return ':';
   1530     if (n.charAt(0) === '#') {
   1531       return n.charAt(1) === 'x'
   1532         ? String.fromCharCode(parseInt(n.substring(2), 16))
   1533         : String.fromCharCode(+n.substring(1));
   1534     }
   1535     return '';
   1536   });
   1537 }
   1538 
   1539 function replace(regex, opt) {
   1540   regex = regex.source;
   1541   opt = opt || '';
   1542   return function self(name, val) {
   1543     if (!name) return new RegExp(regex, opt);
   1544     val = val.source || val;
   1545     val = val.replace(/(^|[^\[])\^/g, '$1');
   1546     regex = regex.replace(name, val);
   1547     return self;
   1548   };
   1549 }
   1550 
   1551 function resolveUrl(base, href) {
   1552   if (!baseUrls[' ' + base]) {
   1553     // we can ignore everything in base after the last slash of its path component,
   1554     // but we might need to add _that_
   1555     // https://tools.ietf.org/html/rfc3986#section-3
   1556     if (/^[^:]+:\/*[^/]*$/.test(base)) {
   1557       baseUrls[' ' + base] = base + '/';
   1558     } else {
   1559       baseUrls[' ' + base] = base.replace(/[^/]*$/, '');
   1560     }
   1561   }
   1562   base = baseUrls[' ' + base];
   1563 
   1564   if (href.slice(0, 2) === '//') {
   1565     return base.replace(/:[^]*/, ':') + href;
   1566   } else if (href.charAt(0) === '/') {
   1567     return base.replace(/(:\/*[^/]*)[^]*/, '$1') + href;
   1568   } else {
   1569     return base + href;
   1570   }
   1571 }
   1572 baseUrls = {};
   1573 originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
   1574 
   1575 function noop() {}
   1576 noop.exec = noop;
   1577 
   1578 function merge(obj) {
   1579   var i = 1
   1580     , target
   1581     , key;
   1582 
   1583   for (; i < arguments.length; i++) {
   1584     target = arguments[i];
   1585     for (key in target) {
   1586       if (Object.prototype.hasOwnProperty.call(target, key)) {
   1587         obj[key] = target[key];
   1588       }
   1589     }
   1590   }
   1591 
   1592   return obj;
   1593 }
   1594 
   1595 
   1596 /**
   1597  * Marked
   1598  */
   1599 
   1600 function marked(src, opt, callback) {
   1601   if (callback || typeof opt === 'function') {
   1602     if (!callback) {
   1603       callback = opt;
   1604       opt = null;
   1605     }
   1606 
   1607     opt = merge({}, marked.defaults, opt || {});
   1608 
   1609     var highlight = opt.highlight
   1610       , tokens
   1611       , pending
   1612       , i = 0;
   1613 
   1614     try {
   1615       tokens = Lexer.lex(src, opt)
   1616     } catch (e) {
   1617       return callback(e);
   1618     }
   1619 
   1620     pending = tokens.length;
   1621 
   1622     var done = function(err) {
   1623       if (err) {
   1624         opt.highlight = highlight;
   1625         return callback(err);
   1626       }
   1627 
   1628       var out;
   1629 
   1630       try {
   1631         out = Parser.parse(tokens, opt);
   1632       } catch (e) {
   1633         err = e;
   1634       }
   1635 
   1636       opt.highlight = highlight;
   1637 
   1638       return err
   1639         ? callback(err)
   1640         : callback(null, out);
   1641     };
   1642 
   1643     if (!highlight || highlight.length < 3) {
   1644       return done();
   1645     }
   1646 
   1647     delete opt.highlight;
   1648 
   1649     if (!pending) return done();
   1650 
   1651     for (; i < tokens.length; i++) {
   1652       (function(token) {
   1653         if (token.type !== 'code') {
   1654           return --pending || done();
   1655         }
   1656         return highlight(token.text, token.lang, function(err, code) {
   1657           if (err) return done(err);
   1658           if (code == null || code === token.text) {
   1659             return --pending || done();
   1660           }
   1661           token.text = code;
   1662           token.escaped = true;
   1663           --pending || done();
   1664         });
   1665       })(tokens[i]);
   1666     }
   1667 
   1668     return;
   1669   }
   1670   try {
   1671     if (opt) opt = merge({}, marked.defaults, opt);
   1672     return Parser.parse(Lexer.lex(src, opt), opt);
   1673   } catch (e) {
   1674     e.message += '\nPlease report this to https://github.com/chjj/marked.';
   1675     if ((opt || marked.defaults).silent) {
   1676       return '<p>An error occured:</p><pre>'
   1677         + escape(e.message + '', true)
   1678         + '</pre>';
   1679     }
   1680     throw e;
   1681   }
   1682 }
   1683 
   1684 /**
   1685  * Options
   1686  */
   1687 
   1688 marked.options =
   1689 marked.setOptions = function(opt) {
   1690   merge(marked.defaults, opt);
   1691   return marked;
   1692 };
   1693 
   1694 marked.defaults = {
   1695   gfm: true,
   1696   tables: true,
   1697   breaks: false,
   1698   pedantic: false,
   1699   sanitize: false,
   1700   sanitizer: null,
   1701   mangle: true,
   1702   smartLists: false,
   1703   silent: false,
   1704   highlight: null,
   1705   langPrefix: 'lang-',
   1706   smartypants: false,
   1707   headerPrefix: '',
   1708   renderer: new Renderer,
   1709   xhtml: false,
   1710   baseUrl: null
   1711 };
   1712 
   1713 /**
   1714  * Expose
   1715  */
   1716 
   1717 marked.Parser = Parser;
   1718 marked.parser = Parser.parse;
   1719 
   1720 marked.Renderer = Renderer;
   1721 
   1722 marked.Lexer = Lexer;
   1723 marked.lexer = Lexer.lex;
   1724 
   1725 marked.InlineLexer = InlineLexer;
   1726 marked.inlineLexer = InlineLexer.output;
   1727 
   1728 marked.parse = marked;
   1729 
   1730 if (typeof module !== 'undefined' && typeof exports === 'object') {
   1731   module.exports = marked;
   1732 } else if (typeof define === 'function' && define.amd) {
   1733   define(function() { return marked; });
   1734 } else {
   1735   this.marked = marked;
   1736 }
   1737 
   1738 }).call(function() {
   1739   return this || (typeof window !== 'undefined' ? window : global);
   1740 }());
   1741 
   1742 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
   1743 },{}],4:[function(require,module,exports){
   1744 exports.apply = function () {
   1745   forEach([Array, window.NodeList, window.HTMLCollection], extend);
   1746 };
   1747 
   1748 function forEach (list, f) {
   1749   var i;
   1750 
   1751   for (i = 0; i < list.length; ++i) {
   1752     f(list[i], i);
   1753   }
   1754 }
   1755 
   1756 function extend (object) {
   1757   var prototype = object && object.prototype;
   1758 
   1759   if (!prototype) {
   1760     return;
   1761   }
   1762 
   1763   prototype.forEach = prototype.forEach || function (f) {
   1764     forEach(this, f);
   1765   };
   1766 
   1767   prototype.filter = prototype.filter || function (f) {
   1768     var result = [];
   1769 
   1770     this.forEach(function (element) {
   1771       if (f(element, result.length)) {
   1772         result.push(element);
   1773       }
   1774     });
   1775 
   1776     return result;
   1777   };
   1778 
   1779   prototype.map = prototype.map || function (f) {
   1780     var result = [];
   1781 
   1782     this.forEach(function (element) {
   1783       result.push(f(element, result.length));
   1784     });
   1785 
   1786     return result;
   1787   };
   1788 }
   1789 },{}],5:[function(require,module,exports){
   1790 var Api = require('./remark/api')
   1791   , polyfills = require('./polyfills')
   1792   , styler = require('./remark/components/styler/styler')
   1793   ;
   1794 
   1795 // Expose API as `remark`
   1796 window.remark = new Api();
   1797 
   1798 // Apply polyfills as needed
   1799 polyfills.apply();
   1800 
   1801 // Apply embedded styles to document
   1802 styler.styleDocument();
   1803 
   1804 },{"./polyfills":4,"./remark/api":6,"./remark/components/styler/styler":"components/styler"}],6:[function(require,module,exports){
   1805 var EventEmitter = require('events').EventEmitter
   1806   , highlighter = require('./highlighter')
   1807   , converter = require('./converter')
   1808   , resources = require('./resources')
   1809   , Parser = require('./parser')
   1810   , Slideshow = require('./models/slideshow')
   1811   , SlideshowView = require('./views/slideshowView')
   1812   , DefaultController = require('./controllers/defaultController')
   1813   , Dom = require('./dom')
   1814   , macros = require('./macros')
   1815   ;
   1816 
   1817 module.exports = Api;
   1818 
   1819 function Api (dom) {
   1820   this.dom = dom || new Dom();
   1821   this.macros = macros;
   1822   this.version = resources.version;
   1823 }
   1824 
   1825 // Expose highlighter to allow enumerating available styles and
   1826 // including external language grammars
   1827 Api.prototype.highlighter = highlighter;
   1828 
   1829 Api.prototype.convert = function (markdown) {
   1830   var parser = new Parser()
   1831     , content = parser.parse(markdown || '', macros)[0].content
   1832     ;
   1833 
   1834   return converter.convertMarkdown(content, {}, true);
   1835 };
   1836 
   1837 // Creates slideshow initialized from options
   1838 Api.prototype.create = function (options, callback) {
   1839   var self = this
   1840     , events
   1841     , slideshow
   1842     , slideshowView
   1843     , controller
   1844     ;
   1845 
   1846   options = applyDefaults(this.dom, options);
   1847 
   1848   events = new EventEmitter();
   1849   events.setMaxListeners(0);
   1850 
   1851   slideshow = new Slideshow(events, this.dom, options, function (slideshow) {
   1852     slideshowView = new SlideshowView(events, self.dom, options, slideshow);
   1853     controller = options.controller || new DefaultController(events, self.dom, slideshowView, options.navigation);
   1854     if (typeof callback === 'function') {
   1855       callback(slideshow);
   1856     }
   1857   });
   1858 
   1859   return slideshow;
   1860 };
   1861 
   1862 function applyDefaults (dom, options) {
   1863   var sourceElement;
   1864 
   1865   options = options || {};
   1866 
   1867   if (!options.hasOwnProperty('source')) {
   1868     sourceElement = dom.getElementById('source');
   1869     if (sourceElement) {
   1870       options.source = unescape(sourceElement.innerHTML);
   1871       sourceElement.style.display = 'none';
   1872     }
   1873   }
   1874 
   1875   if (!(options.container instanceof window.HTMLElement)) {
   1876     options.container = dom.getBodyElement();
   1877   }
   1878 
   1879   return options;
   1880 }
   1881 
   1882 function unescape (source) {
   1883   source = source.replace(/&[l|g]t;/g,
   1884     function (match) {
   1885       return match === '&lt;' ? '<' : '>';
   1886     });
   1887 
   1888   source = source.replace(/&amp;/g, '&');
   1889   source = source.replace(/&quot;/g, '"');
   1890 
   1891   return source;
   1892 }
   1893 },{"./controllers/defaultController":7,"./converter":13,"./dom":14,"./highlighter":15,"./macros":17,"./models/slideshow":19,"./parser":22,"./resources":23,"./views/slideshowView":28,"events":1}],7:[function(require,module,exports){
   1894 // Allow override of global `location`
   1895 /* global location:true */
   1896 
   1897 module.exports = Controller;
   1898 
   1899 var Keyboard = require('./inputs/keyboard')
   1900   , mouse = require('./inputs/mouse')
   1901   , touch = require('./inputs/touch')
   1902   , message = require('./inputs/message')
   1903   , location = require('./inputs/location')
   1904   ;
   1905 
   1906 function Controller (events, dom, slideshowView, options) {
   1907   options = options || {};
   1908 
   1909   var keyboard = new Keyboard(events);
   1910 
   1911   message.register(events);
   1912   location.register(events, dom, slideshowView);
   1913   mouse.register(events, options);
   1914   touch.register(events, options);
   1915 
   1916   addApiEventListeners(events, keyboard, slideshowView, options);
   1917 }
   1918 
   1919 function addApiEventListeners (events, keyboard, slideshowView, options) {
   1920   events.on('pause', function(event) {
   1921     keyboard.deactivate();
   1922     mouse.unregister(events);
   1923     touch.unregister(events);
   1924   });
   1925 
   1926   events.on('resume',  function(event) {
   1927     keyboard.activate();
   1928     mouse.register(events, options);
   1929     touch.register(events, options);
   1930   });
   1931 }
   1932 },{"./inputs/keyboard":8,"./inputs/location":9,"./inputs/message":10,"./inputs/mouse":11,"./inputs/touch":12}],8:[function(require,module,exports){
   1933 module.exports = Keyboard;
   1934 
   1935 function Keyboard(events) {
   1936   this._events = events;
   1937 
   1938   this.activate();
   1939 }
   1940 
   1941 Keyboard.prototype.activate = function () {
   1942   this._gotoSlideNumber = '';
   1943 
   1944   this.addKeyboardEventListeners();
   1945 };
   1946 
   1947 Keyboard.prototype.deactivate = function () {
   1948   this.removeKeyboardEventListeners();
   1949 };
   1950 
   1951 Keyboard.prototype.addKeyboardEventListeners = function () {
   1952   var self = this;
   1953   var events = this._events;
   1954 
   1955   events.on('keydown', function (event) {
   1956     if (event.metaKey || event.ctrlKey || event.altKey) {
   1957       // Bail out if alt, meta or ctrl key was pressed
   1958       return;
   1959     }
   1960 
   1961     switch (event.keyCode) {
   1962       case 33: // Page up
   1963       case 37: // Left
   1964       case 38: // Up
   1965         events.emit('gotoPreviousSlide');
   1966         break;
   1967       case 32: // Space
   1968         if(event.shiftKey){ // Shift+Space
   1969           events.emit('gotoPreviousSlide');
   1970         }else{
   1971           events.emit('gotoNextSlide');
   1972         }
   1973         break;
   1974       case 34: // Page down
   1975       case 39: // Right
   1976       case 40: // Down
   1977         events.emit('gotoNextSlide');
   1978         break;
   1979       case 36: // Home
   1980         events.emit('gotoFirstSlide');
   1981         break;
   1982       case 35: // End
   1983         events.emit('gotoLastSlide');
   1984         break;
   1985       case 27: // Escape
   1986         events.emit('hideOverlay');
   1987         break;
   1988       case 13: // Return
   1989         if (self._gotoSlideNumber) {
   1990           events.emit('gotoSlideNumber', self._gotoSlideNumber);
   1991           self._gotoSlideNumber = '';
   1992         }
   1993         break;
   1994     }
   1995   });
   1996 
   1997   events.on('keypress', function (event) {
   1998     if (event.metaKey || event.ctrlKey) {
   1999       // Bail out if meta or ctrl key was pressed
   2000       return;
   2001     }
   2002 
   2003     var key = String.fromCharCode(event.which).toLowerCase();
   2004     var tryToPreventDefault = true;
   2005 
   2006     switch (key) {
   2007       case 'j':
   2008         events.emit('gotoNextSlide');
   2009         break;
   2010       case 'k':
   2011         events.emit('gotoPreviousSlide');
   2012         break;
   2013       case 'b':
   2014         events.emit('toggleBlackout');
   2015         break;
   2016       case 'm':
   2017         events.emit('toggleMirrored');
   2018         break;
   2019       case 'c':
   2020         events.emit('createClone');
   2021         break;
   2022       case 'p':
   2023         events.emit('togglePresenterMode');
   2024         break;
   2025       case 'f':
   2026         events.emit('toggleFullscreen');
   2027         break;
   2028       case 's':
   2029         events.emit('toggleTimer');
   2030         break;
   2031       case 't':
   2032         events.emit('resetTimer');
   2033         break;
   2034       case '1':
   2035       case '2':
   2036       case '3':
   2037       case '4':
   2038       case '5':
   2039       case '6':
   2040       case '7':
   2041       case '8':
   2042       case '9':
   2043       case '0':
   2044         self._gotoSlideNumber += key;
   2045         break;
   2046       case 'h':
   2047       case '?':
   2048         events.emit('toggleHelp');
   2049         break;
   2050       default:
   2051         tryToPreventDefault = false;
   2052     }
   2053 
   2054     if (tryToPreventDefault && event && event.preventDefault)
   2055       event.preventDefault();
   2056 
   2057   });
   2058 };
   2059 
   2060 Keyboard.prototype.removeKeyboardEventListeners = function () {
   2061   var events = this._events;
   2062 
   2063   events.removeAllListeners("keydown");
   2064   events.removeAllListeners("keypress");
   2065 };
   2066 
   2067 },{}],9:[function(require,module,exports){
   2068 var utils = require('../../utils.js');
   2069 
   2070 exports.register = function (events, dom, slideshowView) {
   2071   addLocationEventListeners(events, dom, slideshowView);
   2072 };
   2073 
   2074 function addLocationEventListeners (events, dom, slideshowView) {
   2075   // If slideshow is embedded into custom DOM element, we don't
   2076   // hook up to location hash changes, so just go to first slide.
   2077   if (slideshowView.isEmbedded()) {
   2078     events.emit('gotoSlide', 1);
   2079   }
   2080   // When slideshow is not embedded into custom DOM element, but
   2081   // rather hosted directly inside document.body, we hook up to
   2082   // location hash changes, and trigger initial navigation.
   2083   else {
   2084     events.on('hashchange', navigateByHash);
   2085     events.on('slideChanged', updateHash);
   2086     events.on('toggledPresenter', updateHash);
   2087 
   2088     navigateByHash();
   2089   }
   2090 
   2091   function navigateByHash () {
   2092     var slideNoOrName = (dom.getLocationHash() || '').substr(1);
   2093     events.emit('gotoSlide', slideNoOrName);
   2094   }
   2095 
   2096   function updateHash (slideNoOrName) {
   2097     if(utils.hasClass(slideshowView.containerElement, 'remark-presenter-mode')){
   2098       dom.setLocationHash('#p' + slideNoOrName);
   2099     }
   2100     else{
   2101       dom.setLocationHash('#' + slideNoOrName);
   2102     }
   2103   }
   2104 }
   2105 
   2106 },{"../../utils.js":25}],10:[function(require,module,exports){
   2107 exports.register = function (events) {
   2108   addMessageEventListeners(events);
   2109 };
   2110 
   2111 function addMessageEventListeners (events) {
   2112   events.on('message', navigateByMessage);
   2113 
   2114   function navigateByMessage(message) {
   2115     var cap;
   2116 
   2117     if ((cap = /^gotoSlide:(\d+)$/.exec(message.data)) !== null) {
   2118       events.emit('gotoSlide', parseInt(cap[1], 10), true);
   2119     }
   2120     else if (message.data === 'toggleBlackout') {
   2121       events.emit('toggleBlackout', {propagate: false});
   2122     }
   2123   }
   2124 }
   2125 
   2126 },{}],11:[function(require,module,exports){
   2127 exports.register = function (events, options) {
   2128   addMouseEventListeners(events, options);
   2129 };
   2130 
   2131 exports.unregister = function (events) {
   2132   removeMouseEventListeners(events);
   2133 };
   2134 
   2135 function addMouseEventListeners (events, options) {
   2136   if (options.click) {
   2137     events.on('click', function (event) {
   2138       if (event.target.nodeName === 'A') {
   2139         // Don't interfere when clicking link
   2140         return;
   2141       }
   2142       else if (event.button === 0) {
   2143         events.emit('gotoNextSlide');
   2144       }
   2145     });
   2146     events.on('contextmenu', function (event) {
   2147       if (event.target.nodeName === 'A') {
   2148         // Don't interfere when right-clicking link
   2149         return;
   2150       }
   2151       event.preventDefault();
   2152       events.emit('gotoPreviousSlide');
   2153     });
   2154   }
   2155 
   2156   if (options.scroll !== false) {
   2157     var scrollHandler = function (event) {
   2158       if (event.wheelDeltaY > 0 || event.detail < 0) {
   2159         events.emit('gotoPreviousSlide');
   2160       }
   2161       else if (event.wheelDeltaY < 0 || event.detail > 0) {
   2162         events.emit('gotoNextSlide');
   2163       }
   2164     };
   2165 
   2166     // IE9, Chrome, Safari, Opera
   2167     events.on('mousewheel', scrollHandler);
   2168     // Firefox
   2169     events.on('DOMMouseScroll', scrollHandler);
   2170   }
   2171 }
   2172 
   2173 function removeMouseEventListeners(events) {
   2174   events.removeAllListeners('click');
   2175   events.removeAllListeners('contextmenu');
   2176   events.removeAllListeners('mousewheel');
   2177 }
   2178 
   2179 },{}],12:[function(require,module,exports){
   2180 exports.register = function (events, options) {
   2181   addTouchEventListeners(events, options);
   2182 };
   2183 
   2184 exports.unregister = function (events) {
   2185   removeTouchEventListeners(events);
   2186 };
   2187 
   2188 function addTouchEventListeners (events, options) {
   2189   var touch
   2190     , startX
   2191     , endX
   2192     ;
   2193 
   2194   if (options.touch === false) {
   2195     return;
   2196   }
   2197 
   2198   var isTap = function () {
   2199     return Math.abs(startX - endX) < 10;
   2200   };
   2201 
   2202   var handleTap = function () {
   2203     events.emit('tap', endX);
   2204   };
   2205 
   2206   var handleSwipe = function () {
   2207     if (startX > endX) {
   2208       events.emit('gotoNextSlide');
   2209     }
   2210     else {
   2211       events.emit('gotoPreviousSlide');
   2212     }
   2213   };
   2214 
   2215   events.on('touchstart', function (event) {
   2216     touch = event.touches[0];
   2217     startX = touch.clientX;
   2218   });
   2219 
   2220   events.on('touchend', function (event) {
   2221     if (event.target.nodeName.toUpperCase() === 'A') {
   2222       return;
   2223     }
   2224 
   2225     touch = event.changedTouches[0];
   2226     endX = touch.clientX;
   2227 
   2228     if (isTap()) {
   2229       handleTap();
   2230     }
   2231     else {
   2232       handleSwipe();
   2233     }
   2234   });
   2235 
   2236   events.on('touchmove', function (event) {
   2237     event.preventDefault();
   2238   });
   2239 }
   2240 
   2241 function removeTouchEventListeners(events) {
   2242   events.removeAllListeners("touchstart");
   2243   events.removeAllListeners("touchend");
   2244   events.removeAllListeners("touchmove");
   2245 }
   2246 
   2247 },{}],13:[function(require,module,exports){
   2248 var marked = require('marked')
   2249   , converter = module.exports = {}
   2250   , element = document.createElement('div')
   2251   ;
   2252 
   2253 marked.setOptions({
   2254   gfm: true,
   2255   tables: true,
   2256   breaks: false,
   2257 
   2258   // Without this set to true, converting something like
   2259   // <p>*</p><p>*</p> will become <p><em></p><p></em></p>
   2260   pedantic: true,
   2261 
   2262   sanitize: false,
   2263   smartLists: true,
   2264   langPrefix: ''
   2265 });
   2266 
   2267 converter.convertMarkdown = function (content, links, inline) {
   2268   element.innerHTML = convertMarkdown(content, links || {}, inline);
   2269   element.innerHTML = element.innerHTML.replace(/<p>\s*<\/p>/g, '');
   2270   return element.innerHTML.replace(/\n\r?$/, '');
   2271 };
   2272 
   2273 function convertMarkdown (content, links, insideContentClass) {
   2274   var i, tag, markdown = '', html;
   2275 
   2276   for (i = 0; i < content.length; ++i) {
   2277     if (typeof content[i] === 'string') {
   2278       markdown += content[i];
   2279     }
   2280     else {
   2281       tag = content[i].block ? 'div' : 'span';
   2282       markdown += '<' + tag + ' class="' + content[i].class + '">';
   2283       markdown += convertMarkdown(content[i].content, links, !content[i].block);
   2284       markdown += '</' + tag + '>';
   2285     }
   2286   }
   2287 
   2288   var tokens = marked.Lexer.lex(markdown.replace(/^\s+/, ''));
   2289   tokens.links = links;
   2290   html = marked.Parser.parse(tokens);
   2291 
   2292   if (insideContentClass) {
   2293     element.innerHTML = html;
   2294     if (element.children.length === 1 && element.children[0].tagName === 'P') {
   2295       html = element.children[0].innerHTML;
   2296     }
   2297   }
   2298 
   2299   return html;
   2300 }
   2301 
   2302 },{"marked":3}],14:[function(require,module,exports){
   2303 module.exports = Dom;
   2304 
   2305 function Dom () { }
   2306 
   2307 Dom.prototype.XMLHttpRequest = XMLHttpRequest;
   2308 
   2309 Dom.prototype.getHTMLElement = function () {
   2310   return document.getElementsByTagName('html')[0];
   2311 };
   2312 
   2313 Dom.prototype.getBodyElement = function () {
   2314   return document.body;
   2315 };
   2316 
   2317 Dom.prototype.getElementById = function (id) {
   2318   return document.getElementById(id);
   2319 };
   2320 
   2321 Dom.prototype.getLocationHash = function () {
   2322   return window.location.hash;
   2323 };
   2324 
   2325 Dom.prototype.setLocationHash = function (hash) {
   2326   if (typeof window.history.replaceState === 'function' && window.origin !== 'null') {
   2327     window.history.replaceState(undefined, undefined, hash);
   2328   }
   2329   else {
   2330     window.location.hash = hash;
   2331   }
   2332 };
   2333 
   2334 },{}],15:[function(require,module,exports){
   2335 /* Automatically generated */
   2336 
   2337 var hljs = (function() {
   2338       var exports = {};
   2339       /*
   2340 Syntax highlighting with language autodetection.
   2341 https://highlightjs.org/
   2342 */
   2343 
   2344 (function(factory) {
   2345 
   2346   // Find the global object for export to both the browser and web workers.
   2347   var globalObject = typeof window === 'object' && window ||
   2348                      typeof self === 'object' && self;
   2349 
   2350   // Setup highlight.js for different environments. First is Node.js or
   2351   // CommonJS.
   2352   // `nodeType` is checked to ensure that `exports` is not a HTML element.
   2353   if(typeof exports !== 'undefined' && !exports.nodeType) {
   2354     factory(exports);
   2355   } else if(globalObject) {
   2356     // Export hljs globally even when using AMD for cases when this script
   2357     // is loaded with others that may still expect a global hljs.
   2358     globalObject.hljs = factory({});
   2359 
   2360     // Finally register the global hljs with AMD.
   2361     if(typeof define === 'function' && define.amd) {
   2362       define([], function() {
   2363         return globalObject.hljs;
   2364       });
   2365     }
   2366   }
   2367 
   2368 }(function(hljs) {
   2369   // Convenience variables for build-in objects
   2370   var ArrayProto = [],
   2371       objectKeys = Object.keys;
   2372 
   2373   // Global internal variables used within the highlight.js library.
   2374   var languages = {},
   2375       aliases   = {};
   2376 
   2377   // Regular expressions used throughout the highlight.js library.
   2378   var noHighlightRe    = /^(no-?highlight|plain|text)$/i,
   2379       languagePrefixRe = /\blang(?:uage)?-([\w-]+)\b/i,
   2380       fixMarkupRe      = /((^(<[^>]+>|\t|)+|(?:\n)))/gm;
   2381 
   2382   // The object will be assigned by the build tool. It used to synchronize API 
   2383   // of external language files with minified version of the highlight.js library.
   2384   var API_REPLACES;
   2385 
   2386   var spanEndTag = '</span>';
   2387 
   2388   // Global options used when within external APIs. This is modified when
   2389   // calling the `hljs.configure` function.
   2390   var options = {
   2391     classPrefix: 'hljs-',
   2392     tabReplace: null,
   2393     useBR: false,
   2394     languages: undefined
   2395   };
   2396 
   2397 
   2398   /* Utility functions */
   2399 
   2400   function escape(value) {
   2401     return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
   2402   }
   2403 
   2404   function tag(node) {
   2405     return node.nodeName.toLowerCase();
   2406   }
   2407 
   2408   function testRe(re, lexeme) {
   2409     var match = re && re.exec(lexeme);
   2410     return match && match.index === 0;
   2411   }
   2412 
   2413   function isNotHighlighted(language) {
   2414     return noHighlightRe.test(language);
   2415   }
   2416 
   2417   function blockLanguage(block) {
   2418     var i, match, length, _class;
   2419     var classes = block.className + ' ';
   2420 
   2421     classes += block.parentNode ? block.parentNode.className : '';
   2422 
   2423     // language-* takes precedence over non-prefixed class names.
   2424     match = languagePrefixRe.exec(classes);
   2425     if (match) {
   2426       return getLanguage(match[1]) ? match[1] : 'no-highlight';
   2427     }
   2428 
   2429     classes = classes.split(/\s+/);
   2430 
   2431     for (i = 0, length = classes.length; i < length; i++) {
   2432       _class = classes[i];
   2433 
   2434       if (isNotHighlighted(_class) || getLanguage(_class)) {
   2435         return _class;
   2436       }
   2437     }
   2438   }
   2439 
   2440   function inherit(parent) {  // inherit(parent, override_obj, override_obj, ...)
   2441     var key;
   2442     var result = {};
   2443     var objects = Array.prototype.slice.call(arguments, 1);
   2444 
   2445     for (key in parent)
   2446       result[key] = parent[key];
   2447     objects.forEach(function(obj) {
   2448       for (key in obj)
   2449         result[key] = obj[key];
   2450     });
   2451     return result;
   2452   }
   2453 
   2454   /* Stream merging */
   2455 
   2456   function nodeStream(node) {
   2457     var result = [];
   2458     (function _nodeStream(node, offset) {
   2459       for (var child = node.firstChild; child; child = child.nextSibling) {
   2460         if (child.nodeType === 3)
   2461           offset += child.nodeValue.length;
   2462         else if (child.nodeType === 1) {
   2463           result.push({
   2464             event: 'start',
   2465             offset: offset,
   2466             node: child
   2467           });
   2468           offset = _nodeStream(child, offset);
   2469           // Prevent void elements from having an end tag that would actually
   2470           // double them in the output. There are more void elements in HTML
   2471           // but we list only those realistically expected in code display.
   2472           if (!tag(child).match(/br|hr|img|input/)) {
   2473             result.push({
   2474               event: 'stop',
   2475               offset: offset,
   2476               node: child
   2477             });
   2478           }
   2479         }
   2480       }
   2481       return offset;
   2482     })(node, 0);
   2483     return result;
   2484   }
   2485 
   2486   function mergeStreams(original, highlighted, value) {
   2487     var processed = 0;
   2488     var result = '';
   2489     var nodeStack = [];
   2490 
   2491     function selectStream() {
   2492       if (!original.length || !highlighted.length) {
   2493         return original.length ? original : highlighted;
   2494       }
   2495       if (original[0].offset !== highlighted[0].offset) {
   2496         return (original[0].offset < highlighted[0].offset) ? original : highlighted;
   2497       }
   2498 
   2499       /*
   2500       To avoid starting the stream just before it should stop the order is
   2501       ensured that original always starts first and closes last:
   2502 
   2503       if (event1 == 'start' && event2 == 'start')
   2504         return original;
   2505       if (event1 == 'start' && event2 == 'stop')
   2506         return highlighted;
   2507       if (event1 == 'stop' && event2 == 'start')
   2508         return original;
   2509       if (event1 == 'stop' && event2 == 'stop')
   2510         return highlighted;
   2511 
   2512       ... which is collapsed to:
   2513       */
   2514       return highlighted[0].event === 'start' ? original : highlighted;
   2515     }
   2516 
   2517     function open(node) {
   2518       function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value).replace('"', '&quot;') + '"';}
   2519       result += '<' + tag(node) + ArrayProto.map.call(node.attributes, attr_str).join('') + '>';
   2520     }
   2521 
   2522     function close(node) {
   2523       result += '</' + tag(node) + '>';
   2524     }
   2525 
   2526     function render(event) {
   2527       (event.event === 'start' ? open : close)(event.node);
   2528     }
   2529 
   2530     while (original.length || highlighted.length) {
   2531       var stream = selectStream();
   2532       result += escape(value.substring(processed, stream[0].offset));
   2533       processed = stream[0].offset;
   2534       if (stream === original) {
   2535         /*
   2536         On any opening or closing tag of the original markup we first close
   2537         the entire highlighted node stack, then render the original tag along
   2538         with all the following original tags at the same offset and then
   2539         reopen all the tags on the highlighted stack.
   2540         */
   2541         nodeStack.reverse().forEach(close);
   2542         do {
   2543           render(stream.splice(0, 1)[0]);
   2544           stream = selectStream();
   2545         } while (stream === original && stream.length && stream[0].offset === processed);
   2546         nodeStack.reverse().forEach(open);
   2547       } else {
   2548         if (stream[0].event === 'start') {
   2549           nodeStack.push(stream[0].node);
   2550         } else {
   2551           nodeStack.pop();
   2552         }
   2553         render(stream.splice(0, 1)[0]);
   2554       }
   2555     }
   2556     return result + escape(value.substr(processed));
   2557   }
   2558 
   2559   /* Initialization */
   2560 
   2561   function expand_mode(mode) {
   2562     if (mode.variants && !mode.cached_variants) {
   2563       mode.cached_variants = mode.variants.map(function(variant) {
   2564         return inherit(mode, {variants: null}, variant);
   2565       });
   2566     }
   2567     return mode.cached_variants || (mode.endsWithParent && [inherit(mode)]) || [mode];
   2568   }
   2569 
   2570   function restoreLanguageApi(obj) {
   2571     if(API_REPLACES && !obj.langApiRestored) {
   2572       obj.langApiRestored = true;
   2573       for(var key in API_REPLACES)
   2574         obj[key] && (obj[API_REPLACES[key]] = obj[key]);
   2575       (obj.contains || []).concat(obj.variants || []).forEach(restoreLanguageApi);
   2576     }
   2577   }
   2578 
   2579   function compileLanguage(language) {
   2580 
   2581     function reStr(re) {
   2582         return (re && re.source) || re;
   2583     }
   2584 
   2585     function langRe(value, global) {
   2586       return new RegExp(
   2587         reStr(value),
   2588         'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
   2589       );
   2590     }
   2591 
   2592     // joinRe logically computes regexps.join(separator), but fixes the
   2593     // backreferences so they continue to match.
   2594     function joinRe(regexps, separator) {
   2595       // backreferenceRe matches an open parenthesis or backreference. To avoid
   2596       // an incorrect parse, it additionally matches the following:
   2597       // - [...] elements, where the meaning of parentheses and escapes change
   2598       // - other escape sequences, so we do not misparse escape sequences as
   2599       //   interesting elements
   2600       // - non-matching or lookahead parentheses, which do not capture. These
   2601       //   follow the '(' with a '?'.
   2602       var backreferenceRe = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
   2603       var numCaptures = 0;
   2604       var ret = '';
   2605       for (var i = 0; i < regexps.length; i++) {
   2606         var offset = numCaptures;
   2607         var re = reStr(regexps[i]);
   2608         if (i > 0) {
   2609           ret += separator;
   2610         }
   2611         while (re.length > 0) {
   2612           var match = backreferenceRe.exec(re);
   2613           if (match == null) {
   2614             ret += re;
   2615             break;
   2616           }
   2617           ret += re.substring(0, match.index);
   2618           re = re.substring(match.index + match[0].length);
   2619           if (match[0][0] == '\\' && match[1]) {
   2620             // Adjust the backreference.
   2621             ret += '\\' + String(Number(match[1]) + offset);
   2622           } else {
   2623             ret += match[0];
   2624             if (match[0] == '(') {
   2625               numCaptures++;
   2626             }
   2627           }
   2628         }
   2629       }
   2630       return ret;
   2631     }
   2632 
   2633     function compileMode(mode, parent) {
   2634       if (mode.compiled)
   2635         return;
   2636       mode.compiled = true;
   2637 
   2638       mode.keywords = mode.keywords || mode.beginKeywords;
   2639       if (mode.keywords) {
   2640         var compiled_keywords = {};
   2641 
   2642         var flatten = function(className, str) {
   2643           if (language.case_insensitive) {
   2644             str = str.toLowerCase();
   2645           }
   2646           str.split(' ').forEach(function(kw) {
   2647             var pair = kw.split('|');
   2648             compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
   2649           });
   2650         };
   2651 
   2652         if (typeof mode.keywords === 'string') { // string
   2653           flatten('keyword', mode.keywords);
   2654         } else {
   2655           objectKeys(mode.keywords).forEach(function (className) {
   2656             flatten(className, mode.keywords[className]);
   2657           });
   2658         }
   2659         mode.keywords = compiled_keywords;
   2660       }
   2661       mode.lexemesRe = langRe(mode.lexemes || /\w+/, true);
   2662 
   2663       if (parent) {
   2664         if (mode.beginKeywords) {
   2665           mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
   2666         }
   2667         if (!mode.begin)
   2668           mode.begin = /\B|\b/;
   2669         mode.beginRe = langRe(mode.begin);
   2670         if (mode.endSameAsBegin)
   2671           mode.end = mode.begin;
   2672         if (!mode.end && !mode.endsWithParent)
   2673           mode.end = /\B|\b/;
   2674         if (mode.end)
   2675           mode.endRe = langRe(mode.end);
   2676         mode.terminator_end = reStr(mode.end) || '';
   2677         if (mode.endsWithParent && parent.terminator_end)
   2678           mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
   2679       }
   2680       if (mode.illegal)
   2681         mode.illegalRe = langRe(mode.illegal);
   2682       if (mode.relevance == null)
   2683         mode.relevance = 1;
   2684       if (!mode.contains) {
   2685         mode.contains = [];
   2686       }
   2687       mode.contains = Array.prototype.concat.apply([], mode.contains.map(function(c) {
   2688         return expand_mode(c === 'self' ? mode : c);
   2689       }));
   2690       mode.contains.forEach(function(c) {compileMode(c, mode);});
   2691 
   2692       if (mode.starts) {
   2693         compileMode(mode.starts, parent);
   2694       }
   2695 
   2696       var terminators =
   2697         mode.contains.map(function(c) {
   2698           return c.beginKeywords ? '\\.?(?:' + c.begin + ')\\.?' : c.begin;
   2699         })
   2700         .concat([mode.terminator_end, mode.illegal])
   2701         .map(reStr)
   2702         .filter(Boolean);
   2703       mode.terminators = terminators.length ? langRe(joinRe(terminators, '|'), true) : {exec: function(/*s*/) {return null;}};
   2704     }
   2705     
   2706     compileMode(language);
   2707   }
   2708 
   2709   /*
   2710   Core highlighting function. Accepts a language name, or an alias, and a
   2711   string with the code to highlight. Returns an object with the following
   2712   properties:
   2713 
   2714   - relevance (int)
   2715   - value (an HTML string with highlighting markup)
   2716 
   2717   */
   2718   function highlight(name, value, ignore_illegals, continuation) {
   2719 
   2720     function escapeRe(value) {
   2721       return new RegExp(value.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'm');
   2722     }
   2723 
   2724     function subMode(lexeme, mode) {
   2725       var i, length;
   2726 
   2727       for (i = 0, length = mode.contains.length; i < length; i++) {
   2728         if (testRe(mode.contains[i].beginRe, lexeme)) {
   2729           if (mode.contains[i].endSameAsBegin) {
   2730             mode.contains[i].endRe = escapeRe( mode.contains[i].beginRe.exec(lexeme)[0] );
   2731           }
   2732           return mode.contains[i];
   2733         }
   2734       }
   2735     }
   2736 
   2737     function endOfMode(mode, lexeme) {
   2738       if (testRe(mode.endRe, lexeme)) {
   2739         while (mode.endsParent && mode.parent) {
   2740           mode = mode.parent;
   2741         }
   2742         return mode;
   2743       }
   2744       if (mode.endsWithParent) {
   2745         return endOfMode(mode.parent, lexeme);
   2746       }
   2747     }
   2748 
   2749     function isIllegal(lexeme, mode) {
   2750       return !ignore_illegals && testRe(mode.illegalRe, lexeme);
   2751     }
   2752 
   2753     function keywordMatch(mode, match) {
   2754       var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
   2755       return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
   2756     }
   2757 
   2758     function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
   2759       var classPrefix = noPrefix ? '' : options.classPrefix,
   2760           openSpan    = '<span class="' + classPrefix,
   2761           closeSpan   = leaveOpen ? '' : spanEndTag;
   2762 
   2763       openSpan += classname + '">';
   2764 
   2765       if (!classname) return insideSpan;
   2766       return openSpan + insideSpan + closeSpan;
   2767     }
   2768 
   2769     function processKeywords() {
   2770       var keyword_match, last_index, match, result;
   2771 
   2772       if (!top.keywords)
   2773         return escape(mode_buffer);
   2774 
   2775       result = '';
   2776       last_index = 0;
   2777       top.lexemesRe.lastIndex = 0;
   2778       match = top.lexemesRe.exec(mode_buffer);
   2779 
   2780       while (match) {
   2781         result += escape(mode_buffer.substring(last_index, match.index));
   2782         keyword_match = keywordMatch(top, match);
   2783         if (keyword_match) {
   2784           relevance += keyword_match[1];
   2785           result += buildSpan(keyword_match[0], escape(match[0]));
   2786         } else {
   2787           result += escape(match[0]);
   2788         }
   2789         last_index = top.lexemesRe.lastIndex;
   2790         match = top.lexemesRe.exec(mode_buffer);
   2791       }
   2792       return result + escape(mode_buffer.substr(last_index));
   2793     }
   2794 
   2795     function processSubLanguage() {
   2796       var explicit = typeof top.subLanguage === 'string';
   2797       if (explicit && !languages[top.subLanguage]) {
   2798         return escape(mode_buffer);
   2799       }
   2800 
   2801       var result = explicit ?
   2802                    highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
   2803                    highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
   2804 
   2805       // Counting embedded language score towards the host language may be disabled
   2806       // with zeroing the containing mode relevance. Usecase in point is Markdown that
   2807       // allows XML everywhere and makes every XML snippet to have a much larger Markdown
   2808       // score.
   2809       if (top.relevance > 0) {
   2810         relevance += result.relevance;
   2811       }
   2812       if (explicit) {
   2813         continuations[top.subLanguage] = result.top;
   2814       }
   2815       return buildSpan(result.language, result.value, false, true);
   2816     }
   2817 
   2818     function processBuffer() {
   2819       result += (top.subLanguage != null ? processSubLanguage() : processKeywords());
   2820       mode_buffer = '';
   2821     }
   2822 
   2823     function startNewMode(mode) {
   2824       result += mode.className? buildSpan(mode.className, '', true): '';
   2825       top = Object.create(mode, {parent: {value: top}});
   2826     }
   2827 
   2828     function processLexeme(buffer, lexeme) {
   2829 
   2830       mode_buffer += buffer;
   2831 
   2832       if (lexeme == null) {
   2833         processBuffer();
   2834         return 0;
   2835       }
   2836 
   2837       var new_mode = subMode(lexeme, top);
   2838       if (new_mode) {
   2839         if (new_mode.skip) {
   2840           mode_buffer += lexeme;
   2841         } else {
   2842           if (new_mode.excludeBegin) {
   2843             mode_buffer += lexeme;
   2844           }
   2845           processBuffer();
   2846           if (!new_mode.returnBegin && !new_mode.excludeBegin) {
   2847             mode_buffer = lexeme;
   2848           }
   2849         }
   2850         startNewMode(new_mode, lexeme);
   2851         return new_mode.returnBegin ? 0 : lexeme.length;
   2852       }
   2853 
   2854       var end_mode = endOfMode(top, lexeme);
   2855       if (end_mode) {
   2856         var origin = top;
   2857         if (origin.skip) {
   2858           mode_buffer += lexeme;
   2859         } else {
   2860           if (!(origin.returnEnd || origin.excludeEnd)) {
   2861             mode_buffer += lexeme;
   2862           }
   2863           processBuffer();
   2864           if (origin.excludeEnd) {
   2865             mode_buffer = lexeme;
   2866           }
   2867         }
   2868         do {
   2869           if (top.className) {
   2870             result += spanEndTag;
   2871           }
   2872           if (!top.skip && !top.subLanguage) {
   2873             relevance += top.relevance;
   2874           }
   2875           top = top.parent;
   2876         } while (top !== end_mode.parent);
   2877         if (end_mode.starts) {
   2878           if (end_mode.endSameAsBegin) {
   2879             end_mode.starts.endRe = end_mode.endRe;
   2880           }
   2881           startNewMode(end_mode.starts, '');
   2882         }
   2883         return origin.returnEnd ? 0 : lexeme.length;
   2884       }
   2885 
   2886       if (isIllegal(lexeme, top))
   2887         throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
   2888 
   2889       /*
   2890       Parser should not reach this point as all types of lexemes should be caught
   2891       earlier, but if it does due to some bug make sure it advances at least one
   2892       character forward to prevent infinite looping.
   2893       */
   2894       mode_buffer += lexeme;
   2895       return lexeme.length || 1;
   2896     }
   2897 
   2898     var language = getLanguage(name);
   2899     if (!language) {
   2900       throw new Error('Unknown language: "' + name + '"');
   2901     }
   2902 
   2903     compileLanguage(language);
   2904     var top = continuation || language;
   2905     var continuations = {}; // keep continuations for sub-languages
   2906     var result = '', current;
   2907     for(current = top; current !== language; current = current.parent) {
   2908       if (current.className) {
   2909         result = buildSpan(current.className, '', true) + result;
   2910       }
   2911     }
   2912     var mode_buffer = '';
   2913     var relevance = 0;
   2914     try {
   2915       var match, count, index = 0;
   2916       while (true) {
   2917         top.terminators.lastIndex = index;
   2918         match = top.terminators.exec(value);
   2919         if (!match)
   2920           break;
   2921         count = processLexeme(value.substring(index, match.index), match[0]);
   2922         index = match.index + count;
   2923       }
   2924       processLexeme(value.substr(index));
   2925       for(current = top; current.parent; current = current.parent) { // close dangling modes
   2926         if (current.className) {
   2927           result += spanEndTag;
   2928         }
   2929       }
   2930       return {
   2931         relevance: relevance,
   2932         value: result,
   2933         language: name,
   2934         top: top
   2935       };
   2936     } catch (e) {
   2937       if (e.message && e.message.indexOf('Illegal') !== -1) {
   2938         return {
   2939           relevance: 0,
   2940           value: escape(value)
   2941         };
   2942       } else {
   2943         throw e;
   2944       }
   2945     }
   2946   }
   2947 
   2948   /*
   2949   Highlighting with language detection. Accepts a string with the code to
   2950   highlight. Returns an object with the following properties:
   2951 
   2952   - language (detected language)
   2953   - relevance (int)
   2954   - value (an HTML string with highlighting markup)
   2955   - second_best (object with the same structure for second-best heuristically
   2956     detected language, may be absent)
   2957 
   2958   */
   2959   function highlightAuto(text, languageSubset) {
   2960     languageSubset = languageSubset || options.languages || objectKeys(languages);
   2961     var result = {
   2962       relevance: 0,
   2963       value: escape(text)
   2964     };
   2965     var second_best = result;
   2966     languageSubset.filter(getLanguage).filter(autoDetection).forEach(function(name) {
   2967       var current = highlight(name, text, false);
   2968       current.language = name;
   2969       if (current.relevance > second_best.relevance) {
   2970         second_best = current;
   2971       }
   2972       if (current.relevance > result.relevance) {
   2973         second_best = result;
   2974         result = current;
   2975       }
   2976     });
   2977     if (second_best.language) {
   2978       result.second_best = second_best;
   2979     }
   2980     return result;
   2981   }
   2982 
   2983   /*
   2984   Post-processing of the highlighted markup:
   2985 
   2986   - replace TABs with something more useful
   2987   - replace real line-breaks with '<br>' for non-pre containers
   2988 
   2989   */
   2990   function fixMarkup(value) {
   2991     return !(options.tabReplace || options.useBR)
   2992       ? value
   2993       : value.replace(fixMarkupRe, function(match, p1) {
   2994           if (options.useBR && match === '\n') {
   2995             return '<br>';
   2996           } else if (options.tabReplace) {
   2997             return p1.replace(/\t/g, options.tabReplace);
   2998           }
   2999           return '';
   3000       });
   3001   }
   3002 
   3003   function buildClassName(prevClassName, currentLang, resultLang) {
   3004     var language = currentLang ? aliases[currentLang] : resultLang,
   3005         result   = [prevClassName.trim()];
   3006 
   3007     if (!prevClassName.match(/\bhljs\b/)) {
   3008       result.push('hljs');
   3009     }
   3010 
   3011     if (prevClassName.indexOf(language) === -1) {
   3012       result.push(language);
   3013     }
   3014 
   3015     return result.join(' ').trim();
   3016   }
   3017 
   3018   /*
   3019   Applies highlighting to a DOM node containing code. Accepts a DOM node and
   3020   two optional parameters for fixMarkup.
   3021   */
   3022   function highlightBlock(block) {
   3023     var node, originalStream, result, resultNode, text;
   3024     var language = blockLanguage(block);
   3025 
   3026     if (isNotHighlighted(language))
   3027         return;
   3028 
   3029     if (options.useBR) {
   3030       node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
   3031       node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
   3032     } else {
   3033       node = block;
   3034     }
   3035     text = node.textContent;
   3036     result = language ? highlight(language, text, true) : highlightAuto(text);
   3037 
   3038     originalStream = nodeStream(node);
   3039     if (originalStream.length) {
   3040       resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
   3041       resultNode.innerHTML = result.value;
   3042       result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
   3043     }
   3044     result.value = fixMarkup(result.value);
   3045 
   3046     block.innerHTML = result.value;
   3047     block.className = buildClassName(block.className, language, result.language);
   3048     block.result = {
   3049       language: result.language,
   3050       re: result.relevance
   3051     };
   3052     if (result.second_best) {
   3053       block.second_best = {
   3054         language: result.second_best.language,
   3055         re: result.second_best.relevance
   3056       };
   3057     }
   3058   }
   3059 
   3060   /*
   3061   Updates highlight.js global options with values passed in the form of an object.
   3062   */
   3063   function configure(user_options) {
   3064     options = inherit(options, user_options);
   3065   }
   3066 
   3067   /*
   3068   Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
   3069   */
   3070   function initHighlighting() {
   3071     if (initHighlighting.called)
   3072       return;
   3073     initHighlighting.called = true;
   3074 
   3075     var blocks = document.querySelectorAll('pre code');
   3076     ArrayProto.forEach.call(blocks, highlightBlock);
   3077   }
   3078 
   3079   /*
   3080   Attaches highlighting to the page load event.
   3081   */
   3082   function initHighlightingOnLoad() {
   3083     addEventListener('DOMContentLoaded', initHighlighting, false);
   3084     addEventListener('load', initHighlighting, false);
   3085   }
   3086 
   3087   function registerLanguage(name, language) {
   3088     var lang = languages[name] = language(hljs);
   3089     restoreLanguageApi(lang);
   3090     if (lang.aliases) {
   3091       lang.aliases.forEach(function(alias) {aliases[alias] = name;});
   3092     }
   3093   }
   3094 
   3095   function listLanguages() {
   3096     return objectKeys(languages);
   3097   }
   3098 
   3099   function getLanguage(name) {
   3100     name = (name || '').toLowerCase();
   3101     return languages[name] || languages[aliases[name]];
   3102   }
   3103 
   3104   function autoDetection(name) {
   3105     var lang = getLanguage(name);
   3106     return lang && !lang.disableAutodetect;
   3107   }
   3108 
   3109   /* Interface definition */
   3110 
   3111   hljs.highlight = highlight;
   3112   hljs.highlightAuto = highlightAuto;
   3113   hljs.fixMarkup = fixMarkup;
   3114   hljs.highlightBlock = highlightBlock;
   3115   hljs.configure = configure;
   3116   hljs.initHighlighting = initHighlighting;
   3117   hljs.initHighlightingOnLoad = initHighlightingOnLoad;
   3118   hljs.registerLanguage = registerLanguage;
   3119   hljs.listLanguages = listLanguages;
   3120   hljs.getLanguage = getLanguage;
   3121   hljs.autoDetection = autoDetection;
   3122   hljs.inherit = inherit;
   3123 
   3124   // Common regexps
   3125   hljs.IDENT_RE = '[a-zA-Z]\\w*';
   3126   hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
   3127   hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
   3128   hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
   3129   hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
   3130   hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
   3131 
   3132   // Common modes
   3133   hljs.BACKSLASH_ESCAPE = {
   3134     begin: '\\\\[\\s\\S]', relevance: 0
   3135   };
   3136   hljs.APOS_STRING_MODE = {
   3137     className: 'string',
   3138     begin: '\'', end: '\'',
   3139     illegal: '\\n',
   3140     contains: [hljs.BACKSLASH_ESCAPE]
   3141   };
   3142   hljs.QUOTE_STRING_MODE = {
   3143     className: 'string',
   3144     begin: '"', end: '"',
   3145     illegal: '\\n',
   3146     contains: [hljs.BACKSLASH_ESCAPE]
   3147   };
   3148   hljs.PHRASAL_WORDS_MODE = {
   3149     begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
   3150   };
   3151   hljs.COMMENT = function (begin, end, inherits) {
   3152     var mode = hljs.inherit(
   3153       {
   3154         className: 'comment',
   3155         begin: begin, end: end,
   3156         contains: []
   3157       },
   3158       inherits || {}
   3159     );
   3160     mode.contains.push(hljs.PHRASAL_WORDS_MODE);
   3161     mode.contains.push({
   3162       className: 'doctag',
   3163       begin: '(?:TODO|FIXME|NOTE|BUG|XXX):',
   3164       relevance: 0
   3165     });
   3166     return mode;
   3167   };
   3168   hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
   3169   hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
   3170   hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
   3171   hljs.NUMBER_MODE = {
   3172     className: 'number',
   3173     begin: hljs.NUMBER_RE,
   3174     relevance: 0
   3175   };
   3176   hljs.C_NUMBER_MODE = {
   3177     className: 'number',
   3178     begin: hljs.C_NUMBER_RE,
   3179     relevance: 0
   3180   };
   3181   hljs.BINARY_NUMBER_MODE = {
   3182     className: 'number',
   3183     begin: hljs.BINARY_NUMBER_RE,
   3184     relevance: 0
   3185   };
   3186   hljs.CSS_NUMBER_MODE = {
   3187     className: 'number',
   3188     begin: hljs.NUMBER_RE + '(' +
   3189       '%|em|ex|ch|rem'  +
   3190       '|vw|vh|vmin|vmax' +
   3191       '|cm|mm|in|pt|pc|px' +
   3192       '|deg|grad|rad|turn' +
   3193       '|s|ms' +
   3194       '|Hz|kHz' +
   3195       '|dpi|dpcm|dppx' +
   3196       ')?',
   3197     relevance: 0
   3198   };
   3199   hljs.REGEXP_MODE = {
   3200     className: 'regexp',
   3201     begin: /\//, end: /\/[gimuy]*/,
   3202     illegal: /\n/,
   3203     contains: [
   3204       hljs.BACKSLASH_ESCAPE,
   3205       {
   3206         begin: /\[/, end: /\]/,
   3207         relevance: 0,
   3208         contains: [hljs.BACKSLASH_ESCAPE]
   3209       }
   3210     ]
   3211   };
   3212   hljs.TITLE_MODE = {
   3213     className: 'title',
   3214     begin: hljs.IDENT_RE,
   3215     relevance: 0
   3216   };
   3217   hljs.UNDERSCORE_TITLE_MODE = {
   3218     className: 'title',
   3219     begin: hljs.UNDERSCORE_IDENT_RE,
   3220     relevance: 0
   3221   };
   3222   hljs.METHOD_GUARD = {
   3223     // excludes method names from keyword processing
   3224     begin: '\\.\\s*' + hljs.UNDERSCORE_IDENT_RE,
   3225     relevance: 0
   3226   };
   3227 
   3228   return hljs;
   3229 }));
   3230 ;
   3231       return exports;
   3232     }())
   3233   , languages = [{name:"cpp",create:/*
   3234 Language: C++
   3235 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
   3236 Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>, Sam Wu <samsam2310@gmail.com>, Jordi Petit <jordi.petit@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, Google Inc. (David Benjamin) <davidben@google.com>
   3237 Category: common, system
   3238 */
   3239 
   3240 function(hljs) {
   3241   var CPP_PRIMITIVE_TYPES = {
   3242     className: 'keyword',
   3243     begin: '\\b[a-z\\d_]*_t\\b'
   3244   };
   3245 
   3246   var STRINGS = {
   3247     className: 'string',
   3248     variants: [
   3249       {
   3250         begin: '(u8?|U|L)?"', end: '"',
   3251         illegal: '\\n',
   3252         contains: [hljs.BACKSLASH_ESCAPE]
   3253       },
   3254       { begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\((?:.|\n)*?\)\1"/ },
   3255       {
   3256         begin: '\'\\\\?.', end: '\'',
   3257         illegal: '.'
   3258       }
   3259     ]
   3260   };
   3261 
   3262   var NUMBERS = {
   3263     className: 'number',
   3264     variants: [
   3265       { begin: '\\b(0b[01\']+)' },
   3266       { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
   3267       { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
   3268     ],
   3269     relevance: 0
   3270   };
   3271 
   3272   var PREPROCESSOR =       {
   3273     className: 'meta',
   3274     begin: /#\s*[a-z]+\b/, end: /$/,
   3275     keywords: {
   3276       'meta-keyword':
   3277         'if else elif endif define undef warning error line ' +
   3278         'pragma ifdef ifndef include'
   3279     },
   3280     contains: [
   3281       {
   3282         begin: /\\\n/, relevance: 0
   3283       },
   3284       hljs.inherit(STRINGS, {className: 'meta-string'}),
   3285       {
   3286         className: 'meta-string',
   3287         begin: /<[^\n>]*>/, end: /$/,
   3288         illegal: '\\n',
   3289       },
   3290       hljs.C_LINE_COMMENT_MODE,
   3291       hljs.C_BLOCK_COMMENT_MODE
   3292     ]
   3293   };
   3294 
   3295   var FUNCTION_TITLE = hljs.IDENT_RE + '\\s*\\(';
   3296 
   3297   var CPP_KEYWORDS = {
   3298     keyword: 'int float while private char catch import module export virtual operator sizeof ' +
   3299       'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +
   3300       'unsigned long volatile static protected bool template mutable if public friend ' +
   3301       'do goto auto void enum else break extern using asm case typeid ' +
   3302       'short reinterpret_cast|10 default double register explicit signed typename try this ' +
   3303       'switch continue inline delete alignof constexpr decltype ' +
   3304       'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
   3305       'atomic_bool atomic_char atomic_schar ' +
   3306       'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
   3307       'atomic_ullong new throw return ' +
   3308       'and or not',
   3309     built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
   3310       'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
   3311       'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
   3312       'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
   3313       'fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
   3314       'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
   3315       'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
   3316       'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
   3317       'vfprintf vprintf vsprintf endl initializer_list unique_ptr',
   3318     literal: 'true false nullptr NULL'
   3319   };
   3320 
   3321   var EXPRESSION_CONTAINS = [
   3322     CPP_PRIMITIVE_TYPES,
   3323     hljs.C_LINE_COMMENT_MODE,
   3324     hljs.C_BLOCK_COMMENT_MODE,
   3325     NUMBERS,
   3326     STRINGS
   3327   ];
   3328 
   3329   return {
   3330     aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx'],
   3331     keywords: CPP_KEYWORDS,
   3332     illegal: '</',
   3333     contains: EXPRESSION_CONTAINS.concat([
   3334       PREPROCESSOR,
   3335       {
   3336         begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
   3337         keywords: CPP_KEYWORDS,
   3338         contains: ['self', CPP_PRIMITIVE_TYPES]
   3339       },
   3340       {
   3341         begin: hljs.IDENT_RE + '::',
   3342         keywords: CPP_KEYWORDS
   3343       },
   3344       {
   3345         // This mode covers expression context where we can't expect a function
   3346         // definition and shouldn't highlight anything that looks like one:
   3347         // `return some()`, `else if()`, `(x*sum(1, 2))`
   3348         variants: [
   3349           {begin: /=/, end: /;/},
   3350           {begin: /\(/, end: /\)/},
   3351           {beginKeywords: 'new throw return else', end: /;/}
   3352         ],
   3353         keywords: CPP_KEYWORDS,
   3354         contains: EXPRESSION_CONTAINS.concat([
   3355           {
   3356             begin: /\(/, end: /\)/,
   3357             keywords: CPP_KEYWORDS,
   3358             contains: EXPRESSION_CONTAINS.concat(['self']),
   3359             relevance: 0
   3360           }
   3361         ]),
   3362         relevance: 0
   3363       },
   3364       {
   3365         className: 'function',
   3366         begin: '(' + hljs.IDENT_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
   3367         returnBegin: true, end: /[{;=]/,
   3368         excludeEnd: true,
   3369         keywords: CPP_KEYWORDS,
   3370         illegal: /[^\w\s\*&]/,
   3371         contains: [
   3372           {
   3373             begin: FUNCTION_TITLE, returnBegin: true,
   3374             contains: [hljs.TITLE_MODE],
   3375             relevance: 0
   3376           },
   3377           {
   3378             className: 'params',
   3379             begin: /\(/, end: /\)/,
   3380             keywords: CPP_KEYWORDS,
   3381             relevance: 0,
   3382             contains: [
   3383               hljs.C_LINE_COMMENT_MODE,
   3384               hljs.C_BLOCK_COMMENT_MODE,
   3385               STRINGS,
   3386               NUMBERS,
   3387               CPP_PRIMITIVE_TYPES,
   3388               // Count matching parentheses.
   3389               {
   3390                 begin: /\(/, end: /\)/,
   3391                 keywords: CPP_KEYWORDS,
   3392                 relevance: 0,
   3393                 contains: [
   3394                   'self',
   3395                   hljs.C_LINE_COMMENT_MODE,
   3396                   hljs.C_BLOCK_COMMENT_MODE,
   3397                   STRINGS,
   3398                   NUMBERS,
   3399                   CPP_PRIMITIVE_TYPES
   3400                 ]
   3401               }
   3402             ]
   3403           },
   3404           hljs.C_LINE_COMMENT_MODE,
   3405           hljs.C_BLOCK_COMMENT_MODE,
   3406           PREPROCESSOR
   3407         ]
   3408       },
   3409       {
   3410         className: 'class',
   3411         beginKeywords: 'class struct', end: /[{;:]/,
   3412         contains: [
   3413           {begin: /</, end: />/, contains: ['self']}, // skip generic stuff
   3414           hljs.TITLE_MODE
   3415         ]
   3416       }
   3417     ]),
   3418     exports: {
   3419       preprocessor: PREPROCESSOR,
   3420       strings: STRINGS,
   3421       keywords: CPP_KEYWORDS
   3422     }
   3423   };
   3424 }
   3425 },{name:"1c",create:/*
   3426 Language: 1C:Enterprise (v7, v8)
   3427 Author: Stanislav Belov <stbelov@gmail.com>
   3428 Description: built-in language 1C:Enterprise (v7, v8)
   3429 Category: enterprise
   3430 */
   3431 
   3432 function(hljs){
   3433 
   3434   // общий паттерн для определения идентификаторов
   3435   var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';
   3436   
   3437   // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword
   3438   var v7_keywords =
   3439   'далее ';
   3440 
   3441   // v8 ключевые слова ==> keyword
   3442   var v8_keywords =
   3443   'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +
   3444   'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';
   3445 
   3446   // keyword : ключевые слова
   3447   var KEYWORD = v7_keywords + v8_keywords;
   3448   
   3449   // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
   3450   var v7_meta_keywords =
   3451   'загрузитьизфайла ';
   3452 
   3453   // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword
   3454   var v8_meta_keywords =
   3455   'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +
   3456   'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +
   3457   'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
   3458 
   3459   // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
   3460   var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
   3461 
   3462   // v7 системные константы ==> built_in
   3463   var v7_system_constants =
   3464   'разделительстраниц разделительстрок символтабуляции ';
   3465   
   3466   // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in
   3467   var v7_global_context_methods =
   3468   'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +
   3469   'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +
   3470   'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +
   3471   'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +
   3472   'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +
   3473   'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +
   3474   'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +
   3475   'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +
   3476   'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +
   3477   'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +
   3478   'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';
   3479   
   3480   // v8 методы глобального контекста ==> built_in
   3481   var v8_global_context_methods =
   3482   'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +
   3483   'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +
   3484   'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +
   3485   'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +
   3486   'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +
   3487   'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +
   3488   'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +
   3489   'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +
   3490   'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +
   3491   'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +
   3492   'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +
   3493   'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +
   3494   'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +
   3495   'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +
   3496   'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +
   3497   'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +
   3498   'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +
   3499   'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +
   3500   'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +
   3501   'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +
   3502   'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +
   3503   'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +
   3504   'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +
   3505   'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +
   3506   'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +
   3507   'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +
   3508   'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +
   3509   'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +
   3510   'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +
   3511   'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +
   3512   'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +
   3513   'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +
   3514   'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +
   3515   'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +
   3516   'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +
   3517   'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +
   3518   'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +
   3519   'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +
   3520   'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +
   3521   'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +
   3522   'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +
   3523   'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +
   3524   'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +
   3525   'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +
   3526   'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +
   3527   'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +
   3528   'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +
   3529   'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +
   3530   'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +
   3531   'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +
   3532   'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +
   3533   'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +
   3534   'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +
   3535   'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +
   3536   'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +
   3537   'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +
   3538   'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+
   3539   'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +
   3540   'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +
   3541   'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +
   3542   'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +
   3543   'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +
   3544   'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +
   3545   'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +
   3546   'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +
   3547   'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +
   3548   'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +
   3549   'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +
   3550   'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +
   3551   'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +
   3552   'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +
   3553   'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';
   3554 
   3555   // v8 свойства глобального контекста ==> built_in
   3556   var v8_global_context_property =
   3557   'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +
   3558   'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +
   3559   'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +
   3560   'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +
   3561   'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +
   3562   'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +
   3563   'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +
   3564   'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +
   3565   'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +
   3566   'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +
   3567   'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';
   3568 
   3569   // built_in : встроенные или библиотечные объекты (константы, классы, функции)
   3570   var BUILTIN =
   3571   v7_system_constants +
   3572   v7_global_context_methods + v8_global_context_methods +
   3573   v8_global_context_property;
   3574   
   3575   // v8 системные наборы значений ==> class
   3576   var v8_system_sets_of_values =
   3577   'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';
   3578 
   3579   // v8 системные перечисления - интерфейсные ==> class
   3580   var v8_system_enums_interface =
   3581   'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +
   3582   'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +
   3583   'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +
   3584   'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +
   3585   'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +
   3586   'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +
   3587   'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +
   3588   'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +
   3589   'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +
   3590   'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +
   3591   'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +
   3592   'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +
   3593   'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +
   3594   'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +
   3595   'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +
   3596   'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +
   3597   'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +
   3598   'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +
   3599   'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +
   3600   'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +
   3601   'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +
   3602   'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +
   3603   'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +
   3604   'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +
   3605   'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +
   3606   'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +
   3607   'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +
   3608   'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +
   3609   'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +
   3610   'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +
   3611   'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +
   3612   'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +
   3613   'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +
   3614   'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +
   3615   'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +
   3616   'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +
   3617   'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +
   3618   'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +
   3619   'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +
   3620   'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +
   3621   'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +
   3622   'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +
   3623   'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +
   3624   'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +
   3625   'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +
   3626   'форматкартинки ширинаподчиненныхэлементовформы ';
   3627 
   3628   // v8 системные перечисления - свойства прикладных объектов ==> class
   3629   var v8_system_enums_objects_properties =
   3630   'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +
   3631   'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +
   3632   'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';
   3633 
   3634   // v8 системные перечисления - планы обмена ==> class
   3635   var v8_system_enums_exchange_plans =
   3636   'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';
   3637 
   3638   // v8 системные перечисления - табличный документ ==> class
   3639   var v8_system_enums_tabular_document =
   3640   'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +
   3641   'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +
   3642   'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +
   3643   'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +
   3644   'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +
   3645   'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +
   3646   'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';
   3647 
   3648   // v8 системные перечисления - планировщик ==> class
   3649   var v8_system_enums_sheduler =
   3650   'отображениевремениэлементовпланировщика ';
   3651 
   3652   // v8 системные перечисления - форматированный документ ==> class
   3653   var v8_system_enums_formatted_document =
   3654   'типфайлаформатированногодокумента ';
   3655 
   3656   // v8 системные перечисления - запрос ==> class
   3657   var v8_system_enums_query =
   3658   'обходрезультатазапроса типзаписизапроса ';
   3659 
   3660   // v8 системные перечисления - построитель отчета ==> class
   3661   var v8_system_enums_report_builder =
   3662   'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';
   3663 
   3664   // v8 системные перечисления - работа с файлами ==> class
   3665   var v8_system_enums_files =
   3666   'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';
   3667 
   3668   // v8 системные перечисления - построитель запроса ==> class
   3669   var v8_system_enums_query_builder =
   3670   'типизмеренияпостроителязапроса ';
   3671 
   3672   // v8 системные перечисления - анализ данных ==> class
   3673   var v8_system_enums_data_analysis =
   3674   'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +
   3675   'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +
   3676   'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +
   3677   'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +
   3678   'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +
   3679   'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';
   3680 
   3681   // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class
   3682   var v8_system_enums_xml_json_xs_dom_xdto_ws =
   3683   'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +
   3684   'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +
   3685   'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +
   3686   'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +
   3687   'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +
   3688   'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +
   3689   'форматдатыjson экранированиесимволовjson ';
   3690 
   3691   // v8 системные перечисления - система компоновки данных ==> class
   3692   var v8_system_enums_data_composition_system =
   3693   'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +
   3694   'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +
   3695   'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +
   3696   'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +
   3697   'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +
   3698   'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +
   3699   'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +
   3700   'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +
   3701   'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +
   3702   'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+
   3703   'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +
   3704   'использованиеусловногооформлениякомпоновкиданных ';
   3705 
   3706   // v8 системные перечисления - почта ==> class
   3707   var v8_system_enums_email =
   3708   'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +
   3709   'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +
   3710   'статусразборапочтовогосообщения ';
   3711 
   3712   // v8 системные перечисления - журнал регистрации ==> class
   3713   var v8_system_enums_logbook =
   3714   'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';
   3715 
   3716   // v8 системные перечисления - криптография ==> class
   3717   var v8_system_enums_cryptography =
   3718   'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +
   3719   'типхранилищасертификатовкриптографии ';
   3720 
   3721   // v8 системные перечисления - ZIP ==> class
   3722   var v8_system_enums_zip =
   3723   'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +
   3724   'режимсохраненияпутейzip уровеньсжатияzip ';
   3725 
   3726   // v8 системные перечисления - 
   3727   // Блокировка данных, Фоновые задания, Автоматизированное тестирование,
   3728   // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class
   3729   var v8_system_enums_other =
   3730   'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +
   3731   'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';
   3732 
   3733   // v8 системные перечисления - схема запроса ==> class
   3734   var v8_system_enums_request_schema =
   3735   'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +
   3736   'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';
   3737 
   3738   // v8 системные перечисления - свойства объектов метаданных ==> class
   3739   var v8_system_enums_properties_of_metadata_objects =
   3740   'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +
   3741   'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +
   3742   'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +
   3743   'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +
   3744   'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +
   3745   'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +
   3746   'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +
   3747   'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +
   3748   'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +
   3749   'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+
   3750   'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +
   3751   'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +
   3752   'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +
   3753   'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +
   3754   'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +
   3755   'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +
   3756   'типномерадокумента типномеразадачи типформы удалениедвижений ';
   3757 
   3758   // v8 системные перечисления - разные ==> class
   3759   var v8_system_enums_differents =
   3760   'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +
   3761   'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +
   3762   'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +
   3763   'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +
   3764   'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +
   3765   'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +
   3766   'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +
   3767   'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +
   3768   'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';
   3769 
   3770   // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)
   3771   var CLASS =
   3772   v8_system_sets_of_values +
   3773   v8_system_enums_interface +
   3774   v8_system_enums_objects_properties +
   3775   v8_system_enums_exchange_plans +
   3776   v8_system_enums_tabular_document +
   3777   v8_system_enums_sheduler +
   3778   v8_system_enums_formatted_document +
   3779   v8_system_enums_query +
   3780   v8_system_enums_report_builder +
   3781   v8_system_enums_files +
   3782   v8_system_enums_query_builder +
   3783   v8_system_enums_data_analysis +
   3784   v8_system_enums_xml_json_xs_dom_xdto_ws +
   3785   v8_system_enums_data_composition_system +
   3786   v8_system_enums_email +
   3787   v8_system_enums_logbook +
   3788   v8_system_enums_cryptography +
   3789   v8_system_enums_zip +
   3790   v8_system_enums_other +
   3791   v8_system_enums_request_schema +
   3792   v8_system_enums_properties_of_metadata_objects +
   3793   v8_system_enums_differents;
   3794 
   3795   // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type
   3796   var v8_shared_object =
   3797   'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +
   3798   'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +
   3799   'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +
   3800   'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +
   3801   'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +
   3802   'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +
   3803   'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +
   3804   'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +
   3805   'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +
   3806   'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +
   3807   'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +
   3808   'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +
   3809   'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +
   3810   'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +
   3811   'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +
   3812   'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +
   3813   'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +
   3814   'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +
   3815   'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +
   3816   'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +
   3817   'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +
   3818   'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +
   3819   'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +
   3820   'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +
   3821   'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +
   3822   'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +
   3823   'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +
   3824   'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +
   3825   'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +
   3826   'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +
   3827   'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +
   3828   'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +
   3829   'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +
   3830   'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +
   3831   'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';
   3832 
   3833   // v8 универсальные коллекции значений ==> type
   3834   var v8_universal_collection =
   3835   'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +
   3836   'фиксированноесоответствие фиксированныймассив ';
   3837 
   3838   // type : встроенные типы
   3839   var TYPE =
   3840   v8_shared_object +
   3841   v8_universal_collection;
   3842 
   3843   // literal : примитивные типы
   3844   var LITERAL = 'null истина ложь неопределено';
   3845   
   3846   // number : числа
   3847   var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);
   3848 
   3849   // string : строки
   3850   var STRINGS = {
   3851     className: 'string',
   3852     begin: '"|\\|', end: '"|$',
   3853     contains: [{begin: '""'}]
   3854   };
   3855 
   3856   // number : даты
   3857   var DATE = {
   3858     begin: "'", end: "'", excludeBegin: true, excludeEnd: true,
   3859     contains: [
   3860       {
   3861         className: 'number',
   3862         begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}'
   3863       }
   3864     ]
   3865   };
   3866   
   3867   // comment : комментарии
   3868   var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);
   3869   
   3870   // meta : инструкции препроцессора, директивы компиляции
   3871   var META = {
   3872     className: 'meta',
   3873     lexemes: UNDERSCORE_IDENT_RE,
   3874     begin: '#|&', end: '$',
   3875     keywords: {'meta-keyword': KEYWORD + METAKEYWORD},
   3876     contains: [
   3877       COMMENTS
   3878     ]
   3879   };
   3880   
   3881   // symbol : метка goto
   3882   var SYMBOL = {
   3883     className: 'symbol',
   3884     begin: '~', end: ';|:', excludeEnd: true
   3885   };  
   3886   
   3887   // function : объявление процедур и функций
   3888   var FUNCTION = {
   3889     className: 'function',
   3890     lexemes: UNDERSCORE_IDENT_RE,
   3891     variants: [
   3892       {begin: 'процедура|функция', end: '\\)', keywords: 'процедура функция'},
   3893       {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}
   3894     ],
   3895     contains: [
   3896       {
   3897         begin: '\\(', end: '\\)', endsParent : true,
   3898         contains: [
   3899           {
   3900             className: 'params',
   3901             lexemes: UNDERSCORE_IDENT_RE,
   3902             begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,
   3903             keywords: {
   3904               keyword: 'знач',
   3905               literal: LITERAL
   3906             },
   3907             contains: [
   3908               NUMBERS,
   3909               STRINGS,
   3910               DATE
   3911             ]
   3912           },
   3913           COMMENTS
   3914         ]
   3915       },
   3916       hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})
   3917     ]
   3918   };
   3919 
   3920   return {
   3921     case_insensitive: true,
   3922     lexemes: UNDERSCORE_IDENT_RE,
   3923     keywords: {
   3924       keyword: KEYWORD,
   3925       built_in: BUILTIN,
   3926       class: CLASS,
   3927       type: TYPE,
   3928       literal: LITERAL
   3929     },
   3930     contains: [
   3931       META,
   3932       FUNCTION,
   3933       COMMENTS,
   3934       SYMBOL,
   3935       NUMBERS,
   3936       STRINGS,
   3937       DATE
   3938     ]  
   3939   }
   3940 }},{name:"abnf",create:/*
   3941 Language: Augmented Backus-Naur Form
   3942 Author: Alex McKibben <alex@nullscope.net>
   3943 */
   3944 
   3945 function(hljs) {
   3946     var regexes = {
   3947         ruleDeclaration: "^[a-zA-Z][a-zA-Z0-9-]*",
   3948         unexpectedChars: "[!@#$^&',?+~`|:]"
   3949     };
   3950 
   3951     var keywords = [
   3952         "ALPHA",
   3953         "BIT",
   3954         "CHAR",
   3955         "CR",
   3956         "CRLF",
   3957         "CTL",
   3958         "DIGIT",
   3959         "DQUOTE",
   3960         "HEXDIG",
   3961         "HTAB",
   3962         "LF",
   3963         "LWSP",
   3964         "OCTET",
   3965         "SP",
   3966         "VCHAR",
   3967         "WSP"
   3968     ];
   3969 
   3970     var commentMode = hljs.COMMENT(";", "$");
   3971 
   3972     var terminalBinaryMode = {
   3973         className: "symbol",
   3974         begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/
   3975     };
   3976 
   3977     var terminalDecimalMode = {
   3978         className: "symbol",
   3979         begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/
   3980     };
   3981 
   3982     var terminalHexadecimalMode = {
   3983         className: "symbol",
   3984         begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/,
   3985     };
   3986 
   3987     var caseSensitivityIndicatorMode = {
   3988         className: "symbol",
   3989         begin: /%[si]/
   3990     };
   3991 
   3992     var ruleDeclarationMode = {
   3993         begin: regexes.ruleDeclaration + '\\s*=',
   3994         returnBegin: true,
   3995         end: /=/,
   3996         relevance: 0,
   3997         contains: [{className: "attribute", begin: regexes.ruleDeclaration}]
   3998     };
   3999 
   4000     return {
   4001       illegal: regexes.unexpectedChars,
   4002       keywords: keywords.join(" "),
   4003       contains: [
   4004           ruleDeclarationMode,
   4005           commentMode,
   4006           terminalBinaryMode,
   4007           terminalDecimalMode,
   4008           terminalHexadecimalMode,
   4009           caseSensitivityIndicatorMode,
   4010           hljs.QUOTE_STRING_MODE,
   4011           hljs.NUMBER_MODE
   4012       ]
   4013     };
   4014 }
   4015 },{name:"accesslog",create:/*
   4016  Language: Access log
   4017  Author: Oleg Efimov <efimovov@gmail.com>
   4018  Description: Apache/Nginx Access Logs
   4019  */
   4020 
   4021 function(hljs) {
   4022   return {
   4023     contains: [
   4024       // IP
   4025       {
   4026         className: 'number',
   4027         begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
   4028       },
   4029       // Other numbers
   4030       {
   4031         className: 'number',
   4032         begin: '\\b\\d+\\b',
   4033         relevance: 0
   4034       },
   4035       // Requests
   4036       {
   4037         className: 'string',
   4038         begin: '"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)', end: '"',
   4039         keywords: 'GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE',
   4040         illegal: '\\n',
   4041         relevance: 10
   4042       },
   4043       // Dates
   4044       {
   4045         className: 'string',
   4046         begin: /\[/, end: /\]/,
   4047         illegal: '\\n'
   4048       },
   4049       // Strings
   4050       {
   4051         className: 'string',
   4052         begin: '"', end: '"',
   4053         illegal: '\\n'
   4054       }
   4055     ]
   4056   };
   4057 }
   4058 },{name:"actionscript",create:/*
   4059 Language: ActionScript
   4060 Author: Alexander Myadzel <myadzel@gmail.com>
   4061 Category: scripting
   4062 */
   4063 
   4064 function(hljs) {
   4065   var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
   4066   var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
   4067 
   4068   var AS3_REST_ARG_MODE = {
   4069     className: 'rest_arg',
   4070     begin: '[.]{3}', end: IDENT_RE,
   4071     relevance: 10
   4072   };
   4073 
   4074   return {
   4075     aliases: ['as'],
   4076     keywords: {
   4077       keyword: 'as break case catch class const continue default delete do dynamic each ' +
   4078         'else extends final finally for function get if implements import in include ' +
   4079         'instanceof interface internal is namespace native new override package private ' +
   4080         'protected public return set static super switch this throw try typeof use var void ' +
   4081         'while with',
   4082       literal: 'true false null undefined'
   4083     },
   4084     contains: [
   4085       hljs.APOS_STRING_MODE,
   4086       hljs.QUOTE_STRING_MODE,
   4087       hljs.C_LINE_COMMENT_MODE,
   4088       hljs.C_BLOCK_COMMENT_MODE,
   4089       hljs.C_NUMBER_MODE,
   4090       {
   4091         className: 'class',
   4092         beginKeywords: 'package', end: '{',
   4093         contains: [hljs.TITLE_MODE]
   4094       },
   4095       {
   4096         className: 'class',
   4097         beginKeywords: 'class interface', end: '{', excludeEnd: true,
   4098         contains: [
   4099           {
   4100             beginKeywords: 'extends implements'
   4101           },
   4102           hljs.TITLE_MODE
   4103         ]
   4104       },
   4105       {
   4106         className: 'meta',
   4107         beginKeywords: 'import include', end: ';',
   4108         keywords: {'meta-keyword': 'import include'}
   4109       },
   4110       {
   4111         className: 'function',
   4112         beginKeywords: 'function', end: '[{;]', excludeEnd: true,
   4113         illegal: '\\S',
   4114         contains: [
   4115           hljs.TITLE_MODE,
   4116           {
   4117             className: 'params',
   4118             begin: '\\(', end: '\\)',
   4119             contains: [
   4120               hljs.APOS_STRING_MODE,
   4121               hljs.QUOTE_STRING_MODE,
   4122               hljs.C_LINE_COMMENT_MODE,
   4123               hljs.C_BLOCK_COMMENT_MODE,
   4124               AS3_REST_ARG_MODE
   4125             ]
   4126           },
   4127           {
   4128             begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
   4129           }
   4130         ]
   4131       },
   4132       hljs.METHOD_GUARD
   4133     ],
   4134     illegal: /#/
   4135   };
   4136 }
   4137 },{name:"ada",create:/*
   4138 Language: Ada
   4139 Author: Lars Schulna <kartoffelbrei.mit.muskatnuss@gmail.org>
   4140 Description: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.
   4141              It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).
   4142              The first version appeared in the 80s, but it's still actively developed today with
   4143              the newest standard being Ada2012.
   4144 */
   4145 
   4146 // We try to support full Ada2012
   4147 //
   4148 // We highlight all appearances of types, keywords, literals (string, char, number, bool)
   4149 // and titles (user defined function/procedure/package)
   4150 // CSS classes are set accordingly
   4151 //
   4152 // Languages causing problems for language detection:
   4153 // xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)
   4154 // sql (ada default.txt has a lot of sql keywords)
   4155 
   4156 function(hljs) {
   4157     // Regular expression for Ada numeric literals.
   4158     // stolen form the VHDL highlighter
   4159 
   4160     // Decimal literal:
   4161     var INTEGER_RE = '\\d(_|\\d)*';
   4162     var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
   4163     var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
   4164 
   4165     // Based literal:
   4166     var BASED_INTEGER_RE = '\\w+';
   4167     var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
   4168 
   4169     var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
   4170 
   4171     // Identifier regex
   4172     var ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';
   4173 
   4174     // bad chars, only allowed in literals
   4175     var BAD_CHARS = '[]{}%#\'\"'
   4176 
   4177     // Ada doesn't have block comments, only line comments
   4178     var COMMENTS = hljs.COMMENT('--', '$');
   4179 
   4180     // variable declarations of the form
   4181     // Foo : Bar := Baz;
   4182     // where only Bar will be highlighted
   4183     var VAR_DECLS = {
   4184         // TODO: These spaces are not required by the Ada syntax
   4185         // however, I have yet to see handwritten Ada code where
   4186         // someone does not put spaces around :
   4187         begin: '\\s+:\\s+', end: '\\s*(:=|;|\\)|=>|$)',
   4188         // endsWithParent: true,
   4189         // returnBegin: true,
   4190         illegal: BAD_CHARS,
   4191         contains: [
   4192             {
   4193                 // workaround to avoid highlighting
   4194                 // named loops and declare blocks
   4195                 beginKeywords: 'loop for declare others',
   4196                 endsParent: true,
   4197             },
   4198             {
   4199                 // properly highlight all modifiers
   4200                 className: 'keyword',
   4201                 beginKeywords: 'not null constant access function procedure in out aliased exception'
   4202             },
   4203             {
   4204                 className: 'type',
   4205                 begin: ID_REGEX,
   4206                 endsParent: true,
   4207                 relevance: 0,
   4208             }
   4209         ]
   4210     };
   4211 
   4212     return {
   4213         case_insensitive: true,
   4214         keywords: {
   4215             keyword:
   4216                 'abort else new return abs elsif not reverse abstract end ' +
   4217                 'accept entry select access exception of separate aliased exit or some ' +
   4218                 'all others subtype and for out synchronized array function overriding ' +
   4219                 'at tagged generic package task begin goto pragma terminate ' +
   4220                 'body private then if procedure type case in protected constant interface ' +
   4221                 'is raise use declare range delay limited record when delta loop rem while ' +
   4222                 'digits renames with do mod requeue xor',
   4223             literal:
   4224                 'True False',
   4225         },
   4226         contains: [
   4227             COMMENTS,
   4228             // strings "foobar"
   4229             {
   4230                 className: 'string',
   4231                 begin: /"/, end: /"/,
   4232                 contains: [{begin: /""/, relevance: 0}]
   4233             },
   4234             // characters ''
   4235             {
   4236                 // character literals always contain one char
   4237                 className: 'string',
   4238                 begin: /'.'/
   4239             },
   4240             {
   4241                 // number literals
   4242                 className: 'number',
   4243                 begin: NUMBER_RE,
   4244                 relevance: 0
   4245             },
   4246             {
   4247                 // Attributes
   4248                 className: 'symbol',
   4249                 begin: "'" + ID_REGEX,
   4250             },
   4251             {
   4252                 // package definition, maybe inside generic
   4253                 className: 'title',
   4254                 begin: '(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?', end: '(is|$)',
   4255                 keywords: 'package body',
   4256                 excludeBegin: true,
   4257                 excludeEnd: true,
   4258                 illegal: BAD_CHARS
   4259             },
   4260             {
   4261                 // function/procedure declaration/definition
   4262                 // maybe inside generic
   4263                 begin: '(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+', end: '(\\bis|\\bwith|\\brenames|\\)\\s*;)',
   4264                 keywords: 'overriding function procedure with is renames return',
   4265                 // we need to re-match the 'function' keyword, so that
   4266                 // the title mode below matches only exactly once
   4267                 returnBegin: true,
   4268                 contains:
   4269                 [
   4270                     COMMENTS,
   4271                     {
   4272                         // name of the function/procedure
   4273                         className: 'title',
   4274                         begin: '(\\bwith\\s+)?\\b(function|procedure)\\s+',
   4275                         end: '(\\(|\\s+|$)',
   4276                         excludeBegin: true,
   4277                         excludeEnd: true,
   4278                         illegal: BAD_CHARS
   4279                     },
   4280                     // 'self'
   4281                     // // parameter types
   4282                     VAR_DECLS,
   4283                     {
   4284                         // return type
   4285                         className: 'type',
   4286                         begin: '\\breturn\\s+', end: '(\\s+|;|$)',
   4287                         keywords: 'return',
   4288                         excludeBegin: true,
   4289                         excludeEnd: true,
   4290                         // we are done with functions
   4291                         endsParent: true,
   4292                         illegal: BAD_CHARS
   4293 
   4294                     },
   4295                 ]
   4296             },
   4297             {
   4298                 // new type declarations
   4299                 // maybe inside generic
   4300                 className: 'type',
   4301                 begin: '\\b(sub)?type\\s+', end: '\\s+',
   4302                 keywords: 'type',
   4303                 excludeBegin: true,
   4304                 illegal: BAD_CHARS
   4305             },
   4306 
   4307             // see comment above the definition
   4308             VAR_DECLS,
   4309 
   4310             // no markup
   4311             // relevance boosters for small snippets
   4312             // {begin: '\\s*=>\\s*'},
   4313             // {begin: '\\s*:=\\s*'},
   4314             // {begin: '\\s+:=\\s+'},
   4315         ]
   4316     };
   4317 }
   4318 },{name:"angelscript",create:/*
   4319 Language: AngelScript
   4320 Author: Melissa Geels <melissa@nimble.tools>
   4321 Category: scripting
   4322 */
   4323 
   4324 function(hljs) {
   4325   var builtInTypeMode = {
   4326     className: 'built_in',
   4327     begin: '\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'
   4328   };
   4329 
   4330   var objectHandleMode = {
   4331     className: 'symbol',
   4332     begin: '[a-zA-Z0-9_]+@'
   4333   };
   4334 
   4335   var genericMode = {
   4336     className: 'keyword',
   4337     begin: '<', end: '>',
   4338     contains: [ builtInTypeMode, objectHandleMode ]
   4339   };
   4340 
   4341   builtInTypeMode.contains = [ genericMode ];
   4342   objectHandleMode.contains = [ genericMode ];
   4343 
   4344   return {
   4345     aliases: [ 'asc' ],
   4346 
   4347     keywords:
   4348       'for in|0 break continue while do|0 return if else case switch namespace is cast ' +
   4349       'or and xor not get|0 in inout|10 out override set|0 private public const default|0 ' +
   4350       'final shared external mixin|10 enum typedef funcdef this super import from interface ' +
   4351       'abstract|0 try catch protected explicit',
   4352 
   4353     // avoid close detection with C# and JS
   4354     illegal: '(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\s*[^\\(])',
   4355 
   4356     contains: [
   4357       { // 'strings'
   4358         className: 'string',
   4359         begin: '\'', end: '\'',
   4360         illegal: '\\n',
   4361         contains: [ hljs.BACKSLASH_ESCAPE ],
   4362         relevance: 0
   4363       },
   4364 
   4365       { // "strings"
   4366         className: 'string',
   4367         begin: '"', end: '"',
   4368         illegal: '\\n',
   4369         contains: [ hljs.BACKSLASH_ESCAPE ],
   4370         relevance: 0
   4371       },
   4372 
   4373       // """heredoc strings"""
   4374       {
   4375         className: 'string',
   4376         begin: '"""', end: '"""'
   4377       },
   4378 
   4379       hljs.C_LINE_COMMENT_MODE, // single-line comments
   4380       hljs.C_BLOCK_COMMENT_MODE, // comment blocks
   4381 
   4382       { // interface or namespace declaration
   4383         beginKeywords: 'interface namespace', end: '{',
   4384         illegal: '[;.\\-]',
   4385         contains: [
   4386           { // interface or namespace name
   4387             className: 'symbol',
   4388             begin: '[a-zA-Z0-9_]+'
   4389           }
   4390         ]
   4391       },
   4392 
   4393       { // class declaration
   4394         beginKeywords: 'class', end: '{',
   4395         illegal: '[;.\\-]',
   4396         contains: [
   4397           { // class name
   4398             className: 'symbol',
   4399             begin: '[a-zA-Z0-9_]+',
   4400             contains: [
   4401               {
   4402                 begin: '[:,]\\s*',
   4403                 contains: [
   4404                   {
   4405                     className: 'symbol',
   4406                     begin: '[a-zA-Z0-9_]+'
   4407                   }
   4408                 ]
   4409               }
   4410             ]
   4411           }
   4412         ]
   4413       },
   4414 
   4415       builtInTypeMode, // built-in types
   4416       objectHandleMode, // object handles
   4417 
   4418       { // literals
   4419         className: 'literal',
   4420         begin: '\\b(null|true|false)'
   4421       },
   4422 
   4423       { // numbers
   4424         className: 'number',
   4425         begin: '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)'
   4426       }
   4427     ]
   4428   };
   4429 }
   4430 },{name:"apache",create:/*
   4431 Language: Apache
   4432 Author: Ruslan Keba <rukeba@gmail.com>
   4433 Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
   4434 Website: http://rukeba.com/
   4435 Description: language definition for Apache configuration files (httpd.conf & .htaccess)
   4436 Category: common, config
   4437 */
   4438 
   4439 function(hljs) {
   4440   var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
   4441   return {
   4442     aliases: ['apacheconf'],
   4443     case_insensitive: true,
   4444     contains: [
   4445       hljs.HASH_COMMENT_MODE,
   4446       {className: 'section', begin: '</?', end: '>'},
   4447       {
   4448         className: 'attribute',
   4449         begin: /\w+/,
   4450         relevance: 0,
   4451         // keywords aren’t needed for highlighting per se, they only boost relevance
   4452         // for a very generally defined mode (starts with a word, ends with line-end
   4453         keywords: {
   4454           nomarkup:
   4455             'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
   4456             'sethandler errordocument loadmodule options header listen serverroot ' +
   4457             'servername'
   4458         },
   4459         starts: {
   4460           end: /$/,
   4461           relevance: 0,
   4462           keywords: {
   4463             literal: 'on off all'
   4464           },
   4465           contains: [
   4466             {
   4467               className: 'meta',
   4468               begin: '\\s\\[', end: '\\]$'
   4469             },
   4470             {
   4471               className: 'variable',
   4472               begin: '[\\$%]\\{', end: '\\}',
   4473               contains: ['self', NUMBER]
   4474             },
   4475             NUMBER,
   4476             hljs.QUOTE_STRING_MODE
   4477           ]
   4478         }
   4479       }
   4480     ],
   4481     illegal: /\S/
   4482   };
   4483 }
   4484 },{name:"applescript",create:/*
   4485 Language: AppleScript
   4486 Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
   4487 Category: scripting
   4488 */
   4489 
   4490 function(hljs) {
   4491   var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
   4492   var PARAMS = {
   4493     className: 'params',
   4494     begin: '\\(', end: '\\)',
   4495     contains: ['self', hljs.C_NUMBER_MODE, STRING]
   4496   };
   4497   var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
   4498   var COMMENT_MODE_2 = hljs.COMMENT(
   4499     '\\(\\*',
   4500     '\\*\\)',
   4501     {
   4502       contains: ['self', COMMENT_MODE_1] //allow nesting
   4503     }
   4504   );
   4505   var COMMENTS = [
   4506     COMMENT_MODE_1,
   4507     COMMENT_MODE_2,
   4508     hljs.HASH_COMMENT_MODE
   4509   ];
   4510 
   4511   return {
   4512     aliases: ['osascript'],
   4513     keywords: {
   4514       keyword:
   4515         'about above after against and around as at back before beginning ' +
   4516         'behind below beneath beside between but by considering ' +
   4517         'contain contains continue copy div does eighth else end equal ' +
   4518         'equals error every exit fifth first for fourth from front ' +
   4519         'get given global if ignoring in into is it its last local me ' +
   4520         'middle mod my ninth not of on onto or over prop property put ref ' +
   4521         'reference repeat returning script second set seventh since ' +
   4522         'sixth some tell tenth that the|0 then third through thru ' +
   4523         'timeout times to transaction try until where while whose with ' +
   4524         'without',
   4525       literal:
   4526         'AppleScript false linefeed return pi quote result space tab true',
   4527       built_in:
   4528         'alias application boolean class constant date file integer list ' +
   4529         'number real record string text ' +
   4530         'activate beep count delay launch log offset read round ' +
   4531         'run say summarize write ' +
   4532         'character characters contents day frontmost id item length ' +
   4533         'month name paragraph paragraphs rest reverse running time version ' +
   4534         'weekday word words year'
   4535     },
   4536     contains: [
   4537       STRING,
   4538       hljs.C_NUMBER_MODE,
   4539       {
   4540         className: 'built_in',
   4541         begin:
   4542           '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
   4543           'mount volume|path to|(close|open for) access|(get|set) eof|' +
   4544           'current date|do shell script|get volume settings|random number|' +
   4545           'set volume|system attribute|system info|time to GMT|' +
   4546           '(load|run|store) script|scripting components|' +
   4547           'ASCII (character|number)|localized string|' +
   4548           'choose (application|color|file|file name|' +
   4549           'folder|from list|remote application|URL)|' +
   4550           'display (alert|dialog))\\b|^\\s*return\\b'
   4551       },
   4552       {
   4553         className: 'literal',
   4554         begin:
   4555           '\\b(text item delimiters|current application|missing value)\\b'
   4556       },
   4557       {
   4558         className: 'keyword',
   4559         begin:
   4560           '\\b(apart from|aside from|instead of|out of|greater than|' +
   4561           "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
   4562           '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
   4563           'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
   4564           'POSIX path|(date|time) string|quoted form)\\b'
   4565       },
   4566       {
   4567         beginKeywords: 'on',
   4568         illegal: '[${=;\\n]',
   4569         contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
   4570       }
   4571     ].concat(COMMENTS),
   4572     illegal: '//|->|=>|\\[\\['
   4573   };
   4574 }
   4575 },{name:"arcade",create:/*
   4576  Language: ArcGIS Arcade
   4577  Category: scripting
   4578  Author: John Foster <jfoster@esri.com>
   4579  Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python
   4580 */
   4581 function(hljs) {
   4582   var IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';
   4583   var KEYWORDS = {
   4584     keyword:
   4585       'if for while var new function do return void else break',
   4586     literal:
   4587       'true false null undefined NaN Infinity PI BackSlash DoubleQuote ForwardSlash NewLine SingleQuote Tab',
   4588     built_in:
   4589       'Abs Acos Area AreaGeodetic Asin Atan Atan2 Average Boolean Buffer BufferGeodetic ' +
   4590       'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +
   4591       'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance Distinct ' +
   4592       'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetById FeatureSetByTitle ' +
   4593       'FeatureSetByUrl Filter First Floor Geometry Guid HasKey Hour IIf IndexOf Intersection ' +
   4594       'Intersects IsEmpty Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +
   4595       'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +
   4596       'Polyline Pow Random Relate Reverse Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +
   4597       'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TypeOf Union Variance ' +
   4598       'Weekday When Within Year '
   4599   };
   4600   var EXPRESSIONS;
   4601   var SYMBOL = {
   4602     className: 'symbol',
   4603     begin: '\\$[feature|layer|map|value|view]+'
   4604   };
   4605   var NUMBER = {
   4606     className: 'number',
   4607     variants: [
   4608       { begin: '\\b(0[bB][01]+)' },
   4609       { begin: '\\b(0[oO][0-7]+)' },
   4610       { begin: hljs.C_NUMBER_RE }
   4611     ],
   4612     relevance: 0
   4613   };
   4614   var SUBST = {
   4615     className: 'subst',
   4616     begin: '\\$\\{', end: '\\}',
   4617     keywords: KEYWORDS,
   4618     contains: []  // defined later
   4619   };
   4620   var TEMPLATE_STRING = {
   4621     className: 'string',
   4622     begin: '`', end: '`',
   4623     contains: [
   4624       hljs.BACKSLASH_ESCAPE,
   4625       SUBST
   4626     ]
   4627   };
   4628   SUBST.contains = [
   4629     hljs.APOS_STRING_MODE,
   4630     hljs.QUOTE_STRING_MODE,
   4631     TEMPLATE_STRING,
   4632     NUMBER,
   4633     hljs.REGEXP_MODE
   4634   ];
   4635   var PARAMS_CONTAINS = SUBST.contains.concat([
   4636     hljs.C_BLOCK_COMMENT_MODE,
   4637     hljs.C_LINE_COMMENT_MODE
   4638   ]);
   4639 
   4640   return {
   4641     aliases: ['arcade'],
   4642     keywords: KEYWORDS,
   4643     contains: [
   4644       hljs.APOS_STRING_MODE,
   4645       hljs.QUOTE_STRING_MODE,
   4646       TEMPLATE_STRING,
   4647       hljs.C_LINE_COMMENT_MODE,
   4648       hljs.C_BLOCK_COMMENT_MODE,
   4649       SYMBOL,
   4650       NUMBER,
   4651       { // object attr container
   4652         begin: /[{,]\s*/, relevance: 0,
   4653         contains: [
   4654           {
   4655             begin: IDENT_RE + '\\s*:', returnBegin: true,
   4656             relevance: 0,
   4657             contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}]
   4658           }
   4659         ]
   4660       },
   4661       { // "value" container
   4662         begin: '(' + hljs.RE_STARTERS_RE + '|\\b(return)\\b)\\s*',
   4663         keywords: 'return',
   4664         contains: [
   4665           hljs.C_LINE_COMMENT_MODE,
   4666           hljs.C_BLOCK_COMMENT_MODE,
   4667           hljs.REGEXP_MODE,
   4668           {
   4669             className: 'function',
   4670             begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true,
   4671             end: '\\s*=>',
   4672             contains: [
   4673               {
   4674                 className: 'params',
   4675                 variants: [
   4676                   {
   4677                     begin: IDENT_RE
   4678                   },
   4679                   {
   4680                     begin: /\(\s*\)/,
   4681                   },
   4682                   {
   4683                     begin: /\(/, end: /\)/,
   4684                     excludeBegin: true, excludeEnd: true,
   4685                     keywords: KEYWORDS,
   4686                     contains: PARAMS_CONTAINS
   4687                   }
   4688                 ]
   4689               }
   4690             ]
   4691           }
   4692         ],
   4693         relevance: 0
   4694       },
   4695       {
   4696         className: 'function',
   4697         beginKeywords: 'function', end: /\{/, excludeEnd: true,
   4698         contains: [
   4699           hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}),
   4700           {
   4701             className: 'params',
   4702             begin: /\(/, end: /\)/,
   4703             excludeBegin: true,
   4704             excludeEnd: true,
   4705             contains: PARAMS_CONTAINS
   4706           }
   4707         ],
   4708         illegal: /\[|%/
   4709       },
   4710       {
   4711         begin: /\$[(.]/
   4712       }
   4713     ],
   4714     illegal: /#(?!!)/
   4715   };
   4716 }
   4717 },{name:"arduino",create:/*
   4718 Language: Arduino
   4719 Author: Stefania Mellai <s.mellai@arduino.cc>
   4720 Description: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.
   4721 Requires: cpp.js
   4722 */
   4723 
   4724 function(hljs) {
   4725   var CPP = hljs.getLanguage('cpp').exports;
   4726 	return {
   4727     keywords: {
   4728       keyword:
   4729         'boolean byte word string String array ' + CPP.keywords.keyword,
   4730       built_in:
   4731         'setup loop while catch for if do goto try switch case else ' +
   4732         'default break continue return ' +
   4733         'KeyboardController MouseController SoftwareSerial ' +
   4734         'EthernetServer EthernetClient LiquidCrystal ' +
   4735         'RobotControl GSMVoiceCall EthernetUDP EsploraTFT ' +
   4736         'HttpClient RobotMotor WiFiClient GSMScanner ' +
   4737         'FileSystem Scheduler GSMServer YunClient YunServer ' +
   4738         'IPAddress GSMClient GSMModem Keyboard Ethernet ' +
   4739         'Console GSMBand Esplora Stepper Process ' +
   4740         'WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage ' +
   4741         'Client Server GSMPIN FileIO Bridge Serial ' +
   4742         'EEPROM Stream Mouse Audio Servo File Task ' +
   4743         'GPRS WiFi Wire TFT GSM SPI SD ' +
   4744         'runShellCommandAsynchronously analogWriteResolution ' +
   4745         'retrieveCallingNumber printFirmwareVersion ' +
   4746         'analogReadResolution sendDigitalPortPair ' +
   4747         'noListenOnLocalhost readJoystickButton setFirmwareVersion ' +
   4748         'readJoystickSwitch scrollDisplayRight getVoiceCallStatus ' +
   4749         'scrollDisplayLeft writeMicroseconds delayMicroseconds ' +
   4750         'beginTransmission getSignalStrength runAsynchronously ' +
   4751         'getAsynchronously listenOnLocalhost getCurrentCarrier ' +
   4752         'readAccelerometer messageAvailable sendDigitalPorts ' +
   4753         'lineFollowConfig countryNameWrite runShellCommand ' +
   4754         'readStringUntil rewindDirectory readTemperature ' +
   4755         'setClockDivider readLightSensor endTransmission ' +
   4756         'analogReference detachInterrupt countryNameRead ' +
   4757         'attachInterrupt encryptionType readBytesUntil ' +
   4758         'robotNameWrite readMicrophone robotNameRead cityNameWrite ' +
   4759         'userNameWrite readJoystickY readJoystickX mouseReleased ' +
   4760         'openNextFile scanNetworks noInterrupts digitalWrite ' +
   4761         'beginSpeaker mousePressed isActionDone mouseDragged ' +
   4762         'displayLogos noAutoscroll addParameter remoteNumber ' +
   4763         'getModifiers keyboardRead userNameRead waitContinue ' +
   4764         'processInput parseCommand printVersion readNetworks ' +
   4765         'writeMessage blinkVersion cityNameRead readMessage ' +
   4766         'setDataMode parsePacket isListening setBitOrder ' +
   4767         'beginPacket isDirectory motorsWrite drawCompass ' +
   4768         'digitalRead clearScreen serialEvent rightToLeft ' +
   4769         'setTextSize leftToRight requestFrom keyReleased ' +
   4770         'compassRead analogWrite interrupts WiFiServer ' +
   4771         'disconnect playMelody parseFloat autoscroll ' +
   4772         'getPINUsed setPINUsed setTimeout sendAnalog ' +
   4773         'readSlider analogRead beginWrite createChar ' +
   4774         'motorsStop keyPressed tempoWrite readButton ' +
   4775         'subnetMask debugPrint macAddress writeGreen ' +
   4776         'randomSeed attachGPRS readString sendString ' +
   4777         'remotePort releaseAll mouseMoved background ' +
   4778         'getXChange getYChange answerCall getResult ' +
   4779         'voiceCall endPacket constrain getSocket writeJSON ' +
   4780         'getButton available connected findUntil readBytes ' +
   4781         'exitValue readGreen writeBlue startLoop IPAddress ' +
   4782         'isPressed sendSysex pauseMode gatewayIP setCursor ' +
   4783         'getOemKey tuneWrite noDisplay loadImage switchPIN ' +
   4784         'onRequest onReceive changePIN playFile noBuffer ' +
   4785         'parseInt overflow checkPIN knobRead beginTFT ' +
   4786         'bitClear updateIR bitWrite position writeRGB ' +
   4787         'highByte writeRed setSpeed readBlue noStroke ' +
   4788         'remoteIP transfer shutdown hangCall beginSMS ' +
   4789         'endWrite attached maintain noCursor checkReg ' +
   4790         'checkPUK shiftOut isValid shiftIn pulseIn ' +
   4791         'connect println localIP pinMode getIMEI ' +
   4792         'display noBlink process getBand running beginSD ' +
   4793         'drawBMP lowByte setBand release bitRead prepare ' +
   4794         'pointTo readRed setMode noFill remove listen ' +
   4795         'stroke detach attach noTone exists buffer ' +
   4796         'height bitSet circle config cursor random ' +
   4797         'IRread setDNS endSMS getKey micros ' +
   4798         'millis begin print write ready flush width ' +
   4799         'isPIN blink clear press mkdir rmdir close ' +
   4800         'point yield image BSSID click delay ' +
   4801         'read text move peek beep rect line open ' +
   4802         'seek fill size turn stop home find ' +
   4803         'step tone sqrt RSSI SSID ' +
   4804         'end bit tan cos sin pow map abs max ' +
   4805         'min get run put',
   4806       literal:
   4807         'DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE ' +
   4808         'REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP ' +
   4809         'SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN ' +
   4810         'INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL ' +
   4811         'DEFAULT OUTPUT INPUT HIGH LOW'
   4812     },
   4813     contains: [
   4814       CPP.preprocessor,
   4815       hljs.C_LINE_COMMENT_MODE,
   4816       hljs.C_BLOCK_COMMENT_MODE,
   4817       hljs.APOS_STRING_MODE,
   4818       hljs.QUOTE_STRING_MODE,
   4819       hljs.C_NUMBER_MODE
   4820     ]
   4821   };
   4822 }
   4823 },{name:"armasm",create:/*
   4824 Language: ARM Assembly
   4825 Author: Dan Panzarella <alsoelp@gmail.com>
   4826 Description: ARM Assembly including Thumb and Thumb2 instructions
   4827 Category: assembler
   4828 */
   4829 
   4830 function(hljs) {
   4831     //local labels: %?[FB]?[AT]?\d{1,2}\w+
   4832   return {
   4833     case_insensitive: true,
   4834     aliases: ['arm'],
   4835     lexemes: '\\.?' + hljs.IDENT_RE,
   4836     keywords: {
   4837       meta:
   4838         //GNU preprocs
   4839         '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '+
   4840         //ARM directives
   4841         'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',
   4842       built_in:
   4843         'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
   4844         'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
   4845         'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
   4846         'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
   4847         'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
   4848         'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
   4849 
   4850         //program status registers
   4851         'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
   4852         'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
   4853 
   4854         //NEON and VFP registers
   4855         's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
   4856         's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
   4857         'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
   4858         'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
   4859 
   4860         '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
   4861     },
   4862     contains: [
   4863       {
   4864         className: 'keyword',
   4865         begin: '\\b('+     //mnemonics
   4866             'adc|'+
   4867             '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
   4868             'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
   4869             'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
   4870             'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
   4871             'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
   4872             'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
   4873             'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
   4874             'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
   4875             'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
   4876             'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
   4877             '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
   4878             'wfe|wfi|yield'+
   4879         ')'+
   4880         '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
   4881         '[sptrx]?' ,                                             //legal postfixes
   4882         end: '\\s'
   4883       },
   4884       hljs.COMMENT('[;@]', '$', {relevance: 0}),
   4885       hljs.C_BLOCK_COMMENT_MODE,
   4886       hljs.QUOTE_STRING_MODE,
   4887       {
   4888         className: 'string',
   4889         begin: '\'',
   4890         end: '[^\\\\]\'',
   4891         relevance: 0
   4892       },
   4893       {
   4894         className: 'title',
   4895         begin: '\\|', end: '\\|',
   4896         illegal: '\\n',
   4897         relevance: 0
   4898       },
   4899       {
   4900         className: 'number',
   4901         variants: [
   4902             {begin: '[#$=]?0x[0-9a-f]+'}, //hex
   4903             {begin: '[#$=]?0b[01]+'},     //bin
   4904             {begin: '[#$=]\\d+'},        //literal
   4905             {begin: '\\b\\d+'}           //bare number
   4906         ],
   4907         relevance: 0
   4908       },
   4909       {
   4910         className: 'symbol',
   4911         variants: [
   4912             {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
   4913             {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
   4914             {begin: '[=#]\\w+' }  //label reference
   4915         ],
   4916         relevance: 0
   4917       }
   4918     ]
   4919   };
   4920 }
   4921 },{name:"asciidoc",create:/*
   4922 Language: AsciiDoc
   4923 Requires: xml.js
   4924 Author: Dan Allen <dan.j.allen@gmail.com>
   4925 Website: http://google.com/profiles/dan.j.allen
   4926 Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
   4927 Category: markup
   4928 */
   4929 
   4930 function(hljs) {
   4931   return {
   4932     aliases: ['adoc'],
   4933     contains: [
   4934       // block comment
   4935       hljs.COMMENT(
   4936         '^/{4,}\\n',
   4937         '\\n/{4,}$',
   4938         // can also be done as...
   4939         //'^/{4,}$',
   4940         //'^/{4,}$',
   4941         {
   4942           relevance: 10
   4943         }
   4944       ),
   4945       // line comment
   4946       hljs.COMMENT(
   4947         '^//',
   4948         '$',
   4949         {
   4950           relevance: 0
   4951         }
   4952       ),
   4953       // title
   4954       {
   4955         className: 'title',
   4956         begin: '^\\.\\w.*$'
   4957       },
   4958       // example, admonition & sidebar blocks
   4959       {
   4960         begin: '^[=\\*]{4,}\\n',
   4961         end: '\\n^[=\\*]{4,}$',
   4962         relevance: 10
   4963       },
   4964       // headings
   4965       {
   4966         className: 'section',
   4967         relevance: 10,
   4968         variants: [
   4969           {begin: '^(={1,5}) .+?( \\1)?$'},
   4970           {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
   4971         ]
   4972       },
   4973       // document attributes
   4974       {
   4975         className: 'meta',
   4976         begin: '^:.+?:',
   4977         end: '\\s',
   4978         excludeEnd: true,
   4979         relevance: 10
   4980       },
   4981       // block attributes
   4982       {
   4983         className: 'meta',
   4984         begin: '^\\[.+?\\]$',
   4985         relevance: 0
   4986       },
   4987       // quoteblocks
   4988       {
   4989         className: 'quote',
   4990         begin: '^_{4,}\\n',
   4991         end: '\\n_{4,}$',
   4992         relevance: 10
   4993       },
   4994       // listing and literal blocks
   4995       {
   4996         className: 'code',
   4997         begin: '^[\\-\\.]{4,}\\n',
   4998         end: '\\n[\\-\\.]{4,}$',
   4999         relevance: 10
   5000       },
   5001       // passthrough blocks
   5002       {
   5003         begin: '^\\+{4,}\\n',
   5004         end: '\\n\\+{4,}$',
   5005         contains: [
   5006           {
   5007             begin: '<', end: '>',
   5008             subLanguage: 'xml',
   5009             relevance: 0
   5010           }
   5011         ],
   5012         relevance: 10
   5013       },
   5014       // lists (can only capture indicators)
   5015       {
   5016         className: 'bullet',
   5017         begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
   5018       },
   5019       // admonition
   5020       {
   5021         className: 'symbol',
   5022         begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
   5023         relevance: 10
   5024       },
   5025       // inline strong
   5026       {
   5027         className: 'strong',
   5028         // must not follow a word character or be followed by an asterisk or space
   5029         begin: '\\B\\*(?![\\*\\s])',
   5030         end: '(\\n{2}|\\*)',
   5031         // allow escaped asterisk followed by word char
   5032         contains: [
   5033           {
   5034             begin: '\\\\*\\w',
   5035             relevance: 0
   5036           }
   5037         ]
   5038       },
   5039       // inline emphasis
   5040       {
   5041         className: 'emphasis',
   5042         // must not follow a word character or be followed by a single quote or space
   5043         begin: '\\B\'(?![\'\\s])',
   5044         end: '(\\n{2}|\')',
   5045         // allow escaped single quote followed by word char
   5046         contains: [
   5047           {
   5048             begin: '\\\\\'\\w',
   5049             relevance: 0
   5050           }
   5051         ],
   5052         relevance: 0
   5053       },
   5054       // inline emphasis (alt)
   5055       {
   5056         className: 'emphasis',
   5057         // must not follow a word character or be followed by an underline or space
   5058         begin: '_(?![_\\s])',
   5059         end: '(\\n{2}|_)',
   5060         relevance: 0
   5061       },
   5062       // inline smart quotes
   5063       {
   5064         className: 'string',
   5065         variants: [
   5066           {begin: "``.+?''"},
   5067           {begin: "`.+?'"}
   5068         ]
   5069       },
   5070       // inline code snippets (TODO should get same treatment as strong and emphasis)
   5071       {
   5072         className: 'code',
   5073         begin: '(`.+?`|\\+.+?\\+)',
   5074         relevance: 0
   5075       },
   5076       // indented literal block
   5077       {
   5078         className: 'code',
   5079         begin: '^[ \\t]',
   5080         end: '$',
   5081         relevance: 0
   5082       },
   5083       // horizontal rules
   5084       {
   5085         begin: '^\'{3,}[ \\t]*$',
   5086         relevance: 10
   5087       },
   5088       // images and links
   5089       {
   5090         begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
   5091         returnBegin: true,
   5092         contains: [
   5093           {
   5094             begin: '(link|image:?):',
   5095             relevance: 0
   5096           },
   5097           {
   5098             className: 'link',
   5099             begin: '\\w',
   5100             end: '[^\\[]+',
   5101             relevance: 0
   5102           },
   5103           {
   5104             className: 'string',
   5105             begin: '\\[',
   5106             end: '\\]',
   5107             excludeBegin: true,
   5108             excludeEnd: true,
   5109             relevance: 0
   5110           }
   5111         ],
   5112         relevance: 10
   5113       }
   5114     ]
   5115   };
   5116 }
   5117 },{name:"aspectj",create:/*
   5118 Language: AspectJ
   5119 Author: Hakan Ozler <ozler.hakan@gmail.com>
   5120 Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
   5121  */
   5122 function (hljs) {
   5123   var KEYWORDS =
   5124     'false synchronized int abstract float private char boolean static null if const ' +
   5125     'for true while long throw strictfp finally protected import native final return void ' +
   5126     'enum else extends implements break transient new catch instanceof byte super volatile case ' +
   5127     'assert short package default double public try this switch continue throws privileged ' +
   5128     'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
   5129     'staticinitialization withincode target within execution getWithinTypeName handler ' +
   5130     'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
   5131     'warning error soft precedence thisAspectInstance';
   5132   var SHORTKEYS = 'get set args call';
   5133   return {
   5134     keywords : KEYWORDS,
   5135     illegal : /<\/|#/,
   5136     contains : [
   5137       hljs.COMMENT(
   5138         '/\\*\\*',
   5139         '\\*/',
   5140         {
   5141           relevance : 0,
   5142           contains : [
   5143             {
   5144               // eat up @'s in emails to prevent them to be recognized as doctags
   5145               begin: /\w+@/, relevance: 0
   5146             },
   5147             {
   5148               className : 'doctag',
   5149               begin : '@[A-Za-z]+'
   5150             }
   5151           ]
   5152         }
   5153       ),
   5154       hljs.C_LINE_COMMENT_MODE,
   5155       hljs.C_BLOCK_COMMENT_MODE,
   5156       hljs.APOS_STRING_MODE,
   5157       hljs.QUOTE_STRING_MODE,
   5158       {
   5159         className : 'class',
   5160         beginKeywords : 'aspect',
   5161         end : /[{;=]/,
   5162         excludeEnd : true,
   5163         illegal : /[:;"\[\]]/,
   5164         contains : [
   5165           {
   5166             beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
   5167           },
   5168           hljs.UNDERSCORE_TITLE_MODE,
   5169           {
   5170             begin : /\([^\)]*/,
   5171             end : /[)]+/,
   5172             keywords : KEYWORDS + ' ' + SHORTKEYS,
   5173             excludeEnd : false
   5174           }
   5175         ]
   5176       },
   5177       {
   5178         className : 'class',
   5179         beginKeywords : 'class interface',
   5180         end : /[{;=]/,
   5181         excludeEnd : true,
   5182         relevance: 0,
   5183         keywords : 'class interface',
   5184         illegal : /[:"\[\]]/,
   5185         contains : [
   5186           {beginKeywords : 'extends implements'},
   5187           hljs.UNDERSCORE_TITLE_MODE
   5188         ]
   5189       },
   5190       {
   5191         // AspectJ Constructs
   5192         beginKeywords : 'pointcut after before around throwing returning',
   5193         end : /[)]/,
   5194         excludeEnd : false,
   5195         illegal : /["\[\]]/,
   5196         contains : [
   5197           {
   5198             begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
   5199             returnBegin : true,
   5200             contains : [hljs.UNDERSCORE_TITLE_MODE]
   5201           }
   5202         ]
   5203       },
   5204       {
   5205         begin : /[:]/,
   5206         returnBegin : true,
   5207         end : /[{;]/,
   5208         relevance: 0,
   5209         excludeEnd : false,
   5210         keywords : KEYWORDS,
   5211         illegal : /["\[\]]/,
   5212         contains : [
   5213           {
   5214             begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
   5215             keywords : KEYWORDS + ' ' + SHORTKEYS,
   5216             relevance: 0
   5217           },
   5218           hljs.QUOTE_STRING_MODE
   5219         ]
   5220       },
   5221       {
   5222         // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
   5223         beginKeywords : 'new throw',
   5224         relevance : 0
   5225       },
   5226       {
   5227         // the function class is a bit different for AspectJ compared to the Java language
   5228         className : 'function',
   5229         begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
   5230         returnBegin : true,
   5231         end : /[{;=]/,
   5232         keywords : KEYWORDS,
   5233         excludeEnd : true,
   5234         contains : [
   5235           {
   5236             begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
   5237             returnBegin : true,
   5238             relevance: 0,
   5239             contains : [hljs.UNDERSCORE_TITLE_MODE]
   5240           },
   5241           {
   5242             className : 'params',
   5243             begin : /\(/, end : /\)/,
   5244             relevance: 0,
   5245             keywords : KEYWORDS,
   5246             contains : [
   5247               hljs.APOS_STRING_MODE,
   5248               hljs.QUOTE_STRING_MODE,
   5249               hljs.C_NUMBER_MODE,
   5250               hljs.C_BLOCK_COMMENT_MODE
   5251             ]
   5252           },
   5253           hljs.C_LINE_COMMENT_MODE,
   5254           hljs.C_BLOCK_COMMENT_MODE
   5255         ]
   5256       },
   5257       hljs.C_NUMBER_MODE,
   5258       {
   5259         // annotation is also used in this language
   5260         className : 'meta',
   5261         begin : '@[A-Za-z]+'
   5262       }
   5263     ]
   5264   };
   5265 }
   5266 },{name:"autohotkey",create:/*
   5267 Language: AutoHotkey
   5268 Author: Seongwon Lee <dlimpid@gmail.com>
   5269 Description: AutoHotkey language definition
   5270 Category: scripting
   5271 */
   5272 
   5273 function(hljs) {
   5274   var BACKTICK_ESCAPE = {
   5275     begin: '`[\\s\\S]'
   5276   };
   5277 
   5278   return {
   5279     case_insensitive: true,
   5280     aliases: [ 'ahk' ],
   5281     keywords: {
   5282       keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',
   5283       literal: 'true false NOT AND OR',
   5284       built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
   5285     },
   5286     contains: [
   5287       BACKTICK_ESCAPE,
   5288       hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
   5289       hljs.COMMENT(';', '$', {relevance: 0}),
   5290       hljs.C_BLOCK_COMMENT_MODE,
   5291       {
   5292         className: 'number',
   5293         begin: hljs.NUMBER_RE,
   5294         relevance: 0
   5295       },
   5296       {
   5297         className: 'variable', //subst would be the most accurate however fails the point of highlighting. variable is comparably the most accurate that actually has some effect
   5298         begin: '%[a-zA-Z0-9#_$@]+%'
   5299       },
   5300       {
   5301         className: 'built_in',
   5302         begin: '^\\s*\\w+\\s*(,|%)'
   5303         //I don't really know if this is totally relevant
   5304       },
   5305       {
   5306         className: 'title', //symbol would be most accurate however is higlighted just like built_in and that makes up a lot of AutoHotkey code
   5307 		                        //meaning that it would fail to highlight anything
   5308         variants: [
   5309           {begin: '^[^\\n";]+::(?!=)'},
   5310           {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
   5311                                                     // followed by a single ':' in many languages
   5312         ]
   5313       },
   5314       {
   5315         className: 'meta', 
   5316         begin: '^\\s*#\\w+', end:'$',
   5317         relevance: 0
   5318       },
   5319 	    {
   5320         className: 'built_in',
   5321         begin: 'A_[a-zA-Z0-9]+'
   5322       },
   5323       {
   5324         // consecutive commas, not for highlighting but just for relevance
   5325         begin: ',\\s*,'
   5326       }
   5327     ]
   5328   }
   5329 }
   5330 },{name:"autoit",create:/*
   5331 Language: AutoIt
   5332 Author: Manh Tuan <junookyo@gmail.com>
   5333 Description: AutoIt language definition
   5334 Category: scripting
   5335 */
   5336 
   5337 function(hljs) {
   5338     var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +
   5339         'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' +
   5340         'EndSwitch EndWith Enum Exit ExitLoop For Func ' +
   5341         'Global If In Local Next ReDim Return Select Static ' +
   5342         'Step Switch Then To Until Volatile WEnd While With',
   5343 
   5344         LITERAL = 'True False And Null Not Or',
   5345 
   5346         BUILT_IN =
   5347           'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait',
   5348 
   5349         COMMENT = {
   5350             variants: [
   5351               hljs.COMMENT(';', '$', {relevance: 0}),
   5352               hljs.COMMENT('#cs', '#ce'),
   5353               hljs.COMMENT('#comments-start', '#comments-end')
   5354             ]
   5355         },
   5356 
   5357         VARIABLE = {
   5358             begin: '\\$[A-z0-9_]+'
   5359         },
   5360 
   5361         STRING = {
   5362             className: 'string',
   5363             variants: [{
   5364                 begin: /"/,
   5365                 end: /"/,
   5366                 contains: [{
   5367                     begin: /""/,
   5368                     relevance: 0
   5369                 }]
   5370             }, {
   5371                 begin: /'/,
   5372                 end: /'/,
   5373                 contains: [{
   5374                     begin: /''/,
   5375                     relevance: 0
   5376                 }]
   5377             }]
   5378         },
   5379 
   5380         NUMBER = {
   5381             variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
   5382         },
   5383 
   5384         PREPROCESSOR = {
   5385             className: 'meta',
   5386             begin: '#',
   5387             end: '$',
   5388             keywords: {'meta-keyword': 'comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin'},
   5389             contains: [{
   5390                     begin: /\\\n/,
   5391                     relevance: 0
   5392                 }, {
   5393                     beginKeywords: 'include',
   5394                     keywords: {'meta-keyword': 'include'},
   5395                     end: '$',
   5396                     contains: [
   5397                         STRING, {
   5398                             className: 'meta-string',
   5399                             variants: [{
   5400                                 begin: '<',
   5401                                 end: '>'
   5402                             }, {
   5403                                 begin: /"/,
   5404                                 end: /"/,
   5405                                 contains: [{
   5406                                     begin: /""/,
   5407                                     relevance: 0
   5408                                 }]
   5409                             }, {
   5410                                 begin: /'/,
   5411                                 end: /'/,
   5412                                 contains: [{
   5413                                     begin: /''/,
   5414                                     relevance: 0
   5415                                 }]
   5416                             }]
   5417                         }
   5418                     ]
   5419                 },
   5420                 STRING,
   5421                 COMMENT
   5422             ]
   5423         },
   5424 
   5425         CONSTANT = {
   5426             className: 'symbol',
   5427             // begin: '@',
   5428             // end: '$',
   5429             // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',
   5430             // relevance: 5
   5431             begin: '@[A-z0-9_]+'
   5432         },
   5433 
   5434         FUNCTION = {
   5435             className: 'function',
   5436             beginKeywords: 'Func',
   5437             end: '$',
   5438             illegal: '\\$|\\[|%',
   5439             contains: [
   5440                 hljs.UNDERSCORE_TITLE_MODE, {
   5441                     className: 'params',
   5442                     begin: '\\(',
   5443                     end: '\\)',
   5444                     contains: [
   5445                         VARIABLE,
   5446                         STRING,
   5447                         NUMBER
   5448                     ]
   5449                 }
   5450             ]
   5451         };
   5452 
   5453     return {
   5454         case_insensitive: true,
   5455         illegal: /\/\*/,
   5456         keywords: {
   5457             keyword: KEYWORDS,
   5458             built_in: BUILT_IN,
   5459             literal: LITERAL
   5460         },
   5461         contains: [
   5462             COMMENT,
   5463             VARIABLE,
   5464             STRING,
   5465             NUMBER,
   5466             PREPROCESSOR,
   5467             CONSTANT,
   5468             FUNCTION
   5469         ]
   5470     }
   5471 }
   5472 },{name:"avrasm",create:/*
   5473 Language: AVR Assembler
   5474 Author: Vladimir Ermakov <vooon341@gmail.com>
   5475 Category: assembler
   5476 */
   5477 
   5478 function(hljs) {
   5479   return {
   5480     case_insensitive: true,
   5481     lexemes: '\\.?' + hljs.IDENT_RE,
   5482     keywords: {
   5483       keyword:
   5484         /* mnemonic */
   5485         'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
   5486         'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
   5487         'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
   5488         'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
   5489         'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
   5490         'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
   5491         'subi swap tst wdr',
   5492       built_in:
   5493         /* general purpose registers */
   5494         'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
   5495         'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
   5496         /* IO Registers (ATMega128) */
   5497         'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
   5498         'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
   5499         'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
   5500         'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
   5501         'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
   5502         'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
   5503         'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
   5504         'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
   5505       meta:
   5506         '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
   5507         '.listmac .macro .nolist .org .set'
   5508     },
   5509     contains: [
   5510       hljs.C_BLOCK_COMMENT_MODE,
   5511       hljs.COMMENT(
   5512         ';',
   5513         '$',
   5514         {
   5515           relevance: 0
   5516         }
   5517       ),
   5518       hljs.C_NUMBER_MODE, // 0x..., decimal, float
   5519       hljs.BINARY_NUMBER_MODE, // 0b...
   5520       {
   5521         className: 'number',
   5522         begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
   5523       },
   5524       hljs.QUOTE_STRING_MODE,
   5525       {
   5526         className: 'string',
   5527         begin: '\'', end: '[^\\\\]\'',
   5528         illegal: '[^\\\\][^\']'
   5529       },
   5530       {className: 'symbol',  begin: '^[A-Za-z0-9_.$]+:'},
   5531       {className: 'meta', begin: '#', end: '$'},
   5532       {  // подстановка в «.macro»
   5533         className: 'subst',
   5534         begin: '@[0-9]+'
   5535       }
   5536     ]
   5537   };
   5538 }
   5539 },{name:"awk",create:/*
   5540 Language: Awk
   5541 Author: Matthew Daly <matthewbdaly@gmail.com>
   5542 Website: http://matthewdaly.co.uk/
   5543 Description: language definition for Awk scripts
   5544 */
   5545 
   5546 function(hljs) {
   5547   var VARIABLE = {
   5548     className: 'variable',
   5549     variants: [
   5550       {begin: /\$[\w\d#@][\w\d_]*/},
   5551       {begin: /\$\{(.*?)}/}
   5552     ]
   5553   };
   5554   var KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';
   5555   var STRING = {
   5556     className: 'string',
   5557     contains: [hljs.BACKSLASH_ESCAPE],
   5558     variants: [
   5559       {
   5560         begin: /(u|b)?r?'''/, end: /'''/,
   5561         relevance: 10
   5562       },
   5563       {
   5564         begin: /(u|b)?r?"""/, end: /"""/,
   5565         relevance: 10
   5566       },
   5567       {
   5568         begin: /(u|r|ur)'/, end: /'/,
   5569         relevance: 10
   5570       },
   5571       {
   5572         begin: /(u|r|ur)"/, end: /"/,
   5573         relevance: 10
   5574       },
   5575       {
   5576         begin: /(b|br)'/, end: /'/
   5577       },
   5578       {
   5579         begin: /(b|br)"/, end: /"/
   5580       },
   5581       hljs.APOS_STRING_MODE,
   5582       hljs.QUOTE_STRING_MODE
   5583     ]
   5584   };
   5585   return {
   5586 	 keywords: {
   5587 	   keyword: KEYWORDS
   5588     },
   5589     contains: [
   5590       VARIABLE,
   5591       STRING,
   5592       hljs.REGEXP_MODE,
   5593       hljs.HASH_COMMENT_MODE,
   5594       hljs.NUMBER_MODE
   5595     ]
   5596   }
   5597 }
   5598 },{name:"axapta",create:/*
   5599 Language: Axapta
   5600 Author: Dmitri Roudakov <dmitri@roudakov.ru>
   5601 Category: enterprise
   5602 */
   5603 
   5604 function(hljs) {
   5605   return {
   5606     keywords: 'false int abstract private char boolean static null if for true ' +
   5607       'while long throw finally protected final return void enum else ' +
   5608       'break new catch byte super case short default double public try this switch ' +
   5609       'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
   5610       'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
   5611       'ttscommit str real date container anytype common div mod',
   5612     contains: [
   5613       hljs.C_LINE_COMMENT_MODE,
   5614       hljs.C_BLOCK_COMMENT_MODE,
   5615       hljs.APOS_STRING_MODE,
   5616       hljs.QUOTE_STRING_MODE,
   5617       hljs.C_NUMBER_MODE,
   5618       {
   5619         className: 'meta',
   5620         begin: '#', end: '$'
   5621       },
   5622       {
   5623         className: 'class',
   5624         beginKeywords: 'class interface', end: '{', excludeEnd: true,
   5625         illegal: ':',
   5626         contains: [
   5627           {beginKeywords: 'extends implements'},
   5628           hljs.UNDERSCORE_TITLE_MODE
   5629         ]
   5630       }
   5631     ]
   5632   };
   5633 }
   5634 },{name:"bash",create:/*
   5635 Language: Bash
   5636 Author: vah <vahtenberg@gmail.com>
   5637 Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
   5638 Category: common
   5639 */
   5640 
   5641 function(hljs) {
   5642   var VAR = {
   5643     className: 'variable',
   5644     variants: [
   5645       {begin: /\$[\w\d#@][\w\d_]*/},
   5646       {begin: /\$\{(.*?)}/}
   5647     ]
   5648   };
   5649   var QUOTE_STRING = {
   5650     className: 'string',
   5651     begin: /"/, end: /"/,
   5652     contains: [
   5653       hljs.BACKSLASH_ESCAPE,
   5654       VAR,
   5655       {
   5656         className: 'variable',
   5657         begin: /\$\(/, end: /\)/,
   5658         contains: [hljs.BACKSLASH_ESCAPE]
   5659       }
   5660     ]
   5661   };
   5662   var ESCAPED_QUOTE = {
   5663     className: '',
   5664     begin: /\\"/
   5665 
   5666   };
   5667   var APOS_STRING = {
   5668     className: 'string',
   5669     begin: /'/, end: /'/
   5670   };
   5671 
   5672   return {
   5673     aliases: ['sh', 'zsh'],
   5674     lexemes: /\b-?[a-z\._]+\b/,
   5675     keywords: {
   5676       keyword:
   5677         'if then else elif fi for while in do done case esac function',
   5678       literal:
   5679         'true false',
   5680       built_in:
   5681         // Shell built-ins
   5682         // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
   5683         'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
   5684         'trap umask unset ' +
   5685         // Bash built-ins
   5686         'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
   5687         'read readarray source type typeset ulimit unalias ' +
   5688         // Shell modifiers
   5689         'set shopt ' +
   5690         // Zsh built-ins
   5691         'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
   5692         'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
   5693         'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
   5694         'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
   5695         'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
   5696         'zpty zregexparse zsocket zstyle ztcp',
   5697       _:
   5698         '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
   5699     },
   5700     contains: [
   5701       {
   5702         className: 'meta',
   5703         begin: /^#![^\n]+sh\s*$/,
   5704         relevance: 10
   5705       },
   5706       {
   5707         className: 'function',
   5708         begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
   5709         returnBegin: true,
   5710         contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
   5711         relevance: 0
   5712       },
   5713       hljs.HASH_COMMENT_MODE,
   5714       QUOTE_STRING,
   5715       ESCAPED_QUOTE,
   5716       APOS_STRING,
   5717       VAR
   5718     ]
   5719   };
   5720 }
   5721 },{name:"basic",create:/*
   5722 Language: Basic
   5723 Author: Raphaël Assénat <raph@raphnet.net>
   5724 Description: Based on the BASIC reference from the Tandy 1000 guide
   5725 */
   5726 function(hljs) {
   5727   return {
   5728     case_insensitive: true,
   5729     illegal: '^\.',
   5730     // Support explicitely typed variables that end with $%! or #.
   5731     lexemes: '[a-zA-Z][a-zA-Z0-9_\$\%\!\#]*',
   5732     keywords: {
   5733         keyword:
   5734           'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' +
   5735           'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' +
   5736           'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' +
   5737           'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' +
   5738           'HEX$ IF|0 THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' +
   5739           'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' +
   5740           'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' +
   5741           'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' +
   5742           'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' +
   5743           'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' +
   5744           'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' +
   5745           'WEND WIDTH WINDOW WRITE XOR'
   5746     },
   5747     contains: [
   5748       hljs.QUOTE_STRING_MODE,
   5749       hljs.COMMENT('REM', '$', {relevance: 10}),
   5750       hljs.COMMENT('\'', '$', {relevance: 0}),
   5751       {
   5752         // Match line numbers
   5753         className: 'symbol',
   5754         begin: '^[0-9]+\ ',
   5755         relevance: 10
   5756       },
   5757       {
   5758         // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)
   5759         className: 'number',
   5760         begin: '\\b([0-9]+[0-9edED\.]*[#\!]?)',
   5761         relevance: 0
   5762       },
   5763       {
   5764         // Match hexadecimal numbers (&Hxxxx)
   5765         className: 'number',
   5766         begin: '(\&[hH][0-9a-fA-F]{1,4})'
   5767       },
   5768       {
   5769         // Match octal numbers (&Oxxxxxx)
   5770         className: 'number',
   5771         begin: '(\&[oO][0-7]{1,6})'
   5772       }
   5773     ]
   5774   };
   5775 }
   5776 },{name:"bnf",create:/*
   5777 Language: Backus–Naur Form
   5778 Author: Oleg Efimov <efimovov@gmail.com>
   5779 */
   5780 
   5781 function(hljs){
   5782   return {
   5783     contains: [
   5784       // Attribute
   5785       {
   5786         className: 'attribute',
   5787         begin: /</, end: />/
   5788       },
   5789       // Specific
   5790       {
   5791         begin: /::=/,
   5792         starts: {
   5793           end: /$/,
   5794           contains: [
   5795             {
   5796               begin: /</, end: />/
   5797             },
   5798             // Common
   5799             hljs.C_LINE_COMMENT_MODE,
   5800             hljs.C_BLOCK_COMMENT_MODE,
   5801             hljs.APOS_STRING_MODE,
   5802             hljs.QUOTE_STRING_MODE
   5803           ]
   5804         }
   5805       }
   5806     ]
   5807   };
   5808 }
   5809 },{name:"brainfuck",create:/*
   5810 Language: Brainfuck
   5811 Author: Evgeny Stepanischev <imbolk@gmail.com>
   5812 */
   5813 
   5814 function(hljs){
   5815   var LITERAL = {
   5816     className: 'literal',
   5817     begin: '[\\+\\-]',
   5818     relevance: 0
   5819   };
   5820   return {
   5821     aliases: ['bf'],
   5822     contains: [
   5823       hljs.COMMENT(
   5824         '[^\\[\\]\\.,\\+\\-<> \r\n]',
   5825         '[\\[\\]\\.,\\+\\-<> \r\n]',
   5826         {
   5827           returnEnd: true,
   5828           relevance: 0
   5829         }
   5830       ),
   5831       {
   5832         className: 'title',
   5833         begin: '[\\[\\]]',
   5834         relevance: 0
   5835       },
   5836       {
   5837         className: 'string',
   5838         begin: '[\\.,]',
   5839         relevance: 0
   5840       },
   5841       {
   5842         // this mode works as the only relevance counter
   5843         begin: /\+\+|\-\-/, returnBegin: true,
   5844         contains: [LITERAL]
   5845       },
   5846       LITERAL
   5847     ]
   5848   };
   5849 }
   5850 },{name:"cal",create:/*
   5851 Language: C/AL
   5852 Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
   5853 Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
   5854 */
   5855 
   5856 function(hljs) {
   5857   var KEYWORDS =
   5858     'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
   5859     'until while with var';
   5860   var LITERALS = 'false true';
   5861   var COMMENT_MODES = [
   5862     hljs.C_LINE_COMMENT_MODE,
   5863     hljs.COMMENT(
   5864       /\{/,
   5865       /\}/,
   5866       {
   5867         relevance: 0
   5868       }
   5869     ),
   5870     hljs.COMMENT(
   5871       /\(\*/,
   5872       /\*\)/,
   5873       {
   5874         relevance: 10
   5875       }
   5876     )
   5877   ];
   5878   var STRING = {
   5879     className: 'string',
   5880     begin: /'/, end: /'/,
   5881     contains: [{begin: /''/}]
   5882   };
   5883   var CHAR_STRING = {
   5884     className: 'string', begin: /(#\d+)+/
   5885   };
   5886   var DATE = {
   5887       className: 'number',
   5888       begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
   5889       relevance: 0
   5890   };
   5891   var DBL_QUOTED_VARIABLE = {
   5892       className: 'string', // not a string technically but makes sense to be highlighted in the same style
   5893       begin: '"',
   5894       end: '"'
   5895   };
   5896 
   5897   var PROCEDURE = {
   5898     className: 'function',
   5899     beginKeywords: 'procedure', end: /[:;]/,
   5900     keywords: 'procedure|10',
   5901     contains: [
   5902       hljs.TITLE_MODE,
   5903       {
   5904         className: 'params',
   5905         begin: /\(/, end: /\)/,
   5906         keywords: KEYWORDS,
   5907         contains: [STRING, CHAR_STRING]
   5908       }
   5909     ].concat(COMMENT_MODES)
   5910   };
   5911 
   5912   var OBJECT = {
   5913     className: 'class',
   5914     begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
   5915     returnBegin: true,
   5916     contains: [
   5917       hljs.TITLE_MODE,
   5918         PROCEDURE
   5919     ]
   5920   };
   5921 
   5922   return {
   5923     case_insensitive: true,
   5924     keywords: { keyword: KEYWORDS, literal: LITERALS },
   5925     illegal: /\/\*/,
   5926     contains: [
   5927       STRING, CHAR_STRING,
   5928       DATE, DBL_QUOTED_VARIABLE,
   5929       hljs.NUMBER_MODE,
   5930       OBJECT,
   5931       PROCEDURE
   5932     ]
   5933   };
   5934 }
   5935 },{name:"capnproto",create:/*
   5936 Language: Cap’n Proto
   5937 Author: Oleg Efimov <efimovov@gmail.com>
   5938 Description: Cap’n Proto message definition format
   5939 Category: protocols
   5940 */
   5941 
   5942 function(hljs) {
   5943   return {
   5944     aliases: ['capnp'],
   5945     keywords: {
   5946       keyword:
   5947         'struct enum interface union group import using const annotation extends in of on as with from fixed',
   5948       built_in:
   5949         'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
   5950         'Text Data AnyPointer AnyStruct Capability List',
   5951       literal:
   5952         'true false'
   5953     },
   5954     contains: [
   5955       hljs.QUOTE_STRING_MODE,
   5956       hljs.NUMBER_MODE,
   5957       hljs.HASH_COMMENT_MODE,
   5958       {
   5959         className: 'meta',
   5960         begin: /@0x[\w\d]{16};/,
   5961         illegal: /\n/
   5962       },
   5963       {
   5964         className: 'symbol',
   5965         begin: /@\d+\b/
   5966       },
   5967       {
   5968         className: 'class',
   5969         beginKeywords: 'struct enum', end: /\{/,
   5970         illegal: /\n/,
   5971         contains: [
   5972           hljs.inherit(hljs.TITLE_MODE, {
   5973             starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
   5974           })
   5975         ]
   5976       },
   5977       {
   5978         className: 'class',
   5979         beginKeywords: 'interface', end: /\{/,
   5980         illegal: /\n/,
   5981         contains: [
   5982           hljs.inherit(hljs.TITLE_MODE, {
   5983             starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
   5984           })
   5985         ]
   5986       }
   5987     ]
   5988   };
   5989 }
   5990 },{name:"ceylon",create:/*
   5991 Language: Ceylon
   5992 Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
   5993 */
   5994 function(hljs) {
   5995   // 2.3. Identifiers and keywords
   5996   var KEYWORDS =
   5997     'assembly module package import alias class interface object given value ' +
   5998     'assign void function new of extends satisfies abstracts in out return ' +
   5999     'break continue throw assert dynamic if else switch case for while try ' +
   6000     'catch finally then let this outer super is exists nonempty';
   6001   // 7.4.1 Declaration Modifiers
   6002   var DECLARATION_MODIFIERS =
   6003     'shared abstract formal default actual variable late native deprecated' +
   6004     'final sealed annotation suppressWarnings small';
   6005   // 7.4.2 Documentation
   6006   var DOCUMENTATION =
   6007     'doc by license see throws tagged';
   6008   var SUBST = {
   6009     className: 'subst', excludeBegin: true, excludeEnd: true,
   6010     begin: /``/, end: /``/,
   6011     keywords: KEYWORDS,
   6012     relevance: 10
   6013   };
   6014   var EXPRESSIONS = [
   6015     {
   6016       // verbatim string
   6017       className: 'string',
   6018       begin: '"""',
   6019       end: '"""',
   6020       relevance: 10
   6021     },
   6022     {
   6023       // string literal or template
   6024       className: 'string',
   6025       begin: '"', end: '"',
   6026       contains: [SUBST]
   6027     },
   6028     {
   6029       // character literal
   6030       className: 'string',
   6031       begin: "'",
   6032       end: "'"
   6033     },
   6034     {
   6035       // numeric literal
   6036       className: 'number',
   6037       begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
   6038       relevance: 0
   6039     }
   6040   ];
   6041   SUBST.contains = EXPRESSIONS;
   6042 
   6043   return {
   6044     keywords: {
   6045       keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
   6046       meta: DOCUMENTATION
   6047     },
   6048     illegal: '\\$[^01]|#[^0-9a-fA-F]',
   6049     contains: [
   6050       hljs.C_LINE_COMMENT_MODE,
   6051       hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
   6052       {
   6053         // compiler annotation
   6054         className: 'meta',
   6055         begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
   6056       }
   6057     ].concat(EXPRESSIONS)
   6058   };
   6059 }
   6060 },{name:"clean",create:/*
   6061 Language: Clean
   6062 Author: Camil Staps <info@camilstaps.nl>
   6063 Category: functional
   6064 Website: http://clean.cs.ru.nl
   6065 */
   6066 
   6067 function(hljs) {
   6068   return {
   6069     aliases: ['clean','icl','dcl'],
   6070     keywords: {
   6071       keyword:
   6072         'if let in with where case of class instance otherwise ' +
   6073         'implementation definition system module from import qualified as ' +
   6074         'special code inline foreign export ccall stdcall generic derive ' +
   6075         'infix infixl infixr',
   6076       built_in:
   6077         'Int Real Char Bool',
   6078       literal:
   6079         'True False'
   6080     },
   6081     contains: [
   6082 
   6083       hljs.C_LINE_COMMENT_MODE,
   6084       hljs.C_BLOCK_COMMENT_MODE,
   6085       hljs.APOS_STRING_MODE,
   6086       hljs.QUOTE_STRING_MODE,
   6087       hljs.C_NUMBER_MODE,
   6088 
   6089       {begin: '->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>'} // relevance booster
   6090     ]
   6091   };
   6092 }
   6093 },{name:"clojure-repl",create:/*
   6094 Language: Clojure REPL
   6095 Description: Clojure REPL sessions
   6096 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
   6097 Requires: clojure.js
   6098 Category: lisp
   6099 */
   6100 
   6101 function(hljs) {
   6102   return {
   6103     contains: [
   6104       {
   6105         className: 'meta',
   6106         begin: /^([\w.-]+|\s*#_)?=>/,
   6107         starts: {
   6108           end: /$/,
   6109           subLanguage: 'clojure'
   6110         }
   6111       }
   6112     ]
   6113   }
   6114 }
   6115 },{name:"clojure",create:/*
   6116 Language: Clojure
   6117 Description: Clojure syntax (based on lisp.js)
   6118 Author: mfornos
   6119 Contributors: Martin Clausen <martin.clausene@gmail.com>
   6120 Category: lisp
   6121 */
   6122 
   6123 function(hljs) {
   6124   var keywords = {
   6125     'builtin-name':
   6126       // Clojure keywords
   6127       'def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem '+
   6128       'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
   6129       'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
   6130       'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
   6131       'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
   6132       'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
   6133       'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
   6134       'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
   6135       'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
   6136       'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
   6137       'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
   6138       'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or '+
   6139       'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
   6140       'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
   6141       'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
   6142       'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
   6143       'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '+
   6144       'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '+
   6145       'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '+
   6146       'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
   6147       'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
   6148       'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '+
   6149       'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
   6150       'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
   6151       'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
   6152       'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
   6153       'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
   6154    };
   6155 
   6156   var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
   6157   var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
   6158   var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
   6159 
   6160   var SYMBOL = {
   6161     begin: SYMBOL_RE,
   6162     relevance: 0
   6163   };
   6164   var NUMBER = {
   6165     className: 'number', begin: SIMPLE_NUMBER_RE,
   6166     relevance: 0
   6167   };
   6168   var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
   6169   var COMMENT = hljs.COMMENT(
   6170     ';',
   6171     '$',
   6172     {
   6173       relevance: 0
   6174     }
   6175   );
   6176   var LITERAL = {
   6177     className: 'literal',
   6178     begin: /\b(true|false|nil)\b/
   6179   };
   6180   var COLLECTION = {
   6181     begin: '[\\[\\{]', end: '[\\]\\}]'
   6182   };
   6183   var HINT = {
   6184     className: 'comment',
   6185     begin: '\\^' + SYMBOL_RE
   6186   };
   6187   var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
   6188   var KEY = {
   6189     className: 'symbol',
   6190     begin: '[:]{1,2}' + SYMBOL_RE
   6191   };
   6192   var LIST = {
   6193     begin: '\\(', end: '\\)'
   6194   };
   6195   var BODY = {
   6196     endsWithParent: true,
   6197     relevance: 0
   6198   };
   6199   var NAME = {
   6200     keywords: keywords,
   6201     lexemes: SYMBOL_RE,
   6202     className: 'name', begin: SYMBOL_RE,
   6203     starts: BODY
   6204   };
   6205   var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
   6206 
   6207   LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
   6208   BODY.contains = DEFAULT_CONTAINS;
   6209   COLLECTION.contains = DEFAULT_CONTAINS;
   6210   HINT_COL.contains = [COLLECTION];
   6211 
   6212   return {
   6213     aliases: ['clj'],
   6214     illegal: /\S/,
   6215     contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
   6216   }
   6217 }
   6218 },{name:"cmake",create:/*
   6219 Language: CMake
   6220 Description: CMake is an open-source cross-platform system for build automation.
   6221 Author: Igor Kalnitsky <igor@kalnitsky.org>
   6222 Website: http://kalnitsky.org/
   6223 */
   6224 
   6225 function(hljs) {
   6226   return {
   6227     aliases: ['cmake.in'],
   6228     case_insensitive: true,
   6229     keywords: {
   6230       keyword:
   6231         // scripting commands
   6232         'break cmake_host_system_information cmake_minimum_required cmake_parse_arguments ' +
   6233         'cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro ' +
   6234         'endwhile execute_process file find_file find_library find_package find_path ' +
   6235         'find_program foreach function get_cmake_property get_directory_property ' +
   6236         'get_filename_component get_property if include include_guard list macro ' +
   6237         'mark_as_advanced math message option return separate_arguments ' +
   6238         'set_directory_properties set_property set site_name string unset variable_watch while ' +
   6239         // project commands
   6240         'add_compile_definitions add_compile_options add_custom_command add_custom_target ' +
   6241         'add_definitions add_dependencies add_executable add_library add_link_options ' +
   6242         'add_subdirectory add_test aux_source_directory build_command create_test_sourcelist ' +
   6243         'define_property enable_language enable_testing export fltk_wrap_ui ' +
   6244         'get_source_file_property get_target_property get_test_property include_directories ' +
   6245         'include_external_msproject include_regular_expression install link_directories ' +
   6246         'link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions ' +
   6247         'set_source_files_properties set_target_properties set_tests_properties source_group ' +
   6248         'target_compile_definitions target_compile_features target_compile_options ' +
   6249         'target_include_directories target_link_directories target_link_libraries ' +
   6250         'target_link_options target_sources try_compile try_run ' +
   6251         // CTest commands
   6252         'ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ' +
   6253         'ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ' +
   6254         'ctest_test ctest_update ctest_upload ' +
   6255         // deprecated commands
   6256         'build_name exec_program export_library_dependencies install_files install_programs ' +
   6257         'install_targets load_command make_directory output_required_files remove ' +
   6258         'subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file ' +
   6259         'qt5_use_modules qt5_use_package qt5_wrap_cpp ' +
   6260         // core keywords
   6261         'on off true false and or not command policy target test exists is_newer_than ' +
   6262         'is_directory is_symlink is_absolute matches less greater equal less_equal ' +
   6263         'greater_equal strless strgreater strequal strless_equal strgreater_equal version_less ' +
   6264         'version_greater version_equal version_less_equal version_greater_equal in_list defined'
   6265     },
   6266     contains: [
   6267       {
   6268         className: 'variable',
   6269         begin: '\\${', end: '}'
   6270       },
   6271       hljs.HASH_COMMENT_MODE,
   6272       hljs.QUOTE_STRING_MODE,
   6273       hljs.NUMBER_MODE
   6274     ]
   6275   };
   6276 }
   6277 },{name:"coffeescript",create:/*
   6278 Language: CoffeeScript
   6279 Author: Dmytrii Nagirniak <dnagir@gmail.com>
   6280 Contributors: Oleg Efimov <efimovov@gmail.com>, Cédric Néhémie <cedric.nehemie@gmail.com>
   6281 Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
   6282 Category: common, scripting
   6283 */
   6284 
   6285 function(hljs) {
   6286   var KEYWORDS = {
   6287     keyword:
   6288       // JS keywords
   6289       'in if for while finally new do return else break catch instanceof throw try this ' +
   6290       'switch continue typeof delete debugger super yield import export from as default await ' +
   6291       // Coffee keywords
   6292       'then unless until loop of by when and or is isnt not',
   6293     literal:
   6294       // JS literals
   6295       'true false null undefined ' +
   6296       // Coffee literals
   6297       'yes no on off',
   6298     built_in:
   6299       'npm require console print module global window document'
   6300   };
   6301   var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
   6302   var SUBST = {
   6303     className: 'subst',
   6304     begin: /#\{/, end: /}/,
   6305     keywords: KEYWORDS
   6306   };
   6307   var EXPRESSIONS = [
   6308     hljs.BINARY_NUMBER_MODE,
   6309     hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
   6310     {
   6311       className: 'string',
   6312       variants: [
   6313         {
   6314           begin: /'''/, end: /'''/,
   6315           contains: [hljs.BACKSLASH_ESCAPE]
   6316         },
   6317         {
   6318           begin: /'/, end: /'/,
   6319           contains: [hljs.BACKSLASH_ESCAPE]
   6320         },
   6321         {
   6322           begin: /"""/, end: /"""/,
   6323           contains: [hljs.BACKSLASH_ESCAPE, SUBST]
   6324         },
   6325         {
   6326           begin: /"/, end: /"/,
   6327           contains: [hljs.BACKSLASH_ESCAPE, SUBST]
   6328         }
   6329       ]
   6330     },
   6331     {
   6332       className: 'regexp',
   6333       variants: [
   6334         {
   6335           begin: '///', end: '///',
   6336           contains: [SUBST, hljs.HASH_COMMENT_MODE]
   6337         },
   6338         {
   6339           begin: '//[gim]*',
   6340           relevance: 0
   6341         },
   6342         {
   6343           // regex can't start with space to parse x / 2 / 3 as two divisions
   6344           // regex can't start with *, and it supports an "illegal" in the main mode
   6345           begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
   6346         }
   6347       ]
   6348     },
   6349     {
   6350       begin: '@' + JS_IDENT_RE // relevance booster
   6351     },
   6352     {
   6353       subLanguage: 'javascript',
   6354       excludeBegin: true, excludeEnd: true,
   6355       variants: [
   6356         {
   6357           begin: '```', end: '```',
   6358         },
   6359         {
   6360           begin: '`', end: '`',
   6361         }
   6362       ]
   6363     }
   6364   ];
   6365   SUBST.contains = EXPRESSIONS;
   6366 
   6367   var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
   6368   var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
   6369   var PARAMS = {
   6370     className: 'params',
   6371     begin: '\\([^\\(]', returnBegin: true,
   6372     /* We need another contained nameless mode to not have every nested
   6373     pair of parens to be called "params" */
   6374     contains: [{
   6375       begin: /\(/, end: /\)/,
   6376       keywords: KEYWORDS,
   6377       contains: ['self'].concat(EXPRESSIONS)
   6378     }]
   6379   };
   6380 
   6381   return {
   6382     aliases: ['coffee', 'cson', 'iced'],
   6383     keywords: KEYWORDS,
   6384     illegal: /\/\*/,
   6385     contains: EXPRESSIONS.concat([
   6386       hljs.COMMENT('###', '###'),
   6387       hljs.HASH_COMMENT_MODE,
   6388       {
   6389         className: 'function',
   6390         begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
   6391         returnBegin: true,
   6392         contains: [TITLE, PARAMS]
   6393       },
   6394       {
   6395         // anonymous function start
   6396         begin: /[:\(,=]\s*/,
   6397         relevance: 0,
   6398         contains: [
   6399           {
   6400             className: 'function',
   6401             begin: PARAMS_RE, end: '[-=]>',
   6402             returnBegin: true,
   6403             contains: [PARAMS]
   6404           }
   6405         ]
   6406       },
   6407       {
   6408         className: 'class',
   6409         beginKeywords: 'class',
   6410         end: '$',
   6411         illegal: /[:="\[\]]/,
   6412         contains: [
   6413           {
   6414             beginKeywords: 'extends',
   6415             endsWithParent: true,
   6416             illegal: /[:="\[\]]/,
   6417             contains: [TITLE]
   6418           },
   6419           TITLE
   6420         ]
   6421       },
   6422       {
   6423         begin: JS_IDENT_RE + ':', end: ':',
   6424         returnBegin: true, returnEnd: true,
   6425         relevance: 0
   6426       }
   6427     ])
   6428   };
   6429 }
   6430 },{name:"coq",create:/*
   6431 Language: Coq
   6432 Author: Stephan Boyer <stephan@stephanboyer.com>
   6433 Category: functional
   6434 */
   6435 
   6436 function(hljs) {
   6437   return {
   6438     keywords: {
   6439       keyword:
   6440         '_ as at cofix else end exists exists2 fix for forall fun if IF in let ' +
   6441         'match mod Prop return Set then Type using where with ' +
   6442         'Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo ' +
   6443         'Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion ' +
   6444         'Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture ' +
   6445         'Conjectures Constant constr Constraint Constructors Context Corollary ' +
   6446         'CreateHintDb Cut Declare Defined Definition Delimit Dependencies Dependent' +
   6447         'Derive Drop eauto End Equality Eval Example Existential Existentials ' +
   6448         'Existing Export exporting Extern Extract Extraction Fact Field Fields File ' +
   6449         'Fixpoint Focus for From Function Functional Generalizable Global Goal Grab ' +
   6450         'Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident ' +
   6451         'Identity If Immediate Implicit Import Include Inductive Infix Info Initial ' +
   6452         'Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear ' +
   6453         'Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML ' +
   6454         'Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation ' +
   6455         'Obligations Opaque Open Optimize Options Parameter Parameters Parametric ' +
   6456         'Path Paths pattern Polymorphic Preterm Print Printing Program Projections ' +
   6457         'Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark ' +
   6458         'Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save ' +
   6459         'Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern ' +
   6460         'SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies ' +
   6461         'Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time ' +
   6462         'Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused ' +
   6463         'Unfold Universe Universes Unset Unshelve using Variable Variables Variant ' +
   6464         'Verbose Visibility where with',
   6465       built_in:
   6466         'abstract absurd admit after apply as assert assumption at auto autorewrite ' +
   6467         'autounfold before bottom btauto by case case_eq cbn cbv change ' +
   6468         'classical_left classical_right clear clearbody cofix compare compute ' +
   6469         'congruence constr_eq constructor contradict contradiction cut cutrewrite ' +
   6470         'cycle decide decompose dependent destruct destruction dintuition ' +
   6471         'discriminate discrR do double dtauto eapply eassumption eauto ecase ' +
   6472         'econstructor edestruct ediscriminate eelim eexact eexists einduction ' +
   6473         'einjection eleft elim elimtype enough equality erewrite eright ' +
   6474         'esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail ' +
   6475         'field field_simplify field_simplify_eq first firstorder fix fold fourier ' +
   6476         'functional generalize generalizing gfail give_up has_evar hnf idtac in ' +
   6477         'induction injection instantiate intro intro_pattern intros intuition ' +
   6478         'inversion inversion_clear is_evar is_var lapply lazy left lia lra move ' +
   6479         'native_compute nia nsatz omega once pattern pose progress proof psatz quote ' +
   6480         'record red refine reflexivity remember rename repeat replace revert ' +
   6481         'revgoals rewrite rewrite_strat right ring ring_simplify rtauto set ' +
   6482         'setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry ' +
   6483         'setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve ' +
   6484         'specialize split split_Rabs split_Rmult stepl stepr subst sum swap ' +
   6485         'symmetry tactic tauto time timeout top transitivity trivial try tryif ' +
   6486         'unfold unify until using vm_compute with'
   6487     },
   6488     contains: [
   6489       hljs.QUOTE_STRING_MODE,
   6490       hljs.COMMENT('\\(\\*', '\\*\\)'),
   6491       hljs.C_NUMBER_MODE,
   6492       {
   6493         className: 'type',
   6494         excludeBegin: true,
   6495         begin: '\\|\\s*',
   6496         end: '\\w+'
   6497       },
   6498       {begin: /[-=]>/} // relevance booster
   6499     ]
   6500   };
   6501 }
   6502 },{name:"cos",create:/*
   6503 Language: Caché Object Script
   6504 Author: Nikita Savchenko <zitros.lab@gmail.com>
   6505 Category: enterprise, scripting
   6506 */
   6507 function cos (hljs) {
   6508 
   6509   var STRINGS = {
   6510     className: 'string',
   6511     variants: [
   6512       {
   6513         begin: '"',
   6514         end: '"',
   6515         contains: [{ // escaped
   6516           begin: "\"\"",
   6517           relevance: 0
   6518         }]
   6519       }
   6520     ]
   6521   };
   6522 
   6523   var NUMBERS = {
   6524     className: "number",
   6525     begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
   6526     relevance: 0
   6527   };
   6528 
   6529   var COS_KEYWORDS =
   6530     'property parameter class classmethod clientmethod extends as break ' +
   6531     'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' +
   6532     'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' +
   6533     'tcommit throw trollback try tstart use view while write w|0 xecute x|0 ' +
   6534     'zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert ' +
   6535     'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' +
   6536     'zsync ascii';
   6537 
   6538     // registered function - no need in them due to all functions are highlighted,
   6539     // but I'll just leave this here.
   6540 
   6541     //"$bit", "$bitcount",
   6542     //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
   6543     //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
   6544     //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
   6545     //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
   6546     //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
   6547     //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
   6548     //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
   6549     //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
   6550     //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
   6551     //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
   6552     //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
   6553     //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
   6554     //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
   6555     //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
   6556     //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
   6557     //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
   6558     //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
   6559     //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
   6560     //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
   6561     //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
   6562     //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
   6563     //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
   6564     //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
   6565     //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
   6566     //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
   6567     //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
   6568     //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
   6569     //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
   6570     //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
   6571     //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
   6572     //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
   6573     //"$ztrap", "$zversion"
   6574 
   6575   return {
   6576     case_insensitive: true,
   6577     aliases: ["cos", "cls"],
   6578     keywords: COS_KEYWORDS,
   6579     contains: [
   6580       NUMBERS,
   6581       STRINGS,
   6582       hljs.C_LINE_COMMENT_MODE,
   6583       hljs.C_BLOCK_COMMENT_MODE,
   6584       {
   6585         className: "comment",
   6586         begin: /;/, end: "$",
   6587         relevance: 0
   6588       },
   6589       { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1)
   6590         className: "built_in",
   6591         begin: /(?:\$\$?|\.\.)\^?[a-zA-Z]+/
   6592       },
   6593       { // Macro command: quit $$$OK
   6594         className: "built_in",
   6595         begin: /\$\$\$[a-zA-Z]+/
   6596       },
   6597       { // Special (global) variables: write %request.Content; Built-in classes: %Library.Integer
   6598         className: "built_in",
   6599         begin: /%[a-z]+(?:\.[a-z]+)*/
   6600       },
   6601       { // Global variable: set ^globalName = 12 write ^globalName
   6602         className: "symbol",
   6603         begin: /\^%?[a-zA-Z][\w]*/
   6604       },
   6605       { // Some control constructions: do ##class(Package.ClassName).Method(), ##super()
   6606         className: "keyword",
   6607         begin: /##class|##super|#define|#dim/
   6608       },
   6609 
   6610       // sub-languages: are not fully supported by hljs by 11/15/2015
   6611       // left for the future implementation.
   6612       {
   6613         begin: /&sql\(/,    end: /\)/,
   6614         excludeBegin: true, excludeEnd: true,
   6615         subLanguage: "sql"
   6616       },
   6617       {
   6618         begin: /&(js|jscript|javascript)</, end: />/,
   6619         excludeBegin: true, excludeEnd: true,
   6620         subLanguage: "javascript"
   6621       },
   6622       {
   6623         // this brakes first and last tag, but this is the only way to embed a valid html
   6624         begin: /&html<\s*</, end: />\s*>/,
   6625         subLanguage: "xml"
   6626       }
   6627     ]
   6628   };
   6629 }
   6630 },{name:"crmsh",create:/*
   6631 Language: crmsh
   6632 Author: Kristoffer Gronlund <kgronlund@suse.com>
   6633 Website: http://crmsh.github.io
   6634 Description: Syntax Highlighting for the crmsh DSL
   6635 Category: config
   6636 */
   6637 
   6638 function(hljs) {
   6639   var RESOURCES = 'primitive rsc_template';
   6640 
   6641   var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
   6642       'rsc_ticket acl_target acl_group user role ' +
   6643       'tag xml';
   6644 
   6645   var PROPERTY_SETS = 'property rsc_defaults op_defaults';
   6646 
   6647   var KEYWORDS = 'params meta operations op rule attributes utilization';
   6648 
   6649   var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
   6650       'ref reference attribute type xpath version and or lt gt tag ' +
   6651       'lte gte eq ne \\';
   6652 
   6653   var TYPES = 'number string';
   6654 
   6655   var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
   6656 
   6657   return {
   6658     aliases: ['crm', 'pcmk'],
   6659     case_insensitive: true,
   6660     keywords: {
   6661       keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
   6662       literal: LITERALS
   6663     },
   6664     contains: [
   6665       hljs.HASH_COMMENT_MODE,
   6666       {
   6667         beginKeywords: 'node',
   6668         starts: {
   6669           end: '\\s*([\\w_-]+:)?',
   6670           starts: {
   6671             className: 'title',
   6672             end: '\\s*[\\$\\w_][\\w_-]*'
   6673           }
   6674         }
   6675       },
   6676       {
   6677         beginKeywords: RESOURCES,
   6678         starts: {
   6679           className: 'title',
   6680           end: '\\s*[\\$\\w_][\\w_-]*',
   6681           starts: {
   6682             end: '\\s*@?[\\w_][\\w_\\.:-]*'
   6683           }
   6684         }
   6685       },
   6686       {
   6687         begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
   6688         keywords: COMMANDS,
   6689         starts: {
   6690           className: 'title',
   6691           end: '[\\$\\w_][\\w_-]*'
   6692         }
   6693       },
   6694       {
   6695         beginKeywords: PROPERTY_SETS,
   6696         starts: {
   6697           className: 'title',
   6698           end: '\\s*([\\w_-]+:)?'
   6699         }
   6700       },
   6701       hljs.QUOTE_STRING_MODE,
   6702       {
   6703         className: 'meta',
   6704         begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
   6705         relevance: 0
   6706       },
   6707       {
   6708         className: 'number',
   6709         begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
   6710         relevance: 0
   6711       },
   6712       {
   6713         className: 'literal',
   6714         begin: '[-]?(infinity|inf)',
   6715         relevance: 0
   6716       },
   6717       {
   6718         className: 'attr',
   6719         begin: /([A-Za-z\$_\#][\w_-]+)=/,
   6720         relevance: 0
   6721       },
   6722       {
   6723         className: 'tag',
   6724         begin: '</?',
   6725         end: '/?>',
   6726         relevance: 0
   6727       }
   6728     ]
   6729   };
   6730 }
   6731 },{name:"crystal",create:/*
   6732 Language: Crystal
   6733 Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
   6734 */
   6735 
   6736 function(hljs) {
   6737   var INT_SUFFIX = '(_*[ui](8|16|32|64|128))?';
   6738   var FLOAT_SUFFIX = '(_*f(32|64))?';
   6739   var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
   6740   var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?';
   6741   var CRYSTAL_PATH_RE = '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?';
   6742   var CRYSTAL_KEYWORDS = {
   6743     keyword:
   6744       'abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +
   6745       'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +
   6746       'return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield ' +
   6747       '__DIR__ __END_LINE__ __FILE__ __LINE__',
   6748     literal: 'false nil true'
   6749   };
   6750   var SUBST = {
   6751     className: 'subst',
   6752     begin: '#{', end: '}',
   6753     keywords: CRYSTAL_KEYWORDS
   6754   };
   6755   var EXPANSION = {
   6756     className: 'template-variable',
   6757     variants: [
   6758       {begin: '\\{\\{', end: '\\}\\}'},
   6759       {begin: '\\{%', end: '%\\}'}
   6760     ],
   6761     keywords: CRYSTAL_KEYWORDS
   6762   };
   6763 
   6764   function recursiveParen(begin, end) {
   6765     var
   6766     contains = [{begin: begin, end: end}];
   6767     contains[0].contains = contains;
   6768     return contains;
   6769   }
   6770   var STRING = {
   6771     className: 'string',
   6772     contains: [hljs.BACKSLASH_ESCAPE, SUBST],
   6773     variants: [
   6774       {begin: /'/, end: /'/},
   6775       {begin: /"/, end: /"/},
   6776       {begin: /`/, end: /`/},
   6777       {begin: '%[Qwi]?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
   6778       {begin: '%[Qwi]?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
   6779       {begin: '%[Qwi]?{', end: '}', contains: recursiveParen('{', '}')},
   6780       {begin: '%[Qwi]?<', end: '>', contains: recursiveParen('<', '>')},
   6781       {begin: '%[Qwi]?\\|', end: '\\|'},
   6782       {begin: /<<-\w+$/, end: /^\s*\w+$/},
   6783     ],
   6784     relevance: 0,
   6785   };
   6786   var Q_STRING = {
   6787     className: 'string',
   6788     variants: [
   6789       {begin: '%q\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
   6790       {begin: '%q\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
   6791       {begin: '%q{', end: '}', contains: recursiveParen('{', '}')},
   6792       {begin: '%q<', end: '>', contains: recursiveParen('<', '>')},
   6793       {begin: '%q\\|', end: '\\|'},
   6794       {begin: /<<-'\w+'$/, end: /^\s*\w+$/},
   6795     ],
   6796     relevance: 0,
   6797   };
   6798   var REGEXP = {
   6799     begin: '(?!%})(' + hljs.RE_STARTERS_RE + '|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*',
   6800     keywords: 'case if select unless until when while',
   6801     contains: [
   6802       {
   6803         className: 'regexp',
   6804         contains: [hljs.BACKSLASH_ESCAPE, SUBST],
   6805         variants: [
   6806           {begin: '//[a-z]*', relevance: 0},
   6807           {begin: '/(?!\\/)', end: '/[a-z]*'},
   6808         ]
   6809       }
   6810     ],
   6811     relevance: 0
   6812   };
   6813   var REGEXP2 = {
   6814     className: 'regexp',
   6815     contains: [hljs.BACKSLASH_ESCAPE, SUBST],
   6816     variants: [
   6817       {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
   6818       {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
   6819       {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
   6820       {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
   6821       {begin: '%r\\|', end: '\\|'},
   6822     ],
   6823     relevance: 0
   6824   };
   6825   var ATTRIBUTE = {
   6826     className: 'meta',
   6827     begin: '@\\[', end: '\\]',
   6828     contains: [
   6829       hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'})
   6830     ]
   6831   };
   6832   var CRYSTAL_DEFAULT_CONTAINS = [
   6833     EXPANSION,
   6834     STRING,
   6835     Q_STRING,
   6836     REGEXP2,
   6837     REGEXP,
   6838     ATTRIBUTE,
   6839     hljs.HASH_COMMENT_MODE,
   6840     {
   6841       className: 'class',
   6842       beginKeywords: 'class module struct', end: '$|;',
   6843       illegal: /=/,
   6844       contains: [
   6845         hljs.HASH_COMMENT_MODE,
   6846         hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
   6847         {begin: '<'} // relevance booster for inheritance
   6848       ]
   6849     },
   6850     {
   6851       className: 'class',
   6852       beginKeywords: 'lib enum union', end: '$|;',
   6853       illegal: /=/,
   6854       contains: [
   6855         hljs.HASH_COMMENT_MODE,
   6856         hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
   6857       ],
   6858       relevance: 10
   6859     },
   6860     {
   6861       beginKeywords: 'annotation', end: '$|;',
   6862       illegal: /=/,
   6863       contains: [
   6864         hljs.HASH_COMMENT_MODE,
   6865         hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
   6866       ],
   6867       relevance: 10
   6868     },
   6869     {
   6870       className: 'function',
   6871       beginKeywords: 'def', end: /\B\b/,
   6872       contains: [
   6873         hljs.inherit(hljs.TITLE_MODE, {
   6874           begin: CRYSTAL_METHOD_RE,
   6875           endsParent: true
   6876         })
   6877       ]
   6878     },
   6879     {
   6880       className: 'function',
   6881       beginKeywords: 'fun macro', end: /\B\b/,
   6882       contains: [
   6883         hljs.inherit(hljs.TITLE_MODE, {
   6884           begin: CRYSTAL_METHOD_RE,
   6885           endsParent: true
   6886         })
   6887       ],
   6888       relevance: 5
   6889     },
   6890     {
   6891       className: 'symbol',
   6892       begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
   6893       relevance: 0
   6894     },
   6895     {
   6896       className: 'symbol',
   6897       begin: ':',
   6898       contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
   6899       relevance: 0
   6900     },
   6901     {
   6902       className: 'number',
   6903       variants: [
   6904         { begin: '\\b0b([01_]+)' + INT_SUFFIX },
   6905         { begin: '\\b0o([0-7_]+)' + INT_SUFFIX },
   6906         { begin: '\\b0x([A-Fa-f0-9_]+)' + INT_SUFFIX },
   6907         { begin: '\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_*[-+]?[0-9_]*)?' + FLOAT_SUFFIX + '(?!_)' },
   6908         { begin: '\\b([1-9][0-9_]*|0)' + INT_SUFFIX }
   6909       ],
   6910       relevance: 0
   6911     }
   6912   ];
   6913   SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
   6914   EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
   6915 
   6916   return {
   6917     aliases: ['cr'],
   6918     lexemes: CRYSTAL_IDENT_RE,
   6919     keywords: CRYSTAL_KEYWORDS,
   6920     contains: CRYSTAL_DEFAULT_CONTAINS
   6921   };
   6922 }
   6923 },{name:"cs",create:/*
   6924 Language: C#
   6925 Author: Jason Diamond <jason@diamond.name>
   6926 Contributor: Nicolas LLOBERA <nllobera@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>
   6927 Category: common
   6928 */
   6929 
   6930 function(hljs) {
   6931   var KEYWORDS = {
   6932     keyword:
   6933       // Normal keywords.
   6934       'abstract as base bool break byte case catch char checked const continue decimal ' +
   6935       'default delegate do double enum event explicit extern finally fixed float ' +
   6936       'for foreach goto if implicit in int interface internal is lock long nameof ' +
   6937       'object operator out override params private protected public readonly ref sbyte ' +
   6938       'sealed short sizeof stackalloc static string struct switch this try typeof ' +
   6939       'uint ulong unchecked unsafe ushort using virtual void volatile while ' +
   6940       // Contextual keywords.
   6941       'add alias ascending async await by descending dynamic equals from get global group into join ' +
   6942       'let on orderby partial remove select set value var where yield',
   6943     literal:
   6944       'null false true'
   6945   };
   6946   var NUMBERS = {
   6947     className: 'number',
   6948     variants: [
   6949       { begin: '\\b(0b[01\']+)' },
   6950       { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
   6951       { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
   6952     ],
   6953     relevance: 0
   6954   };
   6955   var VERBATIM_STRING = {
   6956     className: 'string',
   6957     begin: '@"', end: '"',
   6958     contains: [{begin: '""'}]
   6959   };
   6960   var VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, {illegal: /\n/});
   6961   var SUBST = {
   6962     className: 'subst',
   6963     begin: '{', end: '}',
   6964     keywords: KEYWORDS
   6965   };
   6966   var SUBST_NO_LF = hljs.inherit(SUBST, {illegal: /\n/});
   6967   var INTERPOLATED_STRING = {
   6968     className: 'string',
   6969     begin: /\$"/, end: '"',
   6970     illegal: /\n/,
   6971     contains: [{begin: '{{'}, {begin: '}}'}, hljs.BACKSLASH_ESCAPE, SUBST_NO_LF]
   6972   };
   6973   var INTERPOLATED_VERBATIM_STRING = {
   6974     className: 'string',
   6975     begin: /\$@"/, end: '"',
   6976     contains: [{begin: '{{'}, {begin: '}}'}, {begin: '""'}, SUBST]
   6977   };
   6978   var INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {
   6979     illegal: /\n/,
   6980     contains: [{begin: '{{'}, {begin: '}}'}, {begin: '""'}, SUBST_NO_LF]
   6981   });
   6982   SUBST.contains = [
   6983     INTERPOLATED_VERBATIM_STRING,
   6984     INTERPOLATED_STRING,
   6985     VERBATIM_STRING,
   6986     hljs.APOS_STRING_MODE,
   6987     hljs.QUOTE_STRING_MODE,
   6988     NUMBERS,
   6989     hljs.C_BLOCK_COMMENT_MODE
   6990   ];
   6991   SUBST_NO_LF.contains = [
   6992     INTERPOLATED_VERBATIM_STRING_NO_LF,
   6993     INTERPOLATED_STRING,
   6994     VERBATIM_STRING_NO_LF,
   6995     hljs.APOS_STRING_MODE,
   6996     hljs.QUOTE_STRING_MODE,
   6997     NUMBERS,
   6998     hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, {illegal: /\n/})
   6999   ];
   7000   var STRING = {
   7001     variants: [
   7002       INTERPOLATED_VERBATIM_STRING,
   7003       INTERPOLATED_STRING,
   7004       VERBATIM_STRING,
   7005       hljs.APOS_STRING_MODE,
   7006       hljs.QUOTE_STRING_MODE
   7007     ]
   7008   };
   7009 
   7010   var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\s*,\\s*' + hljs.IDENT_RE + ')*>)?(\\[\\])?';
   7011 
   7012   return {
   7013     aliases: ['csharp', 'c#'],
   7014     keywords: KEYWORDS,
   7015     illegal: /::/,
   7016     contains: [
   7017       hljs.COMMENT(
   7018         '///',
   7019         '$',
   7020         {
   7021           returnBegin: true,
   7022           contains: [
   7023             {
   7024               className: 'doctag',
   7025               variants: [
   7026                 {
   7027                   begin: '///', relevance: 0
   7028                 },
   7029                 {
   7030                   begin: '<!--|-->'
   7031                 },
   7032                 {
   7033                   begin: '</?', end: '>'
   7034                 }
   7035               ]
   7036             }
   7037           ]
   7038         }
   7039       ),
   7040       hljs.C_LINE_COMMENT_MODE,
   7041       hljs.C_BLOCK_COMMENT_MODE,
   7042       {
   7043         className: 'meta',
   7044         begin: '#', end: '$',
   7045         keywords: {
   7046           'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'
   7047         }
   7048       },
   7049       STRING,
   7050       NUMBERS,
   7051       {
   7052         beginKeywords: 'class interface', end: /[{;=]/,
   7053         illegal: /[^\s:,]/,
   7054         contains: [
   7055           hljs.TITLE_MODE,
   7056           hljs.C_LINE_COMMENT_MODE,
   7057           hljs.C_BLOCK_COMMENT_MODE
   7058         ]
   7059       },
   7060       {
   7061         beginKeywords: 'namespace', end: /[{;=]/,
   7062         illegal: /[^\s:]/,
   7063         contains: [
   7064           hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'}),
   7065           hljs.C_LINE_COMMENT_MODE,
   7066           hljs.C_BLOCK_COMMENT_MODE
   7067         ]
   7068       },
   7069       {
   7070         // [Attributes("")]
   7071         className: 'meta',
   7072         begin: '^\\s*\\[', excludeBegin: true, end: '\\]', excludeEnd: true,
   7073         contains: [
   7074           {className: 'meta-string', begin: /"/, end: /"/}
   7075         ]
   7076       },
   7077       {
   7078         // Expression keywords prevent 'keyword Name(...)' from being
   7079         // recognized as a function definition
   7080         beginKeywords: 'new return throw await else',
   7081         relevance: 0
   7082       },
   7083       {
   7084         className: 'function',
   7085         begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
   7086         end: /\s*[{;=]/, excludeEnd: true,
   7087         keywords: KEYWORDS,
   7088         contains: [
   7089           {
   7090             begin: hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
   7091             contains: [hljs.TITLE_MODE],
   7092             relevance: 0
   7093           },
   7094           {
   7095             className: 'params',
   7096             begin: /\(/, end: /\)/,
   7097             excludeBegin: true,
   7098             excludeEnd: true,
   7099             keywords: KEYWORDS,
   7100             relevance: 0,
   7101             contains: [
   7102               STRING,
   7103               NUMBERS,
   7104               hljs.C_BLOCK_COMMENT_MODE
   7105             ]
   7106           },
   7107           hljs.C_LINE_COMMENT_MODE,
   7108           hljs.C_BLOCK_COMMENT_MODE
   7109         ]
   7110       }
   7111     ]
   7112   };
   7113 }
   7114 },{name:"csp",create:/*
   7115 Language: CSP
   7116 Description: Content Security Policy definition highlighting 
   7117 Author: Taras <oxdef@oxdef.info>
   7118 
   7119 vim: ts=2 sw=2 st=2
   7120 */
   7121 
   7122 function(hljs) {
   7123   return {
   7124     case_insensitive: false,
   7125     lexemes: '[a-zA-Z][a-zA-Z0-9_-]*',
   7126     keywords: {
   7127       keyword: 'base-uri child-src connect-src default-src font-src form-action' +
   7128         ' frame-ancestors frame-src img-src media-src object-src plugin-types' +
   7129         ' report-uri sandbox script-src style-src', 
   7130     },
   7131     contains: [
   7132     {
   7133       className: 'string',
   7134       begin: "'", end: "'"
   7135     },
   7136     {
   7137       className: 'attribute',
   7138       begin: '^Content', end: ':', excludeEnd: true,
   7139     },
   7140     ]
   7141   };
   7142 }
   7143 },{name:"css",create:/*
   7144 Language: CSS
   7145 Category: common, css
   7146 */
   7147 
   7148 function(hljs) {
   7149   var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
   7150   var RULE = {
   7151     begin: /(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/, returnBegin: true, end: ';', endsWithParent: true,
   7152     contains: [
   7153       {
   7154         className: 'attribute',
   7155         begin: /\S/, end: ':', excludeEnd: true,
   7156         starts: {
   7157           endsWithParent: true, excludeEnd: true,
   7158           contains: [
   7159             {
   7160               begin: /[\w-]+\(/, returnBegin: true,
   7161               contains: [
   7162                 {
   7163                   className: 'built_in',
   7164                   begin: /[\w-]+/
   7165                 },
   7166                 {
   7167                   begin: /\(/, end: /\)/,
   7168                   contains: [
   7169                     hljs.APOS_STRING_MODE,
   7170                     hljs.QUOTE_STRING_MODE
   7171                   ]
   7172                 }
   7173               ]
   7174             },
   7175             hljs.CSS_NUMBER_MODE,
   7176             hljs.QUOTE_STRING_MODE,
   7177             hljs.APOS_STRING_MODE,
   7178             hljs.C_BLOCK_COMMENT_MODE,
   7179             {
   7180               className: 'number', begin: '#[0-9A-Fa-f]+'
   7181             },
   7182             {
   7183               className: 'meta', begin: '!important'
   7184             }
   7185           ]
   7186         }
   7187       }
   7188     ]
   7189   };
   7190 
   7191   return {
   7192     case_insensitive: true,
   7193     illegal: /[=\/|'\$]/,
   7194     contains: [
   7195       hljs.C_BLOCK_COMMENT_MODE,
   7196       {
   7197         className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
   7198       },
   7199       {
   7200         className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
   7201       },
   7202       {
   7203         className: 'selector-attr',
   7204         begin: /\[/, end: /\]/,
   7205         illegal: '$'
   7206       },
   7207       {
   7208         className: 'selector-pseudo',
   7209         begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/
   7210       },
   7211       {
   7212         begin: '@(font-face|page)',
   7213         lexemes: '[a-z-]+',
   7214         keywords: 'font-face page'
   7215       },
   7216       {
   7217         begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
   7218                                  // because it doesn’t let it to be parsed as
   7219                                  // a rule set but instead drops parser into
   7220                                  // the default mode which is how it should be.
   7221         illegal: /:/, // break on Less variables @var: ...
   7222         contains: [
   7223           {
   7224             className: 'keyword',
   7225             begin: /\w+/
   7226           },
   7227           {
   7228             begin: /\s/, endsWithParent: true, excludeEnd: true,
   7229             relevance: 0,
   7230             contains: [
   7231               hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
   7232               hljs.CSS_NUMBER_MODE
   7233             ]
   7234           }
   7235         ]
   7236       },
   7237       {
   7238         className: 'selector-tag', begin: IDENT_RE,
   7239         relevance: 0
   7240       },
   7241       {
   7242         begin: '{', end: '}',
   7243         illegal: /\S/,
   7244         contains: [
   7245           hljs.C_BLOCK_COMMENT_MODE,
   7246           RULE,
   7247         ]
   7248       }
   7249     ]
   7250   };
   7251 }
   7252 },{name:"d",create:/*
   7253 Language: D
   7254 Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
   7255 Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
   7256 Version: 1.0a
   7257 Date: 2012-04-08
   7258 */
   7259 
   7260 /**
   7261  * Known issues:
   7262  *
   7263  * - invalid hex string literals will be recognized as a double quoted strings
   7264  *   but 'x' at the beginning of string will not be matched
   7265  *
   7266  * - delimited string literals are not checked for matching end delimiter
   7267  *   (not possible to do with js regexp)
   7268  *
   7269  * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
   7270  *   also, content of token string is not validated to contain only valid D tokens
   7271  *
   7272  * - special token sequence rule is not strictly following D grammar (anything following #line
   7273  *   up to the end of line is matched as special token sequence)
   7274  */
   7275 
   7276 function(hljs) {
   7277   /**
   7278    * Language keywords
   7279    *
   7280    * @type {Object}
   7281    */
   7282   var D_KEYWORDS = {
   7283     keyword:
   7284       'abstract alias align asm assert auto body break byte case cast catch class ' +
   7285       'const continue debug default delete deprecated do else enum export extern final ' +
   7286       'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
   7287       'interface invariant is lazy macro mixin module new nothrow out override package ' +
   7288       'pragma private protected public pure ref return scope shared static struct ' +
   7289       'super switch synchronized template this throw try typedef typeid typeof union ' +
   7290       'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
   7291       '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
   7292     built_in:
   7293       'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
   7294       'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
   7295       'wstring',
   7296     literal:
   7297       'false null true'
   7298   };
   7299 
   7300   /**
   7301    * Number literal regexps
   7302    *
   7303    * @type {String}
   7304    */
   7305   var decimal_integer_re = '(0|[1-9][\\d_]*)',
   7306     decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
   7307     binary_integer_re = '0[bB][01_]+',
   7308     hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
   7309     hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
   7310 
   7311     decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
   7312     decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
   7313                 '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
   7314                 '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
   7315               ')',
   7316     hexadecimal_float_re = '(0[xX](' +
   7317                   hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
   7318                   '\\.?' + hexadecimal_digits_re +
   7319                  ')[pP][+-]?' + decimal_integer_nosus_re + ')',
   7320 
   7321     integer_re = '(' +
   7322       decimal_integer_re + '|' +
   7323       binary_integer_re  + '|' +
   7324        hexadecimal_integer_re   +
   7325     ')',
   7326 
   7327     float_re = '(' +
   7328       hexadecimal_float_re + '|' +
   7329       decimal_float_re  +
   7330     ')';
   7331 
   7332   /**
   7333    * Escape sequence supported in D string and character literals
   7334    *
   7335    * @type {String}
   7336    */
   7337   var escape_sequence_re = '\\\\(' +
   7338               '[\'"\\?\\\\abfnrtv]|' +  // common escapes
   7339               'u[\\dA-Fa-f]{4}|' +     // four hex digit unicode codepoint
   7340               '[0-7]{1,3}|' +       // one to three octal digit ascii char code
   7341               'x[\\dA-Fa-f]{2}|' +    // two hex digit ascii char code
   7342               'U[\\dA-Fa-f]{8}' +      // eight hex digit unicode codepoint
   7343               ')|' +
   7344               '&[a-zA-Z\\d]{2,};';      // named character entity
   7345 
   7346   /**
   7347    * D integer number literals
   7348    *
   7349    * @type {Object}
   7350    */
   7351   var D_INTEGER_MODE = {
   7352     className: 'number',
   7353       begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
   7354       relevance: 0
   7355   };
   7356 
   7357   /**
   7358    * [D_FLOAT_MODE description]
   7359    * @type {Object}
   7360    */
   7361   var D_FLOAT_MODE = {
   7362     className: 'number',
   7363     begin: '\\b(' +
   7364         float_re + '([fF]|L|i|[fF]i|Li)?|' +
   7365         integer_re + '(i|[fF]i|Li)' +
   7366       ')',
   7367     relevance: 0
   7368   };
   7369 
   7370   /**
   7371    * D character literal
   7372    *
   7373    * @type {Object}
   7374    */
   7375   var D_CHARACTER_MODE = {
   7376     className: 'string',
   7377     begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
   7378     illegal: '.'
   7379   };
   7380 
   7381   /**
   7382    * D string escape sequence
   7383    *
   7384    * @type {Object}
   7385    */
   7386   var D_ESCAPE_SEQUENCE = {
   7387     begin: escape_sequence_re,
   7388     relevance: 0
   7389   };
   7390 
   7391   /**
   7392    * D double quoted string literal
   7393    *
   7394    * @type {Object}
   7395    */
   7396   var D_STRING_MODE = {
   7397     className: 'string',
   7398     begin: '"',
   7399     contains: [D_ESCAPE_SEQUENCE],
   7400     end: '"[cwd]?'
   7401   };
   7402 
   7403   /**
   7404    * D wysiwyg and delimited string literals
   7405    *
   7406    * @type {Object}
   7407    */
   7408   var D_WYSIWYG_DELIMITED_STRING_MODE = {
   7409     className: 'string',
   7410     begin: '[rq]"',
   7411     end: '"[cwd]?',
   7412     relevance: 5
   7413   };
   7414 
   7415   /**
   7416    * D alternate wysiwyg string literal
   7417    *
   7418    * @type {Object}
   7419    */
   7420   var D_ALTERNATE_WYSIWYG_STRING_MODE = {
   7421     className: 'string',
   7422     begin: '`',
   7423     end: '`[cwd]?'
   7424   };
   7425 
   7426   /**
   7427    * D hexadecimal string literal
   7428    *
   7429    * @type {Object}
   7430    */
   7431   var D_HEX_STRING_MODE = {
   7432     className: 'string',
   7433     begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
   7434     relevance: 10
   7435   };
   7436 
   7437   /**
   7438    * D delimited string literal
   7439    *
   7440    * @type {Object}
   7441    */
   7442   var D_TOKEN_STRING_MODE = {
   7443     className: 'string',
   7444     begin: 'q"\\{',
   7445     end: '\\}"'
   7446   };
   7447 
   7448   /**
   7449    * Hashbang support
   7450    *
   7451    * @type {Object}
   7452    */
   7453   var D_HASHBANG_MODE = {
   7454     className: 'meta',
   7455     begin: '^#!',
   7456     end: '$',
   7457     relevance: 5
   7458   };
   7459 
   7460   /**
   7461    * D special token sequence
   7462    *
   7463    * @type {Object}
   7464    */
   7465   var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
   7466     className: 'meta',
   7467     begin: '#(line)',
   7468     end: '$',
   7469     relevance: 5
   7470   };
   7471 
   7472   /**
   7473    * D attributes
   7474    *
   7475    * @type {Object}
   7476    */
   7477   var D_ATTRIBUTE_MODE = {
   7478     className: 'keyword',
   7479     begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
   7480   };
   7481 
   7482   /**
   7483    * D nesting comment
   7484    *
   7485    * @type {Object}
   7486    */
   7487   var D_NESTING_COMMENT_MODE = hljs.COMMENT(
   7488     '\\/\\+',
   7489     '\\+\\/',
   7490     {
   7491       contains: ['self'],
   7492       relevance: 10
   7493     }
   7494   );
   7495 
   7496   return {
   7497     lexemes: hljs.UNDERSCORE_IDENT_RE,
   7498     keywords: D_KEYWORDS,
   7499     contains: [
   7500       hljs.C_LINE_COMMENT_MODE,
   7501         hljs.C_BLOCK_COMMENT_MODE,
   7502         D_NESTING_COMMENT_MODE,
   7503         D_HEX_STRING_MODE,
   7504         D_STRING_MODE,
   7505         D_WYSIWYG_DELIMITED_STRING_MODE,
   7506         D_ALTERNATE_WYSIWYG_STRING_MODE,
   7507         D_TOKEN_STRING_MODE,
   7508         D_FLOAT_MODE,
   7509         D_INTEGER_MODE,
   7510         D_CHARACTER_MODE,
   7511         D_HASHBANG_MODE,
   7512         D_SPECIAL_TOKEN_SEQUENCE_MODE,
   7513         D_ATTRIBUTE_MODE
   7514     ]
   7515   };
   7516 }
   7517 },{name:"dart",create:/*
   7518 Language: Dart
   7519 Requires: markdown.js
   7520 Author: Maxim Dikun <dikmax@gmail.com>
   7521 Description: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/
   7522 Category: scripting
   7523 */
   7524 
   7525 function (hljs) {
   7526   var SUBST = {
   7527     className: 'subst',
   7528     variants: [
   7529        {begin: '\\$[A-Za-z0-9_]+'}
   7530     ],
   7531   };
   7532 
   7533   var BRACED_SUBST = {
   7534     className: 'subst',
   7535     variants: [
   7536        {begin: '\\${', end: '}'},
   7537     ],
   7538     keywords: 'true false null this is new super',
   7539   };
   7540 
   7541   var STRING = {
   7542     className: 'string',
   7543     variants: [
   7544       {
   7545         begin: 'r\'\'\'', end: '\'\'\''
   7546       },
   7547       {
   7548         begin: 'r"""', end: '"""'
   7549       },
   7550       {
   7551         begin: 'r\'', end: '\'',
   7552         illegal: '\\n'
   7553       },
   7554       {
   7555         begin: 'r"', end: '"',
   7556         illegal: '\\n'
   7557       },
   7558       {
   7559         begin: '\'\'\'', end: '\'\'\'',
   7560         contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
   7561       },
   7562       {
   7563         begin: '"""', end: '"""',
   7564         contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
   7565       },
   7566       {
   7567         begin: '\'', end: '\'',
   7568         illegal: '\\n',
   7569         contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
   7570       },
   7571       {
   7572         begin: '"', end: '"',
   7573         illegal: '\\n',
   7574         contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
   7575       }
   7576     ]
   7577   };
   7578   BRACED_SUBST.contains = [
   7579     hljs.C_NUMBER_MODE, STRING
   7580   ];
   7581 
   7582   var KEYWORDS = {
   7583     keyword: 'assert async await break case catch class const continue default do else enum extends false final ' +
   7584       'finally for if in is new null rethrow return super switch sync this throw true try var void while with yield ' +
   7585       'abstract as dynamic export external factory get implements import library operator part set static typedef',
   7586     built_in:
   7587       // dart:core
   7588       'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
   7589       'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' +
   7590       // dart:html
   7591       'document window querySelector querySelectorAll Element ElementList'
   7592   };
   7593 
   7594   return {
   7595     keywords: KEYWORDS,
   7596     contains: [
   7597       STRING,
   7598       hljs.COMMENT(
   7599         '/\\*\\*',
   7600         '\\*/',
   7601         {
   7602           subLanguage: 'markdown'
   7603         }
   7604       ),
   7605       hljs.COMMENT(
   7606         '///',
   7607         '$',
   7608         {
   7609           subLanguage: 'markdown'
   7610         }
   7611       ),
   7612       hljs.C_LINE_COMMENT_MODE,
   7613       hljs.C_BLOCK_COMMENT_MODE,
   7614       {
   7615         className: 'class',
   7616         beginKeywords: 'class interface', end: '{', excludeEnd: true,
   7617         contains: [
   7618           {
   7619             beginKeywords: 'extends implements'
   7620           },
   7621           hljs.UNDERSCORE_TITLE_MODE
   7622         ]
   7623       },
   7624       hljs.C_NUMBER_MODE,
   7625       {
   7626         className: 'meta', begin: '@[A-Za-z]+'
   7627       },
   7628       {
   7629         begin: '=>' // No markup, just a relevance booster
   7630       }
   7631     ]
   7632   }
   7633 }
   7634 
   7635 },{name:"delphi",create:/*
   7636 Language: Delphi
   7637 */
   7638 
   7639 function(hljs) {
   7640   var KEYWORDS =
   7641     'exports register file shl array record property for mod while set ally label uses raise not ' +
   7642     'stored class safecall var interface or private static exit index inherited to else stdcall ' +
   7643     'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
   7644     'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
   7645     'destructor write message program with read initialization except default nil if case cdecl in ' +
   7646     'downto threadvar of try pascal const external constructor type public then implementation ' +
   7647     'finally published procedure absolute reintroduce operator as is abstract alias assembler ' +
   7648     'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' +
   7649     'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' +
   7650     'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' +
   7651     'specialize strict unaligned varargs ';
   7652   var COMMENT_MODES = [
   7653     hljs.C_LINE_COMMENT_MODE,
   7654     hljs.COMMENT(/\{/, /\}/, {relevance: 0}),
   7655     hljs.COMMENT(/\(\*/, /\*\)/, {relevance: 10})
   7656   ];
   7657   var DIRECTIVE = {
   7658     className: 'meta',
   7659     variants: [
   7660       {begin: /\{\$/, end: /\}/},
   7661       {begin: /\(\*\$/, end: /\*\)/}
   7662     ]
   7663   };
   7664   var STRING = {
   7665     className: 'string',
   7666     begin: /'/, end: /'/,
   7667     contains: [{begin: /''/}]
   7668   };
   7669   var CHAR_STRING = {
   7670     className: 'string', begin: /(#\d+)+/
   7671   };
   7672   var CLASS = {
   7673     begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
   7674     contains: [
   7675       hljs.TITLE_MODE
   7676     ]
   7677   };
   7678   var FUNCTION = {
   7679     className: 'function',
   7680     beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
   7681     keywords: 'function constructor|10 destructor|10 procedure|10',
   7682     contains: [
   7683       hljs.TITLE_MODE,
   7684       {
   7685         className: 'params',
   7686         begin: /\(/, end: /\)/,
   7687         keywords: KEYWORDS,
   7688         contains: [STRING, CHAR_STRING, DIRECTIVE].concat(COMMENT_MODES)
   7689       },
   7690       DIRECTIVE
   7691     ].concat(COMMENT_MODES)
   7692   };
   7693   return {
   7694     aliases: ['dpr', 'dfm', 'pas', 'pascal', 'freepascal', 'lazarus', 'lpr', 'lfm'],
   7695     case_insensitive: true,
   7696     keywords: KEYWORDS,
   7697     illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
   7698     contains: [
   7699       STRING, CHAR_STRING,
   7700       hljs.NUMBER_MODE,
   7701       CLASS,
   7702       FUNCTION,
   7703       DIRECTIVE
   7704     ].concat(COMMENT_MODES)
   7705   };
   7706 }
   7707 },{name:"diff",create:/*
   7708 Language: Diff
   7709 Description: Unified and context diff
   7710 Author: Vasily Polovnyov <vast@whiteants.net>
   7711 Category: common
   7712 */
   7713 
   7714 function(hljs) {
   7715   return {
   7716     aliases: ['patch'],
   7717     contains: [
   7718       {
   7719         className: 'meta',
   7720         relevance: 10,
   7721         variants: [
   7722           {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
   7723           {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
   7724           {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
   7725         ]
   7726       },
   7727       {
   7728         className: 'comment',
   7729         variants: [
   7730           {begin: /Index: /, end: /$/},
   7731           {begin: /={3,}/, end: /$/},
   7732           {begin: /^\-{3}/, end: /$/},
   7733           {begin: /^\*{3} /, end: /$/},
   7734           {begin: /^\+{3}/, end: /$/},
   7735           {begin: /\*{5}/, end: /\*{5}$/}
   7736         ]
   7737       },
   7738       {
   7739         className: 'addition',
   7740         begin: '^\\+', end: '$'
   7741       },
   7742       {
   7743         className: 'deletion',
   7744         begin: '^\\-', end: '$'
   7745       },
   7746       {
   7747         className: 'addition',
   7748         begin: '^\\!', end: '$'
   7749       }
   7750     ]
   7751   };
   7752 }
   7753 },{name:"django",create:/*
   7754 Language: Django
   7755 Requires: xml.js
   7756 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
   7757 Contributors: Ilya Baryshev <baryshev@gmail.com>
   7758 Category: template
   7759 */
   7760 
   7761 function(hljs) {
   7762   var FILTER = {
   7763     begin: /\|[A-Za-z]+:?/,
   7764     keywords: {
   7765       name:
   7766         'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
   7767         'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
   7768         'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
   7769         'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
   7770         'dictsortreversed default_if_none pluralize lower join center default ' +
   7771         'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
   7772         'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
   7773         'localtime utc timezone'
   7774     },
   7775     contains: [
   7776       hljs.QUOTE_STRING_MODE,
   7777       hljs.APOS_STRING_MODE
   7778     ]
   7779   };
   7780 
   7781   return {
   7782     aliases: ['jinja'],
   7783     case_insensitive: true,
   7784     subLanguage: 'xml',
   7785     contains: [
   7786       hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
   7787       hljs.COMMENT(/\{#/, /#}/),
   7788       {
   7789         className: 'template-tag',
   7790         begin: /\{%/, end: /%}/,
   7791         contains: [
   7792           {
   7793             className: 'name',
   7794             begin: /\w+/,
   7795             keywords: {
   7796               name:
   7797                 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
   7798                 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
   7799                 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
   7800                 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
   7801                 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
   7802                 'plural get_current_language language get_available_languages ' +
   7803                 'get_current_language_bidi get_language_info get_language_info_list localize ' +
   7804                 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
   7805                 'verbatim'
   7806             },
   7807             starts: {
   7808               endsWithParent: true,
   7809               keywords: 'in by as',
   7810               contains: [FILTER],
   7811               relevance: 0
   7812             }
   7813           }
   7814         ]
   7815       },
   7816       {
   7817         className: 'template-variable',
   7818         begin: /\{\{/, end: /}}/,
   7819         contains: [FILTER]
   7820       }
   7821     ]
   7822   };
   7823 }
   7824 },{name:"dns",create:/*
   7825 Language: DNS Zone file
   7826 Author: Tim Schumacher <tim@datenknoten.me>
   7827 Category: config
   7828 */
   7829 
   7830 function(hljs) {
   7831   return {
   7832     aliases: ['bind', 'zone'],
   7833     keywords: {
   7834       keyword:
   7835         'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
   7836         'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
   7837     },
   7838     contains: [
   7839       hljs.COMMENT(';', '$', {relevance: 0}),
   7840       {
   7841         className: 'meta',
   7842         begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
   7843       },
   7844       // IPv6
   7845       {
   7846         className: 'number',
   7847         begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
   7848       },
   7849       // IPv4
   7850       {
   7851         className: 'number',
   7852         begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
   7853       },
   7854       hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
   7855     ]
   7856   };
   7857 }
   7858 },{name:"dockerfile",create:/*
   7859 Language: Dockerfile
   7860 Requires: bash.js
   7861 Author: Alexis Hénaut <alexis@henaut.net>
   7862 Description: language definition for Dockerfile files
   7863 Category: config
   7864 */
   7865 
   7866 function(hljs) {
   7867   return {
   7868     aliases: ['docker'],
   7869     case_insensitive: true,
   7870     keywords: 'from maintainer expose env arg user onbuild stopsignal',
   7871     contains: [
   7872       hljs.HASH_COMMENT_MODE,
   7873       hljs.APOS_STRING_MODE,
   7874       hljs.QUOTE_STRING_MODE,
   7875       hljs.NUMBER_MODE,
   7876       {
   7877         beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell',
   7878         starts: {
   7879           end: /[^\\]$/,
   7880           subLanguage: 'bash'
   7881         }
   7882       }
   7883     ],
   7884     illegal: '</'
   7885   }
   7886 }
   7887 },{name:"dos",create:/*
   7888 Language: DOS .bat
   7889 Author: Alexander Makarov <sam@rmcreative.ru>
   7890 Contributors: Anton Kochkov <anton.kochkov@gmail.com>
   7891 */
   7892 
   7893 function(hljs) {
   7894   var COMMENT = hljs.COMMENT(
   7895     /^\s*@?rem\b/, /$/,
   7896     {
   7897       relevance: 10
   7898     }
   7899   );
   7900   var LABEL = {
   7901     className: 'symbol',
   7902     begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
   7903     relevance: 0
   7904   };
   7905   return {
   7906     aliases: ['bat', 'cmd'],
   7907     case_insensitive: true,
   7908     illegal: /\/\*/,
   7909     keywords: {
   7910       keyword:
   7911         'if else goto for in do call exit not exist errorlevel defined ' +
   7912         'equ neq lss leq gtr geq',
   7913       built_in:
   7914         'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
   7915         'shift cd dir echo setlocal endlocal set pause copy ' +
   7916         'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
   7917         'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
   7918         'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
   7919         'pause print popd pushd promt rd recover rem rename replace restore rmdir shift' +
   7920         'sort start subst time title tree type ver verify vol ' +
   7921         // winutils
   7922         'ping net ipconfig taskkill xcopy ren del'
   7923     },
   7924     contains: [
   7925       {
   7926         className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
   7927       },
   7928       {
   7929         className: 'function',
   7930         begin: LABEL.begin, end: 'goto:eof',
   7931         contains: [
   7932           hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
   7933           COMMENT
   7934         ]
   7935       },
   7936       {
   7937         className: 'number', begin: '\\b\\d+',
   7938         relevance: 0
   7939       },
   7940       COMMENT
   7941     ]
   7942   };
   7943 }
   7944 },{name:"dsconfig",create:/*
   7945  Language: dsconfig
   7946  Description: dsconfig batch configuration language for LDAP directory servers
   7947  Contributors: Jacob Childress <jacobc@gmail.com>
   7948  Category: enterprise, config
   7949  */
   7950 function(hljs) {
   7951   var QUOTED_PROPERTY = {
   7952     className: 'string',
   7953     begin: /"/, end: /"/
   7954   };
   7955   var APOS_PROPERTY = {
   7956     className: 'string',
   7957     begin: /'/, end: /'/
   7958   };
   7959   var UNQUOTED_PROPERTY = {
   7960     className: 'string',
   7961     begin: '[\\w-?]+:\\w+', end: '\\W',
   7962     relevance: 0
   7963   };
   7964   var VALUELESS_PROPERTY = {
   7965     className: 'string',
   7966     begin: '\\w+-?\\w+', end: '\\W',
   7967     relevance: 0
   7968   };
   7969 
   7970   return {
   7971     keywords: 'dsconfig',
   7972     contains: [
   7973       {
   7974         className: 'keyword',
   7975         begin: '^dsconfig', end: '\\s', excludeEnd: true,
   7976         relevance: 10
   7977       },
   7978       {
   7979         className: 'built_in',
   7980         begin: '(list|create|get|set|delete)-(\\w+)', end: '\\s', excludeEnd: true,
   7981         illegal: '!@#$%^&*()',
   7982         relevance: 10
   7983       },
   7984       {
   7985         className: 'built_in',
   7986         begin: '--(\\w+)', end: '\\s', excludeEnd: true
   7987       },
   7988       QUOTED_PROPERTY,
   7989       APOS_PROPERTY,
   7990       UNQUOTED_PROPERTY,
   7991       VALUELESS_PROPERTY,
   7992       hljs.HASH_COMMENT_MODE
   7993     ]
   7994   };
   7995 }
   7996 },{name:"dts",create:/*
   7997 Language: Device Tree
   7998 Description: *.dts files used in the Linux kernel
   7999 Author: Martin Braun <martin.braun@ettus.com>, Moritz Fischer <moritz.fischer@ettus.com>
   8000 Category: config
   8001 */
   8002 
   8003 function(hljs) {
   8004   var STRINGS = {
   8005     className: 'string',
   8006     variants: [
   8007       hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
   8008       {
   8009         begin: '(u8?|U)?R"', end: '"',
   8010         contains: [hljs.BACKSLASH_ESCAPE]
   8011       },
   8012       {
   8013         begin: '\'\\\\?.', end: '\'',
   8014         illegal: '.'
   8015       }
   8016     ]
   8017   };
   8018 
   8019   var NUMBERS = {
   8020     className: 'number',
   8021     variants: [
   8022       { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
   8023       { begin: hljs.C_NUMBER_RE }
   8024     ],
   8025     relevance: 0
   8026   };
   8027 
   8028   var PREPROCESSOR = {
   8029     className: 'meta',
   8030     begin: '#', end: '$',
   8031     keywords: {'meta-keyword': 'if else elif endif define undef ifdef ifndef'},
   8032     contains: [
   8033       {
   8034         begin: /\\\n/, relevance: 0
   8035       },
   8036       {
   8037         beginKeywords: 'include', end: '$',
   8038         keywords: {'meta-keyword': 'include'},
   8039         contains: [
   8040           hljs.inherit(STRINGS, {className: 'meta-string'}),
   8041           {
   8042             className: 'meta-string',
   8043             begin: '<', end: '>',
   8044             illegal: '\\n'
   8045           }
   8046         ]
   8047       },
   8048       STRINGS,
   8049       hljs.C_LINE_COMMENT_MODE,
   8050       hljs.C_BLOCK_COMMENT_MODE
   8051     ]
   8052   };
   8053 
   8054   var DTS_REFERENCE = {
   8055     className: 'variable',
   8056     begin: '\\&[a-z\\d_]*\\b'
   8057   };
   8058 
   8059   var DTS_KEYWORD = {
   8060     className: 'meta-keyword',
   8061     begin: '/[a-z][a-z\\d-]*/'
   8062   };
   8063 
   8064   var DTS_LABEL = {
   8065     className: 'symbol',
   8066     begin: '^\\s*[a-zA-Z_][a-zA-Z\\d_]*:'
   8067   };
   8068 
   8069   var DTS_CELL_PROPERTY = {
   8070     className: 'params',
   8071     begin: '<',
   8072     end: '>',
   8073     contains: [
   8074       NUMBERS,
   8075       DTS_REFERENCE
   8076     ]
   8077   };
   8078 
   8079   var DTS_NODE = {
   8080     className: 'class',
   8081     begin: /[a-zA-Z_][a-zA-Z\d_@]*\s{/,
   8082     end: /[{;=]/,
   8083     returnBegin: true,
   8084     excludeEnd: true
   8085   };
   8086 
   8087   var DTS_ROOT_NODE = {
   8088     className: 'class',
   8089     begin: '/\\s*{',
   8090     end: '};',
   8091     relevance: 10,
   8092     contains: [
   8093       DTS_REFERENCE,
   8094       DTS_KEYWORD,
   8095       DTS_LABEL,
   8096       DTS_NODE,
   8097       DTS_CELL_PROPERTY,
   8098       hljs.C_LINE_COMMENT_MODE,
   8099       hljs.C_BLOCK_COMMENT_MODE,
   8100       NUMBERS,
   8101       STRINGS
   8102     ]
   8103   };
   8104 
   8105   return {
   8106     keywords: "",
   8107     contains: [
   8108       DTS_ROOT_NODE,
   8109       DTS_REFERENCE,
   8110       DTS_KEYWORD,
   8111       DTS_LABEL,
   8112       DTS_NODE,
   8113       DTS_CELL_PROPERTY,
   8114       hljs.C_LINE_COMMENT_MODE,
   8115       hljs.C_BLOCK_COMMENT_MODE,
   8116       NUMBERS,
   8117       STRINGS,
   8118       PREPROCESSOR,
   8119       {
   8120         begin: hljs.IDENT_RE + '::',
   8121         keywords: ""
   8122       }
   8123     ]
   8124   };
   8125 }
   8126 
   8127 },{name:"dust",create:/*
   8128 Language: Dust
   8129 Requires: xml.js
   8130 Author: Michael Allen <michael.allen@benefitfocus.com>
   8131 Description: Matcher for dust.js templates.
   8132 Category: template
   8133 */
   8134 
   8135 function(hljs) {
   8136   var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
   8137   return {
   8138     aliases: ['dst'],
   8139     case_insensitive: true,
   8140     subLanguage: 'xml',
   8141     contains: [
   8142       {
   8143         className: 'template-tag',
   8144         begin: /\{[#\/]/, end: /\}/, illegal: /;/,
   8145         contains: [
   8146           {
   8147             className: 'name',
   8148             begin: /[a-zA-Z\.-]+/,
   8149             starts: {
   8150               endsWithParent: true, relevance: 0,
   8151               contains: [
   8152                 hljs.QUOTE_STRING_MODE
   8153               ]
   8154             }
   8155           }
   8156         ]
   8157       },
   8158       {
   8159         className: 'template-variable',
   8160         begin: /\{/, end: /\}/, illegal: /;/,
   8161         keywords: EXPRESSION_KEYWORDS
   8162       }
   8163     ]
   8164   };
   8165 }
   8166 },{name:"ebnf",create:/*
   8167 Language: Extended Backus-Naur Form
   8168 Author: Alex McKibben <alex@nullscope.net>
   8169 */
   8170 
   8171 function(hljs) {
   8172     var commentMode = hljs.COMMENT(/\(\*/, /\*\)/);
   8173 
   8174     var nonTerminalMode = {
   8175         className: "attribute",
   8176         begin: /^[ ]*[a-zA-Z][a-zA-Z-]*([\s-]+[a-zA-Z][a-zA-Z]*)*/
   8177     };
   8178 
   8179     var specialSequenceMode = {
   8180         className: "meta",
   8181         begin: /\?.*\?/
   8182     };
   8183 
   8184     var ruleBodyMode = {
   8185         begin: /=/, end: /;/,
   8186         contains: [
   8187             commentMode,
   8188             specialSequenceMode,
   8189             // terminals
   8190             hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE
   8191         ]
   8192     };
   8193 
   8194     return {
   8195         illegal: /\S/,
   8196         contains: [
   8197             commentMode,
   8198             nonTerminalMode,
   8199             ruleBodyMode
   8200         ]
   8201     };
   8202 }
   8203 },{name:"elixir",create:/*
   8204 Language: Elixir
   8205 Author: Josh Adams <josh@isotope11.com>
   8206 Description: language definition for Elixir source code files (.ex and .exs).  Based on ruby language support.
   8207 Category: functional
   8208 */
   8209 
   8210 function(hljs) {
   8211   var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(\\!|\\?)?';
   8212   var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
   8213   var ELIXIR_KEYWORDS =
   8214     'and false then defined module in return redo retry end for true self when ' +
   8215     'next until do begin unless nil break not case cond alias while ensure or ' +
   8216     'include use alias fn quote require import with|0';
   8217   var SUBST = {
   8218     className: 'subst',
   8219     begin: '#\\{', end: '}',
   8220     lexemes: ELIXIR_IDENT_RE,
   8221     keywords: ELIXIR_KEYWORDS
   8222   };
   8223   var STRING = {
   8224     className: 'string',
   8225     contains: [hljs.BACKSLASH_ESCAPE, SUBST],
   8226     variants: [
   8227       {
   8228         begin: /'/, end: /'/
   8229       },
   8230       {
   8231         begin: /"/, end: /"/
   8232       }
   8233     ]
   8234   };
   8235   var FUNCTION = {
   8236     className: 'function',
   8237     beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
   8238     contains: [
   8239       hljs.inherit(hljs.TITLE_MODE, {
   8240         begin: ELIXIR_IDENT_RE,
   8241         endsParent: true
   8242       })
   8243     ]
   8244   };
   8245   var CLASS = hljs.inherit(FUNCTION, {
   8246     className: 'class',
   8247     beginKeywords: 'defimpl defmodule defprotocol defrecord', end: /\bdo\b|$|;/
   8248   });
   8249   var ELIXIR_DEFAULT_CONTAINS = [
   8250     STRING,
   8251     hljs.HASH_COMMENT_MODE,
   8252     CLASS,
   8253     FUNCTION,
   8254     {
   8255       begin: '::'
   8256     },
   8257     {
   8258       className: 'symbol',
   8259       begin: ':(?![\\s:])',
   8260       contains: [STRING, {begin: ELIXIR_METHOD_RE}],
   8261       relevance: 0
   8262     },
   8263     {
   8264       className: 'symbol',
   8265       begin: ELIXIR_IDENT_RE + ':(?!:)',
   8266       relevance: 0
   8267     },
   8268     {
   8269       className: 'number',
   8270       begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
   8271       relevance: 0
   8272     },
   8273     {
   8274       className: 'variable',
   8275       begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
   8276     },
   8277     {
   8278       begin: '->'
   8279     },
   8280     { // regexp container
   8281       begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
   8282       contains: [
   8283         hljs.HASH_COMMENT_MODE,
   8284         {
   8285           className: 'regexp',
   8286           illegal: '\\n',
   8287           contains: [hljs.BACKSLASH_ESCAPE, SUBST],
   8288           variants: [
   8289             {
   8290               begin: '/', end: '/[a-z]*'
   8291             },
   8292             {
   8293               begin: '%r\\[', end: '\\][a-z]*'
   8294             }
   8295           ]
   8296         }
   8297       ],
   8298       relevance: 0
   8299     }
   8300   ];
   8301   SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
   8302 
   8303   return {
   8304     lexemes: ELIXIR_IDENT_RE,
   8305     keywords: ELIXIR_KEYWORDS,
   8306     contains: ELIXIR_DEFAULT_CONTAINS
   8307   };
   8308 }
   8309 },{name:"elm",create:/*
   8310 Language: Elm
   8311 Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
   8312 Category: functional
   8313 */
   8314 
   8315 function(hljs) {
   8316   var COMMENT = {
   8317     variants: [
   8318       hljs.COMMENT('--', '$'),
   8319       hljs.COMMENT(
   8320         '{-',
   8321         '-}',
   8322         {
   8323           contains: ['self']
   8324         }
   8325       )
   8326     ]
   8327   };
   8328 
   8329   var CONSTRUCTOR = {
   8330     className: 'type',
   8331     begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
   8332     relevance: 0
   8333   };
   8334 
   8335   var LIST = {
   8336     begin: '\\(', end: '\\)',
   8337     illegal: '"',
   8338     contains: [
   8339       {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
   8340       COMMENT
   8341     ]
   8342   };
   8343 
   8344   var RECORD = {
   8345     begin: '{', end: '}',
   8346     contains: LIST.contains
   8347   };
   8348 
   8349   var CHARACTER = {
   8350     className: 'string',
   8351     begin: '\'\\\\?.', end: '\'',
   8352     illegal: '.'
   8353   };
   8354 
   8355   return {
   8356     keywords:
   8357       'let in if then else case of where module import exposing ' +
   8358       'type alias as infix infixl infixr port effect command subscription',
   8359     contains: [
   8360 
   8361       // Top-level constructions.
   8362 
   8363       {
   8364         beginKeywords: 'port effect module', end: 'exposing',
   8365         keywords: 'port effect module where command subscription exposing',
   8366         contains: [LIST, COMMENT],
   8367         illegal: '\\W\\.|;'
   8368       },
   8369       {
   8370         begin: 'import', end: '$',
   8371         keywords: 'import as exposing',
   8372         contains: [LIST, COMMENT],
   8373         illegal: '\\W\\.|;'
   8374       },
   8375       {
   8376         begin: 'type', end: '$',
   8377         keywords: 'type alias',
   8378         contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
   8379       },
   8380       {
   8381         beginKeywords: 'infix infixl infixr', end: '$',
   8382         contains: [hljs.C_NUMBER_MODE, COMMENT]
   8383       },
   8384       {
   8385         begin: 'port', end: '$',
   8386         keywords: 'port',
   8387         contains: [COMMENT]
   8388       },
   8389 
   8390       // Literals and names.
   8391 
   8392       CHARACTER,
   8393       hljs.QUOTE_STRING_MODE,
   8394       hljs.C_NUMBER_MODE,
   8395       CONSTRUCTOR,
   8396       hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
   8397       COMMENT,
   8398 
   8399       {begin: '->|<-'} // No markup, relevance booster
   8400     ],
   8401     illegal: /;/
   8402   };
   8403 }
   8404 },{name:"erb",create:/*
   8405 Language: ERB (Embedded Ruby)
   8406 Requires: xml.js, ruby.js
   8407 Author: Lucas Mazza <lucastmazza@gmail.com>
   8408 Contributors: Kassio Borges <kassioborgesm@gmail.com>
   8409 Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
   8410 Category: template
   8411 */
   8412 
   8413 function(hljs) {
   8414   return {
   8415     subLanguage: 'xml',
   8416     contains: [
   8417       hljs.COMMENT('<%#', '%>'),
   8418       {
   8419         begin: '<%[%=-]?', end: '[%-]?%>',
   8420         subLanguage: 'ruby',
   8421         excludeBegin: true,
   8422         excludeEnd: true
   8423       }
   8424     ]
   8425   };
   8426 }
   8427 },{name:"erlang-repl",create:/*
   8428  Language: Erlang REPL
   8429  Author: Sergey Ignatov <sergey@ignatov.spb.su>
   8430 Category: functional
   8431  */
   8432 
   8433 function(hljs) {
   8434   return {
   8435     keywords: {
   8436       built_in:
   8437         'spawn spawn_link self',
   8438       keyword:
   8439         'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
   8440         'let not of or orelse|10 query receive rem try when xor'
   8441     },
   8442     contains: [
   8443       {
   8444         className: 'meta', begin: '^[0-9]+> ',
   8445         relevance: 10
   8446       },
   8447       hljs.COMMENT('%', '$'),
   8448       {
   8449         className: 'number',
   8450         begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
   8451         relevance: 0
   8452       },
   8453       hljs.APOS_STRING_MODE,
   8454       hljs.QUOTE_STRING_MODE,
   8455       {
   8456         begin: '\\?(::)?([A-Z]\\w*(::)?)+'
   8457       },
   8458       {
   8459         begin: '->'
   8460       },
   8461       {
   8462         begin: 'ok'
   8463       },
   8464       {
   8465         begin: '!'
   8466       },
   8467       {
   8468         begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
   8469         relevance: 0
   8470       },
   8471       {
   8472         begin: '[A-Z][a-zA-Z0-9_\']*',
   8473         relevance: 0
   8474       }
   8475     ]
   8476   };
   8477 }
   8478 },{name:"erlang",create:/*
   8479 Language: Erlang
   8480 Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
   8481 Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
   8482 Category: functional
   8483 */
   8484 
   8485 function(hljs) {
   8486   var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
   8487   var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
   8488   var ERLANG_RESERVED = {
   8489     keyword:
   8490       'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
   8491       'let not of orelse|10 query receive rem try when xor',
   8492     literal:
   8493       'false true'
   8494   };
   8495 
   8496   var COMMENT = hljs.COMMENT('%', '$');
   8497   var NUMBER = {
   8498     className: 'number',
   8499     begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
   8500     relevance: 0
   8501   };
   8502   var NAMED_FUN = {
   8503     begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
   8504   };
   8505   var FUNCTION_CALL = {
   8506     begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
   8507     returnBegin: true,
   8508     relevance: 0,
   8509     contains: [
   8510       {
   8511         begin: FUNCTION_NAME_RE, relevance: 0
   8512       },
   8513       {
   8514         begin: '\\(', end: '\\)', endsWithParent: true,
   8515         returnEnd: true,
   8516         relevance: 0
   8517         // "contains" defined later
   8518       }
   8519     ]
   8520   };
   8521   var TUPLE = {
   8522     begin: '{', end: '}',
   8523     relevance: 0
   8524     // "contains" defined later
   8525   };
   8526   var VAR1 = {
   8527     begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
   8528     relevance: 0
   8529   };
   8530   var VAR2 = {
   8531     begin: '[A-Z][a-zA-Z0-9_]*',
   8532     relevance: 0
   8533   };
   8534   var RECORD_ACCESS = {
   8535     begin: '#' + hljs.UNDERSCORE_IDENT_RE,
   8536     relevance: 0,
   8537     returnBegin: true,
   8538     contains: [
   8539       {
   8540         begin: '#' + hljs.UNDERSCORE_IDENT_RE,
   8541         relevance: 0
   8542       },
   8543       {
   8544         begin: '{', end: '}',
   8545         relevance: 0
   8546         // "contains" defined later
   8547       }
   8548     ]
   8549   };
   8550 
   8551   var BLOCK_STATEMENTS = {
   8552     beginKeywords: 'fun receive if try case', end: 'end',
   8553     keywords: ERLANG_RESERVED
   8554   };
   8555   BLOCK_STATEMENTS.contains = [
   8556     COMMENT,
   8557     NAMED_FUN,
   8558     hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
   8559     BLOCK_STATEMENTS,
   8560     FUNCTION_CALL,
   8561     hljs.QUOTE_STRING_MODE,
   8562     NUMBER,
   8563     TUPLE,
   8564     VAR1, VAR2,
   8565     RECORD_ACCESS
   8566   ];
   8567 
   8568   var BASIC_MODES = [
   8569     COMMENT,
   8570     NAMED_FUN,
   8571     BLOCK_STATEMENTS,
   8572     FUNCTION_CALL,
   8573     hljs.QUOTE_STRING_MODE,
   8574     NUMBER,
   8575     TUPLE,
   8576     VAR1, VAR2,
   8577     RECORD_ACCESS
   8578   ];
   8579   FUNCTION_CALL.contains[1].contains = BASIC_MODES;
   8580   TUPLE.contains = BASIC_MODES;
   8581   RECORD_ACCESS.contains[1].contains = BASIC_MODES;
   8582 
   8583   var PARAMS = {
   8584     className: 'params',
   8585     begin: '\\(', end: '\\)',
   8586     contains: BASIC_MODES
   8587   };
   8588   return {
   8589     aliases: ['erl'],
   8590     keywords: ERLANG_RESERVED,
   8591     illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
   8592     contains: [
   8593       {
   8594         className: 'function',
   8595         begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
   8596         returnBegin: true,
   8597         illegal: '\\(|#|//|/\\*|\\\\|:|;',
   8598         contains: [
   8599           PARAMS,
   8600           hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
   8601         ],
   8602         starts: {
   8603           end: ';|\\.',
   8604           keywords: ERLANG_RESERVED,
   8605           contains: BASIC_MODES
   8606         }
   8607       },
   8608       COMMENT,
   8609       {
   8610         begin: '^-', end: '\\.',
   8611         relevance: 0,
   8612         excludeEnd: true,
   8613         returnBegin: true,
   8614         lexemes: '-' + hljs.IDENT_RE,
   8615         keywords:
   8616           '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
   8617           '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
   8618           '-behavior -spec',
   8619         contains: [PARAMS]
   8620       },
   8621       NUMBER,
   8622       hljs.QUOTE_STRING_MODE,
   8623       RECORD_ACCESS,
   8624       VAR1, VAR2,
   8625       TUPLE,
   8626       {begin: /\.$/} // relevance booster
   8627     ]
   8628   };
   8629 }
   8630 },{name:"excel",create:/*
   8631 Language: Excel
   8632 Author: Victor Zhou <OiCMudkips@users.noreply.github.com>
   8633 Description: Excel formulae
   8634 */
   8635 
   8636 function(hljs) {
   8637   return {
   8638     aliases: ['xlsx', 'xls'],
   8639     case_insensitive: true,
   8640     lexemes: /[a-zA-Z][\w\.]*/,
   8641     // built-in functions imported from https://web.archive.org/web/20160513042710/https://support.office.com/en-us/article/Excel-functions-alphabetical-b3944572-255d-4efb-bb96-c6d90033e188
   8642     keywords: {
   8643         built_in: 'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF|0 IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST'
   8644     },
   8645     contains: [
   8646       {
   8647         /* matches a beginning equal sign found in Excel formula examples */ 
   8648         begin: /^=/,
   8649         end: /[^=]/, returnEnd: true, illegal: /=/, /* only allow single equal sign at front of line */
   8650         relevance: 10
   8651       },
   8652       /* technically, there can be more than 2 letters in column names, but this prevents conflict with some keywords */
   8653       {
   8654         /* matches a reference to a single cell */
   8655         className: 'symbol',
   8656         begin: /\b[A-Z]{1,2}\d+\b/,
   8657         end: /[^\d]/, excludeEnd: true,
   8658         relevance: 0
   8659       },
   8660       {
   8661         /* matches a reference to a range of cells */
   8662         className: 'symbol',
   8663         begin: /[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,
   8664         relevance: 0
   8665       },
   8666       hljs.BACKSLASH_ESCAPE,
   8667       hljs.QUOTE_STRING_MODE,
   8668       {
   8669         className: 'number',
   8670         begin: hljs.NUMBER_RE + '(%)?',
   8671         relevance: 0
   8672       },
   8673       /* Excel formula comments are done by putting the comment in a function call to N() */
   8674       hljs.COMMENT(/\bN\(/,/\)/,
   8675       {
   8676         excludeBegin: true,
   8677         excludeEnd: true,
   8678         illegal: /\n/
   8679       })
   8680     ]
   8681   };
   8682 }
   8683 },{name:"fix",create:/*
   8684 Language: FIX
   8685 Author: Brent Bradbury <brent@brentium.com>
   8686 */
   8687 
   8688 function(hljs) {
   8689   return {
   8690     contains: [
   8691     {
   8692       begin: /[^\u2401\u0001]+/,
   8693       end: /[\u2401\u0001]/,
   8694       excludeEnd: true,
   8695       returnBegin: true,
   8696       returnEnd: false,
   8697       contains: [
   8698       {
   8699         begin: /([^\u2401\u0001=]+)/,
   8700         end: /=([^\u2401\u0001=]+)/,
   8701         returnEnd: true,
   8702         returnBegin: false,
   8703         className: 'attr'
   8704       },
   8705       {
   8706         begin: /=/,
   8707         end: /([\u2401\u0001])/,
   8708         excludeEnd: true,
   8709         excludeBegin: true,
   8710         className: 'string'
   8711       }]
   8712     }],
   8713     case_insensitive: true
   8714   };
   8715 }
   8716 },{name:"flix",create:/*
   8717  Language: Flix
   8718  Category: functional
   8719  Author: Magnus Madsen <mmadsen@uwaterloo.ca>
   8720  */
   8721 
   8722 function (hljs) {
   8723 
   8724     var CHAR = {
   8725         className: 'string',
   8726         begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
   8727     };
   8728 
   8729     var STRING = {
   8730         className: 'string',
   8731         variants: [
   8732             {
   8733                 begin: '"', end: '"'
   8734             }
   8735         ]
   8736     };
   8737 
   8738     var NAME = {
   8739         className: 'title',
   8740         begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/
   8741     };
   8742 
   8743     var METHOD = {
   8744         className: 'function',
   8745         beginKeywords: 'def',
   8746         end: /[:={\[(\n;]/,
   8747         excludeEnd: true,
   8748         contains: [NAME]
   8749     };
   8750 
   8751     return {
   8752         keywords: {
   8753             literal: 'true false',
   8754             keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'
   8755         },
   8756         contains: [
   8757             hljs.C_LINE_COMMENT_MODE,
   8758             hljs.C_BLOCK_COMMENT_MODE,
   8759             CHAR,
   8760             STRING,
   8761             METHOD,
   8762             hljs.C_NUMBER_MODE
   8763         ]
   8764     };
   8765 }
   8766 },{name:"fortran",create:/*
   8767 Language: Fortran
   8768 Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
   8769 Category: scientific
   8770 */
   8771 
   8772 function(hljs) {
   8773   var PARAMS = {
   8774     className: 'params',
   8775     begin: '\\(', end: '\\)'
   8776   };
   8777 
   8778   var F_KEYWORDS = {
   8779     literal: '.False. .True.',
   8780     keyword: 'kind do while private call intrinsic where elsewhere ' +
   8781       'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
   8782       'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
   8783       'goto save else use module select case ' +
   8784       'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
   8785       'continue format pause cycle exit ' +
   8786       'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
   8787       'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
   8788       'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
   8789       'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
   8790       'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
   8791       'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
   8792       'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +
   8793       'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
   8794       'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
   8795       'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
   8796       'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
   8797       'integer real character complex logical dimension allocatable|10 parameter ' +
   8798       'external implicit|10 none double precision assign intent optional pointer ' +
   8799       'target in out common equivalence data',
   8800     built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
   8801       'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
   8802       'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
   8803       'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
   8804       'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
   8805       'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
   8806       'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
   8807       'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
   8808       'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
   8809       'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
   8810       'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
   8811       'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
   8812       'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
   8813       'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of'  +
   8814       'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
   8815       'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
   8816       'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
   8817       'num_images parity popcnt poppar shifta shiftl shiftr this_image'
   8818   };
   8819   return {
   8820     case_insensitive: true,
   8821     aliases: ['f90', 'f95'],
   8822     keywords: F_KEYWORDS,
   8823     illegal: /\/\*/,
   8824     contains: [
   8825       hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
   8826       hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
   8827       {
   8828         className: 'function',
   8829         beginKeywords: 'subroutine function program',
   8830         illegal: '[${=\\n]',
   8831         contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
   8832       },
   8833       hljs.COMMENT('!', '$', {relevance: 0}),
   8834       {
   8835         className: 'number',
   8836         begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
   8837         relevance: 0
   8838       }
   8839     ]
   8840   };
   8841 }
   8842 },{name:"fsharp",create:/*
   8843 Language: F#
   8844 Author: Jonas Follesø <jonas@follesoe.no>
   8845 Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
   8846 Category: functional
   8847 */
   8848 function(hljs) {
   8849   var TYPEPARAM = {
   8850     begin: '<', end: '>',
   8851     contains: [
   8852       hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
   8853     ]
   8854   };
   8855 
   8856   return {
   8857     aliases: ['fs'],
   8858     keywords:
   8859       'abstract and as assert base begin class default delegate do done ' +
   8860       'downcast downto elif else end exception extern false finally for ' +
   8861       'fun function global if in inherit inline interface internal lazy let ' +
   8862       'match member module mutable namespace new null of open or ' +
   8863       'override private public rec return sig static struct then to ' +
   8864       'true try type upcast use val void when while with yield',
   8865     illegal: /\/\*/,
   8866     contains: [
   8867       {
   8868         // monad builder keywords (matches before non-bang kws)
   8869         className: 'keyword',
   8870         begin: /\b(yield|return|let|do)!/
   8871       },
   8872       {
   8873         className: 'string',
   8874         begin: '@"', end: '"',
   8875         contains: [{begin: '""'}]
   8876       },
   8877       {
   8878         className: 'string',
   8879         begin: '"""', end: '"""'
   8880       },
   8881       hljs.COMMENT('\\(\\*', '\\*\\)'),
   8882       {
   8883         className: 'class',
   8884         beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
   8885         contains: [
   8886           hljs.UNDERSCORE_TITLE_MODE,
   8887           TYPEPARAM
   8888         ]
   8889       },
   8890       {
   8891         className: 'meta',
   8892         begin: '\\[<', end: '>\\]',
   8893         relevance: 10
   8894       },
   8895       {
   8896         className: 'symbol',
   8897         begin: '\\B(\'[A-Za-z])\\b',
   8898         contains: [hljs.BACKSLASH_ESCAPE]
   8899       },
   8900       hljs.C_LINE_COMMENT_MODE,
   8901       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
   8902       hljs.C_NUMBER_MODE
   8903     ]
   8904   };
   8905 }
   8906 },{name:"gams",create:
   8907 /*
   8908  Language: GAMS
   8909  Author: Stefan Bechert <stefan.bechert@gmx.net>
   8910  Contributors: Oleg Efimov <efimovov@gmail.com>, Mikko Kouhia <mikko.kouhia@iki.fi>
   8911  Description: The General Algebraic Modeling System language
   8912  Category: scientific
   8913  */
   8914 
   8915 function (hljs) {
   8916   var KEYWORDS = {
   8917     'keyword':
   8918       'abort acronym acronyms alias all and assign binary card diag display ' +
   8919       'else eq file files for free ge gt if integer le loop lt maximizing ' +
   8920       'minimizing model models ne negative no not option options or ord ' +
   8921       'positive prod put putpage puttl repeat sameas semicont semiint smax ' +
   8922       'smin solve sos1 sos2 sum system table then until using while xor yes',
   8923     'literal': 'eps inf na',
   8924     'built-in':
   8925       'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' +
   8926       'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' +
   8927       'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max ' +
   8928       'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power ' +
   8929       'randBinomial randLinear randTriangle round rPower sigmoid sign ' +
   8930       'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt ' +
   8931       'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp ' +
   8932       'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt ' +
   8933       'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear ' +
   8934       'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion ' +
   8935       'handleCollect handleDelete handleStatus handleSubmit heapFree ' +
   8936       'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate ' +
   8937       'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' +
   8938       'timeElapsed timeExec timeStart'
   8939   };
   8940   var PARAMS = {
   8941     className: 'params',
   8942     begin: /\(/, end: /\)/,
   8943     excludeBegin: true,
   8944     excludeEnd: true,
   8945   };
   8946   var SYMBOLS = {
   8947     className: 'symbol',
   8948     variants: [
   8949       {begin: /\=[lgenxc]=/},
   8950       {begin: /\$/},
   8951     ]
   8952   };
   8953   var QSTR = { // One-line quoted comment string
   8954     className: 'comment',
   8955     variants: [
   8956       {begin: '\'', end: '\''},
   8957       {begin: '"', end: '"'},
   8958     ],
   8959     illegal: '\\n',
   8960     contains: [hljs.BACKSLASH_ESCAPE]
   8961   };
   8962   var ASSIGNMENT = {
   8963     begin: '/',
   8964     end: '/',
   8965     keywords: KEYWORDS,
   8966     contains: [
   8967       QSTR,
   8968       hljs.C_LINE_COMMENT_MODE,
   8969       hljs.C_BLOCK_COMMENT_MODE,
   8970       hljs.QUOTE_STRING_MODE,
   8971       hljs.APOS_STRING_MODE,
   8972       hljs.C_NUMBER_MODE,
   8973     ],
   8974   };
   8975   var DESCTEXT = { // Parameter/set/variable description text
   8976     begin: /[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,
   8977     excludeBegin: true,
   8978     end: '$',
   8979     endsWithParent: true,
   8980     contains: [
   8981       QSTR,
   8982       ASSIGNMENT,
   8983       {
   8984         className: 'comment',
   8985         begin: /([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,
   8986         relevance: 0
   8987       },
   8988     ],
   8989   };
   8990 
   8991   return {
   8992     aliases: ['gms'],
   8993     case_insensitive: true,
   8994     keywords: KEYWORDS,
   8995     contains: [
   8996       hljs.COMMENT(/^\$ontext/, /^\$offtext/),
   8997       {
   8998         className: 'meta',
   8999         begin: '^\\$[a-z0-9]+',
   9000         end: '$',
   9001         returnBegin: true,
   9002         contains: [
   9003           {
   9004             className: 'meta-keyword',
   9005             begin: '^\\$[a-z0-9]+',
   9006           }
   9007         ]
   9008       },
   9009       hljs.COMMENT('^\\*', '$'),
   9010       hljs.C_LINE_COMMENT_MODE,
   9011       hljs.C_BLOCK_COMMENT_MODE,
   9012       hljs.QUOTE_STRING_MODE,
   9013       hljs.APOS_STRING_MODE,
   9014       // Declarations
   9015       {
   9016         beginKeywords:
   9017           'set sets parameter parameters variable variables ' +
   9018           'scalar scalars equation equations',
   9019         end: ';',
   9020         contains: [
   9021           hljs.COMMENT('^\\*', '$'),
   9022           hljs.C_LINE_COMMENT_MODE,
   9023           hljs.C_BLOCK_COMMENT_MODE,
   9024           hljs.QUOTE_STRING_MODE,
   9025           hljs.APOS_STRING_MODE,
   9026           ASSIGNMENT,
   9027           DESCTEXT,
   9028         ]
   9029       },
   9030       { // table environment
   9031         beginKeywords: 'table',
   9032         end: ';',
   9033         returnBegin: true,
   9034         contains: [
   9035           { // table header row
   9036             beginKeywords: 'table',
   9037             end: '$',
   9038             contains: [DESCTEXT],
   9039           },
   9040           hljs.COMMENT('^\\*', '$'),
   9041           hljs.C_LINE_COMMENT_MODE,
   9042           hljs.C_BLOCK_COMMENT_MODE,
   9043           hljs.QUOTE_STRING_MODE,
   9044           hljs.APOS_STRING_MODE,
   9045           hljs.C_NUMBER_MODE,
   9046           // Table does not contain DESCTEXT or ASSIGNMENT
   9047         ]
   9048       },
   9049       // Function definitions
   9050       {
   9051         className: 'function',
   9052         begin: /^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,
   9053         returnBegin: true,
   9054         contains: [
   9055               { // Function title
   9056                 className: 'title',
   9057                 begin: /^[a-z0-9_]+/,
   9058               },
   9059               PARAMS,
   9060               SYMBOLS,
   9061             ],
   9062       },
   9063       hljs.C_NUMBER_MODE,
   9064       SYMBOLS,
   9065     ]
   9066   };
   9067 }
   9068 },{name:"gauss",create:/*
   9069 Language: GAUSS
   9070 Author: Matt Evans <matt@aptech.com>
   9071 Category: scientific
   9072 Description: GAUSS Mathematical and Statistical language
   9073 */
   9074 function(hljs) {
   9075   var KEYWORDS = {
   9076     keyword:  'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' +
   9077               'continue create debug declare delete disable dlibrary dllcall do dos ed edit else ' +
   9078               'elseif enable end endfor endif endp endo errorlog errorlogat expr external fn ' +
   9079               'for format goto gosub graph if keyword let lib library line load loadarray loadexe ' +
   9080               'loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow ' +
   9081               'matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print ' +
   9082               'printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen ' +
   9083               'scroll setarray show sparse stop string struct system trace trap threadfor ' +
   9084               'threadendfor threadbegin threadjoin threadstat threadend until use while winprint ' +
   9085               'ne ge le gt lt and xor or not eq eqv',
   9086     built_in: 'abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol ' +
   9087               'AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks ' +
   9088               'AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults ' +
   9089               'annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness ' +
   9090               'annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd ' +
   9091               'astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar ' +
   9092               'base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 ' +
   9093               'cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv ' +
   9094               'cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn ' +
   9095               'cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi ' +
   9096               'cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ' +
   9097               'ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated ' +
   9098               'complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs ' +
   9099               'cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos ' +
   9100               'datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd ' +
   9101               'dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName ' +
   9102               'dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy ' +
   9103               'dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen ' +
   9104               'dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA ' +
   9105               'dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField ' +
   9106               'dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition ' +
   9107               'dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows ' +
   9108               'dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly ' +
   9109               'dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy ' +
   9110               'dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl ' +
   9111               'dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt ' +
   9112               'dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday ' +
   9113               'dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays ' +
   9114               'endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error ' +
   9115               'etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut ' +
   9116               'EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol ' +
   9117               'EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq ' +
   9118               'feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt ' +
   9119               'floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC ' +
   9120               'gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders ' +
   9121               'gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse ' +
   9122               'gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray ' +
   9123               'getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders ' +
   9124               'getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT ' +
   9125               'gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm ' +
   9126               'hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 ' +
   9127               'indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' +
   9128               'inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf ' +
   9129               'isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv ' +
   9130               'lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn ' +
   9131               'lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind ' +
   9132               'loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars ' +
   9133               'makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli ' +
   9134               'mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave ' +
   9135               'movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate ' +
   9136               'olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto ' +
   9137               'pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox ' +
   9138               'plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea ' +
   9139               'plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout ' +
   9140               'plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill ' +
   9141               'plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol ' +
   9142               'plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange ' +
   9143               'plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel ' +
   9144               'plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot ' +
   9145               'pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames ' +
   9146               'pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector ' +
   9147               'pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate ' +
   9148               'qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr ' +
   9149               'real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn ' +
   9150               'rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel ' +
   9151               'rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn ' +
   9152               'rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh ' +
   9153               'rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind ' +
   9154               'scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa ' +
   9155               'setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind ' +
   9156               'sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL ' +
   9157               'spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense ' +
   9158               'spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet ' +
   9159               'sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt ' +
   9160               'strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr ' +
   9161               'surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname ' +
   9162               'time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk ' +
   9163               'trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt ' +
   9164               'utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs ' +
   9165               'vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window ' +
   9166               'writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM ' +
   9167               'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute ' +
   9168               'h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels ' +
   9169               'plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester ' +
   9170               'strtrim',
   9171     literal: 'DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS ' +
   9172              'DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 ' +
   9173              'DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS ' +
   9174              'DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES ' +
   9175              'DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR'
   9176   };
   9177 
   9178 
   9179   var AT_COMMENT_MODE = hljs.COMMENT('@', '@');
   9180 
   9181   var PREPROCESSOR =
   9182   {
   9183     className: 'meta',
   9184     begin: '#', end: '$',
   9185     keywords: {'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline'},
   9186     contains: [
   9187       {
   9188         begin: /\\\n/, relevance: 0
   9189       },
   9190       {
   9191         beginKeywords: 'include', end: '$',
   9192         keywords: {'meta-keyword': 'include'},
   9193         contains: [
   9194           {
   9195             className: 'meta-string',
   9196             begin: '"', end: '"',
   9197             illegal: '\\n'
   9198           }
   9199         ]
   9200       },
   9201       hljs.C_LINE_COMMENT_MODE,
   9202       hljs.C_BLOCK_COMMENT_MODE,
   9203       AT_COMMENT_MODE,
   9204     ]
   9205   };
   9206 
   9207   var STRUCT_TYPE =
   9208   {
   9209     begin: /\bstruct\s+/,
   9210     end: /\s/,
   9211     keywords: "struct",
   9212     contains: [
   9213       {
   9214         className: "type",
   9215         begin: hljs.UNDERSCORE_IDENT_RE,
   9216         relevance: 0,
   9217       },
   9218     ],
   9219   };
   9220 
   9221   // only for definitions
   9222   var PARSE_PARAMS = [
   9223     {
   9224       className: 'params',
   9225       begin: /\(/, end: /\)/,
   9226       excludeBegin: true,
   9227       excludeEnd: true,
   9228       endsWithParent: true,
   9229       relevance: 0,
   9230       contains: [
   9231         { // dots
   9232           className: 'literal',
   9233           begin: /\.\.\./,
   9234         },
   9235         hljs.C_NUMBER_MODE,
   9236         hljs.C_BLOCK_COMMENT_MODE,
   9237         AT_COMMENT_MODE,
   9238         STRUCT_TYPE,
   9239       ]
   9240     }
   9241   ];
   9242 
   9243   var FUNCTION_DEF =
   9244   {
   9245     className: "title",
   9246     begin: hljs.UNDERSCORE_IDENT_RE,
   9247     relevance: 0,
   9248   };
   9249 
   9250   var DEFINITION = function (beginKeywords, end, inherits) {
   9251     var mode = hljs.inherit(
   9252       {
   9253         className: "function",
   9254         beginKeywords: beginKeywords,
   9255         end: end,
   9256         excludeEnd: true,
   9257         contains: [].concat(PARSE_PARAMS),
   9258       },
   9259       inherits || {}
   9260     );
   9261     mode.contains.push(FUNCTION_DEF);
   9262     mode.contains.push(hljs.C_NUMBER_MODE);
   9263     mode.contains.push(hljs.C_BLOCK_COMMENT_MODE);
   9264     mode.contains.push(AT_COMMENT_MODE);
   9265     return mode;
   9266   };
   9267 
   9268   var BUILT_IN_REF =
   9269   { // these are explicitly named internal function calls
   9270     className: 'built_in',
   9271     begin: '\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\b',
   9272   };
   9273 
   9274   var STRING_REF =
   9275   {
   9276     className: 'string',
   9277     begin: '"', end: '"',
   9278     contains: [hljs.BACKSLASH_ESCAPE],
   9279     relevance: 0,
   9280   };
   9281 
   9282   var FUNCTION_REF =
   9283   {
   9284     //className: "fn_ref",
   9285     begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
   9286     returnBegin: true,
   9287     keywords: KEYWORDS,
   9288     relevance: 0,
   9289     contains: [
   9290       {
   9291         beginKeywords: KEYWORDS.keyword,
   9292       },
   9293       BUILT_IN_REF,
   9294       { // ambiguously named function calls get a relevance of 0
   9295         className: 'built_in',
   9296         begin: hljs.UNDERSCORE_IDENT_RE,
   9297         relevance: 0,
   9298       },
   9299     ],
   9300   };
   9301 
   9302   var FUNCTION_REF_PARAMS =
   9303   {
   9304     //className: "fn_ref_params",
   9305     begin: /\(/,
   9306     end: /\)/,
   9307     relevance: 0,
   9308     keywords: { built_in: KEYWORDS.built_in, literal: KEYWORDS.literal },
   9309     contains: [
   9310       hljs.C_NUMBER_MODE,
   9311       hljs.C_BLOCK_COMMENT_MODE,
   9312       AT_COMMENT_MODE,
   9313       BUILT_IN_REF,
   9314       FUNCTION_REF,
   9315       STRING_REF,
   9316       'self',
   9317     ],
   9318   };
   9319 
   9320   FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS);
   9321 
   9322   return {
   9323     aliases: ['gss'],
   9324     case_insensitive: true, // language is case-insensitive
   9325     keywords: KEYWORDS,
   9326     illegal: /(\{[%#]|[%#]\}| <- )/,
   9327     contains: [
   9328       hljs.C_NUMBER_MODE,
   9329       hljs.C_LINE_COMMENT_MODE,
   9330       hljs.C_BLOCK_COMMENT_MODE,
   9331       AT_COMMENT_MODE,
   9332       STRING_REF,
   9333       PREPROCESSOR,
   9334       {
   9335         className: 'keyword',
   9336         begin: /\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/,
   9337       },
   9338       DEFINITION('proc keyword', ';'),
   9339       DEFINITION('fn', '='),
   9340       {
   9341         beginKeywords: 'for threadfor',
   9342         end: /;/,
   9343         //end: /\(/,
   9344         relevance: 0,
   9345         contains: [
   9346           hljs.C_BLOCK_COMMENT_MODE,
   9347           AT_COMMENT_MODE,
   9348           FUNCTION_REF_PARAMS,
   9349         ],
   9350       },
   9351       { // custom method guard
   9352         // excludes method names from keyword processing
   9353         variants: [
   9354           { begin: hljs.UNDERSCORE_IDENT_RE + '\\.' + hljs.UNDERSCORE_IDENT_RE, },
   9355           { begin: hljs.UNDERSCORE_IDENT_RE + '\\s*=', },
   9356         ],
   9357         relevance: 0,
   9358       },
   9359       FUNCTION_REF,
   9360       STRUCT_TYPE,
   9361     ]
   9362   };
   9363 }
   9364 },{name:"gcode",create:/*
   9365  Language: G-code (ISO 6983)
   9366  Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
   9367  Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
   9368  */
   9369 
   9370 function(hljs) {
   9371     var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
   9372     var GCODE_CLOSE_RE = '\\%';
   9373     var GCODE_KEYWORDS =
   9374       'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
   9375       'EQ LT GT NE GE LE OR XOR';
   9376     var GCODE_START = {
   9377         className: 'meta',
   9378         begin: '([O])([0-9]+)'
   9379     };
   9380     var GCODE_CODE = [
   9381         hljs.C_LINE_COMMENT_MODE,
   9382         hljs.C_BLOCK_COMMENT_MODE,
   9383         hljs.COMMENT(/\(/, /\)/),
   9384         hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
   9385         hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
   9386         hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
   9387         {
   9388             className: 'name',
   9389             begin: '([G])([0-9]+\\.?[0-9]?)'
   9390         },
   9391         {
   9392             className: 'name',
   9393             begin: '([M])([0-9]+\\.?[0-9]?)'
   9394         },
   9395         {
   9396             className: 'attr',
   9397             begin: '(VC|VS|#)',
   9398             end: '(\\d+)'
   9399         },
   9400         {
   9401             className: 'attr',
   9402             begin: '(VZOFX|VZOFY|VZOFZ)'
   9403         },
   9404         {
   9405             className: 'built_in',
   9406             begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
   9407             end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
   9408         },
   9409         {
   9410             className: 'symbol',
   9411             variants: [
   9412                 {
   9413                     begin: 'N', end: '\\d+',
   9414                     illegal: '\\W'
   9415                 }
   9416             ]
   9417         }
   9418     ];
   9419 
   9420     return {
   9421         aliases: ['nc'],
   9422         // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
   9423         // However, most prefer all uppercase and uppercase is customary.
   9424         case_insensitive: true,
   9425         lexemes: GCODE_IDENT_RE,
   9426         keywords: GCODE_KEYWORDS,
   9427         contains: [
   9428             {
   9429                 className: 'meta',
   9430                 begin: GCODE_CLOSE_RE
   9431             },
   9432             GCODE_START
   9433         ].concat(GCODE_CODE)
   9434     };
   9435 }
   9436 },{name:"gherkin",create:/*
   9437  Language: Gherkin
   9438  Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
   9439  Description: Gherkin (Cucumber etc)
   9440  */
   9441 
   9442 function (hljs) {
   9443   return {
   9444     aliases: ['feature'],
   9445     keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
   9446     contains: [
   9447       {
   9448         className: 'symbol',
   9449         begin: '\\*',
   9450         relevance: 0
   9451       },
   9452       {
   9453         className: 'meta',
   9454         begin: '@[^@\\s]+'
   9455       },
   9456       {
   9457         begin: '\\|', end: '\\|\\w*$',
   9458         contains: [
   9459           {
   9460             className: 'string',
   9461             begin: '[^|]+'
   9462           }
   9463         ]
   9464       },
   9465       {
   9466         className: 'variable',
   9467         begin: '<', end: '>'
   9468       },
   9469       hljs.HASH_COMMENT_MODE,
   9470       {
   9471         className: 'string',
   9472         begin: '"""', end: '"""'
   9473       },
   9474       hljs.QUOTE_STRING_MODE
   9475     ]
   9476   };
   9477 }
   9478 },{name:"glsl",create:/*
   9479 Language: GLSL
   9480 Description: OpenGL Shading Language
   9481 Author: Sergey Tikhomirov <sergey@tikhomirov.io>
   9482 Category: graphics
   9483 */
   9484 
   9485 function(hljs) {
   9486   return {
   9487     keywords: {
   9488       keyword:
   9489         // Statements
   9490         'break continue discard do else for if return while switch case default ' +
   9491         // Qualifiers
   9492         'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
   9493         'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
   9494         'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
   9495         'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
   9496         'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
   9497         'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
   9498         'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
   9499         'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
   9500         'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
   9501         'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
   9502         'triangles triangles_adjacency uniform varying vertices volatile writeonly',
   9503       type:
   9504         'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
   9505         'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
   9506         'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer' +
   9507         'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
   9508         'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
   9509         'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
   9510         'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
   9511         'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
   9512         'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
   9513         'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
   9514         'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
   9515         'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
   9516         'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
   9517         'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
   9518         'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
   9519       built_in:
   9520         // Constants
   9521         'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
   9522         'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
   9523         'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
   9524         'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
   9525         'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
   9526         'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
   9527         'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
   9528         'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
   9529         'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
   9530         'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
   9531         'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
   9532         'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
   9533         'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
   9534         'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
   9535         'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
   9536         'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
   9537         'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
   9538         'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
   9539         'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
   9540         'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
   9541         'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
   9542         'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
   9543         'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
   9544         // Variables
   9545         'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
   9546         'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
   9547         'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
   9548         'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
   9549         'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
   9550         'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
   9551         'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
   9552         'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
   9553         'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
   9554         'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
   9555         'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
   9556         'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
   9557         'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
   9558         'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
   9559         'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
   9560         'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
   9561         'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
   9562         'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
   9563         // Functions
   9564         'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
   9565         'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
   9566         'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
   9567         'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
   9568         'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
   9569         'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
   9570         'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
   9571         'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
   9572         'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
   9573         'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
   9574         'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
   9575         'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
   9576         'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
   9577         'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
   9578         'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
   9579         'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
   9580         'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
   9581         'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
   9582         'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
   9583         'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
   9584         'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
   9585         'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
   9586         'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
   9587       literal: 'true false'
   9588     },
   9589     illegal: '"',
   9590     contains: [
   9591       hljs.C_LINE_COMMENT_MODE,
   9592       hljs.C_BLOCK_COMMENT_MODE,
   9593       hljs.C_NUMBER_MODE,
   9594       {
   9595         className: 'meta',
   9596         begin: '#', end: '$'
   9597       }
   9598     ]
   9599   };
   9600 }
   9601 },{name:"gml",create:/*
   9602 Language: GML
   9603 Author: Meseta <meseta@gmail.com>
   9604 Description: Game Maker Language for GameMaker Studio 2
   9605 Category: scripting
   9606 */
   9607 
   9608 function(hljs) {
   9609   var GML_KEYWORDS = {
   9610     keywords: 'begin end if then else while do for break continue with until ' +
   9611       'repeat exit and or xor not return mod div switch case default var ' +
   9612       'globalvar enum #macro #region #endregion',
   9613     built_in: 'is_real is_string is_array is_undefined is_int32 is_int64 ' +
   9614       'is_ptr is_vec3 is_vec4 is_matrix is_bool typeof ' +
   9615       'variable_global_exists variable_global_get variable_global_set ' +
   9616       'variable_instance_exists variable_instance_get variable_instance_set ' +
   9617       'variable_instance_get_names array_length_1d array_length_2d ' +
   9618       'array_height_2d array_equals array_create array_copy random ' +
   9619       'random_range irandom irandom_range random_set_seed random_get_seed ' +
   9620       'randomize randomise choose abs round floor ceil sign frac sqrt sqr ' +
   9621       'exp ln log2 log10 sin cos tan arcsin arccos arctan arctan2 dsin dcos ' +
   9622       'dtan darcsin darccos darctan darctan2 degtorad radtodeg power logn ' +
   9623       'min max mean median clamp lerp dot_product dot_product_3d ' +
   9624       'dot_product_normalised dot_product_3d_normalised ' +
   9625       'dot_product_normalized dot_product_3d_normalized math_set_epsilon ' +
   9626       'math_get_epsilon angle_difference point_distance_3d point_distance ' +
   9627       'point_direction lengthdir_x lengthdir_y real string int64 ptr ' +
   9628       'string_format chr ansi_char ord string_length string_byte_length ' +
   9629       'string_pos string_copy string_char_at string_ord_at string_byte_at ' +
   9630       'string_set_byte_at string_delete string_insert string_lower ' +
   9631       'string_upper string_repeat string_letters string_digits ' +
   9632       'string_lettersdigits string_replace string_replace_all string_count ' +
   9633       'string_hash_to_newline clipboard_has_text clipboard_set_text ' +
   9634       'clipboard_get_text date_current_datetime date_create_datetime ' +
   9635       'date_valid_datetime date_inc_year date_inc_month date_inc_week ' +
   9636       'date_inc_day date_inc_hour date_inc_minute date_inc_second ' +
   9637       'date_get_year date_get_month date_get_week date_get_day ' +
   9638       'date_get_hour date_get_minute date_get_second date_get_weekday ' +
   9639       'date_get_day_of_year date_get_hour_of_year date_get_minute_of_year ' +
   9640       'date_get_second_of_year date_year_span date_month_span ' +
   9641       'date_week_span date_day_span date_hour_span date_minute_span ' +
   9642       'date_second_span date_compare_datetime date_compare_date ' +
   9643       'date_compare_time date_date_of date_time_of date_datetime_string ' +
   9644       'date_date_string date_time_string date_days_in_month ' +
   9645       'date_days_in_year date_leap_year date_is_today date_set_timezone ' +
   9646       'date_get_timezone game_set_speed game_get_speed motion_set ' +
   9647       'motion_add place_free place_empty place_meeting place_snapped ' +
   9648       'move_random move_snap move_towards_point move_contact_solid ' +
   9649       'move_contact_all move_outside_solid move_outside_all ' +
   9650       'move_bounce_solid move_bounce_all move_wrap distance_to_point ' +
   9651       'distance_to_object position_empty position_meeting path_start ' +
   9652       'path_end mp_linear_step mp_potential_step mp_linear_step_object ' +
   9653       'mp_potential_step_object mp_potential_settings mp_linear_path ' +
   9654       'mp_potential_path mp_linear_path_object mp_potential_path_object ' +
   9655       'mp_grid_create mp_grid_destroy mp_grid_clear_all mp_grid_clear_cell ' +
   9656       'mp_grid_clear_rectangle mp_grid_add_cell mp_grid_get_cell ' +
   9657       'mp_grid_add_rectangle mp_grid_add_instances mp_grid_path ' +
   9658       'mp_grid_draw mp_grid_to_ds_grid collision_point collision_rectangle ' +
   9659       'collision_circle collision_ellipse collision_line ' +
   9660       'collision_point_list collision_rectangle_list collision_circle_list ' +
   9661       'collision_ellipse_list collision_line_list instance_position_list ' +
   9662       'instance_place_list point_in_rectangle ' +
   9663       'point_in_triangle point_in_circle rectangle_in_rectangle ' +
   9664       'rectangle_in_triangle rectangle_in_circle instance_find ' +
   9665       'instance_exists instance_number instance_position instance_nearest ' +
   9666       'instance_furthest instance_place instance_create_depth ' +
   9667       'instance_create_layer instance_copy instance_change instance_destroy ' +
   9668       'position_destroy position_change instance_id_get ' +
   9669       'instance_deactivate_all instance_deactivate_object ' +
   9670       'instance_deactivate_region instance_activate_all ' +
   9671       'instance_activate_object instance_activate_region room_goto ' +
   9672       'room_goto_previous room_goto_next room_previous room_next ' +
   9673       'room_restart game_end game_restart game_load game_save ' +
   9674       'game_save_buffer game_load_buffer event_perform event_user ' +
   9675       'event_perform_object event_inherited show_debug_message ' +
   9676       'show_debug_overlay debug_event debug_get_callstack alarm_get ' +
   9677       'alarm_set font_texture_page_size keyboard_set_map keyboard_get_map ' +
   9678       'keyboard_unset_map keyboard_check keyboard_check_pressed ' +
   9679       'keyboard_check_released keyboard_check_direct keyboard_get_numlock ' +
   9680       'keyboard_set_numlock keyboard_key_press keyboard_key_release ' +
   9681       'keyboard_clear io_clear mouse_check_button ' +
   9682       'mouse_check_button_pressed mouse_check_button_released ' +
   9683       'mouse_wheel_up mouse_wheel_down mouse_clear draw_self draw_sprite ' +
   9684       'draw_sprite_pos draw_sprite_ext draw_sprite_stretched ' +
   9685       'draw_sprite_stretched_ext draw_sprite_tiled draw_sprite_tiled_ext ' +
   9686       'draw_sprite_part draw_sprite_part_ext draw_sprite_general draw_clear ' +
   9687       'draw_clear_alpha draw_point draw_line draw_line_width draw_rectangle ' +
   9688       'draw_roundrect draw_roundrect_ext draw_triangle draw_circle ' +
   9689       'draw_ellipse draw_set_circle_precision draw_arrow draw_button ' +
   9690       'draw_path draw_healthbar draw_getpixel draw_getpixel_ext ' +
   9691       'draw_set_colour draw_set_color draw_set_alpha draw_get_colour ' +
   9692       'draw_get_color draw_get_alpha merge_colour make_colour_rgb ' +
   9693       'make_colour_hsv colour_get_red colour_get_green colour_get_blue ' +
   9694       'colour_get_hue colour_get_saturation colour_get_value merge_color ' +
   9695       'make_color_rgb make_color_hsv color_get_red color_get_green ' +
   9696       'color_get_blue color_get_hue color_get_saturation color_get_value ' +
   9697       'merge_color screen_save screen_save_part draw_set_font ' +
   9698       'draw_set_halign draw_set_valign draw_text draw_text_ext string_width ' +
   9699       'string_height string_width_ext string_height_ext ' +
   9700       'draw_text_transformed draw_text_ext_transformed draw_text_colour ' +
   9701       'draw_text_ext_colour draw_text_transformed_colour ' +
   9702       'draw_text_ext_transformed_colour draw_text_color draw_text_ext_color ' +
   9703       'draw_text_transformed_color draw_text_ext_transformed_color ' +
   9704       'draw_point_colour draw_line_colour draw_line_width_colour ' +
   9705       'draw_rectangle_colour draw_roundrect_colour ' +
   9706       'draw_roundrect_colour_ext draw_triangle_colour draw_circle_colour ' +
   9707       'draw_ellipse_colour draw_point_color draw_line_color ' +
   9708       'draw_line_width_color draw_rectangle_color draw_roundrect_color ' +
   9709       'draw_roundrect_color_ext draw_triangle_color draw_circle_color ' +
   9710       'draw_ellipse_color draw_primitive_begin draw_vertex ' +
   9711       'draw_vertex_colour draw_vertex_color draw_primitive_end ' +
   9712       'sprite_get_uvs font_get_uvs sprite_get_texture font_get_texture ' +
   9713       'texture_get_width texture_get_height texture_get_uvs ' +
   9714       'draw_primitive_begin_texture draw_vertex_texture ' +
   9715       'draw_vertex_texture_colour draw_vertex_texture_color ' +
   9716       'texture_global_scale surface_create surface_create_ext ' +
   9717       'surface_resize surface_free surface_exists surface_get_width ' +
   9718       'surface_get_height surface_get_texture surface_set_target ' +
   9719       'surface_set_target_ext surface_reset_target surface_depth_disable ' +
   9720       'surface_get_depth_disable draw_surface draw_surface_stretched ' +
   9721       'draw_surface_tiled draw_surface_part draw_surface_ext ' +
   9722       'draw_surface_stretched_ext draw_surface_tiled_ext ' +
   9723       'draw_surface_part_ext draw_surface_general surface_getpixel ' +
   9724       'surface_getpixel_ext surface_save surface_save_part surface_copy ' +
   9725       'surface_copy_part application_surface_draw_enable ' +
   9726       'application_get_position application_surface_enable ' +
   9727       'application_surface_is_enabled display_get_width display_get_height ' +
   9728       'display_get_orientation display_get_gui_width display_get_gui_height ' +
   9729       'display_reset display_mouse_get_x display_mouse_get_y ' +
   9730       'display_mouse_set display_set_ui_visibility ' +
   9731       'window_set_fullscreen window_get_fullscreen ' +
   9732       'window_set_caption window_set_min_width window_set_max_width ' +
   9733       'window_set_min_height window_set_max_height window_get_visible_rects ' +
   9734       'window_get_caption window_set_cursor window_get_cursor ' +
   9735       'window_set_colour window_get_colour window_set_color ' +
   9736       'window_get_color window_set_position window_set_size ' +
   9737       'window_set_rectangle window_center window_get_x window_get_y ' +
   9738       'window_get_width window_get_height window_mouse_get_x ' +
   9739       'window_mouse_get_y window_mouse_set window_view_mouse_get_x ' +
   9740       'window_view_mouse_get_y window_views_mouse_get_x ' +
   9741       'window_views_mouse_get_y audio_listener_position ' +
   9742       'audio_listener_velocity audio_listener_orientation ' +
   9743       'audio_emitter_position audio_emitter_create audio_emitter_free ' +
   9744       'audio_emitter_exists audio_emitter_pitch audio_emitter_velocity ' +
   9745       'audio_emitter_falloff audio_emitter_gain audio_play_sound ' +
   9746       'audio_play_sound_on audio_play_sound_at audio_stop_sound ' +
   9747       'audio_resume_music audio_music_is_playing audio_resume_sound ' +
   9748       'audio_pause_sound audio_pause_music audio_channel_num ' +
   9749       'audio_sound_length audio_get_type audio_falloff_set_model ' +
   9750       'audio_play_music audio_stop_music audio_master_gain audio_music_gain ' +
   9751       'audio_sound_gain audio_sound_pitch audio_stop_all audio_resume_all ' +
   9752       'audio_pause_all audio_is_playing audio_is_paused audio_exists ' +
   9753       'audio_sound_set_track_position audio_sound_get_track_position ' +
   9754       'audio_emitter_get_gain audio_emitter_get_pitch audio_emitter_get_x ' +
   9755       'audio_emitter_get_y audio_emitter_get_z audio_emitter_get_vx ' +
   9756       'audio_emitter_get_vy audio_emitter_get_vz ' +
   9757       'audio_listener_set_position audio_listener_set_velocity ' +
   9758       'audio_listener_set_orientation audio_listener_get_data ' +
   9759       'audio_set_master_gain audio_get_master_gain audio_sound_get_gain ' +
   9760       'audio_sound_get_pitch audio_get_name audio_sound_set_track_position ' +
   9761       'audio_sound_get_track_position audio_create_stream ' +
   9762       'audio_destroy_stream audio_create_sync_group ' +
   9763       'audio_destroy_sync_group audio_play_in_sync_group ' +
   9764       'audio_start_sync_group audio_stop_sync_group audio_pause_sync_group ' +
   9765       'audio_resume_sync_group audio_sync_group_get_track_pos ' +
   9766       'audio_sync_group_debug audio_sync_group_is_playing audio_debug ' +
   9767       'audio_group_load audio_group_unload audio_group_is_loaded ' +
   9768       'audio_group_load_progress audio_group_name audio_group_stop_all ' +
   9769       'audio_group_set_gain audio_create_buffer_sound ' +
   9770       'audio_free_buffer_sound audio_create_play_queue ' +
   9771       'audio_free_play_queue audio_queue_sound audio_get_recorder_count ' +
   9772       'audio_get_recorder_info audio_start_recording audio_stop_recording ' +
   9773       'audio_sound_get_listener_mask audio_emitter_get_listener_mask ' +
   9774       'audio_get_listener_mask audio_sound_set_listener_mask ' +
   9775       'audio_emitter_set_listener_mask audio_set_listener_mask ' +
   9776       'audio_get_listener_count audio_get_listener_info audio_system ' +
   9777       'show_message show_message_async clickable_add clickable_add_ext ' +
   9778       'clickable_change clickable_change_ext clickable_delete ' +
   9779       'clickable_exists clickable_set_style show_question ' +
   9780       'show_question_async get_integer get_string get_integer_async ' +
   9781       'get_string_async get_login_async get_open_filename get_save_filename ' +
   9782       'get_open_filename_ext get_save_filename_ext show_error ' +
   9783       'highscore_clear highscore_add highscore_value highscore_name ' +
   9784       'draw_highscore sprite_exists sprite_get_name sprite_get_number ' +
   9785       'sprite_get_width sprite_get_height sprite_get_xoffset ' +
   9786       'sprite_get_yoffset sprite_get_bbox_left sprite_get_bbox_right ' +
   9787       'sprite_get_bbox_top sprite_get_bbox_bottom sprite_save ' +
   9788       'sprite_save_strip sprite_set_cache_size sprite_set_cache_size_ext ' +
   9789       'sprite_get_tpe sprite_prefetch sprite_prefetch_multi sprite_flush ' +
   9790       'sprite_flush_multi sprite_set_speed sprite_get_speed_type ' +
   9791       'sprite_get_speed font_exists font_get_name font_get_fontname ' +
   9792       'font_get_bold font_get_italic font_get_first font_get_last ' +
   9793       'font_get_size font_set_cache_size path_exists path_get_name ' +
   9794       'path_get_length path_get_time path_get_kind path_get_closed ' +
   9795       'path_get_precision path_get_number path_get_point_x path_get_point_y ' +
   9796       'path_get_point_speed path_get_x path_get_y path_get_speed ' +
   9797       'script_exists script_get_name timeline_add timeline_delete ' +
   9798       'timeline_clear timeline_exists timeline_get_name ' +
   9799       'timeline_moment_clear timeline_moment_add_script timeline_size ' +
   9800       'timeline_max_moment object_exists object_get_name object_get_sprite ' +
   9801       'object_get_solid object_get_visible object_get_persistent ' +
   9802       'object_get_mask object_get_parent object_get_physics ' +
   9803       'object_is_ancestor room_exists room_get_name sprite_set_offset ' +
   9804       'sprite_duplicate sprite_assign sprite_merge sprite_add ' +
   9805       'sprite_replace sprite_create_from_surface sprite_add_from_surface ' +
   9806       'sprite_delete sprite_set_alpha_from_sprite sprite_collision_mask ' +
   9807       'font_add_enable_aa font_add_get_enable_aa font_add font_add_sprite ' +
   9808       'font_add_sprite_ext font_replace font_replace_sprite ' +
   9809       'font_replace_sprite_ext font_delete path_set_kind path_set_closed ' +
   9810       'path_set_precision path_add path_assign path_duplicate path_append ' +
   9811       'path_delete path_add_point path_insert_point path_change_point ' +
   9812       'path_delete_point path_clear_points path_reverse path_mirror ' +
   9813       'path_flip path_rotate path_rescale path_shift script_execute ' +
   9814       'object_set_sprite object_set_solid object_set_visible ' +
   9815       'object_set_persistent object_set_mask room_set_width room_set_height ' +
   9816       'room_set_persistent room_set_background_colour ' +
   9817       'room_set_background_color room_set_view room_set_viewport ' +
   9818       'room_get_viewport room_set_view_enabled room_add room_duplicate ' +
   9819       'room_assign room_instance_add room_instance_clear room_get_camera ' +
   9820       'room_set_camera asset_get_index asset_get_type ' +
   9821       'file_text_open_from_string file_text_open_read file_text_open_write ' +
   9822       'file_text_open_append file_text_close file_text_write_string ' +
   9823       'file_text_write_real file_text_writeln file_text_read_string ' +
   9824       'file_text_read_real file_text_readln file_text_eof file_text_eoln ' +
   9825       'file_exists file_delete file_rename file_copy directory_exists ' +
   9826       'directory_create directory_destroy file_find_first file_find_next ' +
   9827       'file_find_close file_attributes filename_name filename_path ' +
   9828       'filename_dir filename_drive filename_ext filename_change_ext ' +
   9829       'file_bin_open file_bin_rewrite file_bin_close file_bin_position ' +
   9830       'file_bin_size file_bin_seek file_bin_write_byte file_bin_read_byte ' +
   9831       'parameter_count parameter_string environment_get_variable ' +
   9832       'ini_open_from_string ini_open ini_close ini_read_string ' +
   9833       'ini_read_real ini_write_string ini_write_real ini_key_exists ' +
   9834       'ini_section_exists ini_key_delete ini_section_delete ' +
   9835       'ds_set_precision ds_exists ds_stack_create ds_stack_destroy ' +
   9836       'ds_stack_clear ds_stack_copy ds_stack_size ds_stack_empty ' +
   9837       'ds_stack_push ds_stack_pop ds_stack_top ds_stack_write ds_stack_read ' +
   9838       'ds_queue_create ds_queue_destroy ds_queue_clear ds_queue_copy ' +
   9839       'ds_queue_size ds_queue_empty ds_queue_enqueue ds_queue_dequeue ' +
   9840       'ds_queue_head ds_queue_tail ds_queue_write ds_queue_read ' +
   9841       'ds_list_create ds_list_destroy ds_list_clear ds_list_copy ' +
   9842       'ds_list_size ds_list_empty ds_list_add ds_list_insert ' +
   9843       'ds_list_replace ds_list_delete ds_list_find_index ds_list_find_value ' +
   9844       'ds_list_mark_as_list ds_list_mark_as_map ds_list_sort ' +
   9845       'ds_list_shuffle ds_list_write ds_list_read ds_list_set ds_map_create ' +
   9846       'ds_map_destroy ds_map_clear ds_map_copy ds_map_size ds_map_empty ' +
   9847       'ds_map_add ds_map_add_list ds_map_add_map ds_map_replace ' +
   9848       'ds_map_replace_map ds_map_replace_list ds_map_delete ds_map_exists ' +
   9849       'ds_map_find_value ds_map_find_previous ds_map_find_next ' +
   9850       'ds_map_find_first ds_map_find_last ds_map_write ds_map_read ' +
   9851       'ds_map_secure_save ds_map_secure_load ds_map_secure_load_buffer ' +
   9852       'ds_map_secure_save_buffer ds_map_set ds_priority_create ' +
   9853       'ds_priority_destroy ds_priority_clear ds_priority_copy ' +
   9854       'ds_priority_size ds_priority_empty ds_priority_add ' +
   9855       'ds_priority_change_priority ds_priority_find_priority ' +
   9856       'ds_priority_delete_value ds_priority_delete_min ds_priority_find_min ' +
   9857       'ds_priority_delete_max ds_priority_find_max ds_priority_write ' +
   9858       'ds_priority_read ds_grid_create ds_grid_destroy ds_grid_copy ' +
   9859       'ds_grid_resize ds_grid_width ds_grid_height ds_grid_clear ' +
   9860       'ds_grid_set ds_grid_add ds_grid_multiply ds_grid_set_region ' +
   9861       'ds_grid_add_region ds_grid_multiply_region ds_grid_set_disk ' +
   9862       'ds_grid_add_disk ds_grid_multiply_disk ds_grid_set_grid_region ' +
   9863       'ds_grid_add_grid_region ds_grid_multiply_grid_region ds_grid_get ' +
   9864       'ds_grid_get_sum ds_grid_get_max ds_grid_get_min ds_grid_get_mean ' +
   9865       'ds_grid_get_disk_sum ds_grid_get_disk_min ds_grid_get_disk_max ' +
   9866       'ds_grid_get_disk_mean ds_grid_value_exists ds_grid_value_x ' +
   9867       'ds_grid_value_y ds_grid_value_disk_exists ds_grid_value_disk_x ' +
   9868       'ds_grid_value_disk_y ds_grid_shuffle ds_grid_write ds_grid_read ' +
   9869       'ds_grid_sort ds_grid_set ds_grid_get effect_create_below ' +
   9870       'effect_create_above effect_clear part_type_create part_type_destroy ' +
   9871       'part_type_exists part_type_clear part_type_shape part_type_sprite ' +
   9872       'part_type_size part_type_scale part_type_orientation part_type_life ' +
   9873       'part_type_step part_type_death part_type_speed part_type_direction ' +
   9874       'part_type_gravity part_type_colour1 part_type_colour2 ' +
   9875       'part_type_colour3 part_type_colour_mix part_type_colour_rgb ' +
   9876       'part_type_colour_hsv part_type_color1 part_type_color2 ' +
   9877       'part_type_color3 part_type_color_mix part_type_color_rgb ' +
   9878       'part_type_color_hsv part_type_alpha1 part_type_alpha2 ' +
   9879       'part_type_alpha3 part_type_blend part_system_create ' +
   9880       'part_system_create_layer part_system_destroy part_system_exists ' +
   9881       'part_system_clear part_system_draw_order part_system_depth ' +
   9882       'part_system_position part_system_automatic_update ' +
   9883       'part_system_automatic_draw part_system_update part_system_drawit ' +
   9884       'part_system_get_layer part_system_layer part_particles_create ' +
   9885       'part_particles_create_colour part_particles_create_color ' +
   9886       'part_particles_clear part_particles_count part_emitter_create ' +
   9887       'part_emitter_destroy part_emitter_destroy_all part_emitter_exists ' +
   9888       'part_emitter_clear part_emitter_region part_emitter_burst ' +
   9889       'part_emitter_stream external_call external_define external_free ' +
   9890       'window_handle window_device matrix_get matrix_set ' +
   9891       'matrix_build_identity matrix_build matrix_build_lookat ' +
   9892       'matrix_build_projection_ortho matrix_build_projection_perspective ' +
   9893       'matrix_build_projection_perspective_fov matrix_multiply ' +
   9894       'matrix_transform_vertex matrix_stack_push matrix_stack_pop ' +
   9895       'matrix_stack_multiply matrix_stack_set matrix_stack_clear ' +
   9896       'matrix_stack_top matrix_stack_is_empty browser_input_capture ' +
   9897       'os_get_config os_get_info os_get_language os_get_region ' +
   9898       'os_lock_orientation display_get_dpi_x display_get_dpi_y ' +
   9899       'display_set_gui_size display_set_gui_maximise ' +
   9900       'display_set_gui_maximize device_mouse_dbclick_enable ' +
   9901       'display_set_timing_method display_get_timing_method ' +
   9902       'display_set_sleep_margin display_get_sleep_margin virtual_key_add ' +
   9903       'virtual_key_hide virtual_key_delete virtual_key_show ' +
   9904       'draw_enable_drawevent draw_enable_swf_aa draw_set_swf_aa_level ' +
   9905       'draw_get_swf_aa_level draw_texture_flush draw_flush ' +
   9906       'gpu_set_blendenable gpu_set_ztestenable gpu_set_zfunc ' +
   9907       'gpu_set_zwriteenable gpu_set_lightingenable gpu_set_fog ' +
   9908       'gpu_set_cullmode gpu_set_blendmode gpu_set_blendmode_ext ' +
   9909       'gpu_set_blendmode_ext_sepalpha gpu_set_colorwriteenable ' +
   9910       'gpu_set_colourwriteenable gpu_set_alphatestenable ' +
   9911       'gpu_set_alphatestref gpu_set_alphatestfunc gpu_set_texfilter ' +
   9912       'gpu_set_texfilter_ext gpu_set_texrepeat gpu_set_texrepeat_ext ' +
   9913       'gpu_set_tex_filter gpu_set_tex_filter_ext gpu_set_tex_repeat ' +
   9914       'gpu_set_tex_repeat_ext gpu_set_tex_mip_filter ' +
   9915       'gpu_set_tex_mip_filter_ext gpu_set_tex_mip_bias ' +
   9916       'gpu_set_tex_mip_bias_ext gpu_set_tex_min_mip gpu_set_tex_min_mip_ext ' +
   9917       'gpu_set_tex_max_mip gpu_set_tex_max_mip_ext gpu_set_tex_max_aniso ' +
   9918       'gpu_set_tex_max_aniso_ext gpu_set_tex_mip_enable ' +
   9919       'gpu_set_tex_mip_enable_ext gpu_get_blendenable gpu_get_ztestenable ' +
   9920       'gpu_get_zfunc gpu_get_zwriteenable gpu_get_lightingenable ' +
   9921       'gpu_get_fog gpu_get_cullmode gpu_get_blendmode gpu_get_blendmode_ext ' +
   9922       'gpu_get_blendmode_ext_sepalpha gpu_get_blendmode_src ' +
   9923       'gpu_get_blendmode_dest gpu_get_blendmode_srcalpha ' +
   9924       'gpu_get_blendmode_destalpha gpu_get_colorwriteenable ' +
   9925       'gpu_get_colourwriteenable gpu_get_alphatestenable ' +
   9926       'gpu_get_alphatestref gpu_get_alphatestfunc gpu_get_texfilter ' +
   9927       'gpu_get_texfilter_ext gpu_get_texrepeat gpu_get_texrepeat_ext ' +
   9928       'gpu_get_tex_filter gpu_get_tex_filter_ext gpu_get_tex_repeat ' +
   9929       'gpu_get_tex_repeat_ext gpu_get_tex_mip_filter ' +
   9930       'gpu_get_tex_mip_filter_ext gpu_get_tex_mip_bias ' +
   9931       'gpu_get_tex_mip_bias_ext gpu_get_tex_min_mip gpu_get_tex_min_mip_ext ' +
   9932       'gpu_get_tex_max_mip gpu_get_tex_max_mip_ext gpu_get_tex_max_aniso ' +
   9933       'gpu_get_tex_max_aniso_ext gpu_get_tex_mip_enable ' +
   9934       'gpu_get_tex_mip_enable_ext gpu_push_state gpu_pop_state ' +
   9935       'gpu_get_state gpu_set_state draw_light_define_ambient ' +
   9936       'draw_light_define_direction draw_light_define_point ' +
   9937       'draw_light_enable draw_set_lighting draw_light_get_ambient ' +
   9938       'draw_light_get draw_get_lighting shop_leave_rating url_get_domain ' +
   9939       'url_open url_open_ext url_open_full get_timer achievement_login ' +
   9940       'achievement_logout achievement_post achievement_increment ' +
   9941       'achievement_post_score achievement_available ' +
   9942       'achievement_show_achievements achievement_show_leaderboards ' +
   9943       'achievement_load_friends achievement_load_leaderboard ' +
   9944       'achievement_send_challenge achievement_load_progress ' +
   9945       'achievement_reset achievement_login_status achievement_get_pic ' +
   9946       'achievement_show_challenge_notifications achievement_get_challenges ' +
   9947       'achievement_event achievement_show achievement_get_info ' +
   9948       'cloud_file_save cloud_string_save cloud_synchronise ads_enable ' +
   9949       'ads_disable ads_setup ads_engagement_launch ads_engagement_available ' +
   9950       'ads_engagement_active ads_event ads_event_preload ' +
   9951       'ads_set_reward_callback ads_get_display_height ads_get_display_width ' +
   9952       'ads_move ads_interstitial_available ads_interstitial_display ' +
   9953       'device_get_tilt_x device_get_tilt_y device_get_tilt_z ' +
   9954       'device_is_keypad_open device_mouse_check_button ' +
   9955       'device_mouse_check_button_pressed device_mouse_check_button_released ' +
   9956       'device_mouse_x device_mouse_y device_mouse_raw_x device_mouse_raw_y ' +
   9957       'device_mouse_x_to_gui device_mouse_y_to_gui iap_activate iap_status ' +
   9958       'iap_enumerate_products iap_restore_all iap_acquire iap_consume ' +
   9959       'iap_product_details iap_purchase_details facebook_init ' +
   9960       'facebook_login facebook_status facebook_graph_request ' +
   9961       'facebook_dialog facebook_logout facebook_launch_offerwall ' +
   9962       'facebook_post_message facebook_send_invite facebook_user_id ' +
   9963       'facebook_accesstoken facebook_check_permission ' +
   9964       'facebook_request_read_permissions ' +
   9965       'facebook_request_publish_permissions gamepad_is_supported ' +
   9966       'gamepad_get_device_count gamepad_is_connected ' +
   9967       'gamepad_get_description gamepad_get_button_threshold ' +
   9968       'gamepad_set_button_threshold gamepad_get_axis_deadzone ' +
   9969       'gamepad_set_axis_deadzone gamepad_button_count gamepad_button_check ' +
   9970       'gamepad_button_check_pressed gamepad_button_check_released ' +
   9971       'gamepad_button_value gamepad_axis_count gamepad_axis_value ' +
   9972       'gamepad_set_vibration gamepad_set_colour gamepad_set_color ' +
   9973       'os_is_paused window_has_focus code_is_compiled http_get ' +
   9974       'http_get_file http_post_string http_request json_encode json_decode ' +
   9975       'zip_unzip load_csv base64_encode base64_decode md5_string_unicode ' +
   9976       'md5_string_utf8 md5_file os_is_network_connected sha1_string_unicode ' +
   9977       'sha1_string_utf8 sha1_file os_powersave_enable analytics_event ' +
   9978       'analytics_event_ext win8_livetile_tile_notification ' +
   9979       'win8_livetile_tile_clear win8_livetile_badge_notification ' +
   9980       'win8_livetile_badge_clear win8_livetile_queue_enable ' +
   9981       'win8_secondarytile_pin win8_secondarytile_badge_notification ' +
   9982       'win8_secondarytile_delete win8_livetile_notification_begin ' +
   9983       'win8_livetile_notification_secondary_begin ' +
   9984       'win8_livetile_notification_expiry win8_livetile_notification_tag ' +
   9985       'win8_livetile_notification_text_add ' +
   9986       'win8_livetile_notification_image_add win8_livetile_notification_end ' +
   9987       'win8_appbar_enable win8_appbar_add_element ' +
   9988       'win8_appbar_remove_element win8_settingscharm_add_entry ' +
   9989       'win8_settingscharm_add_html_entry win8_settingscharm_add_xaml_entry ' +
   9990       'win8_settingscharm_set_xaml_property ' +
   9991       'win8_settingscharm_get_xaml_property win8_settingscharm_remove_entry ' +
   9992       'win8_share_image win8_share_screenshot win8_share_file ' +
   9993       'win8_share_url win8_share_text win8_search_enable ' +
   9994       'win8_search_disable win8_search_add_suggestions ' +
   9995       'win8_device_touchscreen_available win8_license_initialize_sandbox ' +
   9996       'win8_license_trial_version winphone_license_trial_version ' +
   9997       'winphone_tile_title winphone_tile_count winphone_tile_back_title ' +
   9998       'winphone_tile_back_content winphone_tile_back_content_wide ' +
   9999       'winphone_tile_front_image winphone_tile_front_image_small ' +
  10000       'winphone_tile_front_image_wide winphone_tile_back_image ' +
  10001       'winphone_tile_back_image_wide winphone_tile_background_colour ' +
  10002       'winphone_tile_background_color winphone_tile_icon_image ' +
  10003       'winphone_tile_small_icon_image winphone_tile_wide_content ' +
  10004       'winphone_tile_cycle_images winphone_tile_small_background_image ' +
  10005       'physics_world_create physics_world_gravity ' +
  10006       'physics_world_update_speed physics_world_update_iterations ' +
  10007       'physics_world_draw_debug physics_pause_enable physics_fixture_create ' +
  10008       'physics_fixture_set_kinematic physics_fixture_set_density ' +
  10009       'physics_fixture_set_awake physics_fixture_set_restitution ' +
  10010       'physics_fixture_set_friction physics_fixture_set_collision_group ' +
  10011       'physics_fixture_set_sensor physics_fixture_set_linear_damping ' +
  10012       'physics_fixture_set_angular_damping physics_fixture_set_circle_shape ' +
  10013       'physics_fixture_set_box_shape physics_fixture_set_edge_shape ' +
  10014       'physics_fixture_set_polygon_shape physics_fixture_set_chain_shape ' +
  10015       'physics_fixture_add_point physics_fixture_bind ' +
  10016       'physics_fixture_bind_ext physics_fixture_delete physics_apply_force ' +
  10017       'physics_apply_impulse physics_apply_angular_impulse ' +
  10018       'physics_apply_local_force physics_apply_local_impulse ' +
  10019       'physics_apply_torque physics_mass_properties physics_draw_debug ' +
  10020       'physics_test_overlap physics_remove_fixture physics_set_friction ' +
  10021       'physics_set_density physics_set_restitution physics_get_friction ' +
  10022       'physics_get_density physics_get_restitution ' +
  10023       'physics_joint_distance_create physics_joint_rope_create ' +
  10024       'physics_joint_revolute_create physics_joint_prismatic_create ' +
  10025       'physics_joint_pulley_create physics_joint_wheel_create ' +
  10026       'physics_joint_weld_create physics_joint_friction_create ' +
  10027       'physics_joint_gear_create physics_joint_enable_motor ' +
  10028       'physics_joint_get_value physics_joint_set_value physics_joint_delete ' +
  10029       'physics_particle_create physics_particle_delete ' +
  10030       'physics_particle_delete_region_circle ' +
  10031       'physics_particle_delete_region_box ' +
  10032       'physics_particle_delete_region_poly physics_particle_set_flags ' +
  10033       'physics_particle_set_category_flags physics_particle_draw ' +
  10034       'physics_particle_draw_ext physics_particle_count ' +
  10035       'physics_particle_get_data physics_particle_get_data_particle ' +
  10036       'physics_particle_group_begin physics_particle_group_circle ' +
  10037       'physics_particle_group_box physics_particle_group_polygon ' +
  10038       'physics_particle_group_add_point physics_particle_group_end ' +
  10039       'physics_particle_group_join physics_particle_group_delete ' +
  10040       'physics_particle_group_count physics_particle_group_get_data ' +
  10041       'physics_particle_group_get_mass physics_particle_group_get_inertia ' +
  10042       'physics_particle_group_get_centre_x ' +
  10043       'physics_particle_group_get_centre_y physics_particle_group_get_vel_x ' +
  10044       'physics_particle_group_get_vel_y physics_particle_group_get_ang_vel ' +
  10045       'physics_particle_group_get_x physics_particle_group_get_y ' +
  10046       'physics_particle_group_get_angle physics_particle_set_group_flags ' +
  10047       'physics_particle_get_group_flags physics_particle_get_max_count ' +
  10048       'physics_particle_get_radius physics_particle_get_density ' +
  10049       'physics_particle_get_damping physics_particle_get_gravity_scale ' +
  10050       'physics_particle_set_max_count physics_particle_set_radius ' +
  10051       'physics_particle_set_density physics_particle_set_damping ' +
  10052       'physics_particle_set_gravity_scale network_create_socket ' +
  10053       'network_create_socket_ext network_create_server ' +
  10054       'network_create_server_raw network_connect network_connect_raw ' +
  10055       'network_send_packet network_send_raw network_send_broadcast ' +
  10056       'network_send_udp network_send_udp_raw network_set_timeout ' +
  10057       'network_set_config network_resolve network_destroy buffer_create ' +
  10058       'buffer_write buffer_read buffer_seek buffer_get_surface ' +
  10059       'buffer_set_surface buffer_delete buffer_exists buffer_get_type ' +
  10060       'buffer_get_alignment buffer_poke buffer_peek buffer_save ' +
  10061       'buffer_save_ext buffer_load buffer_load_ext buffer_load_partial ' +
  10062       'buffer_copy buffer_fill buffer_get_size buffer_tell buffer_resize ' +
  10063       'buffer_md5 buffer_sha1 buffer_base64_encode buffer_base64_decode ' +
  10064       'buffer_base64_decode_ext buffer_sizeof buffer_get_address ' +
  10065       'buffer_create_from_vertex_buffer ' +
  10066       'buffer_create_from_vertex_buffer_ext buffer_copy_from_vertex_buffer ' +
  10067       'buffer_async_group_begin buffer_async_group_option ' +
  10068       'buffer_async_group_end buffer_load_async buffer_save_async ' +
  10069       'gml_release_mode gml_pragma steam_activate_overlay ' +
  10070       'steam_is_overlay_enabled steam_is_overlay_activated ' +
  10071       'steam_get_persona_name steam_initialised ' +
  10072       'steam_is_cloud_enabled_for_app steam_is_cloud_enabled_for_account ' +
  10073       'steam_file_persisted steam_get_quota_total steam_get_quota_free ' +
  10074       'steam_file_write steam_file_write_file steam_file_read ' +
  10075       'steam_file_delete steam_file_exists steam_file_size steam_file_share ' +
  10076       'steam_is_screenshot_requested steam_send_screenshot ' +
  10077       'steam_is_user_logged_on steam_get_user_steam_id steam_user_owns_dlc ' +
  10078       'steam_user_installed_dlc steam_set_achievement steam_get_achievement ' +
  10079       'steam_clear_achievement steam_set_stat_int steam_set_stat_float ' +
  10080       'steam_set_stat_avg_rate steam_get_stat_int steam_get_stat_float ' +
  10081       'steam_get_stat_avg_rate steam_reset_all_stats ' +
  10082       'steam_reset_all_stats_achievements steam_stats_ready ' +
  10083       'steam_create_leaderboard steam_upload_score steam_upload_score_ext ' +
  10084       'steam_download_scores_around_user steam_download_scores ' +
  10085       'steam_download_friends_scores steam_upload_score_buffer ' +
  10086       'steam_upload_score_buffer_ext steam_current_game_language ' +
  10087       'steam_available_languages steam_activate_overlay_browser ' +
  10088       'steam_activate_overlay_user steam_activate_overlay_store ' +
  10089       'steam_get_user_persona_name steam_get_app_id ' +
  10090       'steam_get_user_account_id steam_ugc_download steam_ugc_create_item ' +
  10091       'steam_ugc_start_item_update steam_ugc_set_item_title ' +
  10092       'steam_ugc_set_item_description steam_ugc_set_item_visibility ' +
  10093       'steam_ugc_set_item_tags steam_ugc_set_item_content ' +
  10094       'steam_ugc_set_item_preview steam_ugc_submit_item_update ' +
  10095       'steam_ugc_get_item_update_progress steam_ugc_subscribe_item ' +
  10096       'steam_ugc_unsubscribe_item steam_ugc_num_subscribed_items ' +
  10097       'steam_ugc_get_subscribed_items steam_ugc_get_item_install_info ' +
  10098       'steam_ugc_get_item_update_info steam_ugc_request_item_details ' +
  10099       'steam_ugc_create_query_user steam_ugc_create_query_user_ex ' +
  10100       'steam_ugc_create_query_all steam_ugc_create_query_all_ex ' +
  10101       'steam_ugc_query_set_cloud_filename_filter ' +
  10102       'steam_ugc_query_set_match_any_tag steam_ugc_query_set_search_text ' +
  10103       'steam_ugc_query_set_ranked_by_trend_days ' +
  10104       'steam_ugc_query_add_required_tag steam_ugc_query_add_excluded_tag ' +
  10105       'steam_ugc_query_set_return_long_description ' +
  10106       'steam_ugc_query_set_return_total_only ' +
  10107       'steam_ugc_query_set_allow_cached_response steam_ugc_send_query ' +
  10108       'shader_set shader_get_name shader_reset shader_current ' +
  10109       'shader_is_compiled shader_get_sampler_index shader_get_uniform ' +
  10110       'shader_set_uniform_i shader_set_uniform_i_array shader_set_uniform_f ' +
  10111       'shader_set_uniform_f_array shader_set_uniform_matrix ' +
  10112       'shader_set_uniform_matrix_array shader_enable_corner_id ' +
  10113       'texture_set_stage texture_get_texel_width texture_get_texel_height ' +
  10114       'shaders_are_supported vertex_format_begin vertex_format_end ' +
  10115       'vertex_format_delete vertex_format_add_position ' +
  10116       'vertex_format_add_position_3d vertex_format_add_colour ' +
  10117       'vertex_format_add_color vertex_format_add_normal ' +
  10118       'vertex_format_add_texcoord vertex_format_add_textcoord ' +
  10119       'vertex_format_add_custom vertex_create_buffer ' +
  10120       'vertex_create_buffer_ext vertex_delete_buffer vertex_begin ' +
  10121       'vertex_end vertex_position vertex_position_3d vertex_colour ' +
  10122       'vertex_color vertex_argb vertex_texcoord vertex_normal vertex_float1 ' +
  10123       'vertex_float2 vertex_float3 vertex_float4 vertex_ubyte4 ' +
  10124       'vertex_submit vertex_freeze vertex_get_number vertex_get_buffer_size ' +
  10125       'vertex_create_buffer_from_buffer ' +
  10126       'vertex_create_buffer_from_buffer_ext push_local_notification ' +
  10127       'push_get_first_local_notification push_get_next_local_notification ' +
  10128       'push_cancel_local_notification skeleton_animation_set ' +
  10129       'skeleton_animation_get skeleton_animation_mix ' +
  10130       'skeleton_animation_set_ext skeleton_animation_get_ext ' +
  10131       'skeleton_animation_get_duration skeleton_animation_get_frames ' +
  10132       'skeleton_animation_clear skeleton_skin_set skeleton_skin_get ' +
  10133       'skeleton_attachment_set skeleton_attachment_get ' +
  10134       'skeleton_attachment_create skeleton_collision_draw_set ' +
  10135       'skeleton_bone_data_get skeleton_bone_data_set ' +
  10136       'skeleton_bone_state_get skeleton_bone_state_set skeleton_get_minmax ' +
  10137       'skeleton_get_num_bounds skeleton_get_bounds ' +
  10138       'skeleton_animation_get_frame skeleton_animation_set_frame ' +
  10139       'draw_skeleton draw_skeleton_time draw_skeleton_instance ' +
  10140       'draw_skeleton_collision skeleton_animation_list skeleton_skin_list ' +
  10141       'skeleton_slot_data layer_get_id layer_get_id_at_depth ' +
  10142       'layer_get_depth layer_create layer_destroy layer_destroy_instances ' +
  10143       'layer_add_instance layer_has_instance layer_set_visible ' +
  10144       'layer_get_visible layer_exists layer_x layer_y layer_get_x ' +
  10145       'layer_get_y layer_hspeed layer_vspeed layer_get_hspeed ' +
  10146       'layer_get_vspeed layer_script_begin layer_script_end layer_shader ' +
  10147       'layer_get_script_begin layer_get_script_end layer_get_shader ' +
  10148       'layer_set_target_room layer_get_target_room layer_reset_target_room ' +
  10149       'layer_get_all layer_get_all_elements layer_get_name layer_depth ' +
  10150       'layer_get_element_layer layer_get_element_type layer_element_move ' +
  10151       'layer_force_draw_depth layer_is_draw_depth_forced ' +
  10152       'layer_get_forced_depth layer_background_get_id ' +
  10153       'layer_background_exists layer_background_create ' +
  10154       'layer_background_destroy layer_background_visible ' +
  10155       'layer_background_change layer_background_sprite ' +
  10156       'layer_background_htiled layer_background_vtiled ' +
  10157       'layer_background_stretch layer_background_yscale ' +
  10158       'layer_background_xscale layer_background_blend ' +
  10159       'layer_background_alpha layer_background_index layer_background_speed ' +
  10160       'layer_background_get_visible layer_background_get_sprite ' +
  10161       'layer_background_get_htiled layer_background_get_vtiled ' +
  10162       'layer_background_get_stretch layer_background_get_yscale ' +
  10163       'layer_background_get_xscale layer_background_get_blend ' +
  10164       'layer_background_get_alpha layer_background_get_index ' +
  10165       'layer_background_get_speed layer_sprite_get_id layer_sprite_exists ' +
  10166       'layer_sprite_create layer_sprite_destroy layer_sprite_change ' +
  10167       'layer_sprite_index layer_sprite_speed layer_sprite_xscale ' +
  10168       'layer_sprite_yscale layer_sprite_angle layer_sprite_blend ' +
  10169       'layer_sprite_alpha layer_sprite_x layer_sprite_y ' +
  10170       'layer_sprite_get_sprite layer_sprite_get_index ' +
  10171       'layer_sprite_get_speed layer_sprite_get_xscale ' +
  10172       'layer_sprite_get_yscale layer_sprite_get_angle ' +
  10173       'layer_sprite_get_blend layer_sprite_get_alpha layer_sprite_get_x ' +
  10174       'layer_sprite_get_y layer_tilemap_get_id layer_tilemap_exists ' +
  10175       'layer_tilemap_create layer_tilemap_destroy tilemap_tileset tilemap_x ' +
  10176       'tilemap_y tilemap_set tilemap_set_at_pixel tilemap_get_tileset ' +
  10177       'tilemap_get_tile_width tilemap_get_tile_height tilemap_get_width ' +
  10178       'tilemap_get_height tilemap_get_x tilemap_get_y tilemap_get ' +
  10179       'tilemap_get_at_pixel tilemap_get_cell_x_at_pixel ' +
  10180       'tilemap_get_cell_y_at_pixel tilemap_clear draw_tilemap draw_tile ' +
  10181       'tilemap_set_global_mask tilemap_get_global_mask tilemap_set_mask ' +
  10182       'tilemap_get_mask tilemap_get_frame tile_set_empty tile_set_index ' +
  10183       'tile_set_flip tile_set_mirror tile_set_rotate tile_get_empty ' +
  10184       'tile_get_index tile_get_flip tile_get_mirror tile_get_rotate ' +
  10185       'layer_tile_exists layer_tile_create layer_tile_destroy ' +
  10186       'layer_tile_change layer_tile_xscale layer_tile_yscale ' +
  10187       'layer_tile_blend layer_tile_alpha layer_tile_x layer_tile_y ' +
  10188       'layer_tile_region layer_tile_visible layer_tile_get_sprite ' +
  10189       'layer_tile_get_xscale layer_tile_get_yscale layer_tile_get_blend ' +
  10190       'layer_tile_get_alpha layer_tile_get_x layer_tile_get_y ' +
  10191       'layer_tile_get_region layer_tile_get_visible ' +
  10192       'layer_instance_get_instance instance_activate_layer ' +
  10193       'instance_deactivate_layer camera_create camera_create_view ' +
  10194       'camera_destroy camera_apply camera_get_active camera_get_default ' +
  10195       'camera_set_default camera_set_view_mat camera_set_proj_mat ' +
  10196       'camera_set_update_script camera_set_begin_script ' +
  10197       'camera_set_end_script camera_set_view_pos camera_set_view_size ' +
  10198       'camera_set_view_speed camera_set_view_border camera_set_view_angle ' +
  10199       'camera_set_view_target camera_get_view_mat camera_get_proj_mat ' +
  10200       'camera_get_update_script camera_get_begin_script ' +
  10201       'camera_get_end_script camera_get_view_x camera_get_view_y ' +
  10202       'camera_get_view_width camera_get_view_height camera_get_view_speed_x ' +
  10203       'camera_get_view_speed_y camera_get_view_border_x ' +
  10204       'camera_get_view_border_y camera_get_view_angle ' +
  10205       'camera_get_view_target view_get_camera view_get_visible ' +
  10206       'view_get_xport view_get_yport view_get_wport view_get_hport ' +
  10207       'view_get_surface_id view_set_camera view_set_visible view_set_xport ' +
  10208       'view_set_yport view_set_wport view_set_hport view_set_surface_id ' +
  10209       'gesture_drag_time gesture_drag_distance gesture_flick_speed ' +
  10210       'gesture_double_tap_time gesture_double_tap_distance ' +
  10211       'gesture_pinch_distance gesture_pinch_angle_towards ' +
  10212       'gesture_pinch_angle_away gesture_rotate_time gesture_rotate_angle ' +
  10213       'gesture_tap_count gesture_get_drag_time gesture_get_drag_distance ' +
  10214       'gesture_get_flick_speed gesture_get_double_tap_time ' +
  10215       'gesture_get_double_tap_distance gesture_get_pinch_distance ' +
  10216       'gesture_get_pinch_angle_towards gesture_get_pinch_angle_away ' +
  10217       'gesture_get_rotate_time gesture_get_rotate_angle ' +
  10218       'gesture_get_tap_count keyboard_virtual_show keyboard_virtual_hide ' +
  10219       'keyboard_virtual_status keyboard_virtual_height',
  10220     literal: 'self other all noone global local undefined pointer_invalid ' +
  10221       'pointer_null path_action_stop path_action_restart ' +
  10222       'path_action_continue path_action_reverse true false pi GM_build_date ' +
  10223       'GM_version GM_runtime_version  timezone_local timezone_utc ' +
  10224       'gamespeed_fps gamespeed_microseconds  ev_create ev_destroy ev_step ' +
  10225       'ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw ' +
  10226       'ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ' +
  10227       'ev_keyrelease ev_trigger ev_left_button ev_right_button ' +
  10228       'ev_middle_button ev_no_button ev_left_press ev_right_press ' +
  10229       'ev_middle_press ev_left_release ev_right_release ev_middle_release ' +
  10230       'ev_mouse_enter ev_mouse_leave ev_mouse_wheel_up ev_mouse_wheel_down ' +
  10231       'ev_global_left_button ev_global_right_button ev_global_middle_button ' +
  10232       'ev_global_left_press ev_global_right_press ev_global_middle_press ' +
  10233       'ev_global_left_release ev_global_right_release ' +
  10234       'ev_global_middle_release ev_joystick1_left ev_joystick1_right ' +
  10235       'ev_joystick1_up ev_joystick1_down ev_joystick1_button1 ' +
  10236       'ev_joystick1_button2 ev_joystick1_button3 ev_joystick1_button4 ' +
  10237       'ev_joystick1_button5 ev_joystick1_button6 ev_joystick1_button7 ' +
  10238       'ev_joystick1_button8 ev_joystick2_left ev_joystick2_right ' +
  10239       'ev_joystick2_up ev_joystick2_down ev_joystick2_button1 ' +
  10240       'ev_joystick2_button2 ev_joystick2_button3 ev_joystick2_button4 ' +
  10241       'ev_joystick2_button5 ev_joystick2_button6 ev_joystick2_button7 ' +
  10242       'ev_joystick2_button8 ev_outside ev_boundary ev_game_start ' +
  10243       'ev_game_end ev_room_start ev_room_end ev_no_more_lives ' +
  10244       'ev_animation_end ev_end_of_path ev_no_more_health ev_close_button ' +
  10245       'ev_user0 ev_user1 ev_user2 ev_user3 ev_user4 ev_user5 ev_user6 ' +
  10246       'ev_user7 ev_user8 ev_user9 ev_user10 ev_user11 ev_user12 ev_user13 ' +
  10247       'ev_user14 ev_user15 ev_step_normal ev_step_begin ev_step_end ev_gui ' +
  10248       'ev_gui_begin ev_gui_end ev_cleanup ev_gesture ev_gesture_tap ' +
  10249       'ev_gesture_double_tap ev_gesture_drag_start ev_gesture_dragging ' +
  10250       'ev_gesture_drag_end ev_gesture_flick ev_gesture_pinch_start ' +
  10251       'ev_gesture_pinch_in ev_gesture_pinch_out ev_gesture_pinch_end ' +
  10252       'ev_gesture_rotate_start ev_gesture_rotating ev_gesture_rotate_end ' +
  10253       'ev_global_gesture_tap ev_global_gesture_double_tap ' +
  10254       'ev_global_gesture_drag_start ev_global_gesture_dragging ' +
  10255       'ev_global_gesture_drag_end ev_global_gesture_flick ' +
  10256       'ev_global_gesture_pinch_start ev_global_gesture_pinch_in ' +
  10257       'ev_global_gesture_pinch_out ev_global_gesture_pinch_end ' +
  10258       'ev_global_gesture_rotate_start ev_global_gesture_rotating ' +
  10259       'ev_global_gesture_rotate_end vk_nokey vk_anykey vk_enter vk_return ' +
  10260       'vk_shift vk_control vk_alt vk_escape vk_space vk_backspace vk_tab ' +
  10261       'vk_pause vk_printscreen vk_left vk_right vk_up vk_down vk_home ' +
  10262       'vk_end vk_delete vk_insert vk_pageup vk_pagedown vk_f1 vk_f2 vk_f3 ' +
  10263       'vk_f4 vk_f5 vk_f6 vk_f7 vk_f8 vk_f9 vk_f10 vk_f11 vk_f12 vk_numpad0 ' +
  10264       'vk_numpad1 vk_numpad2 vk_numpad3 vk_numpad4 vk_numpad5 vk_numpad6 ' +
  10265       'vk_numpad7 vk_numpad8 vk_numpad9 vk_divide vk_multiply vk_subtract ' +
  10266       'vk_add vk_decimal vk_lshift vk_lcontrol vk_lalt vk_rshift ' +
  10267       'vk_rcontrol vk_ralt  mb_any mb_none mb_left mb_right mb_middle ' +
  10268       'c_aqua c_black c_blue c_dkgray c_fuchsia c_gray c_green c_lime ' +
  10269       'c_ltgray c_maroon c_navy c_olive c_purple c_red c_silver c_teal ' +
  10270       'c_white c_yellow c_orange fa_left fa_center fa_right fa_top ' +
  10271       'fa_middle fa_bottom pr_pointlist pr_linelist pr_linestrip ' +
  10272       'pr_trianglelist pr_trianglestrip pr_trianglefan bm_complex bm_normal ' +
  10273       'bm_add bm_max bm_subtract bm_zero bm_one bm_src_colour ' +
  10274       'bm_inv_src_colour bm_src_color bm_inv_src_color bm_src_alpha ' +
  10275       'bm_inv_src_alpha bm_dest_alpha bm_inv_dest_alpha bm_dest_colour ' +
  10276       'bm_inv_dest_colour bm_dest_color bm_inv_dest_color bm_src_alpha_sat ' +
  10277       'tf_point tf_linear tf_anisotropic mip_off mip_on mip_markedonly ' +
  10278       'audio_falloff_none audio_falloff_inverse_distance ' +
  10279       'audio_falloff_inverse_distance_clamped audio_falloff_linear_distance ' +
  10280       'audio_falloff_linear_distance_clamped ' +
  10281       'audio_falloff_exponent_distance ' +
  10282       'audio_falloff_exponent_distance_clamped audio_old_system ' +
  10283       'audio_new_system audio_mono audio_stereo audio_3d cr_default cr_none ' +
  10284       'cr_arrow cr_cross cr_beam cr_size_nesw cr_size_ns cr_size_nwse ' +
  10285       'cr_size_we cr_uparrow cr_hourglass cr_drag cr_appstart cr_handpoint ' +
  10286       'cr_size_all spritespeed_framespersecond ' +
  10287       'spritespeed_framespergameframe asset_object asset_unknown ' +
  10288       'asset_sprite asset_sound asset_room asset_path asset_script ' +
  10289       'asset_font asset_timeline asset_tiles asset_shader fa_readonly ' +
  10290       'fa_hidden fa_sysfile fa_volumeid fa_directory fa_archive  ' +
  10291       'ds_type_map ds_type_list ds_type_stack ds_type_queue ds_type_grid ' +
  10292       'ds_type_priority ef_explosion ef_ring ef_ellipse ef_firework ' +
  10293       'ef_smoke ef_smokeup ef_star ef_spark ef_flare ef_cloud ef_rain ' +
  10294       'ef_snow pt_shape_pixel pt_shape_disk pt_shape_square pt_shape_line ' +
  10295       'pt_shape_star pt_shape_circle pt_shape_ring pt_shape_sphere ' +
  10296       'pt_shape_flare pt_shape_spark pt_shape_explosion pt_shape_cloud ' +
  10297       'pt_shape_smoke pt_shape_snow ps_distr_linear ps_distr_gaussian ' +
  10298       'ps_distr_invgaussian ps_shape_rectangle ps_shape_ellipse ' +
  10299       'ps_shape_diamond ps_shape_line ty_real ty_string dll_cdecl ' +
  10300       'dll_stdcall matrix_view matrix_projection matrix_world os_win32 ' +
  10301       'os_windows os_macosx os_ios os_android os_symbian os_linux ' +
  10302       'os_unknown os_winphone os_tizen os_win8native ' +
  10303       'os_wiiu os_3ds  os_psvita os_bb10 os_ps4 os_xboxone ' +
  10304       'os_ps3 os_xbox360 os_uwp os_tvos os_switch ' +
  10305       'browser_not_a_browser browser_unknown browser_ie browser_firefox ' +
  10306       'browser_chrome browser_safari browser_safari_mobile browser_opera ' +
  10307       'browser_tizen browser_edge browser_windows_store browser_ie_mobile  ' +
  10308       'device_ios_unknown device_ios_iphone device_ios_iphone_retina ' +
  10309       'device_ios_ipad device_ios_ipad_retina device_ios_iphone5 ' +
  10310       'device_ios_iphone6 device_ios_iphone6plus device_emulator ' +
  10311       'device_tablet display_landscape display_landscape_flipped ' +
  10312       'display_portrait display_portrait_flipped tm_sleep tm_countvsyncs ' +
  10313       'of_challenge_win of_challen ge_lose of_challenge_tie ' +
  10314       'leaderboard_type_number leaderboard_type_time_mins_secs ' +
  10315       'cmpfunc_never cmpfunc_less cmpfunc_equal cmpfunc_lessequal ' +
  10316       'cmpfunc_greater cmpfunc_notequal cmpfunc_greaterequal cmpfunc_always ' +
  10317       'cull_noculling cull_clockwise cull_counterclockwise lighttype_dir ' +
  10318       'lighttype_point iap_ev_storeload iap_ev_product iap_ev_purchase ' +
  10319       'iap_ev_consume iap_ev_restore iap_storeload_ok iap_storeload_failed ' +
  10320       'iap_status_uninitialised iap_status_unavailable iap_status_loading ' +
  10321       'iap_status_available iap_status_processing iap_status_restoring ' +
  10322       'iap_failed iap_unavailable iap_available iap_purchased iap_canceled ' +
  10323       'iap_refunded fb_login_default fb_login_fallback_to_webview ' +
  10324       'fb_login_no_fallback_to_webview fb_login_forcing_webview ' +
  10325       'fb_login_use_system_account fb_login_forcing_safari  ' +
  10326       'phy_joint_anchor_1_x phy_joint_anchor_1_y phy_joint_anchor_2_x ' +
  10327       'phy_joint_anchor_2_y phy_joint_reaction_force_x ' +
  10328       'phy_joint_reaction_force_y phy_joint_reaction_torque ' +
  10329       'phy_joint_motor_speed phy_joint_angle phy_joint_motor_torque ' +
  10330       'phy_joint_max_motor_torque phy_joint_translation phy_joint_speed ' +
  10331       'phy_joint_motor_force phy_joint_max_motor_force phy_joint_length_1 ' +
  10332       'phy_joint_length_2 phy_joint_damping_ratio phy_joint_frequency ' +
  10333       'phy_joint_lower_angle_limit phy_joint_upper_angle_limit ' +
  10334       'phy_joint_angle_limits phy_joint_max_length phy_joint_max_torque ' +
  10335       'phy_joint_max_force phy_debug_render_aabb ' +
  10336       'phy_debug_render_collision_pairs phy_debug_render_coms ' +
  10337       'phy_debug_render_core_shapes phy_debug_render_joints ' +
  10338       'phy_debug_render_obb phy_debug_render_shapes  ' +
  10339       'phy_particle_flag_water phy_particle_flag_zombie ' +
  10340       'phy_particle_flag_wall phy_particle_flag_spring ' +
  10341       'phy_particle_flag_elastic phy_particle_flag_viscous ' +
  10342       'phy_particle_flag_powder phy_particle_flag_tensile ' +
  10343       'phy_particle_flag_colourmixing phy_particle_flag_colormixing ' +
  10344       'phy_particle_group_flag_solid phy_particle_group_flag_rigid ' +
  10345       'phy_particle_data_flag_typeflags phy_particle_data_flag_position ' +
  10346       'phy_particle_data_flag_velocity phy_particle_data_flag_colour ' +
  10347       'phy_particle_data_flag_color phy_particle_data_flag_category  ' +
  10348       'achievement_our_info achievement_friends_info ' +
  10349       'achievement_leaderboard_info achievement_achievement_info ' +
  10350       'achievement_filter_all_players achievement_filter_friends_only ' +
  10351       'achievement_filter_favorites_only ' +
  10352       'achievement_type_achievement_challenge ' +
  10353       'achievement_type_score_challenge achievement_pic_loaded  ' +
  10354       'achievement_show_ui achievement_show_profile ' +
  10355       'achievement_show_leaderboard achievement_show_achievement ' +
  10356       'achievement_show_bank achievement_show_friend_picker ' +
  10357       'achievement_show_purchase_prompt network_socket_tcp ' +
  10358       'network_socket_udp network_socket_bluetooth network_type_connect ' +
  10359       'network_type_disconnect network_type_data ' +
  10360       'network_type_non_blocking_connect network_config_connect_timeout ' +
  10361       'network_config_use_non_blocking_socket ' +
  10362       'network_config_enable_reliable_udp ' +
  10363       'network_config_disable_reliable_udp buffer_fixed buffer_grow ' +
  10364       'buffer_wrap buffer_fast buffer_vbuffer buffer_network buffer_u8 ' +
  10365       'buffer_s8 buffer_u16 buffer_s16 buffer_u32 buffer_s32 buffer_u64 ' +
  10366       'buffer_f16 buffer_f32 buffer_f64 buffer_bool buffer_text ' +
  10367       'buffer_string buffer_surface_copy buffer_seek_start ' +
  10368       'buffer_seek_relative buffer_seek_end ' +
  10369       'buffer_generalerror buffer_outofspace buffer_outofbounds ' +
  10370       'buffer_invalidtype  text_type button_type input_type ANSI_CHARSET ' +
  10371       'DEFAULT_CHARSET EASTEUROPE_CHARSET RUSSIAN_CHARSET SYMBOL_CHARSET ' +
  10372       'SHIFTJIS_CHARSET HANGEUL_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET ' +
  10373       'JOHAB_CHARSET HEBREW_CHARSET ARABIC_CHARSET GREEK_CHARSET ' +
  10374       'TURKISH_CHARSET VIETNAMESE_CHARSET THAI_CHARSET MAC_CHARSET ' +
  10375       'BALTIC_CHARSET OEM_CHARSET  gp_face1 gp_face2 gp_face3 gp_face4 ' +
  10376       'gp_shoulderl gp_shoulderr gp_shoulderlb gp_shoulderrb gp_select ' +
  10377       'gp_start gp_stickl gp_stickr gp_padu gp_padd gp_padl gp_padr ' +
  10378       'gp_axislh gp_axislv gp_axisrh gp_axisrv ov_friends ov_community ' +
  10379       'ov_players ov_settings ov_gamegroup ov_achievements lb_sort_none ' +
  10380       'lb_sort_ascending lb_sort_descending lb_disp_none lb_disp_numeric ' +
  10381       'lb_disp_time_sec lb_disp_time_ms ugc_result_success ' +
  10382       'ugc_filetype_community ugc_filetype_microtrans ugc_visibility_public ' +
  10383       'ugc_visibility_friends_only ugc_visibility_private ' +
  10384       'ugc_query_RankedByVote ugc_query_RankedByPublicationDate ' +
  10385       'ugc_query_AcceptedForGameRankedByAcceptanceDate ' +
  10386       'ugc_query_RankedByTrend ' +
  10387       'ugc_query_FavoritedByFriendsRankedByPublicationDate ' +
  10388       'ugc_query_CreatedByFriendsRankedByPublicationDate ' +
  10389       'ugc_query_RankedByNumTimesReported ' +
  10390       'ugc_query_CreatedByFollowedUsersRankedByPublicationDate ' +
  10391       'ugc_query_NotYetRated ugc_query_RankedByTotalVotesAsc ' +
  10392       'ugc_query_RankedByVotesUp ugc_query_RankedByTextSearch ' +
  10393       'ugc_sortorder_CreationOrderDesc ugc_sortorder_CreationOrderAsc ' +
  10394       'ugc_sortorder_TitleAsc ugc_sortorder_LastUpdatedDesc ' +
  10395       'ugc_sortorder_SubscriptionDateDesc ugc_sortorder_VoteScoreDesc ' +
  10396       'ugc_sortorder_ForModeration ugc_list_Published ugc_list_VotedOn ' +
  10397       'ugc_list_VotedUp ugc_list_VotedDown ugc_list_WillVoteLater ' +
  10398       'ugc_list_Favorited ugc_list_Subscribed ugc_list_UsedOrPlayed ' +
  10399       'ugc_list_Followed ugc_match_Items ugc_match_Items_Mtx ' +
  10400       'ugc_match_Items_ReadyToUse ugc_match_Collections ugc_match_Artwork ' +
  10401       'ugc_match_Videos ugc_match_Screenshots ugc_match_AllGuides ' +
  10402       'ugc_match_WebGuides ugc_match_IntegratedGuides ' +
  10403       'ugc_match_UsableInGame ugc_match_ControllerBindings  ' +
  10404       'vertex_usage_position vertex_usage_colour vertex_usage_color ' +
  10405       'vertex_usage_normal vertex_usage_texcoord vertex_usage_textcoord ' +
  10406       'vertex_usage_blendweight vertex_usage_blendindices ' +
  10407       'vertex_usage_psize vertex_usage_tangent vertex_usage_binormal ' +
  10408       'vertex_usage_fog vertex_usage_depth vertex_usage_sample ' +
  10409       'vertex_type_float1 vertex_type_float2 vertex_type_float3 ' +
  10410       'vertex_type_float4 vertex_type_colour vertex_type_color ' +
  10411       'vertex_type_ubyte4 layerelementtype_undefined ' +
  10412       'layerelementtype_background layerelementtype_instance ' +
  10413       'layerelementtype_oldtilemap layerelementtype_sprite ' +
  10414       'layerelementtype_tilemap layerelementtype_particlesystem ' +
  10415       'layerelementtype_tile tile_rotate tile_flip tile_mirror ' +
  10416       'tile_index_mask kbv_type_default kbv_type_ascii kbv_type_url ' +
  10417       'kbv_type_email kbv_type_numbers kbv_type_phone kbv_type_phone_name ' +
  10418       'kbv_returnkey_default kbv_returnkey_go kbv_returnkey_google ' +
  10419       'kbv_returnkey_join kbv_returnkey_next kbv_returnkey_route ' +
  10420       'kbv_returnkey_search kbv_returnkey_send kbv_returnkey_yahoo ' +
  10421       'kbv_returnkey_done kbv_returnkey_continue kbv_returnkey_emergency ' +
  10422       'kbv_autocapitalize_none kbv_autocapitalize_words ' +
  10423       'kbv_autocapitalize_sentences kbv_autocapitalize_characters',
  10424     symbol: 'argument_relative argument argument0 argument1 argument2 ' +
  10425       'argument3 argument4 argument5 argument6 argument7 argument8 ' +
  10426       'argument9 argument10 argument11 argument12 argument13 argument14 ' +
  10427       'argument15 argument_count x y xprevious yprevious xstart ystart ' +
  10428       'hspeed vspeed direction speed friction gravity gravity_direction ' +
  10429       'path_index path_position path_positionprevious path_speed ' +
  10430       'path_scale path_orientation path_endaction object_index id solid ' +
  10431       'persistent mask_index instance_count instance_id room_speed fps ' +
  10432       'fps_real current_time current_year current_month current_day ' +
  10433       'current_weekday current_hour current_minute current_second alarm ' +
  10434       'timeline_index timeline_position timeline_speed timeline_running ' +
  10435       'timeline_loop room room_first room_last room_width room_height ' +
  10436       'room_caption room_persistent score lives health show_score ' +
  10437       'show_lives show_health caption_score caption_lives caption_health ' +
  10438       'event_type event_number event_object event_action ' +
  10439       'application_surface gamemaker_pro gamemaker_registered ' +
  10440       'gamemaker_version error_occurred error_last debug_mode ' +
  10441       'keyboard_key keyboard_lastkey keyboard_lastchar keyboard_string ' +
  10442       'mouse_x mouse_y mouse_button mouse_lastbutton cursor_sprite ' +
  10443       'visible sprite_index sprite_width sprite_height sprite_xoffset ' +
  10444       'sprite_yoffset image_number image_index image_speed depth ' +
  10445       'image_xscale image_yscale image_angle image_alpha image_blend ' +
  10446       'bbox_left bbox_right bbox_top bbox_bottom layer background_colour  ' +
  10447       'background_showcolour background_color background_showcolor ' +
  10448       'view_enabled view_current view_visible view_xview view_yview ' +
  10449       'view_wview view_hview view_xport view_yport view_wport view_hport ' +
  10450       'view_angle view_hborder view_vborder view_hspeed view_vspeed ' +
  10451       'view_object view_surface_id view_camera game_id game_display_name ' +
  10452       'game_project_name game_save_id working_directory temp_directory ' +
  10453       'program_directory browser_width browser_height os_type os_device ' +
  10454       'os_browser os_version display_aa async_load delta_time ' +
  10455       'webgl_enabled event_data iap_data phy_rotation phy_position_x ' +
  10456       'phy_position_y phy_angular_velocity phy_linear_velocity_x ' +
  10457       'phy_linear_velocity_y phy_speed_x phy_speed_y phy_speed ' +
  10458       'phy_angular_damping phy_linear_damping phy_bullet ' +
  10459       'phy_fixed_rotation phy_active phy_mass phy_inertia phy_com_x ' +
  10460       'phy_com_y phy_dynamic phy_kinematic phy_sleeping ' +
  10461       'phy_collision_points phy_collision_x phy_collision_y ' +
  10462       'phy_col_normal_x phy_col_normal_y phy_position_xprevious ' +
  10463       'phy_position_yprevious'
  10464   };
  10465 
  10466   return {
  10467     aliases: ['gml', 'GML'],
  10468     case_insensitive: false, // language is case-insensitive
  10469     keywords: GML_KEYWORDS,
  10470 
  10471     contains: [
  10472       hljs.C_LINE_COMMENT_MODE,
  10473       hljs.C_BLOCK_COMMENT_MODE,
  10474       hljs.APOS_STRING_MODE,
  10475       hljs.QUOTE_STRING_MODE,
  10476       hljs.C_NUMBER_MODE
  10477     ]
  10478   };
  10479 }
  10480 },{name:"go",create:/*
  10481 Language: Go
  10482 Author: Stephan Kountso aka StepLg <steplg@gmail.com>
  10483 Contributors: Evgeny Stepanischev <imbolk@gmail.com>
  10484 Description: Google go language (golang). For info about language see http://golang.org/
  10485 Category: system
  10486 */
  10487 
  10488 function(hljs) {
  10489   var GO_KEYWORDS = {
  10490     keyword:
  10491       'break default func interface select case map struct chan else goto package switch ' +
  10492       'const fallthrough if range type continue for import return var go defer ' +
  10493       'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
  10494       'uint16 uint32 uint64 int uint uintptr rune',
  10495     literal:
  10496        'true false iota nil',
  10497     built_in:
  10498       'append cap close complex copy imag len make new panic print println real recover delete'
  10499   };
  10500   return {
  10501     aliases: ['golang'],
  10502     keywords: GO_KEYWORDS,
  10503     illegal: '</',
  10504     contains: [
  10505       hljs.C_LINE_COMMENT_MODE,
  10506       hljs.C_BLOCK_COMMENT_MODE,
  10507       {
  10508         className: 'string',
  10509         variants: [
  10510           hljs.QUOTE_STRING_MODE,
  10511           {begin: '\'', end: '[^\\\\]\''},
  10512           {begin: '`', end: '`'},
  10513         ]
  10514       },
  10515       {
  10516         className: 'number',
  10517         variants: [
  10518           {begin: hljs.C_NUMBER_RE + '[i]', relevance: 1},
  10519           hljs.C_NUMBER_MODE
  10520         ]
  10521       },
  10522       {
  10523         begin: /:=/ // relevance booster
  10524       },
  10525       {
  10526         className: 'function',
  10527         beginKeywords: 'func', end: /\s*\{/, excludeEnd: true,
  10528         contains: [
  10529           hljs.TITLE_MODE,
  10530           {
  10531             className: 'params',
  10532             begin: /\(/, end: /\)/,
  10533             keywords: GO_KEYWORDS,
  10534             illegal: /["']/
  10535           }
  10536         ]
  10537       }
  10538     ]
  10539   };
  10540 }
  10541 },{name:"golo",create:/*
  10542 Language: Golo
  10543 Author: Philippe Charriere <ph.charriere@gmail.com>
  10544 Description: a lightweight dynamic language for the JVM, see http://golo-lang.org/
  10545 */
  10546 
  10547 function(hljs) {
  10548     return {
  10549       keywords: {
  10550         keyword:
  10551           'println readln print import module function local return let var ' +
  10552           'while for foreach times in case when match with break continue ' +
  10553           'augment augmentation each find filter reduce ' +
  10554           'if then else otherwise try catch finally raise throw orIfNull ' +
  10555           'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
  10556         literal:
  10557           'true false null'
  10558       },
  10559       contains: [
  10560         hljs.HASH_COMMENT_MODE,
  10561         hljs.QUOTE_STRING_MODE,
  10562         hljs.C_NUMBER_MODE,
  10563         {
  10564           className: 'meta', begin: '@[A-Za-z]+'
  10565         }
  10566       ]
  10567     }
  10568 }
  10569 },{name:"gradle",create:/*
  10570 Language: Gradle
  10571 Author: Damian Mee <mee.damian@gmail.com>
  10572 Website: http://meeDamian.com
  10573 */
  10574 
  10575 function(hljs) {
  10576   return {
  10577     case_insensitive: true,
  10578     keywords: {
  10579       keyword:
  10580         'task project allprojects subprojects artifacts buildscript configurations ' +
  10581         'dependencies repositories sourceSets description delete from into include ' +
  10582         'exclude source classpath destinationDir includes options sourceCompatibility ' +
  10583         'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
  10584         'def abstract break case catch continue default do else extends final finally ' +
  10585         'for if implements instanceof native new private protected public return static ' +
  10586         'switch synchronized throw throws transient try volatile while strictfp package ' +
  10587         'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
  10588         'byte char class double float int interface long short void compile runTime ' +
  10589         'file fileTree abs any append asList asWritable call collect compareTo count ' +
  10590         'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
  10591         'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
  10592         'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
  10593         'newReader newWriter next plus pop power previous print println push putAt read ' +
  10594         'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
  10595         'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
  10596         'withStream withWriter withWriterAppend write writeLine'
  10597     },
  10598     contains: [
  10599       hljs.C_LINE_COMMENT_MODE,
  10600       hljs.C_BLOCK_COMMENT_MODE,
  10601       hljs.APOS_STRING_MODE,
  10602       hljs.QUOTE_STRING_MODE,
  10603       hljs.NUMBER_MODE,
  10604       hljs.REGEXP_MODE
  10605 
  10606     ]
  10607   }
  10608 }
  10609 },{name:"groovy",create:/*
  10610  Language: Groovy
  10611  Author: Guillaume Laforge <glaforge@gmail.com>
  10612  Website: http://glaforge.appspot.com
  10613  Description: Groovy programming language implementation inspired from Vsevolod's Java mode
  10614  */
  10615 
  10616 function(hljs) {
  10617     return {
  10618         keywords: {
  10619             literal : 'true false null',
  10620             keyword:
  10621             'byte short char int long boolean float double void ' +
  10622             // groovy specific keywords
  10623             'def as in assert trait ' +
  10624             // common keywords with Java
  10625             'super this abstract static volatile transient public private protected synchronized final ' +
  10626             'class interface enum if else for while switch case break default continue ' +
  10627             'throw throws try catch finally implements extends new import package return instanceof'
  10628         },
  10629 
  10630         contains: [
  10631             hljs.COMMENT(
  10632                 '/\\*\\*',
  10633                 '\\*/',
  10634                 {
  10635                     relevance : 0,
  10636                     contains : [
  10637                       {
  10638                           // eat up @'s in emails to prevent them to be recognized as doctags
  10639                           begin: /\w+@/, relevance: 0
  10640                       },
  10641                       {
  10642                           className : 'doctag',
  10643                           begin : '@[A-Za-z]+'
  10644                       }
  10645                     ]
  10646                 }
  10647             ),
  10648             hljs.C_LINE_COMMENT_MODE,
  10649             hljs.C_BLOCK_COMMENT_MODE,
  10650             {
  10651                 className: 'string',
  10652                 begin: '"""', end: '"""'
  10653             },
  10654             {
  10655                 className: 'string',
  10656                 begin: "'''", end: "'''"
  10657             },
  10658             {
  10659                 className: 'string',
  10660                 begin: "\\$/", end: "/\\$",
  10661                 relevance: 10
  10662             },
  10663             hljs.APOS_STRING_MODE,
  10664             {
  10665                 className: 'regexp',
  10666                 begin: /~?\/[^\/\n]+\//,
  10667                 contains: [
  10668                     hljs.BACKSLASH_ESCAPE
  10669                 ]
  10670             },
  10671             hljs.QUOTE_STRING_MODE,
  10672             {
  10673                 className: 'meta',
  10674                 begin: "^#!/usr/bin/env", end: '$',
  10675                 illegal: '\n'
  10676             },
  10677             hljs.BINARY_NUMBER_MODE,
  10678             {
  10679                 className: 'class',
  10680                 beginKeywords: 'class interface trait enum', end: '{',
  10681                 illegal: ':',
  10682                 contains: [
  10683                     {beginKeywords: 'extends implements'},
  10684                     hljs.UNDERSCORE_TITLE_MODE
  10685                 ]
  10686             },
  10687             hljs.C_NUMBER_MODE,
  10688             {
  10689                 className: 'meta', begin: '@[A-Za-z]+'
  10690             },
  10691             {
  10692                 // highlight map keys and named parameters as strings
  10693                 className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
  10694             },
  10695             {
  10696                 // catch middle element of the ternary operator
  10697                 // to avoid highlight it as a label, named parameter, or map key
  10698                 begin: /\?/, end: /\:/
  10699             },
  10700             {
  10701                 // highlight labeled statements
  10702                 className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
  10703                 relevance: 0
  10704             }
  10705         ],
  10706         illegal: /#|<\//
  10707     }
  10708 }
  10709 },{name:"haml",create:/*
  10710 Language: Haml
  10711 Requires: ruby.js
  10712 Author: Dan Allen <dan.j.allen@gmail.com>
  10713 Website: http://google.com/profiles/dan.j.allen
  10714 Category: template
  10715 */
  10716 
  10717 // TODO support filter tags like :javascript, support inline HTML
  10718 function(hljs) {
  10719   return {
  10720     case_insensitive: true,
  10721     contains: [
  10722       {
  10723         className: 'meta',
  10724         begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
  10725         relevance: 10
  10726       },
  10727       // FIXME these comments should be allowed to span indented lines
  10728       hljs.COMMENT(
  10729         '^\\s*(!=#|=#|-#|/).*$',
  10730         false,
  10731         {
  10732           relevance: 0
  10733         }
  10734       ),
  10735       {
  10736         begin: '^\\s*(-|=|!=)(?!#)',
  10737         starts: {
  10738           end: '\\n',
  10739           subLanguage: 'ruby'
  10740         }
  10741       },
  10742       {
  10743         className: 'tag',
  10744         begin: '^\\s*%',
  10745         contains: [
  10746           {
  10747             className: 'selector-tag',
  10748             begin: '\\w+'
  10749           },
  10750           {
  10751             className: 'selector-id',
  10752             begin: '#[\\w-]+'
  10753           },
  10754           {
  10755             className: 'selector-class',
  10756             begin: '\\.[\\w-]+'
  10757           },
  10758           {
  10759             begin: '{\\s*',
  10760             end: '\\s*}',
  10761             contains: [
  10762               {
  10763                 begin: ':\\w+\\s*=>',
  10764                 end: ',\\s+',
  10765                 returnBegin: true,
  10766                 endsWithParent: true,
  10767                 contains: [
  10768                   {
  10769                     className: 'attr',
  10770                     begin: ':\\w+'
  10771                   },
  10772                   hljs.APOS_STRING_MODE,
  10773                   hljs.QUOTE_STRING_MODE,
  10774                   {
  10775                     begin: '\\w+',
  10776                     relevance: 0
  10777                   }
  10778                 ]
  10779               }
  10780             ]
  10781           },
  10782           {
  10783             begin: '\\(\\s*',
  10784             end: '\\s*\\)',
  10785             excludeEnd: true,
  10786             contains: [
  10787               {
  10788                 begin: '\\w+\\s*=',
  10789                 end: '\\s+',
  10790                 returnBegin: true,
  10791                 endsWithParent: true,
  10792                 contains: [
  10793                   {
  10794                     className: 'attr',
  10795                     begin: '\\w+',
  10796                     relevance: 0
  10797                   },
  10798                   hljs.APOS_STRING_MODE,
  10799                   hljs.QUOTE_STRING_MODE,
  10800                   {
  10801                     begin: '\\w+',
  10802                     relevance: 0
  10803                   }
  10804                 ]
  10805               }
  10806             ]
  10807           }
  10808         ]
  10809       },
  10810       {
  10811         begin: '^\\s*[=~]\\s*'
  10812       },
  10813       {
  10814         begin: '#{',
  10815         starts: {
  10816           end: '}',
  10817           subLanguage: 'ruby'
  10818         }
  10819       }
  10820     ]
  10821   };
  10822 }
  10823 },{name:"handlebars",create:/*
  10824 Language: Handlebars
  10825 Requires: xml.js
  10826 Author: Robin Ward <robin.ward@gmail.com>
  10827 Description: Matcher for Handlebars as well as EmberJS additions.
  10828 Category: template
  10829 */
  10830 
  10831 function(hljs) {
  10832   var BUILT_INS = {'builtin-name': 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'};
  10833   return {
  10834     aliases: ['hbs', 'html.hbs', 'html.handlebars'],
  10835     case_insensitive: true,
  10836     subLanguage: 'xml',
  10837     contains: [
  10838     hljs.COMMENT('{{!(--)?', '(--)?}}'),
  10839       {
  10840         className: 'template-tag',
  10841         begin: /\{\{[#\/]/, end: /\}\}/,
  10842         contains: [
  10843           {
  10844             className: 'name',
  10845             begin: /[a-zA-Z\.-]+/,
  10846             keywords: BUILT_INS,
  10847             starts: {
  10848               endsWithParent: true, relevance: 0,
  10849               contains: [
  10850                 hljs.QUOTE_STRING_MODE
  10851               ]
  10852             }
  10853           }
  10854         ]
  10855       },
  10856       {
  10857         className: 'template-variable',
  10858         begin: /\{\{/, end: /\}\}/,
  10859         keywords: BUILT_INS
  10860       }
  10861     ]
  10862   };
  10863 }
  10864 },{name:"haskell",create:/*
  10865 Language: Haskell
  10866 Author: Jeremy Hull <sourdrums@gmail.com>
  10867 Contributors: Zena Treep <zena.treep@gmail.com>
  10868 Category: functional
  10869 */
  10870 
  10871 function(hljs) {
  10872   var COMMENT = {
  10873     variants: [
  10874       hljs.COMMENT('--', '$'),
  10875       hljs.COMMENT(
  10876         '{-',
  10877         '-}',
  10878         {
  10879           contains: ['self']
  10880         }
  10881       )
  10882     ]
  10883   };
  10884 
  10885   var PRAGMA = {
  10886     className: 'meta',
  10887     begin: '{-#', end: '#-}'
  10888   };
  10889 
  10890   var PREPROCESSOR = {
  10891     className: 'meta',
  10892     begin: '^#', end: '$'
  10893   };
  10894 
  10895   var CONSTRUCTOR = {
  10896     className: 'type',
  10897     begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
  10898     relevance: 0
  10899   };
  10900 
  10901   var LIST = {
  10902     begin: '\\(', end: '\\)',
  10903     illegal: '"',
  10904     contains: [
  10905       PRAGMA,
  10906       PREPROCESSOR,
  10907       {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
  10908       hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
  10909       COMMENT
  10910     ]
  10911   };
  10912 
  10913   var RECORD = {
  10914     begin: '{', end: '}',
  10915     contains: LIST.contains
  10916   };
  10917 
  10918   return {
  10919     aliases: ['hs'],
  10920     keywords:
  10921       'let in if then else case of where do module import hiding ' +
  10922       'qualified type data newtype deriving class instance as default ' +
  10923       'infix infixl infixr foreign export ccall stdcall cplusplus ' +
  10924       'jvm dotnet safe unsafe family forall mdo proc rec',
  10925     contains: [
  10926 
  10927       // Top-level constructions.
  10928 
  10929       {
  10930         beginKeywords: 'module', end: 'where',
  10931         keywords: 'module where',
  10932         contains: [LIST, COMMENT],
  10933         illegal: '\\W\\.|;'
  10934       },
  10935       {
  10936         begin: '\\bimport\\b', end: '$',
  10937         keywords: 'import qualified as hiding',
  10938         contains: [LIST, COMMENT],
  10939         illegal: '\\W\\.|;'
  10940       },
  10941 
  10942       {
  10943         className: 'class',
  10944         begin: '^(\\s*)?(class|instance)\\b', end: 'where',
  10945         keywords: 'class family instance where',
  10946         contains: [CONSTRUCTOR, LIST, COMMENT]
  10947       },
  10948       {
  10949         className: 'class',
  10950         begin: '\\b(data|(new)?type)\\b', end: '$',
  10951         keywords: 'data family type newtype deriving',
  10952         contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
  10953       },
  10954       {
  10955         beginKeywords: 'default', end: '$',
  10956         contains: [CONSTRUCTOR, LIST, COMMENT]
  10957       },
  10958       {
  10959         beginKeywords: 'infix infixl infixr', end: '$',
  10960         contains: [hljs.C_NUMBER_MODE, COMMENT]
  10961       },
  10962       {
  10963         begin: '\\bforeign\\b', end: '$',
  10964         keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
  10965                   'dotnet safe unsafe',
  10966         contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
  10967       },
  10968       {
  10969         className: 'meta',
  10970         begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
  10971       },
  10972 
  10973       // "Whitespaces".
  10974 
  10975       PRAGMA,
  10976       PREPROCESSOR,
  10977 
  10978       // Literals and names.
  10979 
  10980       // TODO: characters.
  10981       hljs.QUOTE_STRING_MODE,
  10982       hljs.C_NUMBER_MODE,
  10983       CONSTRUCTOR,
  10984       hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
  10985 
  10986       COMMENT,
  10987 
  10988       {begin: '->|<-'} // No markup, relevance booster
  10989     ]
  10990   };
  10991 }
  10992 },{name:"haxe",create:/*
  10993 Language: Haxe
  10994 Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
  10995 Contributors: Kenton Hamaluik <kentonh@gmail.com>
  10996 */
  10997 
  10998 function(hljs) {
  10999   var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
  11000   var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
  11001 
  11002   var HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';
  11003 
  11004   return {
  11005     aliases: ['hx'],
  11006     keywords: {
  11007       keyword: 'break case cast catch continue default do dynamic else enum extern ' +
  11008                'for function here if import in inline never new override package private get set ' +
  11009                'public return static super switch this throw trace try typedef untyped using var while ' +
  11010                HAXE_BASIC_TYPES,
  11011       built_in:
  11012         'trace this',
  11013       literal:
  11014         'true false null _'
  11015     },
  11016     contains: [
  11017       { className: 'string', // interpolate-able strings
  11018         begin: '\'', end: '\'',
  11019         contains: [
  11020           hljs.BACKSLASH_ESCAPE,
  11021           { className: 'subst', // interpolation
  11022             begin: '\\$\\{', end: '\\}'
  11023           },
  11024           { className: 'subst', // interpolation
  11025             begin: '\\$', end: '\\W}'
  11026           }
  11027         ]
  11028       },
  11029       hljs.QUOTE_STRING_MODE,
  11030       hljs.C_LINE_COMMENT_MODE,
  11031       hljs.C_BLOCK_COMMENT_MODE,
  11032       hljs.C_NUMBER_MODE,
  11033       { className: 'meta', // compiler meta
  11034         begin: '@:', end: '$'
  11035       },
  11036       { className: 'meta', // compiler conditionals
  11037         begin: '#', end: '$',
  11038         keywords: {'meta-keyword': 'if else elseif end error'}
  11039       },
  11040       { className: 'type', // function types
  11041         begin: ':[ \t]*', end: '[^A-Za-z0-9_ \t\\->]',
  11042         excludeBegin: true, excludeEnd: true,
  11043         relevance: 0
  11044       },
  11045       { className: 'type', // types
  11046         begin: ':[ \t]*', end: '\\W',
  11047         excludeBegin: true, excludeEnd: true
  11048       },
  11049       { className: 'type', // instantiation
  11050         begin: 'new *', end: '\\W',
  11051         excludeBegin: true, excludeEnd: true
  11052       },
  11053       { className: 'class', // enums
  11054         beginKeywords: 'enum', end: '\\{',
  11055         contains: [
  11056           hljs.TITLE_MODE
  11057         ]
  11058       },
  11059       { className: 'class', // abstracts
  11060         beginKeywords: 'abstract', end: '[\\{$]',
  11061         contains: [
  11062           { className: 'type',
  11063             begin: '\\(', end: '\\)',
  11064             excludeBegin: true, excludeEnd: true
  11065           },
  11066           { className: 'type',
  11067             begin: 'from +', end: '\\W',
  11068             excludeBegin: true, excludeEnd: true
  11069           },
  11070           { className: 'type',
  11071             begin: 'to +', end: '\\W',
  11072             excludeBegin: true, excludeEnd: true
  11073           },
  11074           hljs.TITLE_MODE
  11075         ],
  11076         keywords: {
  11077           keyword: 'abstract from to'
  11078         }
  11079       },
  11080       { className: 'class', // classes
  11081         begin: '\\b(class|interface) +', end: '[\\{$]',  excludeEnd: true,
  11082         keywords: 'class interface',
  11083         contains: [
  11084           { className: 'keyword',
  11085             begin: '\\b(extends|implements) +',
  11086             keywords: 'extends implements',
  11087             contains: [
  11088               {
  11089                 className: 'type',
  11090                 begin: hljs.IDENT_RE,
  11091                 relevance: 0
  11092               }
  11093             ]
  11094           },
  11095           hljs.TITLE_MODE
  11096         ]
  11097       },
  11098       { className: 'function',
  11099         beginKeywords: 'function', end: '\\(', excludeEnd: true,
  11100         illegal: '\\S',
  11101         contains: [
  11102           hljs.TITLE_MODE
  11103         ]
  11104       }
  11105     ],
  11106     illegal: /<\//
  11107   };
  11108 }
  11109 },{name:"hsp",create:/*
  11110 Language: HSP
  11111 Author: prince <MC.prince.0203@gmail.com>
  11112 Website: http://prince.webcrow.jp/
  11113 Category: scripting
  11114 */
  11115 
  11116 function(hljs) {
  11117   return {
  11118     case_insensitive: true,
  11119     lexemes: /[\w\._]+/,
  11120     keywords: 'goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop',
  11121     contains: [
  11122       hljs.C_LINE_COMMENT_MODE,
  11123       hljs.C_BLOCK_COMMENT_MODE,
  11124       hljs.QUOTE_STRING_MODE,
  11125       hljs.APOS_STRING_MODE,
  11126 
  11127       {
  11128         // multi-line string
  11129         className: 'string',
  11130         begin: '{"', end: '"}',
  11131         contains: [hljs.BACKSLASH_ESCAPE]
  11132       },
  11133 
  11134       hljs.COMMENT(';', '$', {relevance: 0}),
  11135 
  11136       {
  11137         // pre-processor
  11138         className: 'meta',
  11139         begin: '#', end: '$',
  11140         keywords: {'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'},
  11141         contains: [
  11142           hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}),
  11143           hljs.NUMBER_MODE,
  11144           hljs.C_NUMBER_MODE,
  11145           hljs.C_LINE_COMMENT_MODE,
  11146           hljs.C_BLOCK_COMMENT_MODE
  11147         ]
  11148       },
  11149 
  11150       {
  11151         // label
  11152         className: 'symbol',
  11153         begin: '^\\*(\\w+|@)'
  11154       },
  11155 
  11156       hljs.NUMBER_MODE,
  11157       hljs.C_NUMBER_MODE
  11158     ]
  11159   };
  11160 }
  11161 },{name:"htmlbars",create:/*
  11162 Language: HTMLBars
  11163 Requires: xml.js
  11164 Author: Michael Johnston <lastobelus@gmail.com>
  11165 Description: Matcher for HTMLBars
  11166 Category: template
  11167 */
  11168 
  11169 function(hljs) {
  11170   var BUILT_INS = 'action collection component concat debugger each each-in else get hash if input link-to loc log mut outlet partial query-params render textarea unbound unless with yield view';
  11171 
  11172   var ATTR_ASSIGNMENT = {
  11173     illegal: /\}\}/,
  11174     begin: /[a-zA-Z0-9_]+=/,
  11175     returnBegin: true,
  11176     relevance: 0,
  11177     contains: [
  11178       {
  11179         className: 'attr', begin: /[a-zA-Z0-9_]+/
  11180       }
  11181     ]
  11182   };
  11183 
  11184   var SUB_EXPR = {
  11185     illegal: /\}\}/,
  11186     begin: /\)/, end: /\)/,
  11187     contains: [
  11188       {
  11189         begin: /[a-zA-Z\.\-]+/,
  11190         keywords: {built_in: BUILT_INS},
  11191         starts: {
  11192           endsWithParent: true, relevance: 0,
  11193           contains: [
  11194             hljs.QUOTE_STRING_MODE,
  11195           ]
  11196         }
  11197       }
  11198     ]
  11199   };
  11200 
  11201   var TAG_INNARDS = {
  11202     endsWithParent: true, relevance: 0,
  11203     keywords: {keyword: 'as', built_in: BUILT_INS},
  11204     contains: [
  11205       hljs.QUOTE_STRING_MODE,
  11206       ATTR_ASSIGNMENT,
  11207       hljs.NUMBER_MODE
  11208     ]
  11209   };
  11210 
  11211   return {
  11212     case_insensitive: true,
  11213     subLanguage: 'xml',
  11214     contains: [
  11215       hljs.COMMENT('{{!(--)?', '(--)?}}'),
  11216       {
  11217         className: 'template-tag',
  11218         begin: /\{\{[#\/]/, end: /\}\}/,
  11219         contains: [
  11220           {
  11221             className: 'name',
  11222             begin: /[a-zA-Z\.\-]+/,
  11223             keywords: {'builtin-name': BUILT_INS},
  11224             starts: TAG_INNARDS
  11225           }
  11226         ]
  11227       },
  11228       {
  11229         className: 'template-variable',
  11230         begin: /\{\{[a-zA-Z][a-zA-Z\-]+/, end: /\}\}/,
  11231         keywords: {keyword: 'as', built_in: BUILT_INS},
  11232         contains: [
  11233           hljs.QUOTE_STRING_MODE
  11234         ]
  11235       }
  11236     ]
  11237   };
  11238 }
  11239 },{name:"http",create:/*
  11240 Language: HTTP
  11241 Description: HTTP request and response headers with automatic body highlighting
  11242 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
  11243 Category: common, protocols
  11244 */
  11245 
  11246 function(hljs) {
  11247   var VERSION = 'HTTP/[0-9\\.]+';
  11248   return {
  11249     aliases: ['https'],
  11250     illegal: '\\S',
  11251     contains: [
  11252       {
  11253         begin: '^' + VERSION, end: '$',
  11254         contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
  11255       },
  11256       {
  11257         begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
  11258         contains: [
  11259           {
  11260             className: 'string',
  11261             begin: ' ', end: ' ',
  11262             excludeBegin: true, excludeEnd: true
  11263           },
  11264           {
  11265             begin: VERSION
  11266           },
  11267           {
  11268             className: 'keyword',
  11269             begin: '[A-Z]+'
  11270           }
  11271         ]
  11272       },
  11273       {
  11274         className: 'attribute',
  11275         begin: '^\\w', end: ': ', excludeEnd: true,
  11276         illegal: '\\n|\\s|=',
  11277         starts: {end: '$', relevance: 0}
  11278       },
  11279       {
  11280         begin: '\\n\\n',
  11281         starts: {subLanguage: [], endsWithParent: true}
  11282       }
  11283     ]
  11284   };
  11285 }
  11286 },{name:"hy",create:/*
  11287 Language: Hy
  11288 Description: Hy syntax (based on clojure.js)
  11289 Author: Sergey Sobko <s.sobko@profitware.ru>
  11290 Category: lisp
  11291 */
  11292 
  11293 function(hljs) {
  11294   var keywords = {
  11295     'builtin-name':
  11296       // keywords
  11297       '!= % %= & &= * ** **= *= *map ' +
  11298       '+ += , --build-class-- --import-- -= . / // //= ' +
  11299       '/= < << <<= <= = > >= >> >>= ' +
  11300       '@ @= ^ ^= abs accumulate all and any ap-compose ' +
  11301       'ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ' +
  11302       'ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast ' +
  11303       'callable calling-module-name car case cdr chain chr coll? combinations compile ' +
  11304       'compress cond cons cons? continue count curry cut cycle dec ' +
  11305       'def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn ' +
  11306       'defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir ' +
  11307       'disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? ' +
  11308       'end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first ' +
  11309       'flatten float? fn fnc fnr for for* format fraction genexpr ' +
  11310       'gensym get getattr global globals group-by hasattr hash hex id ' +
  11311       'identity if if* if-not if-python2 import in inc input instance? ' +
  11312       'integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even ' +
  11313       'is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none ' +
  11314       'is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass ' +
  11315       'iter iterable? iterate iterator? keyword keyword? lambda last len let ' +
  11316       'lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all ' +
  11317       'map max merge-with method-decorator min multi-decorator multicombinations name neg? next ' +
  11318       'none? nonlocal not not-in not? nth numeric? oct odd? open ' +
  11319       'or ord partition permutations pos? post-route postwalk pow prewalk print ' +
  11320       'product profile/calls profile/cpu put-route quasiquote quote raise range read read-str ' +
  11321       'recursive-replace reduce remove repeat repeatedly repr require rest round route ' +
  11322       'route-with-methods rwm second seq set-comp setattr setv some sorted string ' +
  11323       'string? sum switch symbol? take take-nth take-while tee try unless ' +
  11324       'unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms ' +
  11325       'xi xor yield yield-from zero? zip zip-longest | |= ~'
  11326    };
  11327 
  11328   var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
  11329   var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
  11330   var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
  11331 
  11332   var SHEBANG = {
  11333     className: 'meta',
  11334     begin: '^#!', end: '$'
  11335   };
  11336 
  11337   var SYMBOL = {
  11338     begin: SYMBOL_RE,
  11339     relevance: 0
  11340   };
  11341   var NUMBER = {
  11342     className: 'number', begin: SIMPLE_NUMBER_RE,
  11343     relevance: 0
  11344   };
  11345   var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
  11346   var COMMENT = hljs.COMMENT(
  11347     ';',
  11348     '$',
  11349     {
  11350       relevance: 0
  11351     }
  11352   );
  11353   var LITERAL = {
  11354     className: 'literal',
  11355     begin: /\b([Tt]rue|[Ff]alse|nil|None)\b/
  11356   };
  11357   var COLLECTION = {
  11358     begin: '[\\[\\{]', end: '[\\]\\}]'
  11359   };
  11360   var HINT = {
  11361     className: 'comment',
  11362     begin: '\\^' + SYMBOL_RE
  11363   };
  11364   var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
  11365   var KEY = {
  11366     className: 'symbol',
  11367     begin: '[:]{1,2}' + SYMBOL_RE
  11368   };
  11369   var LIST = {
  11370     begin: '\\(', end: '\\)'
  11371   };
  11372   var BODY = {
  11373     endsWithParent: true,
  11374     relevance: 0
  11375   };
  11376   var NAME = {
  11377     keywords: keywords,
  11378     lexemes: SYMBOL_RE,
  11379     className: 'name', begin: SYMBOL_RE,
  11380     starts: BODY
  11381   };
  11382   var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
  11383 
  11384   LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
  11385   BODY.contains = DEFAULT_CONTAINS;
  11386   COLLECTION.contains = DEFAULT_CONTAINS;
  11387 
  11388   return {
  11389     aliases: ['hylang'],
  11390     illegal: /\S/,
  11391     contains: [SHEBANG, LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
  11392   }
  11393 }
  11394 },{name:"inform7",create:/*
  11395 Language: Inform 7
  11396 Author: Bruno Dias <bruno.r.dias@gmail.com>
  11397 Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
  11398 */
  11399 
  11400 function(hljs) {
  11401   var START_BRACKET = '\\[';
  11402   var END_BRACKET = '\\]';
  11403   return {
  11404     aliases: ['i7'],
  11405     case_insensitive: true,
  11406     keywords: {
  11407       // Some keywords more or less unique to I7, for relevance.
  11408       keyword:
  11409         // kind:
  11410         'thing room person man woman animal container ' +
  11411         'supporter backdrop door ' +
  11412         // characteristic:
  11413         'scenery open closed locked inside gender ' +
  11414         // verb:
  11415         'is are say understand ' +
  11416         // misc keyword:
  11417         'kind of rule'
  11418     },
  11419     contains: [
  11420       {
  11421         className: 'string',
  11422         begin: '"', end: '"',
  11423         relevance: 0,
  11424         contains: [
  11425           {
  11426             className: 'subst',
  11427             begin: START_BRACKET, end: END_BRACKET
  11428           }
  11429         ]
  11430       },
  11431       {
  11432         className: 'section',
  11433         begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
  11434         end: '$'
  11435       },
  11436       {
  11437         // Rule definition
  11438         // This is here for relevance.
  11439         begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
  11440         end: ':',
  11441         contains: [
  11442           {
  11443             //Rule name
  11444             begin: '\\(This', end: '\\)'
  11445           }
  11446         ]
  11447       },
  11448       {
  11449         className: 'comment',
  11450         begin: START_BRACKET, end: END_BRACKET,
  11451         contains: ['self']
  11452       }
  11453     ]
  11454   };
  11455 }
  11456 },{name:"ini",create:/*
  11457 Language: Ini, TOML
  11458 Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
  11459 Category: common, config
  11460 */
  11461 
  11462 function(hljs) {
  11463   var STRING = {
  11464     className: "string",
  11465     contains: [hljs.BACKSLASH_ESCAPE],
  11466     variants: [
  11467       {
  11468         begin: "'''", end: "'''",
  11469         relevance: 10
  11470       }, {
  11471         begin: '"""', end: '"""',
  11472         relevance: 10
  11473       }, {
  11474         begin: '"', end: '"'
  11475       }, {
  11476         begin: "'", end: "'"
  11477       }
  11478     ]
  11479   };
  11480   return {
  11481     aliases: ['toml'],
  11482     case_insensitive: true,
  11483     illegal: /\S/,
  11484     contains: [
  11485       hljs.COMMENT(';', '$'),
  11486       hljs.HASH_COMMENT_MODE,
  11487       {
  11488         className: 'section',
  11489         begin: /^\s*\[+/, end: /\]+/
  11490       },
  11491       {
  11492         begin: /^[a-z0-9\[\]_\.-]+\s*=\s*/, end: '$',
  11493         returnBegin: true,
  11494         contains: [
  11495           {
  11496             className: 'attr',
  11497             begin: /[a-z0-9\[\]_\.-]+/
  11498           },
  11499           {
  11500             begin: /=/, endsWithParent: true,
  11501             relevance: 0,
  11502             contains: [
  11503               hljs.COMMENT(';', '$'),
  11504               hljs.HASH_COMMENT_MODE,
  11505               {
  11506                 className: 'literal',
  11507                 begin: /\bon|off|true|false|yes|no\b/
  11508               },
  11509               {
  11510                 className: 'variable',
  11511                 variants: [
  11512                   {begin: /\$[\w\d"][\w\d_]*/},
  11513                   {begin: /\$\{(.*?)}/}
  11514                 ]
  11515               },
  11516               STRING,
  11517               {
  11518                 className: 'number',
  11519                 begin: /([\+\-]+)?[\d]+_[\d_]+/
  11520               },
  11521               hljs.NUMBER_MODE
  11522             ]
  11523           }
  11524         ]
  11525       }
  11526     ]
  11527   };
  11528 }
  11529 },{name:"irpf90",create:/*
  11530 Language: IRPF90
  11531 Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
  11532 Description: IRPF90 is an open-source Fortran code generator : http://irpf90.ups-tlse.fr
  11533 Category: scientific
  11534 */
  11535 
  11536 function(hljs) {
  11537   var PARAMS = {
  11538     className: 'params',
  11539     begin: '\\(', end: '\\)'
  11540   };
  11541 
  11542   var F_KEYWORDS = {
  11543     literal: '.False. .True.',
  11544     keyword: 'kind do while private call intrinsic where elsewhere ' +
  11545       'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
  11546       'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
  11547       'goto save else use module select case ' +
  11548       'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
  11549       'continue format pause cycle exit ' +
  11550       'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
  11551       'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
  11552       'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
  11553       'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
  11554       'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
  11555       'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
  11556       'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +
  11557       'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
  11558       'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
  11559       'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
  11560       'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
  11561       'integer real character complex logical dimension allocatable|10 parameter ' +
  11562       'external implicit|10 none double precision assign intent optional pointer ' +
  11563       'target in out common equivalence data ' +
  11564       // IRPF90 special keywords
  11565       'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
  11566       'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
  11567     built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
  11568       'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
  11569       'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
  11570       'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
  11571       'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
  11572       'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
  11573       'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
  11574       'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
  11575       'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
  11576       'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
  11577       'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
  11578       'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
  11579       'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
  11580       'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of'  +
  11581       'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
  11582       'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
  11583       'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
  11584       'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
  11585       // IRPF90 special built_ins
  11586       'IRP_ALIGN irp_here'
  11587   };
  11588   return {
  11589     case_insensitive: true,
  11590     keywords: F_KEYWORDS,
  11591     illegal: /\/\*/,
  11592     contains: [
  11593       hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
  11594       hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
  11595       {
  11596         className: 'function',
  11597         beginKeywords: 'subroutine function program',
  11598         illegal: '[${=\\n]',
  11599         contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
  11600       },
  11601       hljs.COMMENT('!', '$', {relevance: 0}),
  11602       hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
  11603       {
  11604         className: 'number',
  11605         begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
  11606         relevance: 0
  11607       }
  11608     ]
  11609   };
  11610 }
  11611 },{name:"isbl",create:/*
  11612 Language: ISBL
  11613 Author: Dmitriy Tarasov <dimatar@gmail.com>
  11614 Description: built-in language DIRECTUM
  11615 Category: enterprise
  11616 */
  11617 
  11618 function(hljs) {
  11619   // Определение идентификаторов
  11620   var UNDERSCORE_IDENT_RE = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*";
  11621 
  11622   // Определение имен функций
  11623   var FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*";
  11624 
  11625   // keyword : ключевые слова
  11626   var KEYWORD =
  11627     "and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока " +
  11628     "except exitfor finally foreach все if если in в not не or или try while пока ";
  11629 
  11630   // SYSRES Constants
  11631   var sysres_constants =
  11632     "SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT " +
  11633     "SYSRES_CONST_ACCES_RIGHT_TYPE_FULL " +
  11634     "SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW " +
  11635     "SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE " +
  11636     "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW " +
  11637     "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE " +
  11638     "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE " +
  11639     "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE " +
  11640     "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE " +
  11641     "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE " +
  11642     "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE " +
  11643     "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE " +
  11644     "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE " +
  11645     "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE " +
  11646     "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE " +
  11647     "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE " +
  11648     "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE " +
  11649     "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE " +
  11650     "SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE " +
  11651     "SYSRES_CONST_ACCESS_RIGHTS_VIEW " +
  11652     "SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE " +
  11653     "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE " +
  11654     "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE " +
  11655     "SYSRES_CONST_ACCESS_TYPE_CHANGE " +
  11656     "SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE " +
  11657     "SYSRES_CONST_ACCESS_TYPE_EXISTS " +
  11658     "SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE " +
  11659     "SYSRES_CONST_ACCESS_TYPE_FULL " +
  11660     "SYSRES_CONST_ACCESS_TYPE_FULL_CODE " +
  11661     "SYSRES_CONST_ACCESS_TYPE_VIEW " +
  11662     "SYSRES_CONST_ACCESS_TYPE_VIEW_CODE " +
  11663     "SYSRES_CONST_ACTION_TYPE_ABORT " +
  11664     "SYSRES_CONST_ACTION_TYPE_ACCEPT " +
  11665     "SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS " +
  11666     "SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT " +
  11667     "SYSRES_CONST_ACTION_TYPE_CHANGE_CARD " +
  11668     "SYSRES_CONST_ACTION_TYPE_CHANGE_KIND " +
  11669     "SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE " +
  11670     "SYSRES_CONST_ACTION_TYPE_CONTINUE " +
  11671     "SYSRES_CONST_ACTION_TYPE_COPY " +
  11672     "SYSRES_CONST_ACTION_TYPE_CREATE " +
  11673     "SYSRES_CONST_ACTION_TYPE_CREATE_VERSION " +
  11674     "SYSRES_CONST_ACTION_TYPE_DELETE " +
  11675     "SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT " +
  11676     "SYSRES_CONST_ACTION_TYPE_DELETE_VERSION " +
  11677     "SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS " +
  11678     "SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS " +
  11679     "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE " +
  11680     "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD " +
  11681     "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD " +
  11682     "SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK " +
  11683     "SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK " +
  11684     "SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK " +
  11685     "SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK " +
  11686     "SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE " +
  11687     "SYSRES_CONST_ACTION_TYPE_LOCK " +
  11688     "SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER " +
  11689     "SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY " +
  11690     "SYSRES_CONST_ACTION_TYPE_MARK_AS_READED " +
  11691     "SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED " +
  11692     "SYSRES_CONST_ACTION_TYPE_MODIFY " +
  11693     "SYSRES_CONST_ACTION_TYPE_MODIFY_CARD " +
  11694     "SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE " +
  11695     "SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION " +
  11696     "SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE " +
  11697     "SYSRES_CONST_ACTION_TYPE_PERFORM " +
  11698     "SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY " +
  11699     "SYSRES_CONST_ACTION_TYPE_RESTART " +
  11700     "SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE " +
  11701     "SYSRES_CONST_ACTION_TYPE_REVISION " +
  11702     "SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL " +
  11703     "SYSRES_CONST_ACTION_TYPE_SIGN " +
  11704     "SYSRES_CONST_ACTION_TYPE_START " +
  11705     "SYSRES_CONST_ACTION_TYPE_UNLOCK " +
  11706     "SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER " +
  11707     "SYSRES_CONST_ACTION_TYPE_VERSION_STATE " +
  11708     "SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY " +
  11709     "SYSRES_CONST_ACTION_TYPE_VIEW " +
  11710     "SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY " +
  11711     "SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY " +
  11712     "SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY " +
  11713     "SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE " +
  11714     "SYSRES_CONST_ADD_REFERENCE_MODE_NAME " +
  11715     "SYSRES_CONST_ADDITION_REQUISITE_CODE " +
  11716     "SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE " +
  11717     "SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME " +
  11718     "SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME " +
  11719     "SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME " +
  11720     "SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME " +
  11721     "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION " +
  11722     "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE " +
  11723     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION " +
  11724     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE " +
  11725     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION " +
  11726     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE " +
  11727     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION " +
  11728     "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE " +
  11729     "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION " +
  11730     "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION " +
  11731     "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION " +
  11732     "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION " +
  11733     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION " +
  11734     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE " +
  11735     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION " +
  11736     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE " +
  11737     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION " +
  11738     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE " +
  11739     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION " +
  11740     "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE " +
  11741     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION " +
  11742     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE " +
  11743     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION " +
  11744     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE " +
  11745     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION " +
  11746     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE " +
  11747     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION " +
  11748     "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE " +
  11749     "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION " +
  11750     "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE " +
  11751     "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION " +
  11752     "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE " +
  11753     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION " +
  11754     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE " +
  11755     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION " +
  11756     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE " +
  11757     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION " +
  11758     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE " +
  11759     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION " +
  11760     "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE " +
  11761     "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION " +
  11762     "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION " +
  11763     "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION " +
  11764     "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION " +
  11765     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION " +
  11766     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE " +
  11767     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION " +
  11768     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE " +
  11769     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION " +
  11770     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE " +
  11771     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION " +
  11772     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE " +
  11773     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION " +
  11774     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE " +
  11775     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION " +
  11776     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE " +
  11777     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION " +
  11778     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE " +
  11779     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION " +
  11780     "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE " +
  11781     "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE " +
  11782     "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION " +
  11783     "SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS " +
  11784     "SYSRES_CONST_ALL_USERS_GROUP " +
  11785     "SYSRES_CONST_ALL_USERS_GROUP_NAME " +
  11786     "SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME " +
  11787     "SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE " +
  11788     "SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME " +
  11789     "SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE " +
  11790     "SYSRES_CONST_APPROVING_SIGNATURE_NAME " +
  11791     "SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE " +
  11792     "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE " +
  11793     "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE " +
  11794     "SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN " +
  11795     "SYSRES_CONST_ATTACH_TYPE_DOC " +
  11796     "SYSRES_CONST_ATTACH_TYPE_EDOC " +
  11797     "SYSRES_CONST_ATTACH_TYPE_FOLDER " +
  11798     "SYSRES_CONST_ATTACH_TYPE_JOB " +
  11799     "SYSRES_CONST_ATTACH_TYPE_REFERENCE " +
  11800     "SYSRES_CONST_ATTACH_TYPE_TASK " +
  11801     "SYSRES_CONST_AUTH_ENCODED_PASSWORD " +
  11802     "SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE " +
  11803     "SYSRES_CONST_AUTH_NOVELL " +
  11804     "SYSRES_CONST_AUTH_PASSWORD " +
  11805     "SYSRES_CONST_AUTH_PASSWORD_CODE " +
  11806     "SYSRES_CONST_AUTH_WINDOWS " +
  11807     "SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME " +
  11808     "SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE " +
  11809     "SYSRES_CONST_AUTO_ENUM_METHOD_FLAG " +
  11810     "SYSRES_CONST_AUTO_NUMERATION_CODE " +
  11811     "SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG " +
  11812     "SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE " +
  11813     "SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE " +
  11814     "SYSRES_CONST_AUTOTEXT_USAGE_ALL " +
  11815     "SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE " +
  11816     "SYSRES_CONST_AUTOTEXT_USAGE_SIGN " +
  11817     "SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE " +
  11818     "SYSRES_CONST_AUTOTEXT_USAGE_WORK " +
  11819     "SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE " +
  11820     "SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE " +
  11821     "SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE " +
  11822     "SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE " +
  11823     "SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE " +
  11824     "SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR " +
  11825     "SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR " +
  11826     "SYSRES_CONST_BTN_PART " +
  11827     "SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE " +
  11828     "SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE " +
  11829     "SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE " +
  11830     "SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT " +
  11831     "SYSRES_CONST_CARD_PART " +
  11832     "SYSRES_CONST_CARD_REFERENCE_MODE_NAME " +
  11833     "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE " +
  11834     "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE " +
  11835     "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE " +
  11836     "SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE " +
  11837     "SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE " +
  11838     "SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE " +
  11839     "SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE " +
  11840     "SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE " +
  11841     "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE " +
  11842     "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE " +
  11843     "SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN " +
  11844     "SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER " +
  11845     "SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS " +
  11846     "SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS " +
  11847     "SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " +
  11848     "SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER " +
  11849     "SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE " +
  11850     "SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT " +
  11851     "SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT " +
  11852     "SYSRES_CONST_CODE_COMPONENT_TYPE_URL " +
  11853     "SYSRES_CONST_CODE_REQUISITE_ACCESS " +
  11854     "SYSRES_CONST_CODE_REQUISITE_CODE " +
  11855     "SYSRES_CONST_CODE_REQUISITE_COMPONENT " +
  11856     "SYSRES_CONST_CODE_REQUISITE_DESCRIPTION " +
  11857     "SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT " +
  11858     "SYSRES_CONST_CODE_REQUISITE_RECORD " +
  11859     "SYSRES_CONST_COMMENT_REQ_CODE " +
  11860     "SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE " +
  11861     "SYSRES_CONST_COMP_CODE_GRD " +
  11862     "SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE " +
  11863     "SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS " +
  11864     "SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS " +
  11865     "SYSRES_CONST_COMPONENT_TYPE_DOCS " +
  11866     "SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS " +
  11867     "SYSRES_CONST_COMPONENT_TYPE_EDOCS " +
  11868     "SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " +
  11869     "SYSRES_CONST_COMPONENT_TYPE_OTHER " +
  11870     "SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES " +
  11871     "SYSRES_CONST_COMPONENT_TYPE_REFERENCES " +
  11872     "SYSRES_CONST_COMPONENT_TYPE_REPORTS " +
  11873     "SYSRES_CONST_COMPONENT_TYPE_SCRIPTS " +
  11874     "SYSRES_CONST_COMPONENT_TYPE_URL " +
  11875     "SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE " +
  11876     "SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION " +
  11877     "SYSRES_CONST_CONST_FIRM_STATUS_COMMON " +
  11878     "SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL " +
  11879     "SYSRES_CONST_CONST_NEGATIVE_VALUE " +
  11880     "SYSRES_CONST_CONST_POSITIVE_VALUE " +
  11881     "SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE " +
  11882     "SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE " +
  11883     "SYSRES_CONST_CONTENTS_REQUISITE_CODE " +
  11884     "SYSRES_CONST_DATA_TYPE_BOOLEAN " +
  11885     "SYSRES_CONST_DATA_TYPE_DATE " +
  11886     "SYSRES_CONST_DATA_TYPE_FLOAT " +
  11887     "SYSRES_CONST_DATA_TYPE_INTEGER " +
  11888     "SYSRES_CONST_DATA_TYPE_PICK " +
  11889     "SYSRES_CONST_DATA_TYPE_REFERENCE " +
  11890     "SYSRES_CONST_DATA_TYPE_STRING " +
  11891     "SYSRES_CONST_DATA_TYPE_TEXT " +
  11892     "SYSRES_CONST_DATA_TYPE_VARIANT " +
  11893     "SYSRES_CONST_DATE_CLOSE_REQ_CODE " +
  11894     "SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR " +
  11895     "SYSRES_CONST_DATE_OPEN_REQ_CODE " +
  11896     "SYSRES_CONST_DATE_REQUISITE " +
  11897     "SYSRES_CONST_DATE_REQUISITE_CODE " +
  11898     "SYSRES_CONST_DATE_REQUISITE_NAME " +
  11899     "SYSRES_CONST_DATE_REQUISITE_TYPE " +
  11900     "SYSRES_CONST_DATE_TYPE_CHAR " +
  11901     "SYSRES_CONST_DATETIME_FORMAT_VALUE " +
  11902     "SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE " +
  11903     "SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE " +
  11904     "SYSRES_CONST_DESCRIPTION_REQUISITE_CODE " +
  11905     "SYSRES_CONST_DET1_PART " +
  11906     "SYSRES_CONST_DET2_PART " +
  11907     "SYSRES_CONST_DET3_PART " +
  11908     "SYSRES_CONST_DET4_PART " +
  11909     "SYSRES_CONST_DET5_PART " +
  11910     "SYSRES_CONST_DET6_PART " +
  11911     "SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE " +
  11912     "SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE " +
  11913     "SYSRES_CONST_DETAIL_REQ_CODE " +
  11914     "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE " +
  11915     "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME " +
  11916     "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE " +
  11917     "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME " +
  11918     "SYSRES_CONST_DOCUMENT_STORAGES_CODE " +
  11919     "SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME " +
  11920     "SYSRES_CONST_DOUBLE_REQUISITE_CODE " +
  11921     "SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE " +
  11922     "SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE " +
  11923     "SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE " +
  11924     "SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE " +
  11925     "SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE " +
  11926     "SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE " +
  11927     "SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE " +
  11928     "SYSRES_CONST_EDITORS_REFERENCE_CODE " +
  11929     "SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE " +
  11930     "SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE " +
  11931     "SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE " +
  11932     "SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE " +
  11933     "SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE " +
  11934     "SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE " +
  11935     "SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE " +
  11936     "SYSRES_CONST_EDOC_DATE_REQUISITE_CODE " +
  11937     "SYSRES_CONST_EDOC_KIND_REFERENCE_CODE " +
  11938     "SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE " +
  11939     "SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE " +
  11940     "SYSRES_CONST_EDOC_NONE_ENCODE_CODE " +
  11941     "SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE " +
  11942     "SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE " +
  11943     "SYSRES_CONST_EDOC_READONLY_ACCESS_CODE " +
  11944     "SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE " +
  11945     "SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE " +
  11946     "SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE " +
  11947     "SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE " +
  11948     "SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE " +
  11949     "SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE " +
  11950     "SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE " +
  11951     "SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE " +
  11952     "SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE " +
  11953     "SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE " +
  11954     "SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE " +
  11955     "SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE " +
  11956     "SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE " +
  11957     "SYSRES_CONST_EDOC_WRITE_ACCES_CODE " +
  11958     "SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " +
  11959     "SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE " +
  11960     "SYSRES_CONST_END_DATE_REQUISITE_CODE " +
  11961     "SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE " +
  11962     "SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE " +
  11963     "SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE " +
  11964     "SYSRES_CONST_EXIST_CONST " +
  11965     "SYSRES_CONST_EXIST_VALUE " +
  11966     "SYSRES_CONST_EXPORT_LOCK_TYPE_ASK " +
  11967     "SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK " +
  11968     "SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK " +
  11969     "SYSRES_CONST_EXPORT_VERSION_TYPE_ASK " +
  11970     "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST " +
  11971     "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE " +
  11972     "SYSRES_CONST_EXTENSION_REQUISITE_CODE " +
  11973     "SYSRES_CONST_FILTER_NAME_REQUISITE_CODE " +
  11974     "SYSRES_CONST_FILTER_REQUISITE_CODE " +
  11975     "SYSRES_CONST_FILTER_TYPE_COMMON_CODE " +
  11976     "SYSRES_CONST_FILTER_TYPE_COMMON_NAME " +
  11977     "SYSRES_CONST_FILTER_TYPE_USER_CODE " +
  11978     "SYSRES_CONST_FILTER_TYPE_USER_NAME " +
  11979     "SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME " +
  11980     "SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR " +
  11981     "SYSRES_CONST_FLOAT_REQUISITE_TYPE " +
  11982     "SYSRES_CONST_FOLDER_AUTHOR_VALUE " +
  11983     "SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS " +
  11984     "SYSRES_CONST_FOLDER_KIND_COMPONENTS " +
  11985     "SYSRES_CONST_FOLDER_KIND_EDOCS " +
  11986     "SYSRES_CONST_FOLDER_KIND_JOBS " +
  11987     "SYSRES_CONST_FOLDER_KIND_TASKS " +
  11988     "SYSRES_CONST_FOLDER_TYPE_COMMON " +
  11989     "SYSRES_CONST_FOLDER_TYPE_COMPONENT " +
  11990     "SYSRES_CONST_FOLDER_TYPE_FAVORITES " +
  11991     "SYSRES_CONST_FOLDER_TYPE_INBOX " +
  11992     "SYSRES_CONST_FOLDER_TYPE_OUTBOX " +
  11993     "SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH " +
  11994     "SYSRES_CONST_FOLDER_TYPE_SEARCH " +
  11995     "SYSRES_CONST_FOLDER_TYPE_SHORTCUTS " +
  11996     "SYSRES_CONST_FOLDER_TYPE_USER " +
  11997     "SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG " +
  11998     "SYSRES_CONST_FULL_SUBSTITUTE_TYPE " +
  11999     "SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE " +
  12000     "SYSRES_CONST_FUNCTION_CANCEL_RESULT " +
  12001     "SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM " +
  12002     "SYSRES_CONST_FUNCTION_CATEGORY_USER " +
  12003     "SYSRES_CONST_FUNCTION_FAILURE_RESULT " +
  12004     "SYSRES_CONST_FUNCTION_SAVE_RESULT " +
  12005     "SYSRES_CONST_GENERATED_REQUISITE " +
  12006     "SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR " +
  12007     "SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE " +
  12008     "SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE " +
  12009     "SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME " +
  12010     "SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE " +
  12011     "SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME " +
  12012     "SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE " +
  12013     "SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE " +
  12014     "SYSRES_CONST_GROUP_NAME_REQUISITE_CODE " +
  12015     "SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE " +
  12016     "SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE " +
  12017     "SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE " +
  12018     "SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE " +
  12019     "SYSRES_CONST_GROUP_USER_REQUISITE_CODE " +
  12020     "SYSRES_CONST_GROUPS_REFERENCE_CODE " +
  12021     "SYSRES_CONST_GROUPS_REQUISITE_CODE " +
  12022     "SYSRES_CONST_HIDDEN_MODE_NAME " +
  12023     "SYSRES_CONST_HIGH_LVL_REQUISITE_CODE " +
  12024     "SYSRES_CONST_HISTORY_ACTION_CREATE_CODE " +
  12025     "SYSRES_CONST_HISTORY_ACTION_DELETE_CODE " +
  12026     "SYSRES_CONST_HISTORY_ACTION_EDIT_CODE " +
  12027     "SYSRES_CONST_HOUR_CHAR " +
  12028     "SYSRES_CONST_ID_REQUISITE_CODE " +
  12029     "SYSRES_CONST_IDSPS_REQUISITE_CODE " +
  12030     "SYSRES_CONST_IMAGE_MODE_COLOR " +
  12031     "SYSRES_CONST_IMAGE_MODE_GREYSCALE " +
  12032     "SYSRES_CONST_IMAGE_MODE_MONOCHROME " +
  12033     "SYSRES_CONST_IMPORTANCE_HIGH " +
  12034     "SYSRES_CONST_IMPORTANCE_LOW " +
  12035     "SYSRES_CONST_IMPORTANCE_NORMAL " +
  12036     "SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE " +
  12037     "SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE " +
  12038     "SYSRES_CONST_INT_REQUISITE " +
  12039     "SYSRES_CONST_INT_REQUISITE_TYPE " +
  12040     "SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR " +
  12041     "SYSRES_CONST_INTEGER_TYPE_CHAR " +
  12042     "SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE " +
  12043     "SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE " +
  12044     "SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE " +
  12045     "SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE " +
  12046     "SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE " +
  12047     "SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE " +
  12048     "SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE " +
  12049     "SYSRES_CONST_JOB_BLOCK_DESCRIPTION " +
  12050     "SYSRES_CONST_JOB_KIND_CONTROL_JOB " +
  12051     "SYSRES_CONST_JOB_KIND_JOB " +
  12052     "SYSRES_CONST_JOB_KIND_NOTICE " +
  12053     "SYSRES_CONST_JOB_STATE_ABORTED " +
  12054     "SYSRES_CONST_JOB_STATE_COMPLETE " +
  12055     "SYSRES_CONST_JOB_STATE_WORKING " +
  12056     "SYSRES_CONST_KIND_REQUISITE_CODE " +
  12057     "SYSRES_CONST_KIND_REQUISITE_NAME " +
  12058     "SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE " +
  12059     "SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE " +
  12060     "SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE " +
  12061     "SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE " +
  12062     "SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE " +
  12063     "SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE " +
  12064     "SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE " +
  12065     "SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE " +
  12066     "SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE " +
  12067     "SYSRES_CONST_KOD_INPUT_TYPE " +
  12068     "SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE " +
  12069     "SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE " +
  12070     "SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR " +
  12071     "SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT " +
  12072     "SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT " +
  12073     "SYSRES_CONST_LINK_OBJECT_KIND_EDOC " +
  12074     "SYSRES_CONST_LINK_OBJECT_KIND_FOLDER " +
  12075     "SYSRES_CONST_LINK_OBJECT_KIND_JOB " +
  12076     "SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE " +
  12077     "SYSRES_CONST_LINK_OBJECT_KIND_TASK " +
  12078     "SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE " +
  12079     "SYSRES_CONST_LIST_REFERENCE_MODE_NAME " +
  12080     "SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE " +
  12081     "SYSRES_CONST_MAIN_VIEW_CODE " +
  12082     "SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG " +
  12083     "SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE " +
  12084     "SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE " +
  12085     "SYSRES_CONST_MAXIMIZED_MODE_NAME " +
  12086     "SYSRES_CONST_ME_VALUE " +
  12087     "SYSRES_CONST_MESSAGE_ATTENTION_CAPTION " +
  12088     "SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION " +
  12089     "SYSRES_CONST_MESSAGE_ERROR_CAPTION " +
  12090     "SYSRES_CONST_MESSAGE_INFORMATION_CAPTION " +
  12091     "SYSRES_CONST_MINIMIZED_MODE_NAME " +
  12092     "SYSRES_CONST_MINUTE_CHAR " +
  12093     "SYSRES_CONST_MODULE_REQUISITE_CODE " +
  12094     "SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION " +
  12095     "SYSRES_CONST_MONTH_FORMAT_VALUE " +
  12096     "SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE " +
  12097     "SYSRES_CONST_NAME_REQUISITE_CODE " +
  12098     "SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE " +
  12099     "SYSRES_CONST_NAMEAN_INPUT_TYPE " +
  12100     "SYSRES_CONST_NEGATIVE_PICK_VALUE " +
  12101     "SYSRES_CONST_NEGATIVE_VALUE " +
  12102     "SYSRES_CONST_NO " +
  12103     "SYSRES_CONST_NO_PICK_VALUE " +
  12104     "SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE " +
  12105     "SYSRES_CONST_NO_VALUE " +
  12106     "SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE " +
  12107     "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE " +
  12108     "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE " +
  12109     "SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE " +
  12110     "SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE " +
  12111     "SYSRES_CONST_NORMAL_MODE_NAME " +
  12112     "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE " +
  12113     "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME " +
  12114     "SYSRES_CONST_NOTE_REQUISITE_CODE " +
  12115     "SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION " +
  12116     "SYSRES_CONST_NUM_REQUISITE " +
  12117     "SYSRES_CONST_NUM_STR_REQUISITE_CODE " +
  12118     "SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG " +
  12119     "SYSRES_CONST_NUMERATION_AUTO_STRONG " +
  12120     "SYSRES_CONST_NUMERATION_FROM_DICTONARY " +
  12121     "SYSRES_CONST_NUMERATION_MANUAL " +
  12122     "SYSRES_CONST_NUMERIC_TYPE_CHAR " +
  12123     "SYSRES_CONST_NUMREQ_REQUISITE_CODE " +
  12124     "SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE " +
  12125     "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE " +
  12126     "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE " +
  12127     "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE " +
  12128     "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE " +
  12129     "SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX " +
  12130     "SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR " +
  12131     "SYSRES_CONST_ORIGINALREF_REQUISITE_CODE " +
  12132     "SYSRES_CONST_OURFIRM_REF_CODE " +
  12133     "SYSRES_CONST_OURFIRM_REQUISITE_CODE " +
  12134     "SYSRES_CONST_OURFIRM_VAR " +
  12135     "SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE " +
  12136     "SYSRES_CONST_PICK_NEGATIVE_RESULT " +
  12137     "SYSRES_CONST_PICK_POSITIVE_RESULT " +
  12138     "SYSRES_CONST_PICK_REQUISITE " +
  12139     "SYSRES_CONST_PICK_REQUISITE_TYPE " +
  12140     "SYSRES_CONST_PICK_TYPE_CHAR " +
  12141     "SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE " +
  12142     "SYSRES_CONST_PLATFORM_VERSION_COMMENT " +
  12143     "SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE " +
  12144     "SYSRES_CONST_POSITIVE_PICK_VALUE " +
  12145     "SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE " +
  12146     "SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE " +
  12147     "SYSRES_CONST_PRIORITY_REQUISITE_CODE " +
  12148     "SYSRES_CONST_QUALIFIED_TASK_TYPE " +
  12149     "SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE " +
  12150     "SYSRES_CONST_RECSTAT_REQUISITE_CODE " +
  12151     "SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR " +
  12152     "SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE " +
  12153     "SYSRES_CONST_REF_REQUISITE " +
  12154     "SYSRES_CONST_REF_REQUISITE_TYPE " +
  12155     "SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " +
  12156     "SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE " +
  12157     "SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE " +
  12158     "SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE " +
  12159     "SYSRES_CONST_REFERENCE_TYPE_CHAR " +
  12160     "SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME " +
  12161     "SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE " +
  12162     "SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE " +
  12163     "SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING " +
  12164     "SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN " +
  12165     "SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY " +
  12166     "SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE " +
  12167     "SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL " +
  12168     "SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE " +
  12169     "SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE " +
  12170     "SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE " +
  12171     "SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE " +
  12172     "SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE " +
  12173     "SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE " +
  12174     "SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE " +
  12175     "SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE " +
  12176     "SYSRES_CONST_REQ_MODE_AVAILABLE_CODE " +
  12177     "SYSRES_CONST_REQ_MODE_EDIT_CODE " +
  12178     "SYSRES_CONST_REQ_MODE_HIDDEN_CODE " +
  12179     "SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE " +
  12180     "SYSRES_CONST_REQ_MODE_VIEW_CODE " +
  12181     "SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE " +
  12182     "SYSRES_CONST_REQ_SECTION_VALUE " +
  12183     "SYSRES_CONST_REQ_TYPE_VALUE " +
  12184     "SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT " +
  12185     "SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL " +
  12186     "SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME " +
  12187     "SYSRES_CONST_REQUISITE_FORMAT_LEFT " +
  12188     "SYSRES_CONST_REQUISITE_FORMAT_RIGHT " +
  12189     "SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT " +
  12190     "SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE " +
  12191     "SYSRES_CONST_REQUISITE_SECTION_ACTIONS " +
  12192     "SYSRES_CONST_REQUISITE_SECTION_BUTTON " +
  12193     "SYSRES_CONST_REQUISITE_SECTION_BUTTONS " +
  12194     "SYSRES_CONST_REQUISITE_SECTION_CARD " +
  12195     "SYSRES_CONST_REQUISITE_SECTION_TABLE " +
  12196     "SYSRES_CONST_REQUISITE_SECTION_TABLE10 " +
  12197     "SYSRES_CONST_REQUISITE_SECTION_TABLE11 " +
  12198     "SYSRES_CONST_REQUISITE_SECTION_TABLE12 " +
  12199     "SYSRES_CONST_REQUISITE_SECTION_TABLE13 " +
  12200     "SYSRES_CONST_REQUISITE_SECTION_TABLE14 " +
  12201     "SYSRES_CONST_REQUISITE_SECTION_TABLE15 " +
  12202     "SYSRES_CONST_REQUISITE_SECTION_TABLE16 " +
  12203     "SYSRES_CONST_REQUISITE_SECTION_TABLE17 " +
  12204     "SYSRES_CONST_REQUISITE_SECTION_TABLE18 " +
  12205     "SYSRES_CONST_REQUISITE_SECTION_TABLE19 " +
  12206     "SYSRES_CONST_REQUISITE_SECTION_TABLE2 " +
  12207     "SYSRES_CONST_REQUISITE_SECTION_TABLE20 " +
  12208     "SYSRES_CONST_REQUISITE_SECTION_TABLE21 " +
  12209     "SYSRES_CONST_REQUISITE_SECTION_TABLE22 " +
  12210     "SYSRES_CONST_REQUISITE_SECTION_TABLE23 " +
  12211     "SYSRES_CONST_REQUISITE_SECTION_TABLE24 " +
  12212     "SYSRES_CONST_REQUISITE_SECTION_TABLE3 " +
  12213     "SYSRES_CONST_REQUISITE_SECTION_TABLE4 " +
  12214     "SYSRES_CONST_REQUISITE_SECTION_TABLE5 " +
  12215     "SYSRES_CONST_REQUISITE_SECTION_TABLE6 " +
  12216     "SYSRES_CONST_REQUISITE_SECTION_TABLE7 " +
  12217     "SYSRES_CONST_REQUISITE_SECTION_TABLE8 " +
  12218     "SYSRES_CONST_REQUISITE_SECTION_TABLE9 " +
  12219     "SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE " +
  12220     "SYSRES_CONST_RIGHT_ALIGNMENT_CODE " +
  12221     "SYSRES_CONST_ROLES_REFERENCE_CODE " +
  12222     "SYSRES_CONST_ROUTE_STEP_AFTER_RUS " +
  12223     "SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS " +
  12224     "SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS " +
  12225     "SYSRES_CONST_ROUTE_TYPE_COMPLEX " +
  12226     "SYSRES_CONST_ROUTE_TYPE_PARALLEL " +
  12227     "SYSRES_CONST_ROUTE_TYPE_SERIAL " +
  12228     "SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE " +
  12229     "SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE " +
  12230     "SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE " +
  12231     "SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION " +
  12232     "SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE " +
  12233     "SYSRES_CONST_SEARCHES_COMPONENT_CONTENT " +
  12234     "SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME " +
  12235     "SYSRES_CONST_SEARCHES_EDOC_CONTENT " +
  12236     "SYSRES_CONST_SEARCHES_FOLDER_CONTENT " +
  12237     "SYSRES_CONST_SEARCHES_JOB_CONTENT " +
  12238     "SYSRES_CONST_SEARCHES_REFERENCE_CODE " +
  12239     "SYSRES_CONST_SEARCHES_TASK_CONTENT " +
  12240     "SYSRES_CONST_SECOND_CHAR " +
  12241     "SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE " +
  12242     "SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE " +
  12243     "SYSRES_CONST_SECTION_REQUISITE_CODE " +
  12244     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE " +
  12245     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE " +
  12246     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE " +
  12247     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE " +
  12248     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE " +
  12249     "SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE " +
  12250     "SYSRES_CONST_SELECT_REFERENCE_MODE_NAME " +
  12251     "SYSRES_CONST_SELECT_TYPE_SELECTABLE " +
  12252     "SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD " +
  12253     "SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD " +
  12254     "SYSRES_CONST_SELECT_TYPE_UNSLECTABLE " +
  12255     "SYSRES_CONST_SERVER_TYPE_MAIN " +
  12256     "SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE " +
  12257     "SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE " +
  12258     "SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE " +
  12259     "SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE " +
  12260     "SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE " +
  12261     "SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE " +
  12262     "SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE " +
  12263     "SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE " +
  12264     "SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE " +
  12265     "SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE " +
  12266     "SYSRES_CONST_STATE_REQ_NAME " +
  12267     "SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE " +
  12268     "SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE " +
  12269     "SYSRES_CONST_STATE_REQUISITE_CODE " +
  12270     "SYSRES_CONST_STATIC_ROLE_TYPE_CODE " +
  12271     "SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE " +
  12272     "SYSRES_CONST_STATUS_VALUE_AUTOCLEANING " +
  12273     "SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE " +
  12274     "SYSRES_CONST_STATUS_VALUE_COMPLETE " +
  12275     "SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE " +
  12276     "SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE " +
  12277     "SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE " +
  12278     "SYSRES_CONST_STATUS_VALUE_RED_SQUARE " +
  12279     "SYSRES_CONST_STATUS_VALUE_SUSPEND " +
  12280     "SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE " +
  12281     "SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE " +
  12282     "SYSRES_CONST_STORAGE_TYPE_FILE " +
  12283     "SYSRES_CONST_STORAGE_TYPE_SQL_SERVER " +
  12284     "SYSRES_CONST_STR_REQUISITE " +
  12285     "SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE " +
  12286     "SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR " +
  12287     "SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR " +
  12288     "SYSRES_CONST_STRING_REQUISITE_CODE " +
  12289     "SYSRES_CONST_STRING_REQUISITE_TYPE " +
  12290     "SYSRES_CONST_STRING_TYPE_CHAR " +
  12291     "SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE " +
  12292     "SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION " +
  12293     "SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE " +
  12294     "SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE " +
  12295     "SYSRES_CONST_SYSTEM_VERSION_COMMENT " +
  12296     "SYSRES_CONST_TASK_ACCESS_TYPE_ALL " +
  12297     "SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS " +
  12298     "SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL " +
  12299     "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION " +
  12300     "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD " +
  12301     "SYSRES_CONST_TASK_ENCODE_TYPE_NONE " +
  12302     "SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD " +
  12303     "SYSRES_CONST_TASK_ROUTE_ALL_CONDITION " +
  12304     "SYSRES_CONST_TASK_ROUTE_AND_CONDITION " +
  12305     "SYSRES_CONST_TASK_ROUTE_OR_CONDITION " +
  12306     "SYSRES_CONST_TASK_STATE_ABORTED " +
  12307     "SYSRES_CONST_TASK_STATE_COMPLETE " +
  12308     "SYSRES_CONST_TASK_STATE_CONTINUED " +
  12309     "SYSRES_CONST_TASK_STATE_CONTROL " +
  12310     "SYSRES_CONST_TASK_STATE_INIT " +
  12311     "SYSRES_CONST_TASK_STATE_WORKING " +
  12312     "SYSRES_CONST_TASK_TITLE " +
  12313     "SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE " +
  12314     "SYSRES_CONST_TASK_TYPES_REFERENCE_CODE " +
  12315     "SYSRES_CONST_TEMPLATES_REFERENCE_CODE " +
  12316     "SYSRES_CONST_TEST_DATE_REQUISITE_NAME " +
  12317     "SYSRES_CONST_TEST_DEV_DATABASE_NAME " +
  12318     "SYSRES_CONST_TEST_DEV_SYSTEM_CODE " +
  12319     "SYSRES_CONST_TEST_EDMS_DATABASE_NAME " +
  12320     "SYSRES_CONST_TEST_EDMS_MAIN_CODE " +
  12321     "SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME " +
  12322     "SYSRES_CONST_TEST_EDMS_SECOND_CODE " +
  12323     "SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME " +
  12324     "SYSRES_CONST_TEST_EDMS_SYSTEM_CODE " +
  12325     "SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME " +
  12326     "SYSRES_CONST_TEXT_REQUISITE " +
  12327     "SYSRES_CONST_TEXT_REQUISITE_CODE " +
  12328     "SYSRES_CONST_TEXT_REQUISITE_TYPE " +
  12329     "SYSRES_CONST_TEXT_TYPE_CHAR " +
  12330     "SYSRES_CONST_TYPE_CODE_REQUISITE_CODE " +
  12331     "SYSRES_CONST_TYPE_REQUISITE_CODE " +
  12332     "SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR " +
  12333     "SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE " +
  12334     "SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE " +
  12335     "SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE " +
  12336     "SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE " +
  12337     "SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME " +
  12338     "SYSRES_CONST_USE_ACCESS_TYPE_CODE " +
  12339     "SYSRES_CONST_USE_ACCESS_TYPE_NAME " +
  12340     "SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE " +
  12341     "SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE " +
  12342     "SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE " +
  12343     "SYSRES_CONST_USER_CATEGORY_NORMAL " +
  12344     "SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE " +
  12345     "SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE " +
  12346     "SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE " +
  12347     "SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE " +
  12348     "SYSRES_CONST_USER_COMMON_CATEGORY " +
  12349     "SYSRES_CONST_USER_COMMON_CATEGORY_CODE " +
  12350     "SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE " +
  12351     "SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE " +
  12352     "SYSRES_CONST_USER_LOGIN_REQUISITE_CODE " +
  12353     "SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE " +
  12354     "SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE " +
  12355     "SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE " +
  12356     "SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE " +
  12357     "SYSRES_CONST_USER_SERVICE_CATEGORY " +
  12358     "SYSRES_CONST_USER_SERVICE_CATEGORY_CODE " +
  12359     "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE " +
  12360     "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME " +
  12361     "SYSRES_CONST_USER_STATUS_DEVELOPER_CODE " +
  12362     "SYSRES_CONST_USER_STATUS_DEVELOPER_NAME " +
  12363     "SYSRES_CONST_USER_STATUS_DISABLED_CODE " +
  12364     "SYSRES_CONST_USER_STATUS_DISABLED_NAME " +
  12365     "SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE " +
  12366     "SYSRES_CONST_USER_STATUS_USER_CODE " +
  12367     "SYSRES_CONST_USER_STATUS_USER_NAME " +
  12368     "SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED " +
  12369     "SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER " +
  12370     "SYSRES_CONST_USER_TYPE_REQUISITE_CODE " +
  12371     "SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE " +
  12372     "SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE " +
  12373     "SYSRES_CONST_USERS_REFERENCE_CODE " +
  12374     "SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME " +
  12375     "SYSRES_CONST_USERS_REQUISITE_CODE " +
  12376     "SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE " +
  12377     "SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE " +
  12378     "SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE " +
  12379     "SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE " +
  12380     "SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE " +
  12381     "SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME " +
  12382     "SYSRES_CONST_VIEW_DEFAULT_CODE " +
  12383     "SYSRES_CONST_VIEW_DEFAULT_NAME " +
  12384     "SYSRES_CONST_VIEWER_REQUISITE_CODE " +
  12385     "SYSRES_CONST_WAITING_BLOCK_DESCRIPTION " +
  12386     "SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING  " +
  12387     "SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING " +
  12388     "SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE " +
  12389     "SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE " +
  12390     "SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE " +
  12391     "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE " +
  12392     "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE " +
  12393     "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS " +
  12394     "SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS " +
  12395     "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD " +
  12396     "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT " +
  12397     "SYSRES_CONST_XML_ENCODING " +
  12398     "SYSRES_CONST_XREC_STAT_REQUISITE_CODE " +
  12399     "SYSRES_CONST_XRECID_FIELD_NAME " +
  12400     "SYSRES_CONST_YES " +
  12401     "SYSRES_CONST_YES_NO_2_REQUISITE_CODE " +
  12402     "SYSRES_CONST_YES_NO_REQUISITE_CODE " +
  12403     "SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE " +
  12404     "SYSRES_CONST_YES_PICK_VALUE " +
  12405     "SYSRES_CONST_YES_VALUE ";
  12406 
  12407   // Base constant
  12408   var base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ";
  12409 
  12410   // Base group name
  12411   var base_group_name_constants =
  12412     "ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME ";
  12413 
  12414   // Decision block properties
  12415   var decision_block_properties_constants =
  12416     "DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY " +
  12417     "DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ";
  12418 
  12419   // File extension
  12420   var file_extension_constants =
  12421     "ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION " +
  12422     "SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION ";
  12423 
  12424   // Job block properties
  12425   var job_block_properties_constants =
  12426     "JOB_BLOCK_ABORT_DEADLINE_PROPERTY " +
  12427     "JOB_BLOCK_AFTER_FINISH_EVENT " +
  12428     "JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT " +
  12429     "JOB_BLOCK_ATTACHMENT_PROPERTY " +
  12430     "JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
  12431     "JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
  12432     "JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT " +
  12433     "JOB_BLOCK_BEFORE_START_EVENT " +
  12434     "JOB_BLOCK_CREATED_JOBS_PROPERTY " +
  12435     "JOB_BLOCK_DEADLINE_PROPERTY " +
  12436     "JOB_BLOCK_EXECUTION_RESULTS_PROPERTY " +
  12437     "JOB_BLOCK_IS_PARALLEL_PROPERTY " +
  12438     "JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " +
  12439     "JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
  12440     "JOB_BLOCK_JOB_TEXT_PROPERTY " +
  12441     "JOB_BLOCK_NAME_PROPERTY " +
  12442     "JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY " +
  12443     "JOB_BLOCK_PERFORMER_PROPERTY " +
  12444     "JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " +
  12445     "JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
  12446     "JOB_BLOCK_SUBJECT_PROPERTY ";
  12447 
  12448   // Language code
  12449   var language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE ";
  12450 
  12451   // Launching external applications
  12452   var launching_external_applications_constants =
  12453     "smHidden smMaximized smMinimized smNormal wmNo wmYes ";
  12454 
  12455   // Link kind
  12456   var link_kind_constants =
  12457     "COMPONENT_TOKEN_LINK_KIND " +
  12458     "DOCUMENT_LINK_KIND " +
  12459     "EDOCUMENT_LINK_KIND " +
  12460     "FOLDER_LINK_KIND " +
  12461     "JOB_LINK_KIND " +
  12462     "REFERENCE_LINK_KIND " +
  12463     "TASK_LINK_KIND ";
  12464 
  12465   // Lock type
  12466   var lock_type_constants =
  12467     "COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE ";
  12468 
  12469   // Monitor block properties
  12470   var monitor_block_properties_constants =
  12471     "MONITOR_BLOCK_AFTER_FINISH_EVENT " +
  12472     "MONITOR_BLOCK_BEFORE_START_EVENT " +
  12473     "MONITOR_BLOCK_DEADLINE_PROPERTY " +
  12474     "MONITOR_BLOCK_INTERVAL_PROPERTY " +
  12475     "MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY " +
  12476     "MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
  12477     "MONITOR_BLOCK_NAME_PROPERTY " +
  12478     "MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
  12479     "MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY ";
  12480 
  12481   // Notice block properties
  12482   var notice_block_properties_constants =
  12483     "NOTICE_BLOCK_AFTER_FINISH_EVENT " +
  12484     "NOTICE_BLOCK_ATTACHMENT_PROPERTY " +
  12485     "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
  12486     "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
  12487     "NOTICE_BLOCK_BEFORE_START_EVENT " +
  12488     "NOTICE_BLOCK_CREATED_NOTICES_PROPERTY " +
  12489     "NOTICE_BLOCK_DEADLINE_PROPERTY " +
  12490     "NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
  12491     "NOTICE_BLOCK_NAME_PROPERTY " +
  12492     "NOTICE_BLOCK_NOTICE_TEXT_PROPERTY " +
  12493     "NOTICE_BLOCK_PERFORMER_PROPERTY " +
  12494     "NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
  12495     "NOTICE_BLOCK_SUBJECT_PROPERTY ";
  12496 
  12497   // Object events
  12498   var object_events_constants =
  12499     "dseAfterCancel " +
  12500     "dseAfterClose " +
  12501     "dseAfterDelete " +
  12502     "dseAfterDeleteOutOfTransaction " +
  12503     "dseAfterInsert " +
  12504     "dseAfterOpen " +
  12505     "dseAfterScroll " +
  12506     "dseAfterUpdate " +
  12507     "dseAfterUpdateOutOfTransaction " +
  12508     "dseBeforeCancel " +
  12509     "dseBeforeClose " +
  12510     "dseBeforeDelete " +
  12511     "dseBeforeDetailUpdate " +
  12512     "dseBeforeInsert " +
  12513     "dseBeforeOpen " +
  12514     "dseBeforeUpdate " +
  12515     "dseOnAnyRequisiteChange " +
  12516     "dseOnCloseRecord " +
  12517     "dseOnDeleteError " +
  12518     "dseOnOpenRecord " +
  12519     "dseOnPrepareUpdate " +
  12520     "dseOnUpdateError " +
  12521     "dseOnUpdateRatifiedRecord " +
  12522     "dseOnValidDelete " +
  12523     "dseOnValidUpdate " +
  12524     "reOnChange " +
  12525     "reOnChangeValues " +
  12526     "SELECTION_BEGIN_ROUTE_EVENT " +
  12527     "SELECTION_END_ROUTE_EVENT ";
  12528 
  12529   // Object params
  12530   var object_params_constants =
  12531     "CURRENT_PERIOD_IS_REQUIRED " +
  12532     "PREVIOUS_CARD_TYPE_NAME " +
  12533     "SHOW_RECORD_PROPERTIES_FORM ";
  12534 
  12535   // Other
  12536   var other_constants =
  12537     "ACCESS_RIGHTS_SETTING_DIALOG_CODE " +
  12538     "ADMINISTRATOR_USER_CODE " +
  12539     "ANALYTIC_REPORT_TYPE " +
  12540     "asrtHideLocal " +
  12541     "asrtHideRemote " +
  12542     "CALCULATED_ROLE_TYPE_CODE " +
  12543     "COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE " +
  12544     "DCTS_TEST_PROTOCOLS_FOLDER_PATH " +
  12545     "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED " +
  12546     "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER " +
  12547     "E_EDOC_VERSION_ALREDY_SIGNED " +
  12548     "E_EDOC_VERSION_ALREDY_SIGNED_BY_USER " +
  12549     "EDOC_TYPES_CODE_REQUISITE_FIELD_NAME " +
  12550     "EDOCUMENTS_ALIAS_NAME " +
  12551     "FILES_FOLDER_PATH " +
  12552     "FILTER_OPERANDS_DELIMITER " +
  12553     "FILTER_OPERATIONS_DELIMITER " +
  12554     "FORMCARD_NAME " +
  12555     "FORMLIST_NAME " +
  12556     "GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE " +
  12557     "GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE " +
  12558     "INTEGRATED_REPORT_TYPE " +
  12559     "IS_BUILDER_APPLICATION_ROLE " +
  12560     "IS_BUILDER_APPLICATION_ROLE2 " +
  12561     "IS_BUILDER_USERS " +
  12562     "ISBSYSDEV " +
  12563     "LOG_FOLDER_PATH " +
  12564     "mbCancel " +
  12565     "mbNo " +
  12566     "mbNoToAll " +
  12567     "mbOK " +
  12568     "mbYes " +
  12569     "mbYesToAll " +
  12570     "MEMORY_DATASET_DESRIPTIONS_FILENAME " +
  12571     "mrNo " +
  12572     "mrNoToAll " +
  12573     "mrYes " +
  12574     "mrYesToAll " +
  12575     "MULTIPLE_SELECT_DIALOG_CODE " +
  12576     "NONOPERATING_RECORD_FLAG_FEMININE " +
  12577     "NONOPERATING_RECORD_FLAG_MASCULINE " +
  12578     "OPERATING_RECORD_FLAG_FEMININE " +
  12579     "OPERATING_RECORD_FLAG_MASCULINE " +
  12580     "PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE " +
  12581     "PROGRAM_INITIATED_LOOKUP_ACTION " +
  12582     "ratDelete " +
  12583     "ratEdit " +
  12584     "ratInsert " +
  12585     "REPORT_TYPE " +
  12586     "REQUIRED_PICK_VALUES_VARIABLE " +
  12587     "rmCard " +
  12588     "rmList " +
  12589     "SBRTE_PROGID_DEV " +
  12590     "SBRTE_PROGID_RELEASE " +
  12591     "STATIC_ROLE_TYPE_CODE " +
  12592     "SUPPRESS_EMPTY_TEMPLATE_CREATION " +
  12593     "SYSTEM_USER_CODE " +
  12594     "UPDATE_DIALOG_DATASET " +
  12595     "USED_IN_OBJECT_HINT_PARAM " +
  12596     "USER_INITIATED_LOOKUP_ACTION " +
  12597     "USER_NAME_FORMAT " +
  12598     "USER_SELECTION_RESTRICTIONS " +
  12599     "WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH " +
  12600     "ELS_SUBTYPE_CONTROL_NAME " +
  12601     "ELS_FOLDER_KIND_CONTROL_NAME " +
  12602     "REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME ";
  12603 
  12604   // Privileges
  12605   var privileges_constants =
  12606     "PRIVILEGE_COMPONENT_FULL_ACCESS " +
  12607     "PRIVILEGE_DEVELOPMENT_EXPORT " +
  12608     "PRIVILEGE_DEVELOPMENT_IMPORT " +
  12609     "PRIVILEGE_DOCUMENT_DELETE " +
  12610     "PRIVILEGE_ESD " +
  12611     "PRIVILEGE_FOLDER_DELETE " +
  12612     "PRIVILEGE_MANAGE_ACCESS_RIGHTS " +
  12613     "PRIVILEGE_MANAGE_REPLICATION " +
  12614     "PRIVILEGE_MANAGE_SESSION_SERVER " +
  12615     "PRIVILEGE_OBJECT_FULL_ACCESS " +
  12616     "PRIVILEGE_OBJECT_VIEW " +
  12617     "PRIVILEGE_RESERVE_LICENSE " +
  12618     "PRIVILEGE_SYSTEM_CUSTOMIZE " +
  12619     "PRIVILEGE_SYSTEM_DEVELOP " +
  12620     "PRIVILEGE_SYSTEM_INSTALL " +
  12621     "PRIVILEGE_TASK_DELETE " +
  12622     "PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE " +
  12623     "PRIVILEGES_PSEUDOREFERENCE_CODE ";
  12624 
  12625   // Pseudoreference code
  12626   var pseudoreference_code_constants =
  12627     "ACCESS_TYPES_PSEUDOREFERENCE_CODE " +
  12628     "ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE " +
  12629     "ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE " +
  12630     "ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE " +
  12631     "AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE " +
  12632     "COMPONENTS_PSEUDOREFERENCE_CODE " +
  12633     "FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE " +
  12634     "GROUPS_PSEUDOREFERENCE_CODE " +
  12635     "RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE " +
  12636     "REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE " +
  12637     "REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE " +
  12638     "REFTYPES_PSEUDOREFERENCE_CODE " +
  12639     "REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE " +
  12640     "SEND_PROTOCOL_PSEUDOREFERENCE_CODE " +
  12641     "SUBSTITUTES_PSEUDOREFERENCE_CODE " +
  12642     "SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE " +
  12643     "UNITS_PSEUDOREFERENCE_CODE " +
  12644     "USERS_PSEUDOREFERENCE_CODE " +
  12645     "VIEWERS_PSEUDOREFERENCE_CODE ";
  12646 
  12647   // Requisite ISBCertificateType values
  12648   var requisite_ISBCertificateType_values_constants =
  12649     "CERTIFICATE_TYPE_ENCRYPT " +
  12650     "CERTIFICATE_TYPE_SIGN " +
  12651     "CERTIFICATE_TYPE_SIGN_AND_ENCRYPT ";
  12652 
  12653   // Requisite ISBEDocStorageType values
  12654   var requisite_ISBEDocStorageType_values_constants =
  12655     "STORAGE_TYPE_FILE " +
  12656     "STORAGE_TYPE_NAS_CIFS " +
  12657     "STORAGE_TYPE_SAPERION " +
  12658     "STORAGE_TYPE_SQL_SERVER ";
  12659 
  12660   // Requisite CompType2 values
  12661   var requisite_compType2_values_constants =
  12662     "COMPTYPE2_REQUISITE_DOCUMENTS_VALUE " +
  12663     "COMPTYPE2_REQUISITE_TASKS_VALUE " +
  12664     "COMPTYPE2_REQUISITE_FOLDERS_VALUE " +
  12665     "COMPTYPE2_REQUISITE_REFERENCES_VALUE ";
  12666 
  12667   // Requisite name
  12668   var requisite_name_constants =
  12669     "SYSREQ_CODE " +
  12670     "SYSREQ_COMPTYPE2 " +
  12671     "SYSREQ_CONST_AVAILABLE_FOR_WEB " +
  12672     "SYSREQ_CONST_COMMON_CODE " +
  12673     "SYSREQ_CONST_COMMON_VALUE " +
  12674     "SYSREQ_CONST_FIRM_CODE " +
  12675     "SYSREQ_CONST_FIRM_STATUS " +
  12676     "SYSREQ_CONST_FIRM_VALUE " +
  12677     "SYSREQ_CONST_SERVER_STATUS " +
  12678     "SYSREQ_CONTENTS " +
  12679     "SYSREQ_DATE_OPEN " +
  12680     "SYSREQ_DATE_CLOSE " +
  12681     "SYSREQ_DESCRIPTION " +
  12682     "SYSREQ_DESCRIPTION_LOCALIZE_ID " +
  12683     "SYSREQ_DOUBLE " +
  12684     "SYSREQ_EDOC_ACCESS_TYPE " +
  12685     "SYSREQ_EDOC_AUTHOR " +
  12686     "SYSREQ_EDOC_CREATED " +
  12687     "SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE " +
  12688     "SYSREQ_EDOC_EDITOR " +
  12689     "SYSREQ_EDOC_ENCODE_TYPE " +
  12690     "SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME " +
  12691     "SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION " +
  12692     "SYSREQ_EDOC_EXPORT_DATE " +
  12693     "SYSREQ_EDOC_EXPORTER " +
  12694     "SYSREQ_EDOC_KIND " +
  12695     "SYSREQ_EDOC_LIFE_STAGE_NAME " +
  12696     "SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE " +
  12697     "SYSREQ_EDOC_MODIFIED " +
  12698     "SYSREQ_EDOC_NAME " +
  12699     "SYSREQ_EDOC_NOTE " +
  12700     "SYSREQ_EDOC_QUALIFIED_ID " +
  12701     "SYSREQ_EDOC_SESSION_KEY " +
  12702     "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME " +
  12703     "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION " +
  12704     "SYSREQ_EDOC_SIGNATURE_TYPE " +
  12705     "SYSREQ_EDOC_SIGNED " +
  12706     "SYSREQ_EDOC_STORAGE " +
  12707     "SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE " +
  12708     "SYSREQ_EDOC_STORAGES_CHECK_RIGHTS " +
  12709     "SYSREQ_EDOC_STORAGES_COMPUTER_NAME " +
  12710     "SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE " +
  12711     "SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE " +
  12712     "SYSREQ_EDOC_STORAGES_FUNCTION " +
  12713     "SYSREQ_EDOC_STORAGES_INITIALIZED " +
  12714     "SYSREQ_EDOC_STORAGES_LOCAL_PATH " +
  12715     "SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME " +
  12716     "SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT " +
  12717     "SYSREQ_EDOC_STORAGES_SERVER_NAME " +
  12718     "SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME " +
  12719     "SYSREQ_EDOC_STORAGES_TYPE " +
  12720     "SYSREQ_EDOC_TEXT_MODIFIED " +
  12721     "SYSREQ_EDOC_TYPE_ACT_CODE " +
  12722     "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION " +
  12723     "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " +
  12724     "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE " +
  12725     "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS " +
  12726     "SYSREQ_EDOC_TYPE_ACT_SECTION " +
  12727     "SYSREQ_EDOC_TYPE_ADD_PARAMS " +
  12728     "SYSREQ_EDOC_TYPE_COMMENT " +
  12729     "SYSREQ_EDOC_TYPE_EVENT_TEXT " +
  12730     "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR " +
  12731     "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " +
  12732     "SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID " +
  12733     "SYSREQ_EDOC_TYPE_NUMERATION_METHOD " +
  12734     "SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE " +
  12735     "SYSREQ_EDOC_TYPE_REQ_CODE " +
  12736     "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION " +
  12737     "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " +
  12738     "SYSREQ_EDOC_TYPE_REQ_IS_LEADING " +
  12739     "SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED " +
  12740     "SYSREQ_EDOC_TYPE_REQ_NUMBER " +
  12741     "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE " +
  12742     "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS " +
  12743     "SYSREQ_EDOC_TYPE_REQ_ON_SELECT " +
  12744     "SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND " +
  12745     "SYSREQ_EDOC_TYPE_REQ_SECTION " +
  12746     "SYSREQ_EDOC_TYPE_VIEW_CARD " +
  12747     "SYSREQ_EDOC_TYPE_VIEW_CODE " +
  12748     "SYSREQ_EDOC_TYPE_VIEW_COMMENT " +
  12749     "SYSREQ_EDOC_TYPE_VIEW_IS_MAIN " +
  12750     "SYSREQ_EDOC_TYPE_VIEW_NAME " +
  12751     "SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID " +
  12752     "SYSREQ_EDOC_VERSION_AUTHOR " +
  12753     "SYSREQ_EDOC_VERSION_CRC " +
  12754     "SYSREQ_EDOC_VERSION_DATA " +
  12755     "SYSREQ_EDOC_VERSION_EDITOR " +
  12756     "SYSREQ_EDOC_VERSION_EXPORT_DATE " +
  12757     "SYSREQ_EDOC_VERSION_EXPORTER " +
  12758     "SYSREQ_EDOC_VERSION_HIDDEN " +
  12759     "SYSREQ_EDOC_VERSION_LIFE_STAGE " +
  12760     "SYSREQ_EDOC_VERSION_MODIFIED " +
  12761     "SYSREQ_EDOC_VERSION_NOTE " +
  12762     "SYSREQ_EDOC_VERSION_SIGNATURE_TYPE " +
  12763     "SYSREQ_EDOC_VERSION_SIGNED " +
  12764     "SYSREQ_EDOC_VERSION_SIZE " +
  12765     "SYSREQ_EDOC_VERSION_SOURCE " +
  12766     "SYSREQ_EDOC_VERSION_TEXT_MODIFIED " +
  12767     "SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE " +
  12768     "SYSREQ_FOLDER_KIND " +
  12769     "SYSREQ_FUNC_CATEGORY " +
  12770     "SYSREQ_FUNC_COMMENT " +
  12771     "SYSREQ_FUNC_GROUP " +
  12772     "SYSREQ_FUNC_GROUP_COMMENT " +
  12773     "SYSREQ_FUNC_GROUP_NUMBER " +
  12774     "SYSREQ_FUNC_HELP " +
  12775     "SYSREQ_FUNC_PARAM_DEF_VALUE " +
  12776     "SYSREQ_FUNC_PARAM_IDENT " +
  12777     "SYSREQ_FUNC_PARAM_NUMBER " +
  12778     "SYSREQ_FUNC_PARAM_TYPE " +
  12779     "SYSREQ_FUNC_TEXT " +
  12780     "SYSREQ_GROUP_CATEGORY " +
  12781     "SYSREQ_ID " +
  12782     "SYSREQ_LAST_UPDATE " +
  12783     "SYSREQ_LEADER_REFERENCE " +
  12784     "SYSREQ_LINE_NUMBER " +
  12785     "SYSREQ_MAIN_RECORD_ID " +
  12786     "SYSREQ_NAME " +
  12787     "SYSREQ_NAME_LOCALIZE_ID " +
  12788     "SYSREQ_NOTE " +
  12789     "SYSREQ_ORIGINAL_RECORD " +
  12790     "SYSREQ_OUR_FIRM " +
  12791     "SYSREQ_PROFILING_SETTINGS_BATCH_LOGING " +
  12792     "SYSREQ_PROFILING_SETTINGS_BATCH_SIZE " +
  12793     "SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED " +
  12794     "SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED " +
  12795     "SYSREQ_PROFILING_SETTINGS_START_LOGGED " +
  12796     "SYSREQ_RECORD_STATUS " +
  12797     "SYSREQ_REF_REQ_FIELD_NAME " +
  12798     "SYSREQ_REF_REQ_FORMAT " +
  12799     "SYSREQ_REF_REQ_GENERATED " +
  12800     "SYSREQ_REF_REQ_LENGTH " +
  12801     "SYSREQ_REF_REQ_PRECISION " +
  12802     "SYSREQ_REF_REQ_REFERENCE " +
  12803     "SYSREQ_REF_REQ_SECTION " +
  12804     "SYSREQ_REF_REQ_STORED " +
  12805     "SYSREQ_REF_REQ_TOKENS " +
  12806     "SYSREQ_REF_REQ_TYPE " +
  12807     "SYSREQ_REF_REQ_VIEW " +
  12808     "SYSREQ_REF_TYPE_ACT_CODE " +
  12809     "SYSREQ_REF_TYPE_ACT_DESCRIPTION " +
  12810     "SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " +
  12811     "SYSREQ_REF_TYPE_ACT_ON_EXECUTE " +
  12812     "SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS " +
  12813     "SYSREQ_REF_TYPE_ACT_SECTION " +
  12814     "SYSREQ_REF_TYPE_ADD_PARAMS " +
  12815     "SYSREQ_REF_TYPE_COMMENT " +
  12816     "SYSREQ_REF_TYPE_COMMON_SETTINGS " +
  12817     "SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME " +
  12818     "SYSREQ_REF_TYPE_EVENT_TEXT " +
  12819     "SYSREQ_REF_TYPE_MAIN_LEADING_REF " +
  12820     "SYSREQ_REF_TYPE_NAME_IN_SINGULAR " +
  12821     "SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " +
  12822     "SYSREQ_REF_TYPE_NAME_LOCALIZE_ID " +
  12823     "SYSREQ_REF_TYPE_NUMERATION_METHOD " +
  12824     "SYSREQ_REF_TYPE_REQ_CODE " +
  12825     "SYSREQ_REF_TYPE_REQ_DESCRIPTION " +
  12826     "SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " +
  12827     "SYSREQ_REF_TYPE_REQ_IS_CONTROL " +
  12828     "SYSREQ_REF_TYPE_REQ_IS_FILTER " +
  12829     "SYSREQ_REF_TYPE_REQ_IS_LEADING " +
  12830     "SYSREQ_REF_TYPE_REQ_IS_REQUIRED " +
  12831     "SYSREQ_REF_TYPE_REQ_NUMBER " +
  12832     "SYSREQ_REF_TYPE_REQ_ON_CHANGE " +
  12833     "SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS " +
  12834     "SYSREQ_REF_TYPE_REQ_ON_SELECT " +
  12835     "SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND " +
  12836     "SYSREQ_REF_TYPE_REQ_SECTION " +
  12837     "SYSREQ_REF_TYPE_VIEW_CARD " +
  12838     "SYSREQ_REF_TYPE_VIEW_CODE " +
  12839     "SYSREQ_REF_TYPE_VIEW_COMMENT " +
  12840     "SYSREQ_REF_TYPE_VIEW_IS_MAIN " +
  12841     "SYSREQ_REF_TYPE_VIEW_NAME " +
  12842     "SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID " +
  12843     "SYSREQ_REFERENCE_TYPE_ID " +
  12844     "SYSREQ_STATE " +
  12845     "SYSREQ_STATЕ " +
  12846     "SYSREQ_SYSTEM_SETTINGS_VALUE " +
  12847     "SYSREQ_TYPE " +
  12848     "SYSREQ_UNIT " +
  12849     "SYSREQ_UNIT_ID " +
  12850     "SYSREQ_USER_GROUPS_GROUP_FULL_NAME " +
  12851     "SYSREQ_USER_GROUPS_GROUP_NAME " +
  12852     "SYSREQ_USER_GROUPS_GROUP_SERVER_NAME " +
  12853     "SYSREQ_USERS_ACCESS_RIGHTS " +
  12854     "SYSREQ_USERS_AUTHENTICATION " +
  12855     "SYSREQ_USERS_CATEGORY " +
  12856     "SYSREQ_USERS_COMPONENT " +
  12857     "SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC " +
  12858     "SYSREQ_USERS_DOMAIN " +
  12859     "SYSREQ_USERS_FULL_USER_NAME " +
  12860     "SYSREQ_USERS_GROUP " +
  12861     "SYSREQ_USERS_IS_MAIN_SERVER " +
  12862     "SYSREQ_USERS_LOGIN " +
  12863     "SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC " +
  12864     "SYSREQ_USERS_STATUS " +
  12865     "SYSREQ_USERS_USER_CERTIFICATE " +
  12866     "SYSREQ_USERS_USER_CERTIFICATE_INFO " +
  12867     "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME " +
  12868     "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION " +
  12869     "SYSREQ_USERS_USER_CERTIFICATE_STATE " +
  12870     "SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME " +
  12871     "SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT " +
  12872     "SYSREQ_USERS_USER_DEFAULT_CERTIFICATE " +
  12873     "SYSREQ_USERS_USER_DESCRIPTION " +
  12874     "SYSREQ_USERS_USER_GLOBAL_NAME " +
  12875     "SYSREQ_USERS_USER_LOGIN " +
  12876     "SYSREQ_USERS_USER_MAIN_SERVER " +
  12877     "SYSREQ_USERS_USER_TYPE " +
  12878     "SYSREQ_WORK_RULES_FOLDER_ID ";
  12879 
  12880   // Result
  12881   var result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG ";
  12882 
  12883   // Rule identification
  12884   var rule_identification_constants =
  12885     "AUTO_NUMERATION_RULE_ID " +
  12886     "CANT_CHANGE_ID_REQUISITE_RULE_ID " +
  12887     "CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID " +
  12888     "CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID " +
  12889     "CHECK_CODE_REQUISITE_RULE_ID " +
  12890     "CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID " +
  12891     "CHECK_FILTRATER_CHANGES_RULE_ID " +
  12892     "CHECK_RECORD_INTERVAL_RULE_ID " +
  12893     "CHECK_REFERENCE_INTERVAL_RULE_ID " +
  12894     "CHECK_REQUIRED_DATA_FULLNESS_RULE_ID " +
  12895     "CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID " +
  12896     "MAKE_RECORD_UNRATIFIED_RULE_ID " +
  12897     "RESTORE_AUTO_NUMERATION_RULE_ID " +
  12898     "SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID " +
  12899     "SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID " +
  12900     "SET_IDSPS_VALUE_RULE_ID " +
  12901     "SET_NEXT_CODE_VALUE_RULE_ID " +
  12902     "SET_OURFIRM_BOUNDS_RULE_ID " +
  12903     "SET_OURFIRM_REQUISITE_RULE_ID ";
  12904 
  12905   // Script block properties
  12906   var script_block_properties_constants =
  12907     "SCRIPT_BLOCK_AFTER_FINISH_EVENT " +
  12908     "SCRIPT_BLOCK_BEFORE_START_EVENT " +
  12909     "SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY " +
  12910     "SCRIPT_BLOCK_NAME_PROPERTY " +
  12911     "SCRIPT_BLOCK_SCRIPT_PROPERTY ";
  12912 
  12913   // Subtask block properties
  12914   var subtask_block_properties_constants =
  12915     "SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY " +
  12916     "SUBTASK_BLOCK_AFTER_FINISH_EVENT " +
  12917     "SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT " +
  12918     "SUBTASK_BLOCK_ATTACHMENTS_PROPERTY " +
  12919     "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
  12920     "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
  12921     "SUBTASK_BLOCK_BEFORE_START_EVENT " +
  12922     "SUBTASK_BLOCK_CREATED_TASK_PROPERTY " +
  12923     "SUBTASK_BLOCK_CREATION_EVENT " +
  12924     "SUBTASK_BLOCK_DEADLINE_PROPERTY " +
  12925     "SUBTASK_BLOCK_IMPORTANCE_PROPERTY " +
  12926     "SUBTASK_BLOCK_INITIATOR_PROPERTY " +
  12927     "SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " +
  12928     "SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
  12929     "SUBTASK_BLOCK_JOBS_TYPE_PROPERTY " +
  12930     "SUBTASK_BLOCK_NAME_PROPERTY " +
  12931     "SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY " +
  12932     "SUBTASK_BLOCK_PERFORMERS_PROPERTY " +
  12933     "SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " +
  12934     "SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
  12935     "SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY " +
  12936     "SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY " +
  12937     "SUBTASK_BLOCK_START_EVENT " +
  12938     "SUBTASK_BLOCK_STEP_CONTROL_PROPERTY " +
  12939     "SUBTASK_BLOCK_SUBJECT_PROPERTY " +
  12940     "SUBTASK_BLOCK_TASK_CONTROL_PROPERTY " +
  12941     "SUBTASK_BLOCK_TEXT_PROPERTY " +
  12942     "SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY " +
  12943     "SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY " +
  12944     "SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY ";
  12945 
  12946   // System component
  12947   var system_component_constants =
  12948     "SYSCOMP_CONTROL_JOBS " +
  12949     "SYSCOMP_FOLDERS " +
  12950     "SYSCOMP_JOBS " +
  12951     "SYSCOMP_NOTICES " +
  12952     "SYSCOMP_TASKS ";
  12953 
  12954   // System dialogs
  12955   var system_dialogs_constants =
  12956     "SYSDLG_CREATE_EDOCUMENT " +
  12957     "SYSDLG_CREATE_EDOCUMENT_VERSION " +
  12958     "SYSDLG_CURRENT_PERIOD " +
  12959     "SYSDLG_EDIT_FUNCTION_HELP " +
  12960     "SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE " +
  12961     "SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS " +
  12962     "SYSDLG_EXPORT_SINGLE_EDOCUMENT " +
  12963     "SYSDLG_IMPORT_EDOCUMENT " +
  12964     "SYSDLG_MULTIPLE_SELECT " +
  12965     "SYSDLG_SETUP_ACCESS_RIGHTS " +
  12966     "SYSDLG_SETUP_DEFAULT_RIGHTS " +
  12967     "SYSDLG_SETUP_FILTER_CONDITION " +
  12968     "SYSDLG_SETUP_SIGN_RIGHTS " +
  12969     "SYSDLG_SETUP_TASK_OBSERVERS " +
  12970     "SYSDLG_SETUP_TASK_ROUTE " +
  12971     "SYSDLG_SETUP_USERS_LIST " +
  12972     "SYSDLG_SIGN_EDOCUMENT " +
  12973     "SYSDLG_SIGN_MULTIPLE_EDOCUMENTS ";
  12974 
  12975   // System reference names
  12976   var system_reference_names_constants =
  12977     "SYSREF_ACCESS_RIGHTS_TYPES " +
  12978     "SYSREF_ADMINISTRATION_HISTORY " +
  12979     "SYSREF_ALL_AVAILABLE_COMPONENTS " +
  12980     "SYSREF_ALL_AVAILABLE_PRIVILEGES " +
  12981     "SYSREF_ALL_REPLICATING_COMPONENTS " +
  12982     "SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS " +
  12983     "SYSREF_CALENDAR_EVENTS " +
  12984     "SYSREF_COMPONENT_TOKEN_HISTORY " +
  12985     "SYSREF_COMPONENT_TOKENS " +
  12986     "SYSREF_COMPONENTS " +
  12987     "SYSREF_CONSTANTS " +
  12988     "SYSREF_DATA_RECEIVE_PROTOCOL " +
  12989     "SYSREF_DATA_SEND_PROTOCOL " +
  12990     "SYSREF_DIALOGS " +
  12991     "SYSREF_DIALOGS_REQUISITES " +
  12992     "SYSREF_EDITORS " +
  12993     "SYSREF_EDOC_CARDS " +
  12994     "SYSREF_EDOC_TYPES " +
  12995     "SYSREF_EDOCUMENT_CARD_REQUISITES " +
  12996     "SYSREF_EDOCUMENT_CARD_TYPES " +
  12997     "SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE " +
  12998     "SYSREF_EDOCUMENT_CARDS " +
  12999     "SYSREF_EDOCUMENT_HISTORY " +
  13000     "SYSREF_EDOCUMENT_KINDS " +
  13001     "SYSREF_EDOCUMENT_REQUISITES " +
  13002     "SYSREF_EDOCUMENT_SIGNATURES " +
  13003     "SYSREF_EDOCUMENT_TEMPLATES " +
  13004     "SYSREF_EDOCUMENT_TEXT_STORAGES " +
  13005     "SYSREF_EDOCUMENT_VIEWS " +
  13006     "SYSREF_FILTERER_SETUP_CONFLICTS " +
  13007     "SYSREF_FILTRATER_SETTING_CONFLICTS " +
  13008     "SYSREF_FOLDER_HISTORY " +
  13009     "SYSREF_FOLDERS " +
  13010     "SYSREF_FUNCTION_GROUPS " +
  13011     "SYSREF_FUNCTION_PARAMS " +
  13012     "SYSREF_FUNCTIONS " +
  13013     "SYSREF_JOB_HISTORY " +
  13014     "SYSREF_LINKS " +
  13015     "SYSREF_LOCALIZATION_DICTIONARY " +
  13016     "SYSREF_LOCALIZATION_LANGUAGES " +
  13017     "SYSREF_MODULES " +
  13018     "SYSREF_PRIVILEGES " +
  13019     "SYSREF_RECORD_HISTORY " +
  13020     "SYSREF_REFERENCE_REQUISITES " +
  13021     "SYSREF_REFERENCE_TYPE_VIEWS " +
  13022     "SYSREF_REFERENCE_TYPES " +
  13023     "SYSREF_REFERENCES " +
  13024     "SYSREF_REFERENCES_REQUISITES " +
  13025     "SYSREF_REMOTE_SERVERS " +
  13026     "SYSREF_REPLICATION_SESSIONS_LOG " +
  13027     "SYSREF_REPLICATION_SESSIONS_PROTOCOL " +
  13028     "SYSREF_REPORTS " +
  13029     "SYSREF_ROLES " +
  13030     "SYSREF_ROUTE_BLOCK_GROUPS " +
  13031     "SYSREF_ROUTE_BLOCKS " +
  13032     "SYSREF_SCRIPTS " +
  13033     "SYSREF_SEARCHES " +
  13034     "SYSREF_SERVER_EVENTS " +
  13035     "SYSREF_SERVER_EVENTS_HISTORY " +
  13036     "SYSREF_STANDARD_ROUTE_GROUPS " +
  13037     "SYSREF_STANDARD_ROUTES " +
  13038     "SYSREF_STATUSES " +
  13039     "SYSREF_SYSTEM_SETTINGS " +
  13040     "SYSREF_TASK_HISTORY " +
  13041     "SYSREF_TASK_KIND_GROUPS " +
  13042     "SYSREF_TASK_KINDS " +
  13043     "SYSREF_TASK_RIGHTS " +
  13044     "SYSREF_TASK_SIGNATURES " +
  13045     "SYSREF_TASKS " +
  13046     "SYSREF_UNITS " +
  13047     "SYSREF_USER_GROUPS " +
  13048     "SYSREF_USER_GROUPS_REFERENCE " +
  13049     "SYSREF_USER_SUBSTITUTION " +
  13050     "SYSREF_USERS " +
  13051     "SYSREF_USERS_REFERENCE " +
  13052     "SYSREF_VIEWERS " +
  13053     "SYSREF_WORKING_TIME_CALENDARS ";
  13054 
  13055   // Table name
  13056   var table_name_constants =
  13057     "ACCESS_RIGHTS_TABLE_NAME " +
  13058     "EDMS_ACCESS_TABLE_NAME " +
  13059     "EDOC_TYPES_TABLE_NAME ";
  13060 
  13061   // Test
  13062   var test_constants =
  13063     "TEST_DEV_DB_NAME " +
  13064     "TEST_DEV_SYSTEM_CODE " +
  13065     "TEST_EDMS_DB_NAME " +
  13066     "TEST_EDMS_MAIN_CODE " +
  13067     "TEST_EDMS_MAIN_DB_NAME " +
  13068     "TEST_EDMS_SECOND_CODE " +
  13069     "TEST_EDMS_SECOND_DB_NAME " +
  13070     "TEST_EDMS_SYSTEM_CODE " +
  13071     "TEST_ISB5_MAIN_CODE " +
  13072     "TEST_ISB5_SECOND_CODE " +
  13073     "TEST_SQL_SERVER_2005_NAME " +
  13074     "TEST_SQL_SERVER_NAME ";
  13075 
  13076   // Using the dialog windows
  13077   var using_the_dialog_windows_constants =
  13078     "ATTENTION_CAPTION " +
  13079     "cbsCommandLinks " +
  13080     "cbsDefault " +
  13081     "CONFIRMATION_CAPTION " +
  13082     "ERROR_CAPTION " +
  13083     "INFORMATION_CAPTION " +
  13084     "mrCancel " +
  13085     "mrOk ";
  13086 
  13087   // Using the document
  13088   var using_the_document_constants =
  13089     "EDOC_VERSION_ACTIVE_STAGE_CODE " +
  13090     "EDOC_VERSION_DESIGN_STAGE_CODE " +
  13091     "EDOC_VERSION_OBSOLETE_STAGE_CODE ";
  13092 
  13093   // Using the EA and encryption
  13094   var using_the_EA_and_encryption_constants =
  13095     "cpDataEnciphermentEnabled " +
  13096     "cpDigitalSignatureEnabled " +
  13097     "cpID " +
  13098     "cpIssuer " +
  13099     "cpPluginVersion " +
  13100     "cpSerial " +
  13101     "cpSubjectName " +
  13102     "cpSubjSimpleName " +
  13103     "cpValidFromDate " +
  13104     "cpValidToDate ";
  13105 
  13106   // Using the ISBL-editor
  13107   var using_the_ISBL_editor_constants =
  13108     "ISBL_SYNTAX " + "NO_SYNTAX " + "XML_SYNTAX ";
  13109 
  13110   // Wait block properties
  13111   var wait_block_properties_constants =
  13112     "WAIT_BLOCK_AFTER_FINISH_EVENT " +
  13113     "WAIT_BLOCK_BEFORE_START_EVENT " +
  13114     "WAIT_BLOCK_DEADLINE_PROPERTY " +
  13115     "WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
  13116     "WAIT_BLOCK_NAME_PROPERTY " +
  13117     "WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY ";
  13118 
  13119   // SYSRES Common
  13120   var sysres_common_constants =
  13121     "SYSRES_COMMON " +
  13122     "SYSRES_CONST " +
  13123     "SYSRES_MBFUNC " +
  13124     "SYSRES_SBDATA " +
  13125     "SYSRES_SBGUI " +
  13126     "SYSRES_SBINTF " +
  13127     "SYSRES_SBREFDSC " +
  13128     "SYSRES_SQLERRORS " +
  13129     "SYSRES_SYSCOMP ";
  13130 
  13131   // Константы ==> built_in
  13132   var CONSTANTS =
  13133     sysres_constants +
  13134     base_constants +
  13135     base_group_name_constants +
  13136     decision_block_properties_constants +
  13137     file_extension_constants +
  13138     job_block_properties_constants +
  13139     language_code_constants +
  13140     launching_external_applications_constants +
  13141     link_kind_constants +
  13142     lock_type_constants +
  13143     monitor_block_properties_constants +
  13144     notice_block_properties_constants +
  13145     object_events_constants +
  13146     object_params_constants +
  13147     other_constants +
  13148     privileges_constants +
  13149     pseudoreference_code_constants +
  13150     requisite_ISBCertificateType_values_constants +
  13151     requisite_ISBEDocStorageType_values_constants +
  13152     requisite_compType2_values_constants +
  13153     requisite_name_constants +
  13154     result_constants +
  13155     rule_identification_constants +
  13156     script_block_properties_constants +
  13157     subtask_block_properties_constants +
  13158     system_component_constants +
  13159     system_dialogs_constants +
  13160     system_reference_names_constants +
  13161     table_name_constants +
  13162     test_constants +
  13163     using_the_dialog_windows_constants +
  13164     using_the_document_constants +
  13165     using_the_EA_and_encryption_constants +
  13166     using_the_ISBL_editor_constants +
  13167     wait_block_properties_constants +
  13168     sysres_common_constants;
  13169 
  13170   // enum TAccountType
  13171   var TAccountType = "atUser atGroup atRole ";
  13172 
  13173   // enum TActionEnabledMode
  13174   var TActionEnabledMode =
  13175     "aemEnabledAlways " +
  13176     "aemDisabledAlways " +
  13177     "aemEnabledOnBrowse " +
  13178     "aemEnabledOnEdit " +
  13179     "aemDisabledOnBrowseEmpty ";
  13180 
  13181   // enum TAddPosition
  13182   var TAddPosition = "apBegin apEnd ";
  13183 
  13184   // enum TAlignment
  13185   var TAlignment = "alLeft alRight ";
  13186 
  13187   // enum TAreaShowMode
  13188   var TAreaShowMode =
  13189     "asmNever " +
  13190     "asmNoButCustomize " +
  13191     "asmAsLastTime " +
  13192     "asmYesButCustomize " +
  13193     "asmAlways ";
  13194 
  13195   // enum TCertificateInvalidationReason
  13196   var TCertificateInvalidationReason = "cirCommon cirRevoked ";
  13197 
  13198   // enum TCertificateType
  13199   var TCertificateType = "ctSignature ctEncode ctSignatureEncode ";
  13200 
  13201   // enum TCheckListBoxItemState
  13202   var TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed ";
  13203 
  13204   // enum TCloseOnEsc
  13205   var TCloseOnEsc = "ceISB ceAlways ceNever ";
  13206 
  13207   // enum TCompType
  13208   var TCompType =
  13209     "ctDocument " +
  13210     "ctReference " +
  13211     "ctScript " +
  13212     "ctUnknown " +
  13213     "ctReport " +
  13214     "ctDialog " +
  13215     "ctFunction " +
  13216     "ctFolder " +
  13217     "ctEDocument " +
  13218     "ctTask " +
  13219     "ctJob " +
  13220     "ctNotice " +
  13221     "ctControlJob ";
  13222 
  13223   // enum TConditionFormat
  13224   var TConditionFormat = "cfInternal cfDisplay ";
  13225 
  13226   // enum TConnectionIntent
  13227   var TConnectionIntent = "ciUnspecified ciWrite ciRead ";
  13228 
  13229   // enum TContentKind
  13230   var TContentKind =
  13231     "ckFolder " +
  13232     "ckEDocument " +
  13233     "ckTask " +
  13234     "ckJob " +
  13235     "ckComponentToken " +
  13236     "ckAny " +
  13237     "ckReference " +
  13238     "ckScript " +
  13239     "ckReport " +
  13240     "ckDialog ";
  13241 
  13242   // enum TControlType
  13243   var TControlType =
  13244     "ctISBLEditor " +
  13245     "ctBevel " +
  13246     "ctButton " +
  13247     "ctCheckListBox " +
  13248     "ctComboBox " +
  13249     "ctComboEdit " +
  13250     "ctGrid " +
  13251     "ctDBCheckBox " +
  13252     "ctDBComboBox " +
  13253     "ctDBEdit " +
  13254     "ctDBEllipsis " +
  13255     "ctDBMemo " +
  13256     "ctDBNavigator " +
  13257     "ctDBRadioGroup " +
  13258     "ctDBStatusLabel " +
  13259     "ctEdit " +
  13260     "ctGroupBox " +
  13261     "ctInplaceHint " +
  13262     "ctMemo " +
  13263     "ctPanel " +
  13264     "ctListBox " +
  13265     "ctRadioButton " +
  13266     "ctRichEdit " +
  13267     "ctTabSheet " +
  13268     "ctWebBrowser " +
  13269     "ctImage " +
  13270     "ctHyperLink " +
  13271     "ctLabel " +
  13272     "ctDBMultiEllipsis " +
  13273     "ctRibbon " +
  13274     "ctRichView " +
  13275     "ctInnerPanel " +
  13276     "ctPanelGroup " +
  13277     "ctBitButton ";
  13278 
  13279   // enum TCriterionContentType
  13280   var TCriterionContentType =
  13281     "cctDate " +
  13282     "cctInteger " +
  13283     "cctNumeric " +
  13284     "cctPick " +
  13285     "cctReference " +
  13286     "cctString " +
  13287     "cctText ";
  13288 
  13289   // enum TCultureType
  13290   var TCultureType = "cltInternal cltPrimary cltGUI ";
  13291 
  13292   // enum TDataSetEventType
  13293   var TDataSetEventType =
  13294     "dseBeforeOpen " +
  13295     "dseAfterOpen " +
  13296     "dseBeforeClose " +
  13297     "dseAfterClose " +
  13298     "dseOnValidDelete " +
  13299     "dseBeforeDelete " +
  13300     "dseAfterDelete " +
  13301     "dseAfterDeleteOutOfTransaction " +
  13302     "dseOnDeleteError " +
  13303     "dseBeforeInsert " +
  13304     "dseAfterInsert " +
  13305     "dseOnValidUpdate " +
  13306     "dseBeforeUpdate " +
  13307     "dseOnUpdateRatifiedRecord " +
  13308     "dseAfterUpdate " +
  13309     "dseAfterUpdateOutOfTransaction " +
  13310     "dseOnUpdateError " +
  13311     "dseAfterScroll " +
  13312     "dseOnOpenRecord " +
  13313     "dseOnCloseRecord " +
  13314     "dseBeforeCancel " +
  13315     "dseAfterCancel " +
  13316     "dseOnUpdateDeadlockError " +
  13317     "dseBeforeDetailUpdate " +
  13318     "dseOnPrepareUpdate " +
  13319     "dseOnAnyRequisiteChange ";
  13320 
  13321   // enum TDataSetState
  13322   var TDataSetState = "dssEdit dssInsert dssBrowse dssInActive ";
  13323 
  13324   // enum TDateFormatType
  13325   var TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp ";
  13326 
  13327   // enum TDateOffsetType
  13328   var TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds ";
  13329 
  13330   // enum TDateTimeKind
  13331   var TDateTimeKind = "dtkndLocal dtkndUTC ";
  13332 
  13333   // enum TDeaAccessRights
  13334   var TDeaAccessRights = "arNone arView arEdit arFull ";
  13335 
  13336   // enum TDocumentDefaultAction
  13337   var TDocumentDefaultAction = "ddaView ddaEdit ";
  13338 
  13339   // enum TEditMode
  13340   var TEditMode =
  13341     "emLock " +
  13342     "emEdit " +
  13343     "emSign " +
  13344     "emExportWithLock " +
  13345     "emImportWithUnlock " +
  13346     "emChangeVersionNote " +
  13347     "emOpenForModify " +
  13348     "emChangeLifeStage " +
  13349     "emDelete " +
  13350     "emCreateVersion " +
  13351     "emImport " +
  13352     "emUnlockExportedWithLock " +
  13353     "emStart " +
  13354     "emAbort " +
  13355     "emReInit " +
  13356     "emMarkAsReaded " +
  13357     "emMarkAsUnreaded " +
  13358     "emPerform " +
  13359     "emAccept " +
  13360     "emResume " +
  13361     "emChangeRights " +
  13362     "emEditRoute " +
  13363     "emEditObserver " +
  13364     "emRecoveryFromLocalCopy " +
  13365     "emChangeWorkAccessType " +
  13366     "emChangeEncodeTypeToCertificate " +
  13367     "emChangeEncodeTypeToPassword " +
  13368     "emChangeEncodeTypeToNone " +
  13369     "emChangeEncodeTypeToCertificatePassword " +
  13370     "emChangeStandardRoute " +
  13371     "emGetText " +
  13372     "emOpenForView " +
  13373     "emMoveToStorage " +
  13374     "emCreateObject " +
  13375     "emChangeVersionHidden " +
  13376     "emDeleteVersion " +
  13377     "emChangeLifeCycleStage " +
  13378     "emApprovingSign " +
  13379     "emExport " +
  13380     "emContinue " +
  13381     "emLockFromEdit " +
  13382     "emUnLockForEdit " +
  13383     "emLockForServer " +
  13384     "emUnlockFromServer " +
  13385     "emDelegateAccessRights " +
  13386     "emReEncode ";
  13387 
  13388   // enum TEditorCloseObservType
  13389   var TEditorCloseObservType = "ecotFile ecotProcess ";
  13390 
  13391   // enum TEdmsApplicationAction
  13392   var TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute ";
  13393 
  13394   // enum TEDocumentLockType
  13395   var TEDocumentLockType = "edltAll edltNothing edltQuery ";
  13396 
  13397   // enum TEDocumentStepShowMode
  13398   var TEDocumentStepShowMode = "essmText essmCard ";
  13399 
  13400   // enum TEDocumentStepVersionType
  13401   var TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified ";
  13402 
  13403   // enum TEDocumentStorageFunction
  13404   var TEDocumentStorageFunction = "edsfExecutive edsfArchive ";
  13405 
  13406   // enum TEDocumentStorageType
  13407   var TEDocumentStorageType = "edstSQLServer edstFile ";
  13408 
  13409   // enum TEDocumentVersionSourceType
  13410   var TEDocumentVersionSourceType =
  13411     "edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile ";
  13412 
  13413   // enum TEDocumentVersionState
  13414   var TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete ";
  13415 
  13416   // enum TEncodeType
  13417   var TEncodeType = "etNone etCertificate etPassword etCertificatePassword ";
  13418 
  13419   // enum TExceptionCategory
  13420   var TExceptionCategory = "ecException ecWarning ecInformation ";
  13421 
  13422   // enum TExportedSignaturesType
  13423   var TExportedSignaturesType = "estAll estApprovingOnly ";
  13424 
  13425   // enum TExportedVersionType
  13426   var TExportedVersionType = "evtLast evtLastActive evtQuery ";
  13427 
  13428   // enum TFieldDataType
  13429   var TFieldDataType =
  13430     "fdtString " +
  13431     "fdtNumeric " +
  13432     "fdtInteger " +
  13433     "fdtDate " +
  13434     "fdtText " +
  13435     "fdtUnknown " +
  13436     "fdtWideString " +
  13437     "fdtLargeInteger ";
  13438 
  13439   // enum TFolderType
  13440   var TFolderType =
  13441     "ftInbox " +
  13442     "ftOutbox " +
  13443     "ftFavorites " +
  13444     "ftCommonFolder " +
  13445     "ftUserFolder " +
  13446     "ftComponents " +
  13447     "ftQuickLaunch " +
  13448     "ftShortcuts " +
  13449     "ftSearch ";
  13450 
  13451   // enum TGridRowHeight
  13452   var TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 ";
  13453 
  13454   // enum THyperlinkType
  13455   var THyperlinkType = "hltText " + "hltRTF " + "hltHTML ";
  13456 
  13457   // enum TImageFileFormat
  13458   var TImageFileFormat =
  13459     "iffBMP " +
  13460     "iffJPEG " +
  13461     "iffMultiPageTIFF " +
  13462     "iffSinglePageTIFF " +
  13463     "iffTIFF " +
  13464     "iffPNG ";
  13465 
  13466   // enum TImageMode
  13467   var TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome ";
  13468 
  13469   // enum TImageType
  13470   var TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG ";
  13471 
  13472   // enum TInplaceHintKind
  13473   var TInplaceHintKind =
  13474     "ikhInformation " + "ikhWarning " + "ikhError " + "ikhNoIcon ";
  13475 
  13476   // enum TISBLContext
  13477   var TISBLContext =
  13478     "icUnknown " +
  13479     "icScript " +
  13480     "icFunction " +
  13481     "icIntegratedReport " +
  13482     "icAnalyticReport " +
  13483     "icDataSetEventHandler " +
  13484     "icActionHandler " +
  13485     "icFormEventHandler " +
  13486     "icLookUpEventHandler " +
  13487     "icRequisiteChangeEventHandler " +
  13488     "icBeforeSearchEventHandler " +
  13489     "icRoleCalculation " +
  13490     "icSelectRouteEventHandler " +
  13491     "icBlockPropertyCalculation " +
  13492     "icBlockQueryParamsEventHandler " +
  13493     "icChangeSearchResultEventHandler " +
  13494     "icBlockEventHandler " +
  13495     "icSubTaskInitEventHandler " +
  13496     "icEDocDataSetEventHandler " +
  13497     "icEDocLookUpEventHandler " +
  13498     "icEDocActionHandler " +
  13499     "icEDocFormEventHandler " +
  13500     "icEDocRequisiteChangeEventHandler " +
  13501     "icStructuredConversionRule " +
  13502     "icStructuredConversionEventBefore " +
  13503     "icStructuredConversionEventAfter " +
  13504     "icWizardEventHandler " +
  13505     "icWizardFinishEventHandler " +
  13506     "icWizardStepEventHandler " +
  13507     "icWizardStepFinishEventHandler " +
  13508     "icWizardActionEnableEventHandler " +
  13509     "icWizardActionExecuteEventHandler " +
  13510     "icCreateJobsHandler " +
  13511     "icCreateNoticesHandler " +
  13512     "icBeforeLookUpEventHandler " +
  13513     "icAfterLookUpEventHandler " +
  13514     "icTaskAbortEventHandler " +
  13515     "icWorkflowBlockActionHandler " +
  13516     "icDialogDataSetEventHandler " +
  13517     "icDialogActionHandler " +
  13518     "icDialogLookUpEventHandler " +
  13519     "icDialogRequisiteChangeEventHandler " +
  13520     "icDialogFormEventHandler " +
  13521     "icDialogValidCloseEventHandler " +
  13522     "icBlockFormEventHandler " +
  13523     "icTaskFormEventHandler " +
  13524     "icReferenceMethod " +
  13525     "icEDocMethod " +
  13526     "icDialogMethod " +
  13527     "icProcessMessageHandler ";
  13528 
  13529   // enum TItemShow
  13530   var TItemShow = "isShow " + "isHide " + "isByUserSettings ";
  13531 
  13532   // enum TJobKind
  13533   var TJobKind = "jkJob " + "jkNotice " + "jkControlJob ";
  13534 
  13535   // enum TJoinType
  13536   var TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross ";
  13537 
  13538   // enum TLabelPos
  13539   var TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight ";
  13540 
  13541   // enum TLicensingType
  13542   var TLicensingType = "eltPerConnection " + "eltPerUser ";
  13543 
  13544   // enum TLifeCycleStageFontColor
  13545   var TLifeCycleStageFontColor =
  13546     "sfcUndefined " +
  13547     "sfcBlack " +
  13548     "sfcGreen " +
  13549     "sfcRed " +
  13550     "sfcBlue " +
  13551     "sfcOrange " +
  13552     "sfcLilac ";
  13553 
  13554   // enum TLifeCycleStageFontStyle
  13555   var TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal ";
  13556 
  13557   // enum TLockableDevelopmentComponentType
  13558   var TLockableDevelopmentComponentType =
  13559     "ldctStandardRoute " +
  13560     "ldctWizard " +
  13561     "ldctScript " +
  13562     "ldctFunction " +
  13563     "ldctRouteBlock " +
  13564     "ldctIntegratedReport " +
  13565     "ldctAnalyticReport " +
  13566     "ldctReferenceType " +
  13567     "ldctEDocumentType " +
  13568     "ldctDialog " +
  13569     "ldctServerEvents ";
  13570 
  13571   // enum TMaxRecordCountRestrictionType
  13572   var TMaxRecordCountRestrictionType =
  13573     "mrcrtNone " + "mrcrtUser " + "mrcrtMaximal " + "mrcrtCustom ";
  13574 
  13575   // enum TRangeValueType
  13576   var TRangeValueType =
  13577     "vtEqual " + "vtGreaterOrEqual " + "vtLessOrEqual " + "vtRange ";
  13578 
  13579   // enum TRelativeDate
  13580   var TRelativeDate =
  13581     "rdYesterday " +
  13582     "rdToday " +
  13583     "rdTomorrow " +
  13584     "rdThisWeek " +
  13585     "rdThisMonth " +
  13586     "rdThisYear " +
  13587     "rdNextMonth " +
  13588     "rdNextWeek " +
  13589     "rdLastWeek " +
  13590     "rdLastMonth ";
  13591 
  13592   // enum TReportDestination
  13593   var TReportDestination = "rdWindow " + "rdFile " + "rdPrinter ";
  13594 
  13595   // enum TReqDataType
  13596   var TReqDataType =
  13597     "rdtString " +
  13598     "rdtNumeric " +
  13599     "rdtInteger " +
  13600     "rdtDate " +
  13601     "rdtReference " +
  13602     "rdtAccount " +
  13603     "rdtText " +
  13604     "rdtPick " +
  13605     "rdtUnknown " +
  13606     "rdtLargeInteger " +
  13607     "rdtDocument ";
  13608 
  13609   // enum TRequisiteEventType
  13610   var TRequisiteEventType = "reOnChange " + "reOnChangeValues ";
  13611 
  13612   // enum TSBTimeType
  13613   var TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem ";
  13614 
  13615   // enum TSearchShowMode
  13616   var TSearchShowMode =
  13617     "ssmBrowse " + "ssmSelect " + "ssmMultiSelect " + "ssmBrowseModal ";
  13618 
  13619   // enum TSelectMode
  13620   var TSelectMode = "smSelect " + "smLike " + "smCard ";
  13621 
  13622   // enum TSignatureType
  13623   var TSignatureType = "stNone " + "stAuthenticating " + "stApproving ";
  13624 
  13625   // enum TSignerContentType
  13626   var TSignerContentType = "sctString " + "sctStream ";
  13627 
  13628   // enum TStringsSortType
  13629   var TStringsSortType = "sstAnsiSort " + "sstNaturalSort ";
  13630 
  13631   // enum TStringValueType
  13632   var TStringValueType = "svtEqual " + "svtContain ";
  13633 
  13634   // enum TStructuredObjectAttributeType
  13635   var TStructuredObjectAttributeType =
  13636     "soatString " +
  13637     "soatNumeric " +
  13638     "soatInteger " +
  13639     "soatDatetime " +
  13640     "soatReferenceRecord " +
  13641     "soatText " +
  13642     "soatPick " +
  13643     "soatBoolean " +
  13644     "soatEDocument " +
  13645     "soatAccount " +
  13646     "soatIntegerCollection " +
  13647     "soatNumericCollection " +
  13648     "soatStringCollection " +
  13649     "soatPickCollection " +
  13650     "soatDatetimeCollection " +
  13651     "soatBooleanCollection " +
  13652     "soatReferenceRecordCollection " +
  13653     "soatEDocumentCollection " +
  13654     "soatAccountCollection " +
  13655     "soatContents " +
  13656     "soatUnknown ";
  13657 
  13658   // enum TTaskAbortReason
  13659   var TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException ";
  13660 
  13661   // enum TTextValueType
  13662   var TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord ";
  13663 
  13664   // enum TUserObjectStatus
  13665   var TUserObjectStatus =
  13666     "usNone " +
  13667     "usCompleted " +
  13668     "usRedSquare " +
  13669     "usBlueSquare " +
  13670     "usYellowSquare " +
  13671     "usGreenSquare " +
  13672     "usOrangeSquare " +
  13673     "usPurpleSquare " +
  13674     "usFollowUp ";
  13675 
  13676   // enum TUserType
  13677   var TUserType =
  13678     "utUnknown " +
  13679     "utUser " +
  13680     "utDeveloper " +
  13681     "utAdministrator " +
  13682     "utSystemDeveloper " +
  13683     "utDisconnected ";
  13684 
  13685   // enum TValuesBuildType
  13686   var TValuesBuildType =
  13687     "btAnd " + "btDetailAnd " + "btOr " + "btNotOr " + "btOnly ";
  13688 
  13689   // enum TViewMode
  13690   var TViewMode = "vmView " + "vmSelect " + "vmNavigation ";
  13691 
  13692   // enum TViewSelectionMode
  13693   var TViewSelectionMode =
  13694     "vsmSingle " + "vsmMultiple " + "vsmMultipleCheck " + "vsmNoSelection ";
  13695 
  13696   // enum TWizardActionType
  13697   var TWizardActionType =
  13698     "wfatPrevious " + "wfatNext " + "wfatCancel " + "wfatFinish ";
  13699 
  13700   // enum TWizardFormElementProperty
  13701   var TWizardFormElementProperty =
  13702     "wfepUndefined " +
  13703     "wfepText3 " +
  13704     "wfepText6 " +
  13705     "wfepText9 " +
  13706     "wfepSpinEdit " +
  13707     "wfepDropDown " +
  13708     "wfepRadioGroup " +
  13709     "wfepFlag " +
  13710     "wfepText12 " +
  13711     "wfepText15 " +
  13712     "wfepText18 " +
  13713     "wfepText21 " +
  13714     "wfepText24 " +
  13715     "wfepText27 " +
  13716     "wfepText30 " +
  13717     "wfepRadioGroupColumn1 " +
  13718     "wfepRadioGroupColumn2 " +
  13719     "wfepRadioGroupColumn3 ";
  13720 
  13721   // enum TWizardFormElementType
  13722   var TWizardFormElementType =
  13723     "wfetQueryParameter " + "wfetText " + "wfetDelimiter " + "wfetLabel ";
  13724 
  13725   // enum TWizardParamType
  13726   var TWizardParamType =
  13727     "wptString " +
  13728     "wptInteger " +
  13729     "wptNumeric " +
  13730     "wptBoolean " +
  13731     "wptDateTime " +
  13732     "wptPick " +
  13733     "wptText " +
  13734     "wptUser " +
  13735     "wptUserList " +
  13736     "wptEDocumentInfo " +
  13737     "wptEDocumentInfoList " +
  13738     "wptReferenceRecordInfo " +
  13739     "wptReferenceRecordInfoList " +
  13740     "wptFolderInfo " +
  13741     "wptTaskInfo " +
  13742     "wptContents " +
  13743     "wptFileName " +
  13744     "wptDate ";
  13745 
  13746   // enum TWizardStepResult
  13747   var TWizardStepResult =
  13748     "wsrComplete " +
  13749     "wsrGoNext " +
  13750     "wsrGoPrevious " +
  13751     "wsrCustom " +
  13752     "wsrCancel " +
  13753     "wsrGoFinal ";
  13754 
  13755   // enum TWizardStepType
  13756   var TWizardStepType =
  13757     "wstForm " +
  13758     "wstEDocument " +
  13759     "wstTaskCard " +
  13760     "wstReferenceRecordCard " +
  13761     "wstFinal ";
  13762 
  13763   // enum TWorkAccessType
  13764   var TWorkAccessType = "waAll " + "waPerformers " + "waManual ";
  13765 
  13766   // enum TWorkflowBlockType
  13767   var TWorkflowBlockType =
  13768     "wsbStart " +
  13769     "wsbFinish " +
  13770     "wsbNotice " +
  13771     "wsbStep " +
  13772     "wsbDecision " +
  13773     "wsbWait " +
  13774     "wsbMonitor " +
  13775     "wsbScript " +
  13776     "wsbConnector " +
  13777     "wsbSubTask " +
  13778     "wsbLifeCycleStage " +
  13779     "wsbPause ";
  13780 
  13781   // enum TWorkflowDataType
  13782   var TWorkflowDataType =
  13783     "wdtInteger " +
  13784     "wdtFloat " +
  13785     "wdtString " +
  13786     "wdtPick " +
  13787     "wdtDateTime " +
  13788     "wdtBoolean " +
  13789     "wdtTask " +
  13790     "wdtJob " +
  13791     "wdtFolder " +
  13792     "wdtEDocument " +
  13793     "wdtReferenceRecord " +
  13794     "wdtUser " +
  13795     "wdtGroup " +
  13796     "wdtRole " +
  13797     "wdtIntegerCollection " +
  13798     "wdtFloatCollection " +
  13799     "wdtStringCollection " +
  13800     "wdtPickCollection " +
  13801     "wdtDateTimeCollection " +
  13802     "wdtBooleanCollection " +
  13803     "wdtTaskCollection " +
  13804     "wdtJobCollection " +
  13805     "wdtFolderCollection " +
  13806     "wdtEDocumentCollection " +
  13807     "wdtReferenceRecordCollection " +
  13808     "wdtUserCollection " +
  13809     "wdtGroupCollection " +
  13810     "wdtRoleCollection " +
  13811     "wdtContents " +
  13812     "wdtUserList " +
  13813     "wdtSearchDescription " +
  13814     "wdtDeadLine " +
  13815     "wdtPickSet " +
  13816     "wdtAccountCollection ";
  13817 
  13818   // enum TWorkImportance
  13819   var TWorkImportance = "wiLow " + "wiNormal " + "wiHigh ";
  13820 
  13821   // enum TWorkRouteType
  13822   var TWorkRouteType = "wrtSoft " + "wrtHard ";
  13823 
  13824   // enum TWorkState
  13825   var TWorkState =
  13826     "wsInit " +
  13827     "wsRunning " +
  13828     "wsDone " +
  13829     "wsControlled " +
  13830     "wsAborted " +
  13831     "wsContinued ";
  13832 
  13833   // enum TWorkTextBuildingMode
  13834   var TWorkTextBuildingMode =
  13835     "wtmFull " + "wtmFromCurrent " + "wtmOnlyCurrent ";
  13836 
  13837   // Перечисления
  13838   var ENUMS =
  13839     TAccountType +
  13840     TActionEnabledMode +
  13841     TAddPosition +
  13842     TAlignment +
  13843     TAreaShowMode +
  13844     TCertificateInvalidationReason +
  13845     TCertificateType +
  13846     TCheckListBoxItemState +
  13847     TCloseOnEsc +
  13848     TCompType +
  13849     TConditionFormat +
  13850     TConnectionIntent +
  13851     TContentKind +
  13852     TControlType +
  13853     TCriterionContentType +
  13854     TCultureType +
  13855     TDataSetEventType +
  13856     TDataSetState +
  13857     TDateFormatType +
  13858     TDateOffsetType +
  13859     TDateTimeKind +
  13860     TDeaAccessRights +
  13861     TDocumentDefaultAction +
  13862     TEditMode +
  13863     TEditorCloseObservType +
  13864     TEdmsApplicationAction +
  13865     TEDocumentLockType +
  13866     TEDocumentStepShowMode +
  13867     TEDocumentStepVersionType +
  13868     TEDocumentStorageFunction +
  13869     TEDocumentStorageType +
  13870     TEDocumentVersionSourceType +
  13871     TEDocumentVersionState +
  13872     TEncodeType +
  13873     TExceptionCategory +
  13874     TExportedSignaturesType +
  13875     TExportedVersionType +
  13876     TFieldDataType +
  13877     TFolderType +
  13878     TGridRowHeight +
  13879     THyperlinkType +
  13880     TImageFileFormat +
  13881     TImageMode +
  13882     TImageType +
  13883     TInplaceHintKind +
  13884     TISBLContext +
  13885     TItemShow +
  13886     TJobKind +
  13887     TJoinType +
  13888     TLabelPos +
  13889     TLicensingType +
  13890     TLifeCycleStageFontColor +
  13891     TLifeCycleStageFontStyle +
  13892     TLockableDevelopmentComponentType +
  13893     TMaxRecordCountRestrictionType +
  13894     TRangeValueType +
  13895     TRelativeDate +
  13896     TReportDestination +
  13897     TReqDataType +
  13898     TRequisiteEventType +
  13899     TSBTimeType +
  13900     TSearchShowMode +
  13901     TSelectMode +
  13902     TSignatureType +
  13903     TSignerContentType +
  13904     TStringsSortType +
  13905     TStringValueType +
  13906     TStructuredObjectAttributeType +
  13907     TTaskAbortReason +
  13908     TTextValueType +
  13909     TUserObjectStatus +
  13910     TUserType +
  13911     TValuesBuildType +
  13912     TViewMode +
  13913     TViewSelectionMode +
  13914     TWizardActionType +
  13915     TWizardFormElementProperty +
  13916     TWizardFormElementType +
  13917     TWizardParamType +
  13918     TWizardStepResult +
  13919     TWizardStepType +
  13920     TWorkAccessType +
  13921     TWorkflowBlockType +
  13922     TWorkflowDataType +
  13923     TWorkImportance +
  13924     TWorkRouteType +
  13925     TWorkState +
  13926     TWorkTextBuildingMode;
  13927 
  13928   // Системные функции ==> SYSFUNCTIONS
  13929   var system_functions =
  13930     "AddSubString " +
  13931     "AdjustLineBreaks " +
  13932     "AmountInWords " +
  13933     "Analysis " +
  13934     "ArrayDimCount " +
  13935     "ArrayHighBound " +
  13936     "ArrayLowBound " +
  13937     "ArrayOf " +
  13938     "ArrayReDim " +
  13939     "Assert " +
  13940     "Assigned " +
  13941     "BeginOfMonth " +
  13942     "BeginOfPeriod " +
  13943     "BuildProfilingOperationAnalysis " +
  13944     "CallProcedure " +
  13945     "CanReadFile " +
  13946     "CArrayElement " +
  13947     "CDataSetRequisite " +
  13948     "ChangeDate " +
  13949     "ChangeReferenceDataset " +
  13950     "Char " +
  13951     "CharPos " +
  13952     "CheckParam " +
  13953     "CheckParamValue " +
  13954     "CompareStrings " +
  13955     "ConstantExists " +
  13956     "ControlState " +
  13957     "ConvertDateStr " +
  13958     "Copy " +
  13959     "CopyFile " +
  13960     "CreateArray " +
  13961     "CreateCachedReference " +
  13962     "CreateConnection " +
  13963     "CreateDialog " +
  13964     "CreateDualListDialog " +
  13965     "CreateEditor " +
  13966     "CreateException " +
  13967     "CreateFile " +
  13968     "CreateFolderDialog " +
  13969     "CreateInputDialog " +
  13970     "CreateLinkFile " +
  13971     "CreateList " +
  13972     "CreateLock " +
  13973     "CreateMemoryDataSet " +
  13974     "CreateObject " +
  13975     "CreateOpenDialog " +
  13976     "CreateProgress " +
  13977     "CreateQuery " +
  13978     "CreateReference " +
  13979     "CreateReport " +
  13980     "CreateSaveDialog " +
  13981     "CreateScript " +
  13982     "CreateSQLPivotFunction " +
  13983     "CreateStringList " +
  13984     "CreateTreeListSelectDialog " +
  13985     "CSelectSQL " +
  13986     "CSQL " +
  13987     "CSubString " +
  13988     "CurrentUserID " +
  13989     "CurrentUserName " +
  13990     "CurrentVersion " +
  13991     "DataSetLocateEx " +
  13992     "DateDiff " +
  13993     "DateTimeDiff " +
  13994     "DateToStr " +
  13995     "DayOfWeek " +
  13996     "DeleteFile " +
  13997     "DirectoryExists " +
  13998     "DisableCheckAccessRights " +
  13999     "DisableCheckFullShowingRestriction " +
  14000     "DisableMassTaskSendingRestrictions " +
  14001     "DropTable " +
  14002     "DupeString " +
  14003     "EditText " +
  14004     "EnableCheckAccessRights " +
  14005     "EnableCheckFullShowingRestriction " +
  14006     "EnableMassTaskSendingRestrictions " +
  14007     "EndOfMonth " +
  14008     "EndOfPeriod " +
  14009     "ExceptionExists " +
  14010     "ExceptionsOff " +
  14011     "ExceptionsOn " +
  14012     "Execute " +
  14013     "ExecuteProcess " +
  14014     "Exit " +
  14015     "ExpandEnvironmentVariables " +
  14016     "ExtractFileDrive " +
  14017     "ExtractFileExt " +
  14018     "ExtractFileName " +
  14019     "ExtractFilePath " +
  14020     "ExtractParams " +
  14021     "FileExists " +
  14022     "FileSize " +
  14023     "FindFile " +
  14024     "FindSubString " +
  14025     "FirmContext " +
  14026     "ForceDirectories " +
  14027     "Format " +
  14028     "FormatDate " +
  14029     "FormatNumeric " +
  14030     "FormatSQLDate " +
  14031     "FormatString " +
  14032     "FreeException " +
  14033     "GetComponent " +
  14034     "GetComponentLaunchParam " +
  14035     "GetConstant " +
  14036     "GetLastException " +
  14037     "GetReferenceRecord " +
  14038     "GetRefTypeByRefID " +
  14039     "GetTableID " +
  14040     "GetTempFolder " +
  14041     "IfThen " +
  14042     "In " +
  14043     "IndexOf " +
  14044     "InputDialog " +
  14045     "InputDialogEx " +
  14046     "InteractiveMode " +
  14047     "IsFileLocked " +
  14048     "IsGraphicFile " +
  14049     "IsNumeric " +
  14050     "Length " +
  14051     "LoadString " +
  14052     "LoadStringFmt " +
  14053     "LocalTimeToUTC " +
  14054     "LowerCase " +
  14055     "Max " +
  14056     "MessageBox " +
  14057     "MessageBoxEx " +
  14058     "MimeDecodeBinary " +
  14059     "MimeDecodeString " +
  14060     "MimeEncodeBinary " +
  14061     "MimeEncodeString " +
  14062     "Min " +
  14063     "MoneyInWords " +
  14064     "MoveFile " +
  14065     "NewID " +
  14066     "Now " +
  14067     "OpenFile " +
  14068     "Ord " +
  14069     "Precision " +
  14070     "Raise " +
  14071     "ReadCertificateFromFile " +
  14072     "ReadFile " +
  14073     "ReferenceCodeByID " +
  14074     "ReferenceNumber " +
  14075     "ReferenceRequisiteMode " +
  14076     "ReferenceRequisiteValue " +
  14077     "RegionDateSettings " +
  14078     "RegionNumberSettings " +
  14079     "RegionTimeSettings " +
  14080     "RegRead " +
  14081     "RegWrite " +
  14082     "RenameFile " +
  14083     "Replace " +
  14084     "Round " +
  14085     "SelectServerCode " +
  14086     "SelectSQL " +
  14087     "ServerDateTime " +
  14088     "SetConstant " +
  14089     "SetManagedFolderFieldsState " +
  14090     "ShowConstantsInputDialog " +
  14091     "ShowMessage " +
  14092     "Sleep " +
  14093     "Split " +
  14094     "SQL " +
  14095     "SQL2XLSTAB " +
  14096     "SQLProfilingSendReport " +
  14097     "StrToDate " +
  14098     "SubString " +
  14099     "SubStringCount " +
  14100     "SystemSetting " +
  14101     "Time " +
  14102     "TimeDiff " +
  14103     "Today " +
  14104     "Transliterate " +
  14105     "Trim " +
  14106     "UpperCase " +
  14107     "UserStatus " +
  14108     "UTCToLocalTime " +
  14109     "ValidateXML " +
  14110     "VarIsClear " +
  14111     "VarIsEmpty " +
  14112     "VarIsNull " +
  14113     "WorkTimeDiff " +
  14114     "WriteFile " +
  14115     "WriteFileEx " +
  14116     "WriteObjectHistory " +
  14117     "Анализ " +
  14118     "БазаДанных " +
  14119     "БлокЕсть " +
  14120     "БлокЕстьРасш " +
  14121     "БлокИнфо " +
  14122     "БлокСнять " +
  14123     "БлокСнятьРасш " +
  14124     "БлокУстановить " +
  14125     "Ввод " +
  14126     "ВводМеню " +
  14127     "ВедС " +
  14128     "ВедСпр " +
  14129     "ВерхняяГраницаМассива " +
  14130     "ВнешПрогр " +
  14131     "Восст " +
  14132     "ВременнаяПапка " +
  14133     "Время " +
  14134     "ВыборSQL " +
  14135     "ВыбратьЗапись " +
  14136     "ВыделитьСтр " +
  14137     "Вызвать " +
  14138     "Выполнить " +
  14139     "ВыпПрогр " +
  14140     "ГрафическийФайл " +
  14141     "ГруппаДополнительно " +
  14142     "ДатаВремяСерв " +
  14143     "ДеньНедели " +
  14144     "ДиалогДаНет " +
  14145     "ДлинаСтр " +
  14146     "ДобПодстр " +
  14147     "ЕПусто " +
  14148     "ЕслиТо " +
  14149     "ЕЧисло " +
  14150     "ЗамПодстр " +
  14151     "ЗаписьСправочника " +
  14152     "ЗначПоляСпр " +
  14153     "ИДТипСпр " +
  14154     "ИзвлечьДиск " +
  14155     "ИзвлечьИмяФайла " +
  14156     "ИзвлечьПуть " +
  14157     "ИзвлечьРасширение " +
  14158     "ИзмДат " +
  14159     "ИзменитьРазмерМассива " +
  14160     "ИзмеренийМассива " +
  14161     "ИмяОрг " +
  14162     "ИмяПоляСпр " +
  14163     "Индекс " +
  14164     "ИндикаторЗакрыть " +
  14165     "ИндикаторОткрыть " +
  14166     "ИндикаторШаг " +
  14167     "ИнтерактивныйРежим " +
  14168     "ИтогТблСпр " +
  14169     "КодВидВедСпр " +
  14170     "КодВидСпрПоИД " +
  14171     "КодПоAnalit " +
  14172     "КодСимвола " +
  14173     "КодСпр " +
  14174     "КолПодстр " +
  14175     "КолПроп " +
  14176     "КонМес " +
  14177     "Конст " +
  14178     "КонстЕсть " +
  14179     "КонстЗнач " +
  14180     "КонТран " +
  14181     "КопироватьФайл " +
  14182     "КопияСтр " +
  14183     "КПериод " +
  14184     "КСтрТблСпр " +
  14185     "Макс " +
  14186     "МаксСтрТблСпр " +
  14187     "Массив " +
  14188     "Меню " +
  14189     "МенюРасш " +
  14190     "Мин " +
  14191     "НаборДанныхНайтиРасш " +
  14192     "НаимВидСпр " +
  14193     "НаимПоAnalit " +
  14194     "НаимСпр " +
  14195     "НастроитьПереводыСтрок " +
  14196     "НачМес " +
  14197     "НачТран " +
  14198     "НижняяГраницаМассива " +
  14199     "НомерСпр " +
  14200     "НПериод " +
  14201     "Окно " +
  14202     "Окр " +
  14203     "Окружение " +
  14204     "ОтлИнфДобавить " +
  14205     "ОтлИнфУдалить " +
  14206     "Отчет " +
  14207     "ОтчетАнал " +
  14208     "ОтчетИнт " +
  14209     "ПапкаСуществует " +
  14210     "Пауза " +
  14211     "ПВыборSQL " +
  14212     "ПереименоватьФайл " +
  14213     "Переменные " +
  14214     "ПереместитьФайл " +
  14215     "Подстр " +
  14216     "ПоискПодстр " +
  14217     "ПоискСтр " +
  14218     "ПолучитьИДТаблицы " +
  14219     "ПользовательДополнительно " +
  14220     "ПользовательИД " +
  14221     "ПользовательИмя " +
  14222     "ПользовательСтатус " +
  14223     "Прервать " +
  14224     "ПроверитьПараметр " +
  14225     "ПроверитьПараметрЗнач " +
  14226     "ПроверитьУсловие " +
  14227     "РазбСтр " +
  14228     "РазнВремя " +
  14229     "РазнДат " +
  14230     "РазнДатаВремя " +
  14231     "РазнРабВремя " +
  14232     "РегУстВрем " +
  14233     "РегУстДат " +
  14234     "РегУстЧсл " +
  14235     "РедТекст " +
  14236     "РеестрЗапись " +
  14237     "РеестрСписокИменПарам " +
  14238     "РеестрЧтение " +
  14239     "РеквСпр " +
  14240     "РеквСпрПр " +
  14241     "Сегодня " +
  14242     "Сейчас " +
  14243     "Сервер " +
  14244     "СерверПроцессИД " +
  14245     "СертификатФайлСчитать " +
  14246     "СжПроб " +
  14247     "Символ " +
  14248     "СистемаДиректумКод " +
  14249     "СистемаИнформация " +
  14250     "СистемаКод " +
  14251     "Содержит " +
  14252     "СоединениеЗакрыть " +
  14253     "СоединениеОткрыть " +
  14254     "СоздатьДиалог " +
  14255     "СоздатьДиалогВыбораИзДвухСписков " +
  14256     "СоздатьДиалогВыбораПапки " +
  14257     "СоздатьДиалогОткрытияФайла " +
  14258     "СоздатьДиалогСохраненияФайла " +
  14259     "СоздатьЗапрос " +
  14260     "СоздатьИндикатор " +
  14261     "СоздатьИсключение " +
  14262     "СоздатьКэшированныйСправочник " +
  14263     "СоздатьМассив " +
  14264     "СоздатьНаборДанных " +
  14265     "СоздатьОбъект " +
  14266     "СоздатьОтчет " +
  14267     "СоздатьПапку " +
  14268     "СоздатьРедактор " +
  14269     "СоздатьСоединение " +
  14270     "СоздатьСписок " +
  14271     "СоздатьСписокСтрок " +
  14272     "СоздатьСправочник " +
  14273     "СоздатьСценарий " +
  14274     "СоздСпр " +
  14275     "СостСпр " +
  14276     "Сохр " +
  14277     "СохрСпр " +
  14278     "СписокСистем " +
  14279     "Спр " +
  14280     "Справочник " +
  14281     "СпрБлокЕсть " +
  14282     "СпрБлокСнять " +
  14283     "СпрБлокСнятьРасш " +
  14284     "СпрБлокУстановить " +
  14285     "СпрИзмНабДан " +
  14286     "СпрКод " +
  14287     "СпрНомер " +
  14288     "СпрОбновить " +
  14289     "СпрОткрыть " +
  14290     "СпрОтменить " +
  14291     "СпрПарам " +
  14292     "СпрПолеЗнач " +
  14293     "СпрПолеИмя " +
  14294     "СпрРекв " +
  14295     "СпрРеквВведЗн " +
  14296     "СпрРеквНовые " +
  14297     "СпрРеквПр " +
  14298     "СпрРеквПредЗн " +
  14299     "СпрРеквРежим " +
  14300     "СпрРеквТипТекст " +
  14301     "СпрСоздать " +
  14302     "СпрСост " +
  14303     "СпрСохранить " +
  14304     "СпрТблИтог " +
  14305     "СпрТблСтр " +
  14306     "СпрТблСтрКол " +
  14307     "СпрТблСтрМакс " +
  14308     "СпрТблСтрМин " +
  14309     "СпрТблСтрПред " +
  14310     "СпрТблСтрСлед " +
  14311     "СпрТблСтрСозд " +
  14312     "СпрТблСтрУд " +
  14313     "СпрТекПредст " +
  14314     "СпрУдалить " +
  14315     "СравнитьСтр " +
  14316     "СтрВерхРегистр " +
  14317     "СтрНижнРегистр " +
  14318     "СтрТблСпр " +
  14319     "СумПроп " +
  14320     "Сценарий " +
  14321     "СценарийПарам " +
  14322     "ТекВерсия " +
  14323     "ТекОрг " +
  14324     "Точн " +
  14325     "Тран " +
  14326     "Транслитерация " +
  14327     "УдалитьТаблицу " +
  14328     "УдалитьФайл " +
  14329     "УдСпр " +
  14330     "УдСтрТблСпр " +
  14331     "Уст " +
  14332     "УстановкиКонстант " +
  14333     "ФайлАтрибутСчитать " +
  14334     "ФайлАтрибутУстановить " +
  14335     "ФайлВремя " +
  14336     "ФайлВремяУстановить " +
  14337     "ФайлВыбрать " +
  14338     "ФайлЗанят " +
  14339     "ФайлЗаписать " +
  14340     "ФайлИскать " +
  14341     "ФайлКопировать " +
  14342     "ФайлМожноЧитать " +
  14343     "ФайлОткрыть " +
  14344     "ФайлПереименовать " +
  14345     "ФайлПерекодировать " +
  14346     "ФайлПереместить " +
  14347     "ФайлПросмотреть " +
  14348     "ФайлРазмер " +
  14349     "ФайлСоздать " +
  14350     "ФайлСсылкаСоздать " +
  14351     "ФайлСуществует " +
  14352     "ФайлСчитать " +
  14353     "ФайлУдалить " +
  14354     "ФмтSQLДат " +
  14355     "ФмтДат " +
  14356     "ФмтСтр " +
  14357     "ФмтЧсл " +
  14358     "Формат " +
  14359     "ЦМассивЭлемент " +
  14360     "ЦНаборДанныхРеквизит " +
  14361     "ЦПодстр ";
  14362 
  14363   // Предопределенные переменные ==> built_in
  14364   var predefined_variables =
  14365     "AltState " +
  14366     "Application " +
  14367     "CallType " +
  14368     "ComponentTokens " +
  14369     "CreatedJobs " +
  14370     "CreatedNotices " +
  14371     "ControlState " +
  14372     "DialogResult " +
  14373     "Dialogs " +
  14374     "EDocuments " +
  14375     "EDocumentVersionSource " +
  14376     "Folders " +
  14377     "GlobalIDs " +
  14378     "Job " +
  14379     "Jobs " +
  14380     "InputValue " +
  14381     "LookUpReference " +
  14382     "LookUpRequisiteNames " +
  14383     "LookUpSearch " +
  14384     "Object " +
  14385     "ParentComponent " +
  14386     "Processes " +
  14387     "References " +
  14388     "Requisite " +
  14389     "ReportName " +
  14390     "Reports " +
  14391     "Result " +
  14392     "Scripts " +
  14393     "Searches " +
  14394     "SelectedAttachments " +
  14395     "SelectedItems " +
  14396     "SelectMode " +
  14397     "Sender " +
  14398     "ServerEvents " +
  14399     "ServiceFactory " +
  14400     "ShiftState " +
  14401     "SubTask " +
  14402     "SystemDialogs " +
  14403     "Tasks " +
  14404     "Wizard " +
  14405     "Wizards " +
  14406     "Work " +
  14407     "ВызовСпособ " +
  14408     "ИмяОтчета " +
  14409     "РеквЗнач ";
  14410 
  14411   // Интерфейсы ==> type
  14412   var interfaces =
  14413     "IApplication " +
  14414     "IAccessRights " +
  14415     "IAccountRepository " +
  14416     "IAccountSelectionRestrictions " +
  14417     "IAction " +
  14418     "IActionList " +
  14419     "IAdministrationHistoryDescription " +
  14420     "IAnchors " +
  14421     "IApplication " +
  14422     "IArchiveInfo " +
  14423     "IAttachment " +
  14424     "IAttachmentList " +
  14425     "ICheckListBox " +
  14426     "ICheckPointedList " +
  14427     "IColumn " +
  14428     "IComponent " +
  14429     "IComponentDescription " +
  14430     "IComponentToken " +
  14431     "IComponentTokenFactory " +
  14432     "IComponentTokenInfo " +
  14433     "ICompRecordInfo " +
  14434     "IConnection " +
  14435     "IContents " +
  14436     "IControl " +
  14437     "IControlJob " +
  14438     "IControlJobInfo " +
  14439     "IControlList " +
  14440     "ICrypto " +
  14441     "ICrypto2 " +
  14442     "ICustomJob " +
  14443     "ICustomJobInfo " +
  14444     "ICustomListBox " +
  14445     "ICustomObjectWizardStep " +
  14446     "ICustomWork " +
  14447     "ICustomWorkInfo " +
  14448     "IDataSet " +
  14449     "IDataSetAccessInfo " +
  14450     "IDataSigner " +
  14451     "IDateCriterion " +
  14452     "IDateRequisite " +
  14453     "IDateRequisiteDescription " +
  14454     "IDateValue " +
  14455     "IDeaAccessRights " +
  14456     "IDeaObjectInfo " +
  14457     "IDevelopmentComponentLock " +
  14458     "IDialog " +
  14459     "IDialogFactory " +
  14460     "IDialogPickRequisiteItems " +
  14461     "IDialogsFactory " +
  14462     "IDICSFactory " +
  14463     "IDocRequisite " +
  14464     "IDocumentInfo " +
  14465     "IDualListDialog " +
  14466     "IECertificate " +
  14467     "IECertificateInfo " +
  14468     "IECertificates " +
  14469     "IEditControl " +
  14470     "IEditorForm " +
  14471     "IEdmsExplorer " +
  14472     "IEdmsObject " +
  14473     "IEdmsObjectDescription " +
  14474     "IEdmsObjectFactory " +
  14475     "IEdmsObjectInfo " +
  14476     "IEDocument " +
  14477     "IEDocumentAccessRights " +
  14478     "IEDocumentDescription " +
  14479     "IEDocumentEditor " +
  14480     "IEDocumentFactory " +
  14481     "IEDocumentInfo " +
  14482     "IEDocumentStorage " +
  14483     "IEDocumentVersion " +
  14484     "IEDocumentVersionListDialog " +
  14485     "IEDocumentVersionSource " +
  14486     "IEDocumentWizardStep " +
  14487     "IEDocVerSignature " +
  14488     "IEDocVersionState " +
  14489     "IEnabledMode " +
  14490     "IEncodeProvider " +
  14491     "IEncrypter " +
  14492     "IEvent " +
  14493     "IEventList " +
  14494     "IException " +
  14495     "IExternalEvents " +
  14496     "IExternalHandler " +
  14497     "IFactory " +
  14498     "IField " +
  14499     "IFileDialog " +
  14500     "IFolder " +
  14501     "IFolderDescription " +
  14502     "IFolderDialog " +
  14503     "IFolderFactory " +
  14504     "IFolderInfo " +
  14505     "IForEach " +
  14506     "IForm " +
  14507     "IFormTitle " +
  14508     "IFormWizardStep " +
  14509     "IGlobalIDFactory " +
  14510     "IGlobalIDInfo " +
  14511     "IGrid " +
  14512     "IHasher " +
  14513     "IHistoryDescription " +
  14514     "IHyperLinkControl " +
  14515     "IImageButton " +
  14516     "IImageControl " +
  14517     "IInnerPanel " +
  14518     "IInplaceHint " +
  14519     "IIntegerCriterion " +
  14520     "IIntegerList " +
  14521     "IIntegerRequisite " +
  14522     "IIntegerValue " +
  14523     "IISBLEditorForm " +
  14524     "IJob " +
  14525     "IJobDescription " +
  14526     "IJobFactory " +
  14527     "IJobForm " +
  14528     "IJobInfo " +
  14529     "ILabelControl " +
  14530     "ILargeIntegerCriterion " +
  14531     "ILargeIntegerRequisite " +
  14532     "ILargeIntegerValue " +
  14533     "ILicenseInfo " +
  14534     "ILifeCycleStage " +
  14535     "IList " +
  14536     "IListBox " +
  14537     "ILocalIDInfo " +
  14538     "ILocalization " +
  14539     "ILock " +
  14540     "IMemoryDataSet " +
  14541     "IMessagingFactory " +
  14542     "IMetadataRepository " +
  14543     "INotice " +
  14544     "INoticeInfo " +
  14545     "INumericCriterion " +
  14546     "INumericRequisite " +
  14547     "INumericValue " +
  14548     "IObject " +
  14549     "IObjectDescription " +
  14550     "IObjectImporter " +
  14551     "IObjectInfo " +
  14552     "IObserver " +
  14553     "IPanelGroup " +
  14554     "IPickCriterion " +
  14555     "IPickProperty " +
  14556     "IPickRequisite " +
  14557     "IPickRequisiteDescription " +
  14558     "IPickRequisiteItem " +
  14559     "IPickRequisiteItems " +
  14560     "IPickValue " +
  14561     "IPrivilege " +
  14562     "IPrivilegeList " +
  14563     "IProcess " +
  14564     "IProcessFactory " +
  14565     "IProcessMessage " +
  14566     "IProgress " +
  14567     "IProperty " +
  14568     "IPropertyChangeEvent " +
  14569     "IQuery " +
  14570     "IReference " +
  14571     "IReferenceCriterion " +
  14572     "IReferenceEnabledMode " +
  14573     "IReferenceFactory " +
  14574     "IReferenceHistoryDescription " +
  14575     "IReferenceInfo " +
  14576     "IReferenceRecordCardWizardStep " +
  14577     "IReferenceRequisiteDescription " +
  14578     "IReferencesFactory " +
  14579     "IReferenceValue " +
  14580     "IRefRequisite " +
  14581     "IReport " +
  14582     "IReportFactory " +
  14583     "IRequisite " +
  14584     "IRequisiteDescription " +
  14585     "IRequisiteDescriptionList " +
  14586     "IRequisiteFactory " +
  14587     "IRichEdit " +
  14588     "IRouteStep " +
  14589     "IRule " +
  14590     "IRuleList " +
  14591     "ISchemeBlock " +
  14592     "IScript " +
  14593     "IScriptFactory " +
  14594     "ISearchCriteria " +
  14595     "ISearchCriterion " +
  14596     "ISearchDescription " +
  14597     "ISearchFactory " +
  14598     "ISearchFolderInfo " +
  14599     "ISearchForObjectDescription " +
  14600     "ISearchResultRestrictions " +
  14601     "ISecuredContext " +
  14602     "ISelectDialog " +
  14603     "IServerEvent " +
  14604     "IServerEventFactory " +
  14605     "IServiceDialog " +
  14606     "IServiceFactory " +
  14607     "ISignature " +
  14608     "ISignProvider " +
  14609     "ISignProvider2 " +
  14610     "ISignProvider3 " +
  14611     "ISimpleCriterion " +
  14612     "IStringCriterion " +
  14613     "IStringList " +
  14614     "IStringRequisite " +
  14615     "IStringRequisiteDescription " +
  14616     "IStringValue " +
  14617     "ISystemDialogsFactory " +
  14618     "ISystemInfo " +
  14619     "ITabSheet " +
  14620     "ITask " +
  14621     "ITaskAbortReasonInfo " +
  14622     "ITaskCardWizardStep " +
  14623     "ITaskDescription " +
  14624     "ITaskFactory " +
  14625     "ITaskInfo " +
  14626     "ITaskRoute " +
  14627     "ITextCriterion " +
  14628     "ITextRequisite " +
  14629     "ITextValue " +
  14630     "ITreeListSelectDialog " +
  14631     "IUser " +
  14632     "IUserList " +
  14633     "IValue " +
  14634     "IView " +
  14635     "IWebBrowserControl " +
  14636     "IWizard " +
  14637     "IWizardAction " +
  14638     "IWizardFactory " +
  14639     "IWizardFormElement " +
  14640     "IWizardParam " +
  14641     "IWizardPickParam " +
  14642     "IWizardReferenceParam " +
  14643     "IWizardStep " +
  14644     "IWorkAccessRights " +
  14645     "IWorkDescription " +
  14646     "IWorkflowAskableParam " +
  14647     "IWorkflowAskableParams " +
  14648     "IWorkflowBlock " +
  14649     "IWorkflowBlockResult " +
  14650     "IWorkflowEnabledMode " +
  14651     "IWorkflowParam " +
  14652     "IWorkflowPickParam " +
  14653     "IWorkflowReferenceParam " +
  14654     "IWorkState " +
  14655     "IWorkTreeCustomNode " +
  14656     "IWorkTreeJobNode " +
  14657     "IWorkTreeTaskNode " +
  14658     "IXMLEditorForm " +
  14659     "SBCrypto ";
  14660 
  14661   // built_in : встроенные или библиотечные объекты (константы, перечисления)
  14662   var BUILTIN = CONSTANTS + ENUMS;
  14663 
  14664   // class: встроенные наборы значений, системные объекты, фабрики
  14665   var CLASS = predefined_variables;
  14666 
  14667   // literal : примитивные типы
  14668   var LITERAL = "null true false nil ";
  14669 
  14670   // number : числа
  14671   var NUMBERS = {
  14672     className: "number",
  14673     begin: hljs.NUMBER_RE,
  14674     relevance: 0,
  14675   };
  14676 
  14677   // string : строки
  14678   var STRINGS = {
  14679     className: "string",
  14680     variants: [{ begin: '"', end: '"' }, { begin: "'", end: "'" }],
  14681   };
  14682 
  14683   // Токены
  14684   var DOCTAGS = {
  14685     className: "doctag",
  14686     begin: "\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",
  14687     relevance: 0,
  14688   };
  14689 
  14690   // Однострочный комментарий
  14691   var ISBL_LINE_COMMENT_MODE = {
  14692     className: "comment",
  14693     begin: "//",
  14694     end: "$",
  14695     relevance: 0,
  14696     contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS],
  14697   };
  14698 
  14699   // Многострочный комментарий
  14700   var ISBL_BLOCK_COMMENT_MODE = {
  14701     className: "comment",
  14702     begin: "/\\*",
  14703     end: "\\*/",
  14704     relevance: 0,
  14705     contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS],
  14706   };
  14707 
  14708   // comment : комментарии
  14709   var COMMENTS = {
  14710     variants: [ISBL_LINE_COMMENT_MODE, ISBL_BLOCK_COMMENT_MODE],
  14711   };
  14712 
  14713   // keywords : ключевые слова
  14714   var KEYWORDS = {
  14715     keyword: KEYWORD,
  14716     built_in: BUILTIN,
  14717     class: CLASS,
  14718     literal: LITERAL,
  14719   };
  14720 
  14721   // methods : методы
  14722   var METHODS = {
  14723     begin: "\\.\\s*" + hljs.UNDERSCORE_IDENT_RE,
  14724     keywords: KEYWORDS,
  14725     relevance: 0,
  14726   };
  14727 
  14728   // type : встроенные типы
  14729   var TYPES = {
  14730     className: "type",
  14731     begin: ":[ \\t]*(" + interfaces.trim().replace(/\s/g, "|") + ")",
  14732     end: "[ \\t]*=",
  14733     excludeEnd: true,
  14734   };
  14735 
  14736   // variables : переменные
  14737   var VARIABLES = {
  14738     className: "variable",
  14739     lexemes: UNDERSCORE_IDENT_RE,
  14740     keywords: KEYWORDS,
  14741     begin: UNDERSCORE_IDENT_RE,
  14742     relevance: 0,
  14743     contains: [TYPES, METHODS],
  14744   };
  14745 
  14746   // Имена функций
  14747   var FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\(";
  14748 
  14749   var TITLE_MODE = {
  14750     className: "title",
  14751     lexemes: UNDERSCORE_IDENT_RE,
  14752     keywords: {
  14753       built_in: system_functions,
  14754     },
  14755     begin: FUNCTION_TITLE,
  14756     end: "\\(",
  14757     returnBegin: true,
  14758     excludeEnd: true,
  14759   };
  14760 
  14761   // function : функции
  14762   var FUNCTIONS = {
  14763     className: "function",
  14764     begin: FUNCTION_TITLE,
  14765     end: "\\)$",
  14766     returnBegin: true,
  14767     lexemes: UNDERSCORE_IDENT_RE,
  14768     keywords: KEYWORDS,
  14769     illegal: "[\\[\\]\\|\\$\\?%,~#@]",
  14770     contains: [TITLE_MODE, METHODS, VARIABLES, STRINGS, NUMBERS, COMMENTS],
  14771   };
  14772 
  14773   return {
  14774     aliases: ["isbl"],
  14775     case_insensitive: true,
  14776     lexemes: UNDERSCORE_IDENT_RE,
  14777     keywords: KEYWORDS,
  14778     illegal: "\\$|\\?|%|,|;$|~|#|@|</",
  14779     contains: [
  14780       FUNCTIONS,
  14781       TYPES,
  14782       METHODS,
  14783       VARIABLES,
  14784       STRINGS,
  14785       NUMBERS,
  14786       COMMENTS,
  14787     ],
  14788   };
  14789 }
  14790 },{name:"java",create:/*
  14791 Language: Java
  14792 Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
  14793 Category: common, enterprise
  14794 */
  14795 
  14796 function(hljs) {
  14797   var JAVA_IDENT_RE = '[\u00C0-\u02B8a-zA-Z_$][\u00C0-\u02B8a-zA-Z_$0-9]*';
  14798   var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\s*,\\s*' + JAVA_IDENT_RE + ')*>)?';
  14799   var KEYWORDS =
  14800     'false synchronized int abstract float private char boolean var static null if const ' +
  14801     'for true while long strictfp finally protected import native final void ' +
  14802     'enum else break transient catch instanceof byte super volatile case assert short ' +
  14803     'package default double public try this switch continue throws protected public private ' +
  14804     'module requires exports do';
  14805 
  14806   // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
  14807   var JAVA_NUMBER_RE = '\\b' +
  14808     '(' +
  14809       '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
  14810       '|' +
  14811       '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
  14812       '|' +
  14813       '(' +
  14814         '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
  14815         '|' +
  14816         '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
  14817       ')' +
  14818       '([eE][-+]?\\d+)?' + // octal, decimal, float
  14819     ')' +
  14820     '[lLfF]?';
  14821   var JAVA_NUMBER_MODE = {
  14822     className: 'number',
  14823     begin: JAVA_NUMBER_RE,
  14824     relevance: 0
  14825   };
  14826 
  14827   return {
  14828     aliases: ['jsp'],
  14829     keywords: KEYWORDS,
  14830     illegal: /<\/|#/,
  14831     contains: [
  14832       hljs.COMMENT(
  14833         '/\\*\\*',
  14834         '\\*/',
  14835         {
  14836           relevance : 0,
  14837           contains : [
  14838             {
  14839               // eat up @'s in emails to prevent them to be recognized as doctags
  14840               begin: /\w+@/, relevance: 0
  14841             },
  14842             {
  14843               className : 'doctag',
  14844               begin : '@[A-Za-z]+'
  14845             }
  14846           ]
  14847         }
  14848       ),
  14849       hljs.C_LINE_COMMENT_MODE,
  14850       hljs.C_BLOCK_COMMENT_MODE,
  14851       hljs.APOS_STRING_MODE,
  14852       hljs.QUOTE_STRING_MODE,
  14853       {
  14854         className: 'class',
  14855         beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
  14856         keywords: 'class interface',
  14857         illegal: /[:"\[\]]/,
  14858         contains: [
  14859           {beginKeywords: 'extends implements'},
  14860           hljs.UNDERSCORE_TITLE_MODE
  14861         ]
  14862       },
  14863       {
  14864         // Expression keywords prevent 'keyword Name(...)' from being
  14865         // recognized as a function definition
  14866         beginKeywords: 'new throw return else',
  14867         relevance: 0
  14868       },
  14869       {
  14870         className: 'function',
  14871         begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
  14872         excludeEnd: true,
  14873         keywords: KEYWORDS,
  14874         contains: [
  14875           {
  14876             begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
  14877             relevance: 0,
  14878             contains: [hljs.UNDERSCORE_TITLE_MODE]
  14879           },
  14880           {
  14881             className: 'params',
  14882             begin: /\(/, end: /\)/,
  14883             keywords: KEYWORDS,
  14884             relevance: 0,
  14885             contains: [
  14886               hljs.APOS_STRING_MODE,
  14887               hljs.QUOTE_STRING_MODE,
  14888               hljs.C_NUMBER_MODE,
  14889               hljs.C_BLOCK_COMMENT_MODE
  14890             ]
  14891           },
  14892           hljs.C_LINE_COMMENT_MODE,
  14893           hljs.C_BLOCK_COMMENT_MODE
  14894         ]
  14895       },
  14896       JAVA_NUMBER_MODE,
  14897       {
  14898         className: 'meta', begin: '@[A-Za-z]+'
  14899       }
  14900     ]
  14901   };
  14902 }
  14903 },{name:"javascript",create:/*
  14904 Language: JavaScript
  14905 Category: common, scripting
  14906 */
  14907 
  14908 function(hljs) {
  14909   var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
  14910   var KEYWORDS = {
  14911     keyword:
  14912       'in of if for while finally var new function do return void else break catch ' +
  14913       'instanceof with throw case default try this switch continue typeof delete ' +
  14914       'let yield const export super debugger as async await static ' +
  14915       // ECMAScript 6 modules import
  14916       'import from as'
  14917     ,
  14918     literal:
  14919       'true false null undefined NaN Infinity',
  14920     built_in:
  14921       'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
  14922       'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
  14923       'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
  14924       'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
  14925       'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
  14926       'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
  14927       'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
  14928       'Promise'
  14929   };
  14930   var NUMBER = {
  14931     className: 'number',
  14932     variants: [
  14933       { begin: '\\b(0[bB][01]+)' },
  14934       { begin: '\\b(0[oO][0-7]+)' },
  14935       { begin: hljs.C_NUMBER_RE }
  14936     ],
  14937     relevance: 0
  14938   };
  14939   var SUBST = {
  14940     className: 'subst',
  14941     begin: '\\$\\{', end: '\\}',
  14942     keywords: KEYWORDS,
  14943     contains: []  // defined later
  14944   };
  14945   var HTML_TEMPLATE = {
  14946     begin: 'html`', end: '',
  14947     starts: {
  14948       end: '`', returnEnd: false,
  14949       contains: [
  14950         hljs.BACKSLASH_ESCAPE,
  14951         SUBST
  14952       ],
  14953       subLanguage: 'xml',
  14954     }
  14955   };
  14956   var CSS_TEMPLATE = {
  14957     begin: 'css`', end: '',
  14958     starts: {
  14959       end: '`', returnEnd: false,
  14960       contains: [
  14961         hljs.BACKSLASH_ESCAPE,
  14962         SUBST
  14963       ],
  14964       subLanguage: 'css',
  14965     }
  14966   };
  14967   var TEMPLATE_STRING = {
  14968     className: 'string',
  14969     begin: '`', end: '`',
  14970     contains: [
  14971       hljs.BACKSLASH_ESCAPE,
  14972       SUBST
  14973     ]
  14974   };
  14975   SUBST.contains = [
  14976     hljs.APOS_STRING_MODE,
  14977     hljs.QUOTE_STRING_MODE,
  14978     HTML_TEMPLATE,
  14979     CSS_TEMPLATE,
  14980     TEMPLATE_STRING,
  14981     NUMBER,
  14982     hljs.REGEXP_MODE
  14983   ];
  14984   var PARAMS_CONTAINS = SUBST.contains.concat([
  14985     hljs.C_BLOCK_COMMENT_MODE,
  14986     hljs.C_LINE_COMMENT_MODE
  14987   ]);
  14988 
  14989   return {
  14990     aliases: ['js', 'jsx'],
  14991     keywords: KEYWORDS,
  14992     contains: [
  14993       {
  14994         className: 'meta',
  14995         relevance: 10,
  14996         begin: /^\s*['"]use (strict|asm)['"]/
  14997       },
  14998       {
  14999         className: 'meta',
  15000         begin: /^#!/, end: /$/
  15001       },
  15002       hljs.APOS_STRING_MODE,
  15003       hljs.QUOTE_STRING_MODE,
  15004       HTML_TEMPLATE,
  15005       CSS_TEMPLATE,
  15006       TEMPLATE_STRING,
  15007       hljs.C_LINE_COMMENT_MODE,
  15008       hljs.C_BLOCK_COMMENT_MODE,
  15009       NUMBER,
  15010       { // object attr container
  15011         begin: /[{,]\s*/, relevance: 0,
  15012         contains: [
  15013           {
  15014             begin: IDENT_RE + '\\s*:', returnBegin: true,
  15015             relevance: 0,
  15016             contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}]
  15017           }
  15018         ]
  15019       },
  15020       { // "value" container
  15021         begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
  15022         keywords: 'return throw case',
  15023         contains: [
  15024           hljs.C_LINE_COMMENT_MODE,
  15025           hljs.C_BLOCK_COMMENT_MODE,
  15026           hljs.REGEXP_MODE,
  15027           {
  15028             className: 'function',
  15029             begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true,
  15030             end: '\\s*=>',
  15031             contains: [
  15032               {
  15033                 className: 'params',
  15034                 variants: [
  15035                   {
  15036                     begin: IDENT_RE
  15037                   },
  15038                   {
  15039                     begin: /\(\s*\)/,
  15040                   },
  15041                   {
  15042                     begin: /\(/, end: /\)/,
  15043                     excludeBegin: true, excludeEnd: true,
  15044                     keywords: KEYWORDS,
  15045                     contains: PARAMS_CONTAINS
  15046                   }
  15047                 ]
  15048               }
  15049             ]
  15050           },
  15051           {
  15052             className: '',
  15053             begin: /\s/,
  15054             end: /\s*/,
  15055             skip: true,
  15056           },
  15057           { // E4X / JSX
  15058             begin: /</, end: /(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,
  15059             subLanguage: 'xml',
  15060             contains: [
  15061               { begin: /<[A-Za-z0-9\\._:-]+\s*\/>/, skip: true },
  15062               {
  15063                 begin: /<[A-Za-z0-9\\._:-]+/, end: /(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/, skip: true,
  15064                 contains: [
  15065                   { begin: /<[A-Za-z0-9\\._:-]+\s*\/>/, skip: true },
  15066                   'self'
  15067                 ]
  15068               }
  15069             ]
  15070           }
  15071         ],
  15072         relevance: 0
  15073       },
  15074       {
  15075         className: 'function',
  15076         beginKeywords: 'function', end: /\{/, excludeEnd: true,
  15077         contains: [
  15078           hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}),
  15079           {
  15080             className: 'params',
  15081             begin: /\(/, end: /\)/,
  15082             excludeBegin: true,
  15083             excludeEnd: true,
  15084             contains: PARAMS_CONTAINS
  15085           }
  15086         ],
  15087         illegal: /\[|%/
  15088       },
  15089       {
  15090         begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
  15091       },
  15092       hljs.METHOD_GUARD,
  15093       { // ES6 class
  15094         className: 'class',
  15095         beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
  15096         illegal: /[:"\[\]]/,
  15097         contains: [
  15098           {beginKeywords: 'extends'},
  15099           hljs.UNDERSCORE_TITLE_MODE
  15100         ]
  15101       },
  15102       {
  15103         beginKeywords: 'constructor get set', end: /\{/, excludeEnd: true
  15104       }
  15105     ],
  15106     illegal: /#(?!!)/
  15107   };
  15108 }
  15109 },{name:"jboss-cli",create:/*
  15110  Language: jboss-cli
  15111  Author: Raphaël Parrëe <rparree@edc4it.com>
  15112  Description: language definition jboss cli
  15113  Category: config
  15114  */
  15115 
  15116 function (hljs) {
  15117   var PARAM = {
  15118     begin: /[\w-]+ *=/, returnBegin: true,
  15119     relevance: 0,
  15120     contains: [{className: 'attr', begin: /[\w-]+/}]
  15121   };
  15122   var PARAMSBLOCK = {
  15123     className: 'params',
  15124     begin: /\(/,
  15125     end: /\)/,
  15126     contains: [PARAM],
  15127     relevance : 0
  15128   };
  15129   var OPERATION = {
  15130     className: 'function',
  15131     begin: /:[\w\-.]+/,
  15132     relevance: 0
  15133   };
  15134   var PATH = {
  15135     className: 'string',
  15136     begin: /\B(([\/.])[\w\-.\/=]+)+/,
  15137   };
  15138   var COMMAND_PARAMS = {
  15139     className: 'params',
  15140     begin: /--[\w\-=\/]+/,
  15141   };
  15142   return {
  15143     aliases: ['wildfly-cli'],
  15144     lexemes: '[a-z\-]+',
  15145     keywords: {
  15146       keyword: 'alias batch cd clear command connect connection-factory connection-info data-source deploy ' +
  15147       'deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls ' +
  15148       'patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias ' +
  15149       'undeploy unset version xa-data-source', // module
  15150       literal: 'true false'
  15151     },
  15152     contains: [
  15153       hljs.HASH_COMMENT_MODE,
  15154       hljs.QUOTE_STRING_MODE,
  15155       COMMAND_PARAMS,
  15156       OPERATION,
  15157       PATH,
  15158       PARAMSBLOCK
  15159     ]
  15160   }
  15161 }
  15162 },{name:"json",create:/*
  15163 Language: JSON
  15164 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
  15165 Category: common, protocols
  15166 */
  15167 
  15168 function(hljs) {
  15169   var LITERALS = {literal: 'true false null'};
  15170   var TYPES = [
  15171     hljs.QUOTE_STRING_MODE,
  15172     hljs.C_NUMBER_MODE
  15173   ];
  15174   var VALUE_CONTAINER = {
  15175     end: ',', endsWithParent: true, excludeEnd: true,
  15176     contains: TYPES,
  15177     keywords: LITERALS
  15178   };
  15179   var OBJECT = {
  15180     begin: '{', end: '}',
  15181     contains: [
  15182       {
  15183         className: 'attr',
  15184         begin: /"/, end: /"/,
  15185         contains: [hljs.BACKSLASH_ESCAPE],
  15186         illegal: '\\n',
  15187       },
  15188       hljs.inherit(VALUE_CONTAINER, {begin: /:/})
  15189     ],
  15190     illegal: '\\S'
  15191   };
  15192   var ARRAY = {
  15193     begin: '\\[', end: '\\]',
  15194     contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
  15195     illegal: '\\S'
  15196   };
  15197   TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
  15198   return {
  15199     contains: TYPES,
  15200     keywords: LITERALS,
  15201     illegal: '\\S'
  15202   };
  15203 }
  15204 },{name:"julia-repl",create:/*
  15205 Language: Julia REPL
  15206 Description: Julia REPL sessions
  15207 Author: Morten Piibeleht <morten.piibeleht@gmail.com>
  15208 Requires: julia.js
  15209 
  15210 The Julia REPL code blocks look something like the following:
  15211 
  15212   julia> function foo(x)
  15213              x + 1
  15214          end
  15215   foo (generic function with 1 method)
  15216 
  15217 They start on a new line with "julia>". Usually there should also be a space after this, but
  15218 we also allow the code to start right after the > character. The code may run over multiple
  15219 lines, but the additional lines must start with six spaces (i.e. be indented to match
  15220 "julia>"). The rest of the code is assumed to be output from the executed code and will be
  15221 left un-highlighted.
  15222 
  15223 Using simply spaces to identify line continuations may get a false-positive if the output
  15224 also prints out six spaces, but such cases should be rare.
  15225 */
  15226 
  15227 function(hljs) {
  15228   return {
  15229     contains: [
  15230       {
  15231         className: 'meta',
  15232         begin: /^julia>/,
  15233         relevance: 10,
  15234         starts: {
  15235           // end the highlighting if we are on a new line and the line does not have at
  15236           // least six spaces in the beginning
  15237           end: /^(?![ ]{6})/,
  15238           subLanguage: 'julia'
  15239       },
  15240       // jldoctest Markdown blocks are used in the Julia manual and package docs indicate
  15241       // code snippets that should be verified when the documentation is built. They can be
  15242       // either REPL-like or script-like, but are usually REPL-like and therefore we apply
  15243       // julia-repl highlighting to them. More information can be found in Documenter's
  15244       // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html
  15245       aliases: ['jldoctest']
  15246       }
  15247     ]
  15248   }
  15249 }
  15250 },{name:"julia",create:/*
  15251 Language: Julia
  15252 Author: Kenta Sato <bicycle1885@gmail.com>
  15253 Contributors: Alex Arslan <ararslan@comcast.net>
  15254 */
  15255 
  15256 function(hljs) {
  15257   // Since there are numerous special names in Julia, it is too much trouble
  15258   // to maintain them by hand. Hence these names (i.e. keywords, literals and
  15259   // built-ins) are automatically generated from Julia v0.6 itself through
  15260   // the following scripts for each.
  15261 
  15262   var KEYWORDS = {
  15263     // # keyword generator, multi-word keywords handled manually below
  15264     // foreach(println, ["in", "isa", "where"])
  15265     // for kw in Base.REPLCompletions.complete_keyword("")
  15266     //     if !(contains(kw, " ") || kw == "struct")
  15267     //         println(kw)
  15268     //     end
  15269     // end
  15270     keyword:
  15271       'in isa where ' +
  15272       'baremodule begin break catch ccall const continue do else elseif end export false finally for function ' +
  15273       'global if import importall let local macro module quote return true try using while ' +
  15274       // legacy, to be deprecated in the next release
  15275       'type immutable abstract bitstype typealias ',
  15276 
  15277     // # literal generator
  15278     // println("true")
  15279     // println("false")
  15280     // for name in Base.REPLCompletions.completions("", 0)[1]
  15281     //     try
  15282     //         v = eval(Symbol(name))
  15283     //         if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)
  15284     //             println(name)
  15285     //         end
  15286     //     end
  15287     // end
  15288     literal:
  15289       'true false ' +
  15290       'ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort ' +
  15291       'NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway ' +
  15292       'RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im ' +
  15293       'nothing pi γ π φ ',
  15294 
  15295     // # built_in generator:
  15296     // for name in Base.REPLCompletions.completions("", 0)[1]
  15297     //     try
  15298     //         v = eval(Symbol(name))
  15299     //         if v isa Type || v isa TypeVar
  15300     //             println(name)
  15301     //         end
  15302     //     end
  15303     // end
  15304     built_in:
  15305       'ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet ' +
  15306       'AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat ' +
  15307       'AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal '+
  15308       'BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException ' +
  15309       'CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager ' +
  15310       'Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ' +
  15311       'ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t ' +
  15312       'Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict ' +
  15313       'DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ' +
  15314       'ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function ' +
  15315       'Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear ' +
  15316       'IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException ' +
  15317       'InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix ' +
  15318       'MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict ' +
  15319       'OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe ' +
  15320       'PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ' +
  15321       'ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode ' +
  15322       'RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed ' +
  15323       'SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange ' +
  15324       'StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal ' +
  15325       'Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry ' +
  15326       'TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError ' +
  15327       'UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector ' +
  15328       'VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool '
  15329   };
  15330 
  15331   // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
  15332   var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
  15333 
  15334   // placeholder for recursive self-reference
  15335   var DEFAULT = {
  15336     lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\//
  15337   };
  15338 
  15339   // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
  15340   var NUMBER = {
  15341     className: 'number',
  15342     // supported numeric literals:
  15343     //  * binary literal (e.g. 0x10)
  15344     //  * octal literal (e.g. 0o76543210)
  15345     //  * hexadecimal literal (e.g. 0xfedcba876543210)
  15346     //  * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
  15347     //  * decimal literal (e.g. 9876543210, 100_000_000)
  15348     //  * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
  15349     begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
  15350     relevance: 0
  15351   };
  15352 
  15353   var CHAR = {
  15354     className: 'string',
  15355     begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
  15356   };
  15357 
  15358   var INTERPOLATION = {
  15359     className: 'subst',
  15360     begin: /\$\(/, end: /\)/,
  15361     keywords: KEYWORDS
  15362   };
  15363 
  15364   var INTERPOLATED_VARIABLE = {
  15365     className: 'variable',
  15366     begin: '\\$' + VARIABLE_NAME_RE
  15367   };
  15368 
  15369   // TODO: neatly escape normal code in string literal
  15370   var STRING = {
  15371     className: 'string',
  15372     contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
  15373     variants: [
  15374       { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
  15375       { begin: /\w*"/, end: /"\w*/ }
  15376     ]
  15377   };
  15378 
  15379   var COMMAND = {
  15380     className: 'string',
  15381     contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
  15382     begin: '`', end: '`'
  15383   };
  15384 
  15385   var MACROCALL = {
  15386     className: 'meta',
  15387     begin: '@' + VARIABLE_NAME_RE
  15388   };
  15389 
  15390   var COMMENT = {
  15391     className: 'comment',
  15392     variants: [
  15393       { begin: '#=', end: '=#', relevance: 10 },
  15394       { begin: '#', end: '$' }
  15395     ]
  15396   };
  15397 
  15398   DEFAULT.contains = [
  15399     NUMBER,
  15400     CHAR,
  15401     STRING,
  15402     COMMAND,
  15403     MACROCALL,
  15404     COMMENT,
  15405     hljs.HASH_COMMENT_MODE,
  15406     {
  15407       className: 'keyword',
  15408       begin:
  15409         '\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b'
  15410     },
  15411     {begin: /<:/}  // relevance booster
  15412   ];
  15413   INTERPOLATION.contains = DEFAULT.contains;
  15414 
  15415   return DEFAULT;
  15416 }
  15417 },{name:"kotlin",create:/*
  15418  Language: Kotlin
  15419  Author: Sergey Mashkov <cy6erGn0m@gmail.com>
  15420  */
  15421 
  15422 
  15423 function(hljs) {
  15424   var KEYWORDS = {
  15425     keyword:
  15426       'abstract as val var vararg get set class object open private protected public noinline ' +
  15427       'crossinline dynamic final enum if else do while for when throw try catch finally ' +
  15428       'import package is in fun override companion reified inline lateinit init ' +
  15429       'interface annotation data sealed internal infix operator out by constructor super ' +
  15430       'tailrec where const inner suspend typealias external expect actual ' +
  15431       // to be deleted soon
  15432       'trait volatile transient native default',
  15433     built_in:
  15434       'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',
  15435     literal:
  15436       'true false null'
  15437   };
  15438   var KEYWORDS_WITH_LABEL = {
  15439     className: 'keyword',
  15440     begin: /\b(break|continue|return|this)\b/,
  15441     starts: {
  15442       contains: [
  15443         {
  15444           className: 'symbol',
  15445           begin: /@\w+/
  15446         }
  15447       ]
  15448     }
  15449   };
  15450   var LABEL = {
  15451     className: 'symbol', begin: hljs.UNDERSCORE_IDENT_RE + '@'
  15452   };
  15453 
  15454   // for string templates
  15455   var SUBST = {
  15456     className: 'subst',
  15457     begin: '\\${', end: '}', contains: [hljs.APOS_STRING_MODE, hljs.C_NUMBER_MODE]
  15458   };
  15459   var VARIABLE = {
  15460     className: 'variable', begin: '\\$' + hljs.UNDERSCORE_IDENT_RE
  15461   };
  15462   var STRING = {
  15463     className: 'string',
  15464     variants: [
  15465       {
  15466         begin: '"""', end: '"""',
  15467         contains: [VARIABLE, SUBST]
  15468       },
  15469       // Can't use built-in modes easily, as we want to use STRING in the meta
  15470       // context as 'meta-string' and there's no syntax to remove explicitly set
  15471       // classNames in built-in modes.
  15472       {
  15473         begin: '\'', end: '\'',
  15474         illegal: /\n/,
  15475         contains: [hljs.BACKSLASH_ESCAPE]
  15476       },
  15477       {
  15478         begin: '"', end: '"',
  15479         illegal: /\n/,
  15480         contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST]
  15481       }
  15482     ]
  15483   };
  15484 
  15485   var ANNOTATION_USE_SITE = {
  15486     className: 'meta', begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'
  15487   };
  15488   var ANNOTATION = {
  15489     className: 'meta', begin: '@' + hljs.UNDERSCORE_IDENT_RE,
  15490     contains: [
  15491       {
  15492         begin: /\(/, end: /\)/,
  15493         contains: [
  15494           hljs.inherit(STRING, {className: 'meta-string'})
  15495         ]
  15496       }
  15497     ]
  15498   };
  15499 
  15500   // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals
  15501   // According to the doc above, the number mode of kotlin is the same as java 8,
  15502   // so the code below is copied from java.js
  15503   var KOTLIN_NUMBER_RE = '\\b' +
  15504     '(' +
  15505       '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
  15506       '|' +
  15507       '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
  15508       '|' +
  15509       '(' +
  15510         '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
  15511         '|' +
  15512         '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
  15513       ')' +
  15514       '([eE][-+]?\\d+)?' + // octal, decimal, float
  15515     ')' +
  15516     '[lLfF]?';
  15517   var KOTLIN_NUMBER_MODE = {
  15518     className: 'number',
  15519     begin: KOTLIN_NUMBER_RE,
  15520     relevance: 0
  15521   };
  15522   var KOTLIN_NESTED_COMMENT = hljs.COMMENT(
  15523     '/\\*', '\\*/',
  15524     { contains: [ hljs.C_BLOCK_COMMENT_MODE ] }
  15525   );
  15526   var KOTLIN_PAREN_TYPE = {
  15527     variants: [
  15528 	  { className: 'type',
  15529 	    begin: hljs.UNDERSCORE_IDENT_RE
  15530 	  },
  15531 	  { begin: /\(/, end: /\)/,
  15532 	    contains: [] //defined later
  15533 	  }
  15534 	]
  15535   };
  15536   var KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;
  15537   KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];
  15538   KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];
  15539 
  15540   return {
  15541     aliases: ['kt'],
  15542     keywords: KEYWORDS,
  15543     contains : [
  15544       hljs.COMMENT(
  15545         '/\\*\\*',
  15546         '\\*/',
  15547         {
  15548           relevance : 0,
  15549           contains : [{
  15550             className : 'doctag',
  15551             begin : '@[A-Za-z]+'
  15552           }]
  15553         }
  15554       ),
  15555       hljs.C_LINE_COMMENT_MODE,
  15556       KOTLIN_NESTED_COMMENT,
  15557       KEYWORDS_WITH_LABEL,
  15558       LABEL,
  15559       ANNOTATION_USE_SITE,
  15560       ANNOTATION,
  15561       {
  15562         className: 'function',
  15563         beginKeywords: 'fun', end: '[(]|$',
  15564         returnBegin: true,
  15565         excludeEnd: true,
  15566         keywords: KEYWORDS,
  15567         illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
  15568         relevance: 5,
  15569         contains: [
  15570           {
  15571             begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
  15572             relevance: 0,
  15573             contains: [hljs.UNDERSCORE_TITLE_MODE]
  15574           },
  15575           {
  15576             className: 'type',
  15577             begin: /</, end: />/, keywords: 'reified',
  15578             relevance: 0
  15579           },
  15580           {
  15581             className: 'params',
  15582             begin: /\(/, end: /\)/,
  15583             endsParent: true,
  15584             keywords: KEYWORDS,
  15585             relevance: 0,
  15586             contains: [
  15587               {
  15588                 begin: /:/, end: /[=,\/]/, endsWithParent: true,
  15589                 contains: [
  15590                   KOTLIN_PAREN_TYPE,
  15591                   hljs.C_LINE_COMMENT_MODE,
  15592                   KOTLIN_NESTED_COMMENT
  15593                 ],
  15594                 relevance: 0
  15595               },
  15596               hljs.C_LINE_COMMENT_MODE,
  15597               KOTLIN_NESTED_COMMENT,
  15598               ANNOTATION_USE_SITE,
  15599               ANNOTATION,
  15600               STRING,
  15601               hljs.C_NUMBER_MODE
  15602             ]
  15603           },
  15604           KOTLIN_NESTED_COMMENT
  15605         ]
  15606       },
  15607       {
  15608         className: 'class',
  15609         beginKeywords: 'class interface trait', end: /[:\{(]|$/, // remove 'trait' when removed from KEYWORDS
  15610         excludeEnd: true,
  15611         illegal: 'extends implements',
  15612         contains: [
  15613           {beginKeywords: 'public protected internal private constructor'},
  15614           hljs.UNDERSCORE_TITLE_MODE,
  15615           {
  15616             className: 'type',
  15617             begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
  15618             relevance: 0
  15619           },
  15620           {
  15621             className: 'type',
  15622             begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
  15623           },
  15624           ANNOTATION_USE_SITE,
  15625           ANNOTATION
  15626         ]
  15627       },
  15628       STRING,
  15629       {
  15630         className: 'meta',
  15631         begin: "^#!/usr/bin/env", end: '$',
  15632         illegal: '\n'
  15633       },
  15634       KOTLIN_NUMBER_MODE
  15635     ]
  15636   };
  15637 }
  15638 },{name:"lasso",create:/*
  15639 Language: Lasso
  15640 Author: Eric Knibbe <eric@lassosoft.com>
  15641 Description: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.
  15642 */
  15643 
  15644 function(hljs) {
  15645   var LASSO_IDENT_RE = '[a-zA-Z_][\\w.]*';
  15646   var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
  15647   var LASSO_CLOSE_RE = '\\]|\\?>';
  15648   var LASSO_KEYWORDS = {
  15649     literal:
  15650       'true false none minimal full all void and or not ' +
  15651       'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
  15652     built_in:
  15653       'array date decimal duration integer map pair string tag xml null ' +
  15654       'boolean bytes keyword list locale queue set stack staticarray ' +
  15655       'local var variable global data self inherited currentcapture givenblock',
  15656     keyword:
  15657       'cache database_names database_schemanames database_tablenames ' +
  15658       'define_tag define_type email_batch encode_set html_comment handle ' +
  15659       'handle_error header if inline iterate ljax_target link ' +
  15660       'link_currentaction link_currentgroup link_currentrecord link_detail ' +
  15661       'link_firstgroup link_firstrecord link_lastgroup link_lastrecord ' +
  15662       'link_nextgroup link_nextrecord link_prevgroup link_prevrecord log ' +
  15663       'loop namespace_using output_none portal private protect records ' +
  15664       'referer referrer repeating resultset rows search_args ' +
  15665       'search_arguments select sort_args sort_arguments thread_atomic ' +
  15666       'value_list while abort case else fail_if fail_ifnot fail if_empty ' +
  15667       'if_false if_null if_true loop_abort loop_continue loop_count params ' +
  15668       'params_up return return_value run_children soap_definetag ' +
  15669       'soap_lastrequest soap_lastresponse tag_name ascending average by ' +
  15670       'define descending do equals frozen group handle_failure import in ' +
  15671       'into join let match max min on order parent protected provide public ' +
  15672       'require returnhome skip split_thread sum take thread to trait type ' +
  15673       'where with yield yieldhome'
  15674   };
  15675   var HTML_COMMENT = hljs.COMMENT(
  15676     '<!--',
  15677     '-->',
  15678     {
  15679       relevance: 0
  15680     }
  15681   );
  15682   var LASSO_NOPROCESS = {
  15683     className: 'meta',
  15684     begin: '\\[noprocess\\]',
  15685     starts: {
  15686       end: '\\[/noprocess\\]',
  15687       returnEnd: true,
  15688       contains: [HTML_COMMENT]
  15689     }
  15690   };
  15691   var LASSO_START = {
  15692     className: 'meta',
  15693     begin: '\\[/noprocess|' + LASSO_ANGLE_RE
  15694   };
  15695   var LASSO_DATAMEMBER = {
  15696     className: 'symbol',
  15697     begin: '\'' + LASSO_IDENT_RE + '\''
  15698   };
  15699   var LASSO_CODE = [
  15700     hljs.C_LINE_COMMENT_MODE,
  15701     hljs.C_BLOCK_COMMENT_MODE,
  15702     hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\b'}),
  15703     hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
  15704     hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
  15705     {
  15706       className: 'string',
  15707       begin: '`', end: '`'
  15708     },
  15709     { // variables
  15710       variants: [
  15711         {
  15712           begin: '[#$]' + LASSO_IDENT_RE
  15713         },
  15714         {
  15715           begin: '#', end: '\\d+',
  15716           illegal: '\\W'
  15717         }
  15718       ]
  15719     },
  15720     {
  15721       className: 'type',
  15722       begin: '::\\s*', end: LASSO_IDENT_RE,
  15723       illegal: '\\W'
  15724     },
  15725     {
  15726       className: 'params',
  15727       variants: [
  15728         {
  15729           begin: '-(?!infinity)' + LASSO_IDENT_RE,
  15730           relevance: 0
  15731         },
  15732         {
  15733           begin: '(\\.\\.\\.)'
  15734         }
  15735       ]
  15736     },
  15737     {
  15738       begin: /(->|\.)\s*/,
  15739       relevance: 0,
  15740       contains: [LASSO_DATAMEMBER]
  15741     },
  15742     {
  15743       className: 'class',
  15744       beginKeywords: 'define',
  15745       returnEnd: true, end: '\\(|=>',
  15746       contains: [
  15747         hljs.inherit(hljs.TITLE_MODE, {begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)'})
  15748       ]
  15749     }
  15750   ];
  15751   return {
  15752     aliases: ['ls', 'lassoscript'],
  15753     case_insensitive: true,
  15754     lexemes: LASSO_IDENT_RE + '|&[lg]t;',
  15755     keywords: LASSO_KEYWORDS,
  15756     contains: [
  15757       {
  15758         className: 'meta',
  15759         begin: LASSO_CLOSE_RE,
  15760         relevance: 0,
  15761         starts: { // markup
  15762           end: '\\[|' + LASSO_ANGLE_RE,
  15763           returnEnd: true,
  15764           relevance: 0,
  15765           contains: [HTML_COMMENT]
  15766         }
  15767       },
  15768       LASSO_NOPROCESS,
  15769       LASSO_START,
  15770       {
  15771         className: 'meta',
  15772         begin: '\\[no_square_brackets',
  15773         starts: {
  15774           end: '\\[/no_square_brackets\\]', // not implemented in the language
  15775           lexemes: LASSO_IDENT_RE + '|&[lg]t;',
  15776           keywords: LASSO_KEYWORDS,
  15777           contains: [
  15778             {
  15779               className: 'meta',
  15780               begin: LASSO_CLOSE_RE,
  15781               relevance: 0,
  15782               starts: {
  15783                 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
  15784                 returnEnd: true,
  15785                 contains: [HTML_COMMENT]
  15786               }
  15787             },
  15788             LASSO_NOPROCESS,
  15789             LASSO_START
  15790           ].concat(LASSO_CODE)
  15791         }
  15792       },
  15793       {
  15794         className: 'meta',
  15795         begin: '\\[',
  15796         relevance: 0
  15797       },
  15798       {
  15799         className: 'meta',
  15800         begin: '^#!', end:'lasso9$',
  15801         relevance: 10
  15802       }
  15803     ].concat(LASSO_CODE)
  15804   };
  15805 }
  15806 },{name:"ldif",create:/*
  15807 Language: LDIF
  15808 Contributors: Jacob Childress <jacobc@gmail.com>
  15809 Category: enterprise, config
  15810 */
  15811 function(hljs) {
  15812   return {
  15813     contains: [
  15814       {
  15815         className: 'attribute',
  15816         begin: '^dn', end: ': ', excludeEnd: true,
  15817         starts: {end: '$', relevance: 0},
  15818         relevance: 10
  15819       },
  15820       {
  15821         className: 'attribute',
  15822         begin: '^\\w', end: ': ', excludeEnd: true,
  15823         starts: {end: '$', relevance: 0}
  15824       },
  15825       {
  15826         className: 'literal',
  15827         begin: '^-', end: '$'
  15828       },
  15829       hljs.HASH_COMMENT_MODE
  15830     ]
  15831   };
  15832 }
  15833 },{name:"leaf",create:/*
  15834 Language: Leaf
  15835 Author: Hale Chan <halechan@qq.com>
  15836 Description: Based on the Leaf reference from https://vapor.github.io/documentation/guide/leaf.html.
  15837 */
  15838 
  15839 function (hljs) {
  15840   return {
  15841     contains: [
  15842       {
  15843         className: 'function',
  15844         begin: '#+' + '[A-Za-z_0-9]*' + '\\(',
  15845         end:' {',
  15846         returnBegin: true,
  15847         excludeEnd: true,
  15848         contains : [
  15849           {
  15850             className: 'keyword',
  15851             begin: '#+'
  15852           },
  15853           {
  15854             className: 'title',
  15855             begin: '[A-Za-z_][A-Za-z_0-9]*'
  15856           },
  15857           {
  15858             className: 'params',
  15859             begin: '\\(', end: '\\)',
  15860             endsParent: true,
  15861             contains: [
  15862               {
  15863                 className: 'string',
  15864                 begin: '"',
  15865                 end: '"'
  15866               },
  15867               {
  15868                 className: 'variable',
  15869                 begin: '[A-Za-z_][A-Za-z_0-9]*'
  15870               }
  15871             ]
  15872           }
  15873         ]
  15874       }
  15875     ]
  15876   };
  15877 }
  15878 },{name:"less",create:/*
  15879 Language: Less
  15880 Author:   Max Mikhailov <seven.phases.max@gmail.com>
  15881 Category: css
  15882 */
  15883 
  15884 function(hljs) {
  15885   var IDENT_RE        = '[\\w-]+'; // yes, Less identifiers may begin with a digit
  15886   var INTERP_IDENT_RE = '(' + IDENT_RE + '|@{' + IDENT_RE + '})';
  15887 
  15888   /* Generic Modes */
  15889 
  15890   var RULES = [], VALUE = []; // forward def. for recursive modes
  15891 
  15892   var STRING_MODE = function(c) { return {
  15893     // Less strings are not multiline (also include '~' for more consistent coloring of "escaped" strings)
  15894     className: 'string', begin: '~?' + c + '.*?' + c
  15895   };};
  15896 
  15897   var IDENT_MODE = function(name, begin, relevance) { return {
  15898     className: name, begin: begin, relevance: relevance
  15899   };};
  15900 
  15901   var PARENS_MODE = {
  15902     // used only to properly balance nested parens inside mixin call, def. arg list
  15903     begin: '\\(', end: '\\)', contains: VALUE, relevance: 0
  15904   };
  15905 
  15906   // generic Less highlighter (used almost everywhere except selectors):
  15907   VALUE.push(
  15908     hljs.C_LINE_COMMENT_MODE,
  15909     hljs.C_BLOCK_COMMENT_MODE,
  15910     STRING_MODE("'"),
  15911     STRING_MODE('"'),
  15912     hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
  15913     {
  15914       begin: '(url|data-uri)\\(',
  15915       starts: {className: 'string', end: '[\\)\\n]', excludeEnd: true}
  15916     },
  15917     IDENT_MODE('number', '#[0-9A-Fa-f]+\\b'),
  15918     PARENS_MODE,
  15919     IDENT_MODE('variable', '@@?' + IDENT_RE, 10),
  15920     IDENT_MODE('variable', '@{'  + IDENT_RE + '}'),
  15921     IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string
  15922     { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):
  15923       className: 'attribute', begin: IDENT_RE + '\\s*:', end: ':', returnBegin: true, excludeEnd: true
  15924     },
  15925     {
  15926       className: 'meta',
  15927       begin: '!important'
  15928     }
  15929   );
  15930 
  15931   var VALUE_WITH_RULESETS = VALUE.concat({
  15932     begin: '{', end: '}', contains: RULES
  15933   });
  15934 
  15935   var MIXIN_GUARD_MODE = {
  15936     beginKeywords: 'when', endsWithParent: true,
  15937     contains: [{beginKeywords: 'and not'}].concat(VALUE) // using this form to override VALUE’s 'function' match
  15938   };
  15939 
  15940   /* Rule-Level Modes */
  15941 
  15942   var RULE_MODE = {
  15943     begin: INTERP_IDENT_RE + '\\s*:', returnBegin: true, end: '[;}]',
  15944     relevance: 0,
  15945     contains: [
  15946       {
  15947         className: 'attribute',
  15948         begin: INTERP_IDENT_RE, end: ':', excludeEnd: true,
  15949         starts: {
  15950           endsWithParent: true, illegal: '[<=$]',
  15951           relevance: 0,
  15952           contains: VALUE
  15953         }
  15954       }
  15955     ]
  15956   };
  15957 
  15958   var AT_RULE_MODE = {
  15959     className: 'keyword',
  15960     begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b',
  15961     starts: {end: '[;{}]', returnEnd: true, contains: VALUE, relevance: 0}
  15962   };
  15963 
  15964   // variable definitions and calls
  15965   var VAR_RULE_MODE = {
  15966     className: 'variable',
  15967     variants: [
  15968       // using more strict pattern for higher relevance to increase chances of Less detection.
  15969       // this is *the only* Less specific statement used in most of the sources, so...
  15970       // (we’ll still often loose to the css-parser unless there's '//' comment,
  15971       // simply because 1 variable just can't beat 99 properties :)
  15972       {begin: '@' + IDENT_RE + '\\s*:', relevance: 15},
  15973       {begin: '@' + IDENT_RE}
  15974     ],
  15975     starts: {end: '[;}]', returnEnd: true, contains: VALUE_WITH_RULESETS}
  15976   };
  15977 
  15978   var SELECTOR_MODE = {
  15979     // first parse unambiguous selectors (i.e. those not starting with tag)
  15980     // then fall into the scary lookahead-discriminator variant.
  15981     // this mode also handles mixin definitions and calls
  15982     variants: [{
  15983       begin: '[\\.#:&\\[>]', end: '[;{}]'  // mixin calls end with ';'
  15984       }, {
  15985       begin: INTERP_IDENT_RE, end: '{'
  15986     }],
  15987     returnBegin: true,
  15988     returnEnd:   true,
  15989     illegal: '[<=\'$"]',
  15990     relevance: 0,
  15991     contains: [
  15992       hljs.C_LINE_COMMENT_MODE,
  15993       hljs.C_BLOCK_COMMENT_MODE,
  15994       MIXIN_GUARD_MODE,
  15995       IDENT_MODE('keyword',  'all\\b'),
  15996       IDENT_MODE('variable', '@{'  + IDENT_RE + '}'),     // otherwise it’s identified as tag
  15997       IDENT_MODE('selector-tag',  INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes "tags"
  15998       IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),
  15999       IDENT_MODE('selector-class', '\\.' + INTERP_IDENT_RE, 0),
  16000       IDENT_MODE('selector-tag',  '&', 0),
  16001       {className: 'selector-attr', begin: '\\[', end: '\\]'},
  16002       {className: 'selector-pseudo', begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},
  16003       {begin: '\\(', end: '\\)', contains: VALUE_WITH_RULESETS}, // argument list of parametric mixins
  16004       {begin: '!important'} // eat !important after mixin call or it will be colored as tag
  16005     ]
  16006   };
  16007 
  16008   RULES.push(
  16009     hljs.C_LINE_COMMENT_MODE,
  16010     hljs.C_BLOCK_COMMENT_MODE,
  16011     AT_RULE_MODE,
  16012     VAR_RULE_MODE,
  16013     RULE_MODE,
  16014     SELECTOR_MODE
  16015   );
  16016 
  16017   return {
  16018     case_insensitive: true,
  16019     illegal: '[=>\'/<($"]',
  16020     contains: RULES
  16021   };
  16022 }
  16023 },{name:"lisp",create:/*
  16024 Language: Lisp
  16025 Description: Generic lisp syntax
  16026 Author: Vasily Polovnyov <vast@whiteants.net>
  16027 Category: lisp
  16028 */
  16029 
  16030 function(hljs) {
  16031   var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*';
  16032   var MEC_RE = '\\|[^]*?\\|';
  16033   var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?';
  16034   var SHEBANG = {
  16035     className: 'meta',
  16036     begin: '^#!', end: '$'
  16037   };
  16038   var LITERAL = {
  16039     className: 'literal',
  16040     begin: '\\b(t{1}|nil)\\b'
  16041   };
  16042   var NUMBER = {
  16043     className: 'number',
  16044     variants: [
  16045       {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},
  16046       {begin: '#(b|B)[0-1]+(/[0-1]+)?'},
  16047       {begin: '#(o|O)[0-7]+(/[0-7]+)?'},
  16048       {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},
  16049       {begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'}
  16050     ]
  16051   };
  16052   var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
  16053   var COMMENT = hljs.COMMENT(
  16054     ';', '$',
  16055     {
  16056       relevance: 0
  16057     }
  16058   );
  16059   var VARIABLE = {
  16060     begin: '\\*', end: '\\*'
  16061   };
  16062   var KEYWORD = {
  16063     className: 'symbol',
  16064     begin: '[:&]' + LISP_IDENT_RE
  16065   };
  16066   var IDENT = {
  16067     begin: LISP_IDENT_RE,
  16068     relevance: 0
  16069   };
  16070   var MEC = {
  16071     begin: MEC_RE
  16072   };
  16073   var QUOTED_LIST = {
  16074     begin: '\\(', end: '\\)',
  16075     contains: ['self', LITERAL, STRING, NUMBER, IDENT]
  16076   };
  16077   var QUOTED = {
  16078     contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],
  16079     variants: [
  16080       {
  16081         begin: '[\'`]\\(', end: '\\)'
  16082       },
  16083       {
  16084         begin: '\\(quote ', end: '\\)',
  16085         keywords: {name: 'quote'}
  16086       },
  16087       {
  16088         begin: '\'' + MEC_RE
  16089       }
  16090     ]
  16091   };
  16092   var QUOTED_ATOM = {
  16093     variants: [
  16094       {begin: '\'' + LISP_IDENT_RE},
  16095       {begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}
  16096     ]
  16097   };
  16098   var LIST = {
  16099     begin: '\\(\\s*', end: '\\)'
  16100   };
  16101   var BODY = {
  16102     endsWithParent: true,
  16103     relevance: 0
  16104   };
  16105   LIST.contains = [
  16106     {
  16107       className: 'name',
  16108       variants: [
  16109         {begin: LISP_IDENT_RE},
  16110         {begin: MEC_RE}
  16111       ]
  16112     },
  16113     BODY
  16114   ];
  16115   BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];
  16116 
  16117   return {
  16118     illegal: /\S/,
  16119     contains: [
  16120       NUMBER,
  16121       SHEBANG,
  16122       LITERAL,
  16123       STRING,
  16124       COMMENT,
  16125       QUOTED,
  16126       QUOTED_ATOM,
  16127       LIST,
  16128       IDENT
  16129     ]
  16130   };
  16131 }
  16132 },{name:"livecodeserver",create:/*
  16133 Language: LiveCode
  16134 Author: Ralf Bitter <rabit@revigniter.com>
  16135 Description: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.
  16136 Version: 1.1
  16137 Date: 2019-04-17
  16138 Category: enterprise
  16139 */
  16140 
  16141 function(hljs) {
  16142   var VARIABLE = {
  16143     className: 'variable',
  16144     variants: [
  16145       {begin: '\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)'},
  16146       {begin: '\\$_[A-Z]+'}
  16147     ],
  16148     relevance: 0
  16149   };
  16150   var COMMENT_MODES = [
  16151     hljs.C_BLOCK_COMMENT_MODE,
  16152     hljs.HASH_COMMENT_MODE,
  16153     hljs.COMMENT('--', '$'),
  16154     hljs.COMMENT('[^:]//', '$')
  16155   ];
  16156   var TITLE1 = hljs.inherit(hljs.TITLE_MODE, {
  16157     variants: [
  16158       {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'},
  16159       {begin: '\\b_[a-z0-9\\-]+'}
  16160     ]
  16161   });
  16162   var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'});
  16163   return {
  16164     case_insensitive: false,
  16165     keywords: {
  16166       keyword:
  16167         '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +
  16168         'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +
  16169         'after byte bytes english the until http forever descending using line real8 with seventh ' +
  16170         'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +
  16171         'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +
  16172         'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +
  16173         'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +
  16174         'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +
  16175         'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +
  16176         'first ftp integer abbreviated abbr abbrev private case while if ' +
  16177         'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +
  16178         'contains ends with begins the keys of keys',
  16179       literal:
  16180         'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +
  16181         'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +
  16182         'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +
  16183         'quote empty one true return cr linefeed right backslash null seven tab three two ' +
  16184         'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +
  16185         'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',
  16186       built_in:
  16187         'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +
  16188         'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +
  16189         'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +
  16190         'constantNames cos date dateFormat decompress difference directories ' +
  16191         'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +
  16192         'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +
  16193         'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +
  16194         'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +
  16195         'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec ' +
  16196         'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +
  16197         'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +
  16198         'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +
  16199         'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +
  16200         'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +
  16201         'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +
  16202         'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +
  16203         'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +
  16204         'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +
  16205         'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +
  16206         'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +
  16207         'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +
  16208         'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +
  16209         'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +
  16210         'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +
  16211         'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +
  16212         'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +
  16213         'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +
  16214         'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +
  16215         'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +
  16216         'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +
  16217         'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +
  16218         'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +
  16219         'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +
  16220         'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +
  16221         'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +
  16222         'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +
  16223         'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +
  16224         'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +
  16225         'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver ' +
  16226         'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +
  16227         'libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename ' +
  16228         'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +
  16229         'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +
  16230         'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +
  16231         'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +
  16232         'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +
  16233         'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +
  16234         'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +
  16235         'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +
  16236         'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +
  16237         'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +
  16238         'subtract symmetric union unload vectorDotProduct wait write'
  16239     },
  16240     contains: [
  16241       VARIABLE,
  16242       {
  16243         className: 'keyword',
  16244         begin: '\\bend\\sif\\b'
  16245       },
  16246       {
  16247         className: 'function',
  16248         beginKeywords: 'function', end: '$',
  16249         contains: [
  16250           VARIABLE,
  16251           TITLE2,
  16252           hljs.APOS_STRING_MODE,
  16253           hljs.QUOTE_STRING_MODE,
  16254           hljs.BINARY_NUMBER_MODE,
  16255           hljs.C_NUMBER_MODE,
  16256           TITLE1
  16257         ]
  16258       },
  16259       {
  16260         className: 'function',
  16261         begin: '\\bend\\s+', end: '$',
  16262         keywords: 'end',
  16263         contains: [
  16264           TITLE2,
  16265           TITLE1
  16266         ],
  16267         relevance: 0
  16268       },
  16269       {
  16270         beginKeywords: 'command on', end: '$',
  16271         contains: [
  16272           VARIABLE,
  16273           TITLE2,
  16274           hljs.APOS_STRING_MODE,
  16275           hljs.QUOTE_STRING_MODE,
  16276           hljs.BINARY_NUMBER_MODE,
  16277           hljs.C_NUMBER_MODE,
  16278           TITLE1
  16279         ]
  16280       },
  16281       {
  16282         className: 'meta',
  16283         variants: [
  16284           {
  16285             begin: '<\\?(rev|lc|livecode)',
  16286             relevance: 10
  16287           },
  16288           { begin: '<\\?' },
  16289           { begin: '\\?>' }
  16290         ]
  16291       },
  16292       hljs.APOS_STRING_MODE,
  16293       hljs.QUOTE_STRING_MODE,
  16294       hljs.BINARY_NUMBER_MODE,
  16295       hljs.C_NUMBER_MODE,
  16296       TITLE1
  16297     ].concat(COMMENT_MODES),
  16298     illegal: ';$|^\\[|^=|&|{'
  16299   };
  16300 }
  16301 },{name:"livescript",create:/*
  16302 Language: LiveScript
  16303 Author: Taneli Vatanen <taneli.vatanen@gmail.com>
  16304 Contributors: Jen Evers-Corvina <jen@sevvie.net>
  16305 Origin: coffeescript.js
  16306 Description: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/
  16307 Category: scripting
  16308 */
  16309 
  16310 function(hljs) {
  16311   var KEYWORDS = {
  16312     keyword:
  16313       // JS keywords
  16314       'in if for while finally new do return else break catch instanceof throw try this ' +
  16315       'switch continue typeof delete debugger case default function var with ' +
  16316       // LiveScript keywords
  16317       'then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super ' +
  16318       'case default function var void const let enum export import native ' +
  16319       '__hasProp __extends __slice __bind __indexOf',
  16320     literal:
  16321       // JS literals
  16322       'true false null undefined ' +
  16323       // LiveScript literals
  16324       'yes no on off it that void',
  16325     built_in:
  16326       'npm require console print module global window document'
  16327   };
  16328   var JS_IDENT_RE = '[A-Za-z$_](?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
  16329   var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
  16330   var SUBST = {
  16331     className: 'subst',
  16332     begin: /#\{/, end: /}/,
  16333     keywords: KEYWORDS
  16334   };
  16335   var SUBST_SIMPLE = {
  16336     className: 'subst',
  16337     begin: /#[A-Za-z$_]/, end: /(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
  16338     keywords: KEYWORDS
  16339   };
  16340   var EXPRESSIONS = [
  16341     hljs.BINARY_NUMBER_MODE,
  16342     {
  16343       className: 'number',
  16344       begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)',
  16345       relevance: 0,
  16346       starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp
  16347     },
  16348     {
  16349       className: 'string',
  16350       variants: [
  16351         {
  16352           begin: /'''/, end: /'''/,
  16353           contains: [hljs.BACKSLASH_ESCAPE]
  16354         },
  16355         {
  16356           begin: /'/, end: /'/,
  16357           contains: [hljs.BACKSLASH_ESCAPE]
  16358         },
  16359         {
  16360           begin: /"""/, end: /"""/,
  16361           contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
  16362         },
  16363         {
  16364           begin: /"/, end: /"/,
  16365           contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
  16366         },
  16367         {
  16368           begin: /\\/, end: /(\s|$)/,
  16369           excludeEnd: true
  16370         }
  16371       ]
  16372     },
  16373     {
  16374       className: 'regexp',
  16375       variants: [
  16376         {
  16377           begin: '//', end: '//[gim]*',
  16378           contains: [SUBST, hljs.HASH_COMMENT_MODE]
  16379         },
  16380         {
  16381           // regex can't start with space to parse x / 2 / 3 as two divisions
  16382           // regex can't start with *, and it supports an "illegal" in the main mode
  16383           begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
  16384         }
  16385       ]
  16386     },
  16387     {
  16388       begin: '@' + JS_IDENT_RE
  16389     },
  16390     {
  16391       begin: '``', end: '``',
  16392       excludeBegin: true, excludeEnd: true,
  16393       subLanguage: 'javascript'
  16394     }
  16395   ];
  16396   SUBST.contains = EXPRESSIONS;
  16397 
  16398   var PARAMS = {
  16399     className: 'params',
  16400     begin: '\\(', returnBegin: true,
  16401     /* We need another contained nameless mode to not have every nested
  16402     pair of parens to be called "params" */
  16403     contains: [
  16404       {
  16405         begin: /\(/, end: /\)/,
  16406         keywords: KEYWORDS,
  16407         contains: ['self'].concat(EXPRESSIONS)
  16408       }
  16409     ]
  16410   };
  16411 
  16412   return {
  16413     aliases: ['ls'],
  16414     keywords: KEYWORDS,
  16415     illegal: /\/\*/,
  16416     contains: EXPRESSIONS.concat([
  16417       hljs.COMMENT('\\/\\*', '\\*\\/'),
  16418       hljs.HASH_COMMENT_MODE,
  16419       {
  16420         className: 'function',
  16421         contains: [TITLE, PARAMS],
  16422         returnBegin: true,
  16423         variants: [
  16424           {
  16425             begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?', end: '\\->\\*?'
  16426           },
  16427           {
  16428             begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?'
  16429           },
  16430           {
  16431             begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?'
  16432           }
  16433         ]
  16434       },
  16435       {
  16436         className: 'class',
  16437         beginKeywords: 'class',
  16438         end: '$',
  16439         illegal: /[:="\[\]]/,
  16440         contains: [
  16441           {
  16442             beginKeywords: 'extends',
  16443             endsWithParent: true,
  16444             illegal: /[:="\[\]]/,
  16445             contains: [TITLE]
  16446           },
  16447           TITLE
  16448         ]
  16449       },
  16450       {
  16451         begin: JS_IDENT_RE + ':', end: ':',
  16452         returnBegin: true, returnEnd: true,
  16453         relevance: 0
  16454       }
  16455     ])
  16456   };
  16457 }
  16458 },{name:"llvm",create:/*
  16459 Language: LLVM IR
  16460 Author: Michael Rodler <contact@f0rki.at>
  16461 Description: language used as intermediate representation in the LLVM compiler framework
  16462 Category: assembler
  16463 */
  16464 
  16465 function(hljs) {
  16466   var identifier = '([-a-zA-Z$._][\\w\\-$.]*)';
  16467   return {
  16468     //lexemes: '[.%]?' + hljs.IDENT_RE,
  16469     keywords:
  16470       'begin end true false declare define global ' +
  16471       'constant private linker_private internal ' +
  16472       'available_externally linkonce linkonce_odr weak ' +
  16473       'weak_odr appending dllimport dllexport common ' +
  16474       'default hidden protected extern_weak external ' +
  16475       'thread_local zeroinitializer undef null to tail ' +
  16476       'target triple datalayout volatile nuw nsw nnan ' +
  16477       'ninf nsz arcp fast exact inbounds align ' +
  16478       'addrspace section alias module asm sideeffect ' +
  16479       'gc dbg linker_private_weak attributes blockaddress ' +
  16480       'initialexec localdynamic localexec prefix unnamed_addr ' +
  16481       'ccc fastcc coldcc x86_stdcallcc x86_fastcallcc ' +
  16482       'arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ' +
  16483       'ptx_kernel intel_ocl_bicc msp430_intrcc spir_func ' +
  16484       'spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc ' +
  16485       'cc c signext zeroext inreg sret nounwind ' +
  16486       'noreturn noalias nocapture byval nest readnone ' +
  16487       'readonly inlinehint noinline alwaysinline optsize ssp ' +
  16488       'sspreq noredzone noimplicitfloat naked builtin cold ' +
  16489       'nobuiltin noduplicate nonlazybind optnone returns_twice ' +
  16490       'sanitize_address sanitize_memory sanitize_thread sspstrong ' +
  16491       'uwtable returned type opaque eq ne slt sgt ' +
  16492       'sle sge ult ugt ule uge oeq one olt ogt ' +
  16493       'ole oge ord uno ueq une x acq_rel acquire ' +
  16494       'alignstack atomic catch cleanup filter inteldialect ' +
  16495       'max min monotonic nand personality release seq_cst ' +
  16496       'singlethread umax umin unordered xchg add fadd ' +
  16497       'sub fsub mul fmul udiv sdiv fdiv urem srem ' +
  16498       'frem shl lshr ashr and or xor icmp fcmp ' +
  16499       'phi call trunc zext sext fptrunc fpext uitofp ' +
  16500       'sitofp fptoui fptosi inttoptr ptrtoint bitcast ' +
  16501       'addrspacecast select va_arg ret br switch invoke ' +
  16502       'unwind unreachable indirectbr landingpad resume ' +
  16503       'malloc alloca free load store getelementptr ' +
  16504       'extractelement insertelement shufflevector getresult ' +
  16505       'extractvalue insertvalue atomicrmw cmpxchg fence ' +
  16506       'argmemonly double',
  16507     contains: [
  16508       {
  16509         className: 'keyword',
  16510         begin: 'i\\d+'
  16511       },
  16512       hljs.COMMENT(
  16513         ';', '\\n', {relevance: 0}
  16514       ),
  16515       // Double quote string
  16516       hljs.QUOTE_STRING_MODE,
  16517       {
  16518         className: 'string',
  16519         variants: [
  16520           // Double-quoted string
  16521           { begin: '"', end: '[^\\\\]"' },
  16522         ],
  16523         relevance: 0
  16524       },
  16525       {
  16526         className: 'title',
  16527         variants: [
  16528           { begin: '@' + identifier },
  16529           { begin: '@\\d+' },
  16530           { begin: '!' + identifier },
  16531           { begin: '!\\d+' + identifier }
  16532         ]
  16533       },
  16534       {
  16535         className: 'symbol',
  16536         variants: [
  16537           { begin: '%' + identifier },
  16538           { begin: '%\\d+' },
  16539           { begin: '#\\d+' },
  16540         ]
  16541       },
  16542       {
  16543         className: 'number',
  16544         variants: [
  16545             { begin: '0[xX][a-fA-F0-9]+' },
  16546             { begin: '-?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?' }
  16547         ],
  16548         relevance: 0
  16549       },
  16550     ]
  16551   };
  16552 }
  16553 },{name:"lsl",create:/*
  16554 Language: Linden Scripting Language
  16555 Description: The Linden Scripting Language is used in Second Life by Linden Labs.
  16556 Author: Builder's Brewery <buildersbrewery@gmail.com>
  16557 Category: scripting
  16558 */
  16559 
  16560 function(hljs) {
  16561 
  16562     var LSL_STRING_ESCAPE_CHARS = {
  16563         className: 'subst',
  16564         begin: /\\[tn"\\]/
  16565     };
  16566 
  16567     var LSL_STRINGS = {
  16568         className: 'string',
  16569         begin: '"',
  16570         end: '"',
  16571         contains: [
  16572             LSL_STRING_ESCAPE_CHARS
  16573         ]
  16574     };
  16575 
  16576     var LSL_NUMBERS = {
  16577         className: 'number',
  16578         begin: hljs.C_NUMBER_RE
  16579     };
  16580 
  16581     var LSL_CONSTANTS = {
  16582         className: 'literal',
  16583         variants: [
  16584             {
  16585                 begin: '\\b(?:PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b'
  16586             },
  16587             {
  16588                 begin: '\\b(?:XP_ERROR_(?:EXPERIENCES_DISABLED|EXPERIENCE_(?:DISABLED|SUSPENDED)|INVALID_(?:EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(?:FOUND|PERMITTED(?:_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(?:IVE|_(?:ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_(?:COUNT|EQUIVALENCE)|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|(?:BODY_SHAPE|PATHFINDING)_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(?:BASE|TIP)|[LR]WING|FACE_(?:JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:ALPHA_MODE(?:_(?:BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[ABCD]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b'
  16589             },
  16590             {
  16591                 begin: '\\b(?:FALSE|TRUE)\\b'
  16592             },
  16593             {
  16594                 begin: '\\b(?:ZERO_ROTATION)\\b'
  16595             },
  16596             {
  16597                 begin: '\\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\\b'
  16598             },
  16599             {
  16600                 begin: '\\b(?:ZERO_VECTOR|TOUCH_INVALID_(?:TEXCOORD|VECTOR))\\b'
  16601             }
  16602         ]
  16603     };
  16604 
  16605     var LSL_FUNCTIONS = {
  16606         className: 'built_in',
  16607         begin: '\\b(?:ll(?:AgentInExperience|(?:Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(?:Details|ErrorMessage)|ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached(?:List)?|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|Request(?:Experience)?Permissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b'
  16608     };
  16609 
  16610     return {
  16611         illegal: ':',
  16612         contains: [
  16613             LSL_STRINGS,
  16614             {
  16615                 className: 'comment',
  16616                 variants: [
  16617                     hljs.COMMENT('//', '$'),
  16618                     hljs.COMMENT('/\\*', '\\*/')
  16619                 ]
  16620             },
  16621             LSL_NUMBERS,
  16622             {
  16623                 className: 'section',
  16624                 variants: [
  16625                     {
  16626                         begin: '\\b(?:state|default)\\b'
  16627                     },
  16628                     {
  16629                         begin: '\\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|experience_permissions(?:_denied)?|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\\b'
  16630                     }
  16631                 ]
  16632             },
  16633             LSL_FUNCTIONS,
  16634             LSL_CONSTANTS,
  16635             {
  16636                 className: 'type',
  16637                 begin: '\\b(?:integer|float|string|key|vector|quaternion|rotation|list)\\b'
  16638             }
  16639         ]
  16640     };
  16641 }
  16642 },{name:"lua",create:/*
  16643 Language: Lua
  16644 Author: Andrew Fedorov <dmmdrs@mail.ru>
  16645 Category: scripting
  16646 */
  16647 
  16648 function(hljs) {
  16649   var OPENING_LONG_BRACKET = '\\[=*\\[';
  16650   var CLOSING_LONG_BRACKET = '\\]=*\\]';
  16651   var LONG_BRACKETS = {
  16652     begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
  16653     contains: ['self']
  16654   };
  16655   var COMMENTS = [
  16656     hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
  16657     hljs.COMMENT(
  16658       '--' + OPENING_LONG_BRACKET,
  16659       CLOSING_LONG_BRACKET,
  16660       {
  16661         contains: [LONG_BRACKETS],
  16662         relevance: 10
  16663       }
  16664     )
  16665   ];
  16666   return {
  16667     lexemes: hljs.UNDERSCORE_IDENT_RE,
  16668     keywords: {
  16669       literal: "true false nil",
  16670       keyword: "and break do else elseif end for goto if in local not or repeat return then until while",
  16671       built_in:
  16672         //Metatags and globals:
  16673         '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' +
  16674         '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' +
  16675         //Standard methods and properties:
  16676         'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring' +
  16677         'module next pairs pcall print rawequal rawget rawset require select setfenv' +
  16678         'setmetatable tonumber tostring type unpack xpcall arg self' +
  16679         //Library methods and properties (one line per library):
  16680         'coroutine resume yield status wrap create running debug getupvalue ' +
  16681         'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' +
  16682         'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' +
  16683         'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan ' +
  16684         'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall ' +
  16685         'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower ' +
  16686         'table setn insert getn foreachi maxn foreach concat sort remove'
  16687     },
  16688     contains: COMMENTS.concat([
  16689       {
  16690         className: 'function',
  16691         beginKeywords: 'function', end: '\\)',
  16692         contains: [
  16693           hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
  16694           {
  16695             className: 'params',
  16696             begin: '\\(', endsWithParent: true,
  16697             contains: COMMENTS
  16698           }
  16699         ].concat(COMMENTS)
  16700       },
  16701       hljs.C_NUMBER_MODE,
  16702       hljs.APOS_STRING_MODE,
  16703       hljs.QUOTE_STRING_MODE,
  16704       {
  16705         className: 'string',
  16706         begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
  16707         contains: [LONG_BRACKETS],
  16708         relevance: 5
  16709       }
  16710     ])
  16711   };
  16712 }
  16713 },{name:"makefile",create:/*
  16714 Language: Makefile
  16715 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
  16716 Contributors: Joël Porquet <joel@porquet.org>
  16717 Category: common
  16718 */
  16719 
  16720 function(hljs) {
  16721   /* Variables: simple (eg $(var)) and special (eg $@) */
  16722   var VARIABLE = {
  16723     className: 'variable',
  16724     variants: [
  16725       {
  16726         begin: '\\$\\(' + hljs.UNDERSCORE_IDENT_RE + '\\)',
  16727         contains: [hljs.BACKSLASH_ESCAPE],
  16728       },
  16729       {
  16730         begin: /\$[@%<?\^\+\*]/
  16731       },
  16732     ]
  16733   };
  16734   /* Quoted string with variables inside */
  16735   var QUOTE_STRING = {
  16736     className: 'string',
  16737     begin: /"/, end: /"/,
  16738     contains: [
  16739       hljs.BACKSLASH_ESCAPE,
  16740       VARIABLE,
  16741     ]
  16742   };
  16743   /* Function: $(func arg,...) */
  16744   var FUNC = {
  16745     className: 'variable',
  16746     begin: /\$\([\w-]+\s/, end: /\)/,
  16747     keywords: {
  16748       built_in:
  16749         'subst patsubst strip findstring filter filter-out sort ' +
  16750         'word wordlist firstword lastword dir notdir suffix basename ' +
  16751         'addsuffix addprefix join wildcard realpath abspath error warning ' +
  16752         'shell origin flavor foreach if or and call eval file value',
  16753     },
  16754     contains: [
  16755       VARIABLE,
  16756     ]
  16757   };
  16758   /* Variable assignment */
  16759   var VAR_ASSIG = {
  16760     begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\s*[:+?]?=',
  16761     illegal: '\\n',
  16762     returnBegin: true,
  16763     contains: [
  16764       {
  16765         begin: '^' + hljs.UNDERSCORE_IDENT_RE, end: '[:+?]?=',
  16766         excludeEnd: true,
  16767       }
  16768     ]
  16769   };
  16770   /* Meta targets (.PHONY) */
  16771   var META = {
  16772     className: 'meta',
  16773     begin: /^\.PHONY:/, end: /$/,
  16774     keywords: {'meta-keyword': '.PHONY'},
  16775     lexemes: /[\.\w]+/
  16776   };
  16777   /* Targets */
  16778   var TARGET = {
  16779     className: 'section',
  16780     begin: /^[^\s]+:/, end: /$/,
  16781     contains: [VARIABLE,]
  16782   };
  16783   return {
  16784     aliases: ['mk', 'mak'],
  16785     keywords:
  16786       'define endef undefine ifdef ifndef ifeq ifneq else endif ' +
  16787       'include -include sinclude override export unexport private vpath',
  16788     lexemes: /[\w-]+/,
  16789     contains: [
  16790       hljs.HASH_COMMENT_MODE,
  16791       VARIABLE,
  16792       QUOTE_STRING,
  16793       FUNC,
  16794       VAR_ASSIG,
  16795       META,
  16796       TARGET,
  16797     ]
  16798   };
  16799 }
  16800 },{name:"markdown",create:/*
  16801 Language: Markdown
  16802 Requires: xml.js
  16803 Author: John Crepezzi <john.crepezzi@gmail.com>
  16804 Website: http://seejohncode.com/
  16805 Category: common, markup
  16806 */
  16807 
  16808 function(hljs) {
  16809   return {
  16810     aliases: ['md', 'mkdown', 'mkd'],
  16811     contains: [
  16812       // highlight headers
  16813       {
  16814         className: 'section',
  16815         variants: [
  16816           { begin: '^#{1,6}', end: '$' },
  16817           { begin: '^.+?\\n[=-]{2,}$' }
  16818         ]
  16819       },
  16820       // inline html
  16821       {
  16822         begin: '<', end: '>',
  16823         subLanguage: 'xml',
  16824         relevance: 0
  16825       },
  16826       // lists (indicators only)
  16827       {
  16828         className: 'bullet',
  16829         begin: '^\\s*([*+-]|(\\d+\\.))\\s+'
  16830       },
  16831       // strong segments
  16832       {
  16833         className: 'strong',
  16834         begin: '[*_]{2}.+?[*_]{2}'
  16835       },
  16836       // emphasis segments
  16837       {
  16838         className: 'emphasis',
  16839         variants: [
  16840           { begin: '\\*.+?\\*' },
  16841           { begin: '_.+?_'
  16842           , relevance: 0
  16843           }
  16844         ]
  16845       },
  16846       // blockquotes
  16847       {
  16848         className: 'quote',
  16849         begin: '^>\\s+', end: '$'
  16850       },
  16851       // code snippets
  16852       {
  16853         className: 'code',
  16854         variants: [
  16855           {
  16856             begin: '^```\w*\s*$', end: '^```\s*$'
  16857           },
  16858           {
  16859             begin: '`.+?`'
  16860           },
  16861           {
  16862             begin: '^( {4}|\t)', end: '$',
  16863             relevance: 0
  16864           }
  16865         ]
  16866       },
  16867       // horizontal rules
  16868       {
  16869         begin: '^[-\\*]{3,}', end: '$'
  16870       },
  16871       // using links - title and link
  16872       {
  16873         begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]',
  16874         returnBegin: true,
  16875         contains: [
  16876           {
  16877             className: 'string',
  16878             begin: '\\[', end: '\\]',
  16879             excludeBegin: true,
  16880             returnEnd: true,
  16881             relevance: 0
  16882           },
  16883           {
  16884             className: 'link',
  16885             begin: '\\]\\(', end: '\\)',
  16886             excludeBegin: true, excludeEnd: true
  16887           },
  16888           {
  16889             className: 'symbol',
  16890             begin: '\\]\\[', end: '\\]',
  16891             excludeBegin: true, excludeEnd: true
  16892           }
  16893         ],
  16894         relevance: 10
  16895       },
  16896       {
  16897         begin: /^\[[^\n]+\]:/,
  16898         returnBegin: true,
  16899         contains: [
  16900           {
  16901             className: 'symbol',
  16902             begin: /\[/, end: /\]/,
  16903             excludeBegin: true, excludeEnd: true
  16904           },
  16905           {
  16906             className: 'link',
  16907             begin: /:\s*/, end: /$/,
  16908             excludeBegin: true
  16909           }
  16910         ]
  16911       }
  16912     ]
  16913   };
  16914 }
  16915 },{name:"mathematica",create:/*
  16916 Language: Mathematica
  16917 Authors: Daniel Kvasnicka <dkvasnicka@vendavo.com>, Jan Poeschko <jan@poeschko.com>
  16918 Category: scientific
  16919 */
  16920 
  16921 function(hljs) {
  16922   return {
  16923     aliases: ['mma', 'wl'],
  16924     lexemes: '(\\$|\\b)' + hljs.IDENT_RE + '\\b',
  16925     //
  16926     // The list of "keywords" (System` symbols) was determined by evaluating the following Wolfram Language code in Mathematica 12.0:
  16927     //
  16928     // StringRiffle[
  16929     //   "'" <> StringRiffle[#, " "] <> "'" & /@
  16930     //     Values[GroupBy[
  16931     //       Select[Names["System`*"],
  16932     //       StringStartsQ[#, CharacterRange["A", "Z"] | "$"] &],
  16933     //       First[Characters[#]] &]], " +\n"]
  16934     //
  16935     keywords: 'AASTriangle AbelianGroup Abort AbortKernels AbortProtect AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Activate Active ActiveClassification ActiveClassificationObject ActiveItem ActivePrediction ActivePredictionObject ActiveStyle AcyclicGraphQ AddOnHelpPath AddSides AddTo AddToSearchIndex AddUsers AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AdministrativeDivisionData AffineHalfSpace AffineSpace AffineStateSpaceModel AffineTransform After AggregatedEntityClass AggregationLayer AircraftData AirportData AirPressureData AirTemperatureData AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowAdultContent AllowedCloudExtraParameters AllowedCloudParameterExtensions AllowedDimensions AllowedFrequencyRange AllowedHeads AllowGroupClose AllowIncomplete AllowInlineCells AllowKernelInitialization AllowLooseGrammar AllowReverseGroupClose AllowScriptLevelChange AllTrue Alphabet AlphabeticOrder AlphabeticSort AlphaChannel AlternateImage AlternatingFactorial AlternatingGroup AlternativeHypothesis Alternatives AltitudeMethod AmbientLight AmbiguityFunction AmbiguityList Analytic AnatomyData AnatomyForm AnatomyPlot3D AnatomySkinStyle AnatomyStyling AnchoredSearch And AndersonDarlingTest AngerJ AngleBisector AngleBracket AnglePath AnglePath3D AngleVector AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning AnimationRunTime AnimationTimeIndex Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotate Annotation AnnotationDelete AnnotationNames AnnotationRules AnnotationValue Annuity AnnuityDue Annulus AnomalyDetection AnomalyDetectorFunction Anonymous Antialiasing AntihermitianMatrixQ Antisymmetric AntisymmetricMatrixQ Antonyms AnyOrder AnySubset AnyTrue Apart ApartSquareFree APIFunction Appearance AppearanceElements AppearanceRules AppellF1 Append AppendCheck AppendLayer AppendTo ApplicationIdentificationKey Apply ApplySides ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcCurvature ARCHProcess ArcLength ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Area Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess Around AroundReplace ARProcess Array ArrayComponents ArrayDepth ArrayFilter ArrayFlatten ArrayMesh ArrayPad ArrayPlot ArrayQ ArrayResample ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads ASATriangle Ask AskAppend AskConfirm AskDisplay AskedQ AskedValue AskFunction AskState AskTemplateDisplay AspectRatio AspectRatioFixed Assert AssociateTo Association AssociationFormat AssociationMap AssociationQ AssociationThread AssumeDeterministic Assuming Assumptions AstronomicalData AsymptoticDSolveValue AsymptoticEqual AsymptoticEquivalent AsymptoticGreater AsymptoticGreaterEqual AsymptoticIntegrate AsymptoticLess AsymptoticLessEqual AsymptoticOutputTracker AsymptoticRSolveValue AsymptoticSolve AsymptoticSum Asynchronous AsynchronousTaskObject AsynchronousTasks Atom AtomCoordinates AtomCount AtomDiagramCoordinates AtomList AtomQ AttentionLayer Attributes Audio AudioAmplify AudioAnnotate AudioAnnotationLookup AudioBlockMap AudioCapture AudioChannelAssignment AudioChannelCombine AudioChannelMix AudioChannels AudioChannelSeparate AudioData AudioDelay AudioDelete AudioDevice AudioDistance AudioFade AudioFrequencyShift AudioGenerator AudioIdentify AudioInputDevice AudioInsert AudioIntervals AudioJoin AudioLabel AudioLength AudioLocalMeasurements AudioLooping AudioLoudness AudioMeasurements AudioNormalize AudioOutputDevice AudioOverlay AudioPad AudioPan AudioPartition AudioPause AudioPitchShift AudioPlay AudioPlot AudioQ AudioRecord AudioReplace AudioResample AudioReverb AudioSampleRate AudioSpectralMap AudioSpectralTransformation AudioSplit AudioStop AudioStream AudioStreams AudioTimeStretch AudioTrim AudioType AugmentedPolyhedron AugmentedSymmetricPolynomial Authenticate Authentication AuthenticationDialog AutoAction Autocomplete AutocompletionFunction AutoCopy AutocorrelationTest AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutoQuoteCharacters AutoRefreshed AutoRemove AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords AutoSubmitting Axes AxesEdge AxesLabel AxesOrigin AxesStyle AxiomaticTheory Axis' +
  16936       'BabyMonsterGroupB Back Background BackgroundAppearance BackgroundTasksSettings Backslash Backsubstitution Backward Ball Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarcodeImage BarcodeRecognize BaringhausHenzeTest BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseDecode BaseEncode BaseForm Baseline BaselinePosition BaseStyle BasicRecurrentLayer BatchNormalizationLayer BatchSize BatesDistribution BattleLemarieWavelet BayesianMaximization BayesianMaximizationObject BayesianMinimization BayesianMinimizationObject Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized Between BetweennessCentrality BeveledPolyhedron BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryDeserialize BinaryDistance BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinarySerialize BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BiquadraticFilterModel BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor BiweightLocation BiweightMidvariance Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockchainAddressData BlockchainBase BlockchainBlockData BlockchainContractValue BlockchainData BlockchainGet BlockchainKeyEncode BlockchainPut BlockchainTokenData BlockchainTransaction BlockchainTransactionData BlockchainTransactionSign BlockchainTransactionSubmit BlockMap BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bond BondCount BondList BondQ Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms BooleanQ BooleanRegion Booleans BooleanStrings BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryDiscretizeGraphics BoundaryDiscretizeRegion BoundaryMesh BoundaryMeshRegion BoundaryMeshRegionQ BoundaryStyle BoundedRegionQ BoundingRegion Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxObject BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break BridgeData BrightnessEqualize BroadcastStationData Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurve3DBoxOptions BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BSplineSurface3DBoxOptions BubbleChart BubbleChart3D BubbleScale BubbleSizes BuildingData BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteArray ByteArrayFormat ByteArrayQ ByteArrayToString ByteCount ByteOrdering' +
  16937       'C CachedValue CacheGraphics CachePersistence CalendarConvert CalendarData CalendarType Callout CalloutMarker CalloutStyle CallPacket CanberraDistance Cancel CancelButton CandlestickChart CanonicalGraph CanonicalizePolygon CanonicalizePolyhedron CanonicalName CanonicalWarpingCorrespondence CanonicalWarpingDistance CantorMesh CantorStaircase Cap CapForm CapitalDifferentialD Capitalize CapsuleShape CaptureRunning CardinalBSplineBasis CarlemanLinearize CarmichaelLambda CaseOrdering Cases CaseSensitive Cashflow Casoratian Catalan CatalanNumber Catch Catenate CatenateLayer CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling CelestialSystem Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEvaluationLanguage CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellLabelStyle CellLabelTemplate CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterArray CenterDot CentralFeature CentralMoment CentralMomentGeneratingFunction Cepstrogram CepstrogramArray CepstrumArray CForm ChampernowneNumber ChangeOptions ChannelBase ChannelBrokerAction ChannelDatabin ChannelHistoryLength ChannelListen ChannelListener ChannelListeners ChannelListenerWait ChannelObject ChannelPreSendFunction ChannelReceiverFunction ChannelSend ChannelSubscribers ChanVeseBinarize Character CharacterCounts CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterName CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop ChromaticityPlot ChromaticityPlot3D ChromaticPolynomial Circle CircleBox CircleDot CircleMinus CirclePlus CirclePoints CircleThrough CircleTimes CirculantGraph CircularOrthogonalMatrixDistribution CircularQuaternionMatrixDistribution CircularRealMatrixDistribution CircularSymplecticMatrixDistribution CircularUnitaryMatrixDistribution Circumsphere CityData ClassifierFunction ClassifierInformation ClassifierMeasurements ClassifierMeasurementsObject Classify ClassPriors Clear ClearAll ClearAttributes ClearCookies ClearPermissions ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipPlanesStyle ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent CloudAccountData CloudBase CloudConnect CloudDeploy CloudDirectory CloudDisconnect CloudEvaluate CloudExport CloudExpression CloudExpressions CloudFunction CloudGet CloudImport CloudLoggingData CloudObject CloudObjectInformation CloudObjectInformationData CloudObjectNameFormat CloudObjects CloudObjectURLType CloudPublish CloudPut CloudRenderingMethod CloudSave CloudShare CloudSubmit CloudSymbol CloudUnshare ClusterClassify ClusterDissimilarityFunction ClusteringComponents ClusteringTree CMYKColor Coarse CodeAssistOptions Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorBalance ColorCombine ColorConvert ColorCoverage ColorData ColorDataFunction ColorDetect ColorDistance ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQ ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorsNear ColorSpace ColorToneMapping Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CombinedEntityClass CombinerFunction CometData CommonDefaultFormatTypes Commonest CommonestFilter CommonName CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompanyData CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledCodeFunction CompiledFunction CompilerOptions Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComplexListPlot ComplexPlot ComplexPlot3D ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries CompositeQ Composition CompoundElement CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData ComputeUncertainty Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath ConformAudio ConformImages Congruent ConicHullRegion ConicHullRegion3DBox ConicHullRegionBox ConicOptimization Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphComponents ConnectedGraphQ ConnectedMeshComponents ConnectedMoleculeComponents ConnectedMoleculeQ ConnectionSettings ConnectLibraryCallbackFunction ConnectSystemModelComponents ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray ConstantArrayLayer ConstantImage ConstantPlusLayer ConstantRegionQ Constants ConstantTimesLayer ConstellationData ConstrainedMax ConstrainedMin Construct Containing ContainsAll ContainsAny ContainsExactly ContainsNone ContainsOnly ContentFieldOptions ContentLocationFunction ContentObject ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTask ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean ContrastiveLossLayer Control ControlActive ControlAlignment ControlGroupContentsBox ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket ConvexHullMesh ConvexPolygonQ ConvexPolyhedronQ ConvolutionLayer Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CookieFunction Cookies CoordinateBoundingBox CoordinateBoundingBoxArray CoordinateBounds CoordinateBoundsArray CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDatabin CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CountDistinct CountDistinctBy CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Counts CountsBy Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateCellID CreateChannel CreateCloudExpression CreateDatabin CreateDataSystemModel CreateDialog CreateDirectory CreateDocument CreateFile CreateIntermediateDirectories CreateManagedLibraryExpression CreateNotebook CreatePalette CreatePalettePacket CreatePermissionsGroup CreateScheduledTask CreateSearchIndex CreateSystemModel CreateTemporary CreateUUID CreateWindow CriterionFunction CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossEntropyLossLayer CrossingCount CrossingDetect CrossingPolygon CrossMatrix Csc Csch CTCLossLayer Cube CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrencyConvert CurrentDate CurrentImage CurrentlySpeakingPacket CurrentNotebookImage CurrentScreenImage CurrentValue Curry CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition' +
  16938       'D DagumDistribution DamData DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DatabaseConnect DatabaseDisconnect DatabaseReference Databin DatabinAdd DatabinRemove Databins DatabinUpload DataCompression DataDistribution DataRange DataReversed Dataset Date DateBounds Dated DateDelimiters DateDifference DatedUnit DateFormat DateFunction DateHistogram DateList DateListLogPlot DateListPlot DateListStepPlot DateObject DateObjectQ DateOverlapsQ DatePattern DatePlus DateRange DateReduction DateString DateTicksFormat DateValue DateWithinQ DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayHemisphere DaylightQ DayMatchQ DayName DayNightTerminator DayPlus DayRange DayRound DeBruijnGraph DeBruijnSequence Debug DebugTag Decapitalize Decimal DecimalForm DeclareKnownSymbols DeclarePackage Decompose DeconvolutionLayer Decrement Decrypt DecryptFile DedekindEta DeepSpaceProbeData Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultPrintPrecision DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValue DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod DefineResourceFunction Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic DEigensystem DEigenvalues Deinitialization Del DelaunayMesh Delayed Deletable Delete DeleteAnomalies DeleteBorderComponents DeleteCases DeleteChannel DeleteCloudExpression DeleteContents DeleteDirectory DeleteDuplicates DeleteDuplicatesBy DeleteFile DeleteMissing DeleteObject DeletePermissionsKey DeleteSearchIndex DeleteSmallComponents DeleteStopwords DeleteWithContents DeletionWarning DelimitedArray DelimitedSequence Delimiter DelimiterFlashTime DelimiterMatching Delimiters DeliveryFunction Dendrogram Denominator DensityGraphics DensityHistogram DensityPlot DensityPlot3D DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DerivedKey DescriptorStateSpace DesignMatrix DestroyAfterEvaluation Det DeviceClose DeviceConfigure DeviceExecute DeviceExecuteAsynchronous DeviceObject DeviceOpen DeviceOpenQ DeviceRead DeviceReadBuffer DeviceReadLatest DeviceReadList DeviceReadTimeSeries Devices DeviceStreams DeviceWrite DeviceWriteBuffer DGaussianWavelet DiacriticalPositioning Diagonal DiagonalizableMatrixQ DiagonalMatrix DiagonalMatrixQ Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DictionaryWordQ DifferenceDelta DifferenceOrder DifferenceQuotient DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitalSignature DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralAngle DihedralGroup Dilation DimensionalCombinations DimensionalMeshComponents DimensionReduce DimensionReducerFunction DimensionReduction Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletBeta DirichletCharacter DirichletCondition DirichletConvolve DirichletDistribution DirichletEta DirichletL DirichletLambda DirichletTransform DirichletWindow DisableConsolePrintPacket DisableFormatting DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLimit DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscreteMaxLimit DiscreteMinLimit DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform DiscretizeGraphics DiscretizeRegion Discriminant DisjointQ Disjunction Disk DiskBox DiskMatrix DiskSegment Dispatch DispatchQ DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceMatrix DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers DivideSides Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentGenerator DocumentGeneratorInformation DocumentGeneratorInformationData DocumentGenerators DocumentNotebook DocumentWeightingRules Dodecahedron DomainRegistrationInformation DominantColors DOSTextFormat Dot DotDashed DotEqual DotLayer DotPlusLayer Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DropoutLayer DSolve DSolveValue Dt DualLinearProgramming DualPolyhedron DualSystemsModel DumpGet DumpSave DuplicateFreeQ Duration Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicGeoGraphics DynamicImage DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions' +
  16939       'E EarthImpactData EarthquakeData EccentricityCentrality Echo EchoFunction EclipseType EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeContract EdgeCost EdgeCount EdgeCoverQ EdgeCycleMatrix EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight EdgeWeightedGraphQ Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData ElementwiseLayer ElidedForms Eliminate EliminationOrder Ellipsoid EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmbedCode EmbeddedHTML EmbeddedService EmbeddingLayer EmbeddingObject EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EmptyRegion EnableConsolePrintPacket Enabled Encode Encrypt EncryptedObject EncryptFile End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfBuffer EndOfFile EndOfLine EndOfString EndPackage EngineEnvironment EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entity EntityClass EntityClassList EntityCopies EntityFunction EntityGroup EntityInstance EntityList EntityPrefetch EntityProperties EntityProperty EntityPropertyClass EntityRegister EntityStore EntityStores EntityTypeName EntityUnregister EntityValue Entropy EntropyFilter Environment Epilog EpilogFunction Equal EqualColumns EqualRows EqualTilde EqualTo EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EscapeRadius EstimatedBackground EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerAngles EulerCharacteristic EulerE EulerGamma EulerianGraphQ EulerMatrix EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluateScheduledTask EvaluationBox EvaluationCell EvaluationCompletionAction EvaluationData EvaluationElements EvaluationEnvironment EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels EventSeries ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludedLines ExcludedPhysicalQuantities ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog ExoplanetData Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi ExpirationDate Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportByteArray ExportForm ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpressionUUID ExpToTrig ExtendedEntityClass ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalBundle ExternalCall ExternalDataCharacterEncoding ExternalEvaluate ExternalFunction ExternalFunctionName ExternalObject ExternalOptions ExternalSessionObject ExternalSessions ExternalTypeSignature ExternalValue Extract ExtractArchive ExtractLayer ExtremeValueDistribution' +
  16940       'FaceForm FaceGrids FaceGridsStyle FacialFeatures Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail Failure FailureAction FailureDistribution FailureQ False FareySequence FARIMAProcess FeatureDistance FeatureExtract FeatureExtraction FeatureExtractor FeatureExtractorFunction FeatureNames FeatureNearest FeatureSpacePlot FeatureSpacePlot3D FeatureTypes FEDisableConsolePrintPacket FeedbackLinearize FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket FetalGrowthData Fibonacci Fibonorial FieldCompletionFunction FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileConvert FileDate FileExistsQ FileExtension FileFormat FileHandler FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameForms FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileSize FileSystemMap FileSystemScan FileTemplate FileTemplateApply FileType FilledCurve FilledCurveBox FilledCurveBoxOptions Filling FillingStyle FillingTransform FilteredEntityClass FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindAnomalies FindArgMax FindArgMin FindChannels FindClique FindClusters FindCookies FindCurvePath FindCycle FindDevices FindDistribution FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEdgeIndependentPaths FindEquationalProof FindEulerianCycle FindExternalEvaluators FindFaces FindFile FindFit FindFormula FindFundamentalCycles FindGeneratingFunction FindGeoLocation FindGeometricConjectures FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindHamiltonianPath FindHiddenMarkovStates FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMatchingColor FindMaximum FindMaximumFlow FindMaxValue FindMeshDefects FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindMoleculeSubstructure FindPath FindPeaks FindPermutation FindPostmanTour FindProcessParameters FindRepeat FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindSpanningTree FindSystemModelEquilibrium FindTextualAnswer FindThreshold FindTransientRepeat FindVertexCover FindVertexCut FindVertexIndependentPaths Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstCase FirstPassageTimeDistribution FirstPosition FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FitRegularization FittedModel FixedOrder FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlattenLayer FlatTopWindow FlipView Floor FlowPolynomial FlushPrintOutputPacket Fold FoldList FoldPair FoldPairList FollowRedirects Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FormControl FormFunction FormLayoutFunction FormObject FormPage FormTheme FormulaData FormulaLookup FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalGaussianNoiseProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameRate FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrenetSerretSystem FrequencySamplingFilterKernel FresnelC FresnelF FresnelG FresnelS Friday FrobeniusNumber FrobeniusSolve FromAbsoluteTime FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS FromEntity FromJulianDate FromLetterNumber FromPolarCoordinates FromRomanNumeral FromSphericalCoordinates FromUnixTime Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullInformationOutputRegulator FullOptions FullRegion FullSimplify Function FunctionCompile FunctionCompileExport FunctionCompileExportByteArray FunctionCompileExportLibrary FunctionCompileExportString FunctionDomain FunctionExpand FunctionInterpolation FunctionPeriod FunctionRange FunctionSpace FussellVeselyImportance' +
  16941       'GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins GalaxyData GalleryView Gamma GammaDistribution GammaRegularized GapPenalty GARCHProcess GatedRecurrentLayer Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianOrthogonalMatrixDistribution GaussianSymplecticMatrixDistribution GaussianUnitaryMatrixDistribution GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateAsymmetricKeyPair GenerateConditions GeneratedCell GeneratedDocumentBinding GenerateDerivedKey GenerateDigitalSignature GenerateDocument GeneratedParameters GeneratedQuantityMagnitudes GenerateHTTPResponse GenerateSecuredAuthenticationKey GenerateSymmetricKey GeneratingFunction GeneratorDescription GeneratorHistoryLength GeneratorOutputType Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeoAntipode GeoArea GeoArraySize GeoBackground GeoBoundingBox GeoBounds GeoBoundsRegion GeoBubbleChart GeoCenter GeoCircle GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDisk GeoDisplacement GeoDistance GeoDistanceList GeoElevationData GeoEntities GeoGraphics GeogravityModelData GeoGridDirectionDifference GeoGridLines GeoGridLinesStyle GeoGridPosition GeoGridRange GeoGridRangePadding GeoGridUnitArea GeoGridUnitDistance GeoGridVector GeoGroup GeoHemisphere GeoHemisphereBoundary GeoHistogram GeoIdentify GeoImage GeoLabels GeoLength GeoListPlot GeoLocation GeologicalPeriodData GeomagneticModelData GeoMarker GeometricAssertion GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricScene GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoModel GeoNearest GeoPath GeoPosition GeoPositionENU GeoPositionXYZ GeoProjection GeoProjectionData GeoRange GeoRangePadding GeoRegionValuePlot GeoResolution GeoScaleBar GeoServer GeoSmoothHistogram GeoStreamPlot GeoStyling GeoStylingImageFunction GeoVariant GeoVector GeoVectorENU GeoVectorPlot GeoVectorXYZ GeoVisibleRegion GeoVisibleRegionBoundary GeoWithinQ GeoZoomLevel GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenAngle GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter GrammarApply GrammarRules GrammarToken Graph Graph3D GraphAssortativity GraphAutomorphismGroup GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel Greater GreaterEqual GreaterEqualLess GreaterEqualThan GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterThan GreaterTilde Green GreenFunction Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupBy GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators Groupings GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain GroupTogetherGrouping GroupTogetherNestedGrouping GrowCutComponents Gudermannian GuidedFilter GumbelDistribution' +
  16942       'HaarWavelet HadamardMatrix HalfLine HalfNormalDistribution HalfPlane HalfSpace HamiltonianGraphQ HammingDistance HammingWindow HandlerFunctions HandlerFunctionsKeys HankelH1 HankelH2 HankelMatrix HankelTransform HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash Haversine HazardFunction Head HeadCompose HeaderLines Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings Here HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenMarkovProcess HiddenSurface Highlighted HighlightGraph HighlightImage HighlightMesh HighpassFilter HigmanSimsGroupHS HilbertCurve HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HistoricalPeriodData HitMissTransform HITSCentrality HjorthDistribution HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HostLookup HotellingTSquareDistribution HoytDistribution HTMLSave HTTPErrorResponse HTTPRedirect HTTPRequest HTTPRequestData HTTPResponse Hue HumanGrowthData HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyperplane Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData' +
  16943       'I IconData Iconize IconizedObject IconRules Icosahedron Identity IdentityMatrix If IgnoreCase IgnoreDiacritics IgnorePunctuation IgnoreSpellCheck IgnoringInactive Im Image Image3D Image3DProjection Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageApplyIndexed ImageAspectRatio ImageAssemble ImageAugmentationLayer ImageBoundingBoxes ImageCache ImageCacheValid ImageCapture ImageCaptureFunction ImageCases ImageChannels ImageClip ImageCollage ImageColorSpace ImageCompose ImageContainsQ ImageContents ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDisplacements ImageDistance ImageEffect ImageExposureCombine ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageFocusCombine ImageForestingComponents ImageFormattingWidth ImageForwardTransformation ImageGraphics ImageHistogram ImageIdentify ImageInstanceQ ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarker ImageMarkers ImageMeasurements ImageMesh ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImagePosition ImagePreviewFunction ImagePyramid ImagePyramidApply ImageQ ImageRangeCache ImageRecolor ImageReflect ImageRegion ImageResize ImageResolution ImageRestyle ImageRotate ImageRotated ImageSaliencyFilter ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions ImagingDevice ImplicitRegion Implies Import ImportAutoReplacements ImportByteArray ImportOptions ImportString ImprovementImportance In Inactivate Inactive IncidenceGraph IncidenceList IncidenceMatrix IncludeAromaticBonds IncludeConstantBasis IncludeDefinitions IncludeDirectories IncludeFileExtension IncludeGeneratorTasks IncludeHydrogens IncludeInflections IncludeMetaInformation IncludePods IncludeQuantities IncludeRelatedTables IncludeSingularTerm IncludeWindowTimes Increment IndefiniteMatrixQ Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentPhysicalQuantity IndependentUnit IndependentUnitDimension IndependentVertexSetQ Indeterminate IndeterminateThreshold IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers InfiniteLine InfinitePlane Infinity Infix InflationAdjust InflationMethod Information InformationData InformationDataGrid Inherited InheritScope InhomogeneousPoissonProcess InitialEvaluationHistory Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InitializationObjects InitializationValue Initialize InitialSeeding InlineCounterAssignments InlineCounterIncrements InlineRules Inner InnerPolygon InnerPolyhedron Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionFunction InsertionPointObject InsertLinebreaks InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Insphere Install InstallService InstanceNormalizationLayer InString Integer IntegerDigits IntegerExponent IntegerLength IntegerName IntegerPart IntegerPartitions IntegerQ IntegerReverse Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction Interpreter InterpretTemplate InterquartileRange Interrupt InterruptSettings IntersectingQ Intersection Interval IntervalIntersection IntervalMarkers IntervalMarkersStyle IntervalMemberQ IntervalSlider IntervalUnion Into Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHankelTransform InverseHaversine InverseImagePyramid InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InverseMellinTransform InversePermutation InverseRadon InverseRadonTransform InverseSeries InverseShortTimeFourier InverseSpectrogram InverseSurvivalFunction InverseTransformedRegion InverseWaveletTransform InverseWeierstrassP InverseWishartMatrixDistribution InverseZTransform Invisible InvisibleApplication InvisibleTimes IPAddress IrreduciblePolynomialQ IslandData IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemAspectRatio ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess' +
  16944       'JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join JoinAcross Joined JoinedCurve JoinedCurveBox JoinedCurveBoxOptions JoinForm JordanDecomposition JordanModelDecomposition JulianDate JuliaSetBoettcher JuliaSetIterationCount JuliaSetPlot JuliaSetPoints' +
  16945       'K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KEdgeConnectedComponents KEdgeConnectedGraphQ KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelFunction KernelMixtureDistribution Kernels Ket Key KeyCollisionFunction KeyComplement KeyDrop KeyDropFrom KeyExistsQ KeyFreeQ KeyIntersection KeyMap KeyMemberQ KeypointStrength Keys KeySelect KeySort KeySortBy KeyTake KeyUnion KeyValueMap KeyValuePattern Khinchin KillProcess KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnapsackSolve KnightTourGraph KnotData KnownUnitQ KochCurve KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter KVertexConnectedComponents KVertexConnectedGraphQ' +
  16946       'LABColor Label Labeled LabeledSlider LabelingFunction LabelingSize LabelStyle LabelVisibility LaguerreL LakeData LambdaComponents LambertW LaminaData LanczosWindow LandauDistribution Language LanguageCategory LanguageData LanguageIdentify LanguageOptions LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCHColor LCM LeaderSize LeafCount LeapYearQ LearnDistribution LearnedDistribution LearningRate LearningRateMultipliers LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessEqualThan LessFullEqual LessGreater LessLess LessSlantEqual LessThan LessTilde LetterCharacter LetterCounts LetterNumber LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryDataType LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox Line3DBoxOptions LinearFilter LinearFractionalOptimization LinearFractionalTransform LinearGradientImage LinearizingTransformationData LinearLayer LinearModelFit LinearOffsetFunction LinearOptimization LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBoxOptions LineBreak LinebreakAdjustments LineBreakChart LinebreakSemicolonWeighting LineBreakWithin LineColor LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRankCentrality LinkRead LinkReadHeld LinkReadyQ Links LinkService LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot ListDensityPlot3D Listen ListFormat ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListSliceContourPlot3D ListSliceDensityPlot3D ListSliceVectorPlot3D ListStepPlot ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalAdaptiveBinarize LocalCache LocalClusteringCoefficient LocalizeDefinitions LocalizeVariables LocalObject LocalObjects LocalResponseNormalizationLayer LocalSubmit LocalSymbol LocalTime LocalTimeZone LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogisticSigmoid LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongestOrderedSequence LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow LongShortTermMemoryLayer Lookup Loopback LoopFreeGraphQ LossFunction LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowerTriangularMatrixQ LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LunarEclipse LUVColor LyapunovSolve LyonsGroupLy' +
  16947       'MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MailAddressValidation MailExecute MailFolder MailItem MailReceiverFunction MailResponseFunction MailSearch MailServerConnect MailServerConnection MailSettings MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules ManagedLibraryExpressionID ManagedLibraryExpressionQ MandelbrotSetBoettcher MandelbrotSetDistance MandelbrotSetIterationCount MandelbrotSetMemberQ MandelbrotSetPlot MangoldtLambda ManhattanDistance Manipulate Manipulator MannedSpaceMissionData MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarchenkoPasturDistribution MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicalFunctionData MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixNormalDistribution MatrixPlot MatrixPower MatrixPropertyDistribution MatrixQ MatrixRank MatrixTDistribution Max MaxBend MaxCellMeasure MaxColorDistance MaxDetect MaxDuration MaxExtraBandwidths MaxExtraConditions MaxFeatureDisplacement MaxFeatures MaxFilter MaximalBy Maximize MaxItems MaxIterations MaxLimit MaxMemoryUsed MaxMixtureKernels MaxOverlapFraction MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxTrainingRounds MaxValue MaxwellDistribution MaxWordGap McLaughlinGroupMcL Mean MeanAbsoluteLossLayer MeanAround MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter MeanSquaredLossLayer Median MedianDeviation MedianFilter MedicalTestData Medium MeijerG MeijerGReduce MeixnerDistribution MellinConvolve MellinTransform MemberQ MemoryAvailable MemoryConstrained MemoryConstraint MemoryInUse MengerMesh Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuList MenuPacket MenuSortingValue MenuStyle MenuView Merge MergeDifferences MergingFunction MersennePrimeExponent MersennePrimeExponentQ Mesh MeshCellCentroid MeshCellCount MeshCellHighlight MeshCellIndex MeshCellLabel MeshCellMarker MeshCellMeasure MeshCellQuality MeshCells MeshCellShapeFunction MeshCellStyle MeshCoordinates MeshFunctions MeshPrimitives MeshQualityGoal MeshRange MeshRefinementFunction MeshRegion MeshRegionQ MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageObject MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation MeteorShowerData Method MethodOptions MexicanHatWavelet MeyerWavelet Midpoint Min MinColorDistance MinDetect MineralData MinFilter MinimalBy MinimalPolynomial MinimalStateSpaceModel Minimize MinimumTimeIncrement MinIntervalSize MinkowskiQuestionMark MinLimit MinMax MinorPlanetData Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingBehavior MissingDataMethod MissingDataRules MissingQ MissingString MissingStyle MissingValuePattern MittagLefflerE MixedFractionParts MixedGraphQ MixedMagnitude MixedRadix MixedRadixQuantity MixedUnit MixtureDistribution Mod Modal Mode Modular ModularInverse ModularLambda Module Modulus MoebiusMu Molecule MoleculeContainsQ MoleculeEquivalentQ MoleculeGraph MoleculeModify MoleculePattern MoleculePlot MoleculePlot3D MoleculeProperty MoleculeQ MoleculeValue Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most MountainData MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovieData MovingAverage MovingMap MovingMedian MoyalDistribution Multicolumn MultiedgeStyle MultigraphQ MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity MultiplySides Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution' +
  16948       'N NakagamiDistribution NameQ Names NamespaceBox NamespaceBoxOptions Nand NArgMax NArgMin NBernoulliB NBodySimulation NBodySimulationData NCache NDEigensystem NDEigenvalues NDSolve NDSolveValue Nearest NearestFunction NearestNeighborGraph NearestTo NebulaData NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeDefiniteMatrixQ NegativeIntegers NegativeMultinomialDistribution NegativeRationals NegativeReals NegativeSemidefiniteMatrixQ NeighborhoodData NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestGraph NestList NestWhile NestWhileList NetAppend NetBidirectionalOperator NetChain NetDecoder NetDelete NetDrop NetEncoder NetEvaluationMode NetExtract NetFlatten NetFoldOperator NetGraph NetInformation NetInitialize NetInsert NetInsertSharedArrays NetJoin NetMapOperator NetMapThreadOperator NetMeasurements NetModel NetNestOperator NetPairEmbeddingOperator NetPort NetPortGradient NetPrepend NetRename NetReplace NetReplacePart NetSharedArray NetStateObject NetTake NetTrain NetTrainResultsObject NetworkPacketCapture NetworkPacketRecording NetworkPacketRecordingDuring NetworkPacketTrace NeumannValue NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextCell NextDate NextPrime NextScheduledTaskTime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NightHemisphere NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants NondimensionalizationTransform None NoneTrue NonlinearModelFit NonlinearStateSpaceModel NonlocalMeansFilter NonNegative NonNegativeIntegers NonNegativeRationals NonNegativeReals NonPositive NonPositiveIntegers NonPositiveRationals NonPositiveReals Nor NorlundB Norm Normal NormalDistribution NormalGrouping NormalizationLayer Normalize Normalized NormalizedSquaredEuclideanDistance NormalMatrixQ NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookImport NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookTemplate NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde Nothing NotHumpDownHump NotHumpEqual NotificationFunction NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar Now NoWhitespace NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms NuclearExplosionData NuclearReactorData Null NullRecords NullSpace NullWords Number NumberCompose NumberDecompose NumberExpand NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberLinePlot NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumeratorDenominator NumericalOrder NumericalSort NumericArray NumericArrayQ NumericArrayType NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot' +
  16949       'O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OceanData Octahedron OddQ Off Offset OLEData On ONanGroupON Once OneIdentity Opacity OpacityFunction OpacityFunctionScaling Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionalElement OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering OrderingBy OrderingLayer Orderless OrderlessPatternSequence OrnsteinUhlenbeckProcess Orthogonalize OrthogonalMatrixQ Out Outer OuterPolygon OuterPolyhedron OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OverwriteTarget OwenT OwnValues' +
  16950       'Package PackingMethod PaddedForm Padding PaddingLayer PaddingSize PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageTheme PageWidth Pagination PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath PalindromeQ Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallelepiped ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds Parallelogram ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParametricRegion ParentBox ParentCell ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParentNotebook ParetoDistribution ParetoPickandsDistribution ParkData Part PartBehavior PartialCorrelationFunction PartialD ParticleAcceleratorData ParticleData Partition PartitionGranularity PartitionsP PartitionsQ PartLayer PartOfSpeech PartProtection ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteAutoQuoteCharacters PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PeakDetect PeanoCurve PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PercentForm PerfectNumber PerfectNumberQ PerformanceGoal Perimeter PeriodicBoundaryCondition PeriodicInterpolation Periodogram PeriodogramArray Permanent Permissions PermissionsGroup PermissionsGroupMemberQ PermissionsGroups PermissionsKey PermissionsKeys PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PerpendicularBisector PersistenceLocation PersistenceTime PersistentObject PersistentObjects PersistentValue PersonData PERTDistribution PetersenGraph PhaseMargins PhaseRange PhysicalSystemData Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest PingTime Pink PitchRecognize Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarAngle PlanarGraph PlanarGraphQ PlanckRadiationLaw PlaneCurveData PlanetaryMoonData PlanetData PlantData Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLabels PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangeClipPlanesStyle PlotRangePadding PlotRegion PlotStyle PlotTheme Pluralize Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox Point3DBoxOptions PointBox PointBoxOptions PointFigureChart PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonalNumber PolygonAngle PolygonBox PolygonBoxOptions PolygonCoordinates PolygonDecomposition PolygonHoleScale PolygonIntersections PolygonScale Polyhedron PolyhedronAngle PolyhedronCoordinates PolyhedronData PolyhedronDecomposition PolyhedronGenus PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PoolingLayer PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position PositionIndex Positive PositiveDefiniteMatrixQ PositiveIntegers PositiveRationals PositiveReals PositiveSemidefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerRange PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement Predict PredictionRoot PredictorFunction PredictorInformation PredictorMeasurements PredictorMeasurementsObject PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependLayer PrependTo PreprocessingRules PreserveColor PreserveImageOptions Previous PreviousCell PreviousDate PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitivePolynomialQ PrimitiveRoot PrimitiveRootList PrincipalComponents PrincipalValue Print PrintableASCIIQ PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment Printout3D Printout3DPreviewer PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateKey PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessConnection ProcessDirectory ProcessEnvironment Processes ProcessEstimator ProcessInformation ProcessObject ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessStatus ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm ProofObject Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse PsychrometricPropertyData PublicKey PublisherID PulsarData PunctuationCharacter Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions' +
  16951       'QBinomial QFactorial QGamma QHypergeometricPFQ QnDispersion QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ QuadraticOptimization Quantile QuantilePlot Quantity QuantityArray QuantityDistribution QuantityForm QuantityMagnitude QuantityQ QuantityUnit QuantityVariable QuantityVariableCanonicalUnit QuantityVariableDimensions QuantityVariableIdentifier QuantityVariablePhysicalQuantity Quartics QuartileDeviation Quartiles QuartileSkewness Query QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder' +
  16952       'RadialGradientImage RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RadonTransform RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Ramp Random RandomChoice RandomColor RandomComplex RandomEntity RandomFunction RandomGeoPosition RandomGraph RandomImage RandomInstance RandomInteger RandomPermutation RandomPoint RandomPolygon RandomPolyhedron RandomPrime RandomReal RandomSample RandomSeed RandomSeeding RandomVariate RandomWalkProcess RandomWord Range RangeFilter RangeSpecification RankedMax RankedMin RarerProbability Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadByteArray ReadLine ReadList ReadProtected ReadString Real RealAbs RealBlockDiagonalForm RealDigits RealExponent Reals RealSign Reap RecognitionPrior RecognitionThreshold Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RectangularRepeatingElement RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate Region RegionBinarize RegionBoundary RegionBounds RegionCentroid RegionDifference RegionDimension RegionDisjoint RegionDistance RegionDistanceFunction RegionEmbeddingDimension RegionEqual RegionFunction RegionImage RegionIntersection RegionMeasure RegionMember RegionMemberFunction RegionMoment RegionNearest RegionNearestFunction RegionPlot RegionPlot3D RegionProduct RegionQ RegionResize RegionSize RegionSymmetricDifference RegionUnion RegionWithin RegisterExternalEvaluator RegularExpression Regularization RegularlySampledQ RegularPolygon ReIm ReImLabels ReImPlot ReImStyle Reinstall RelationalDatabase RelationGraph Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot RemoteAuthorizationCaching RemoteConnect RemoteConnectionObject RemoteFile RemoteRun RemoteRunProcess Remove RemoveAlphaChannel RemoveAsynchronousTask RemoveAudioStream RemoveBackground RemoveChannelListener RemoveChannelSubscribers Removed RemoveDiacritics RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RemoveUsers RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart RepairMesh Repeated RepeatedNull RepeatedString RepeatedTiming RepeatingElement Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated ReplicateLayer RequiredPhysicalQuantities Resampling ResamplingAlgorithmData ResamplingMethod Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask ReshapeLayer Residue ResizeLayer Resolve ResourceAcquire ResourceData ResourceFunction ResourceObject ResourceRegister ResourceRemove ResourceSearch ResourceSubmissionObject ResourceSubmit ResourceSystemBase ResourceUpdate ResponseForm Rest RestartInterval Restricted Resultant ResumePacket Return ReturnEntersInput ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnReceiptFunction ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseSort ReverseSortBy ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ RiemannXi Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightComposition RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity RollPitchYawAngles RollPitchYawMatrix RomanNumeral Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RSolveValue RudinShapiro RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulePlot RulerUnits Run RunProcess RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity' +
  16953       'SameQ SameTest SampledEntityClass SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SASTriangle SatelliteData SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveConnection SaveDefinitions SavitzkyGolayMatrix SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTask ScheduledTaskActiveQ ScheduledTaskInformation ScheduledTaskInformationData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScientificNotationThreshold ScorerGi ScorerGiPrime ScorerHi ScorerHiPrime ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptForm ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition SearchAdjustment SearchIndexObject SearchIndices SearchQueryString SearchResultObject Sec Sech SechDistribution SecondOrderConeOptimization SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SecuredAuthenticationKey SecuredAuthenticationKeys SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook SelectFirst Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemanticImport SemanticImportString SemanticInterpretation SemialgebraicComponentInstances SemidefiniteOptimization SendMail SendMessage Sequence SequenceAlignment SequenceAttentionLayer SequenceCases SequenceCount SequenceFold SequenceFoldList SequenceForm SequenceHold SequenceLastLayer SequenceMostLayer SequencePosition SequencePredict SequencePredictorFunction SequenceReplace SequenceRestLayer SequenceReverseLayer SequenceSplit Series SeriesCoefficient SeriesData ServiceConnect ServiceDisconnect ServiceExecute ServiceObject ServiceRequest ServiceResponse ServiceSubmit SessionSubmit SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetCloudDirectory SetCookies SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPermissions SetPrecision SetProperty SetSecuredAuthenticationKey SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemModel SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetUsers SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share SharingList Sharpen ShearingMatrix ShearingTransform ShellRegion ShenCastanMatrix ShiftedGompertzDistribution ShiftRegisterSequence Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortTimeFourier ShortTimeFourierData ShortUpArrow Show ShowAutoConvert ShowAutoSpellCheck ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowCodeAssist ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiderealTime SiegelTheta SiegelTukeyTest SierpinskiCurve SierpinskiMesh Sign Signature SignedRankTest SignedRegionDistance SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ SimplePolygonQ SimplePolyhedronQ Simplex Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution SkinStyle Skip SliceContourPlot3D SliceDensityPlot3D SliceDistribution SliceVectorPlot3D Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDecomposition SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SnDispersion Snippet SnubPolyhedron SocialMediaData Socket SocketConnect SocketListen SocketListener SocketObject SocketOpen SocketReadMessage SocketReadyQ Sockets SocketWaitAll SocketWaitNext SoftmaxLayer SokalSneathDissimilarity SolarEclipse SolarSystemFeatureData SolidAngle SolidData SolidRegionQ Solve SolveAlways SolveDelayed Sort SortBy SortedBy SortedEntityClass Sound SoundAndGraphics SoundNote SoundVolume SourceLink Sow Space SpaceCurveData SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution SpatialMedian SpatialTransformationLayer Speak SpeakTextPacket SpearmanRankTest SpearmanRho SpeciesData SpecificityGoal SpectralLineData Spectrogram SpectrogramArray Specularity SpeechRecognize SpeechSynthesize SpellingCorrection SpellingCorrectionList SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SpherePoints SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SphericalShell SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquareMatrixQ SquareRepeatingElement SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave SSSTriangle StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackedDateListPlot StackedListPlot StackInhibit StadiumShape StandardAtmosphereData StandardDeviation StandardDeviationFilter StandardForm Standardize Standardized StandardOceanData StandbyDistribution Star StarClusterData StarData StarGraph StartAsynchronousTask StartExternalSession StartingStepSize StartOfLine StartOfString StartProcess StartScheduledTask StartupSound StartWebSession StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StateTransformationLinearize StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StereochemistryElements StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StoppingPowerData StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamMarkers StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringContainsQ StringCount StringDelete StringDrop StringEndsQ StringExpression StringExtract StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPadLeft StringPadRight StringPart StringPartition StringPosition StringQ StringRepeat StringReplace StringReplaceList StringReplacePart StringReverse StringRiffle StringRotateLeft StringRotateRight StringSkeleton StringSplit StringStartsQ StringTake StringTemplate StringToByteArray StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleData StyleDefinitions StyleForm StyleHints StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subdivide Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subsequences Subset SubsetEqual SubsetMap SubsetQ Subsets SubStar SubstitutionSystem Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubtractSides SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde Success SuchThat Sum SumConvergence SummationLayer Sunday SunPosition Sunrise Sunset SuperDagger SuperMinus SupernovaData SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceArea SurfaceColor SurfaceData SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricKey SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Synonyms Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SynthesizeMissingValues SystemDialogInput SystemException SystemGet SystemHelpPath SystemInformation SystemInformationData SystemInstall SystemModel SystemModeler SystemModelExamples SystemModelLinearize SystemModelParametricSimulate SystemModelPlot SystemModelProgressReporting SystemModelReliability SystemModels SystemModelSimulate SystemModelSimulateSensitivity SystemModelSimulationData SystemOpen SystemOptions SystemProcessData SystemProcesses SystemsConnectionsModel SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelLinearity SystemsModelMerge SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemsModelVectorRelativeOrders SystemStub SystemTest' +
  16954       'Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TableViewBoxBackground TableViewBoxOptions TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeDrop TakeLargest TakeLargestBy TakeList TakeSmallest TakeSmallestBy TakeWhile Tally Tan Tanh TargetDevice TargetFunctions TargetSystem TargetUnits TaskAbort TaskExecute TaskObject TaskRemove TaskResume Tasks TaskSuspend TaskWait TautologyQ TelegraphProcess TemplateApply TemplateArgBox TemplateBox TemplateBoxOptions TemplateEvaluate TemplateExpression TemplateIf TemplateObject TemplateSequence TemplateSlot TemplateSlotSequence TemplateUnevaluated TemplateVerbatim TemplateWith TemporalData TemporalRegularity Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge TestID TestReport TestReportObject TestResultObject Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCases TextCell TextClipboardType TextContents TextData TextElement TextForm TextGrid TextJustification TextLine TextPacket TextParagraph TextPosition TextRecognize TextSearch TextSearchReport TextSentences TextString TextStructure TextStyle TextTranslation Texture TextureCoordinateFunction TextureCoordinateScaling TextWords Therefore ThermodynamicData ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreadingLayer ThreeJSymbol Threshold Through Throw ThueMorse Thumbnail Thursday Ticks TicksStyle TideData Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint TimeDirection TimeFormat TimeGoal TimelinePlot TimeObject TimeObjectQ Times TimesBy TimeSeries TimeSeriesAggregate TimeSeriesForecast TimeSeriesInsert TimeSeriesInvertibility TimeSeriesMap TimeSeriesMapThread TimeSeriesModel TimeSeriesModelFit TimeSeriesResample TimeSeriesRescale TimeSeriesShift TimeSeriesThread TimeSeriesWindow TimeUsed TimeValue TimeWarpingCorrespondence TimeWarpingDistance TimeZone TimeZoneConvert TimeZoneOffset Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate Today ToDiscreteTimeModel ToEntity ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase Tomorrow ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform ToPolarCoordinates TopologicalSort ToRadicals ToRules ToSphericalCoordinates ToString Total TotalHeight TotalLayer TotalVariationFilter TotalWidth TouchPosition TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TrackingFunction TracyWidomDistribution TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TrainingProgressCheckpointing TrainingProgressFunction TrainingProgressMeasurements TrainingProgressReporting TrainingStoppingCriterion TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationClass TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField TransformedProcess TransformedRegion TransitionDirection TransitionDuration TransitionEffect TransitiveClosureGraph TransitiveReductionGraph Translate TranslationOptions TranslationTransform Transliterate Transparent TransparentColor Transpose TransposeLayer TrapSelection TravelDirections TravelDirectionsData TravelDistance TravelDistanceList TravelMethod TravelTime TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle Triangle TriangleCenter TriangleConstruct TriangleMeasurement TriangleWave TriangularDistribution TriangulateMesh Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean TrimmedVariance TropicalStormData True TrueQ TruncatedDistribution TruncatedPolyhedron TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBoxOptions TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow TunnelData Tuples TuranGraph TuringMachine TuttePolynomial TwoWayRule Typed TypeSpecifier' +
  16955       'UnateQ Uncompress UnconstrainedParameters Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UnderseaFeatureData UndirectedEdge UndirectedGraph UndirectedGraphQ UndoOptions UndoTrackedVariables Unequal UnequalTo Unevaluated UniformDistribution UniformGraphDistribution UniformPolyhedron UniformSumDistribution Uninstall Union UnionPlus Unique UnitaryMatrixQ UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitSystem UnitTriangle UnitVector UnitVectorLayer UnityDimensions UniverseModelData UniversityData UnixTime Unprotect UnregisterExternalEvaluator UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpdateSearchIndex UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize UpperTriangularMatrixQ Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpTo UpValues URL URLBuild URLDecode URLDispatcher URLDownload URLDownloadSubmit URLEncode URLExecute URLExpand URLFetch URLFetchAsynchronous URLParse URLQueryDecode URLQueryEncode URLRead URLResponseTime URLSave URLSaveAsynchronous URLShorten URLSubmit UseGraphicsRange UserDefinedWavelet Using UsingFrontEnd UtilityFunction' +
  16956       'V2Get ValenceErrorHandling ValidationLength ValidationSet Value ValueBox ValueBoxOptions ValueDimensions ValueForm ValuePreprocessingFunction ValueQ Values ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorAround VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorGreater VectorGreaterEqual VectorLess VectorLessEqual VectorMarkers VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerificationTest VerifyConvergence VerifyDerivedKey VerifyDigitalSignature VerifyInterpretation VerifySecurityCertificates VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexContract VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight VertexWeightedGraphQ Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewProjection ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoiceStyleData VoigtDistribution VolcanoData Volume VonMisesDistribution VoronoiMesh' +
  16957       'WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WarpingCorrespondence WarpingDistance WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeatherForecastData WebAudioSearch WebElementObject WeberE WebExecute WebImage WebImageSearch WebSearch WebSessionObject WebSessions WebWindowObject Wedge Wednesday WeibullDistribution WeierstrassE1 WeierstrassE2 WeierstrassE3 WeierstrassEta1 WeierstrassEta2 WeierstrassEta3 WeierstrassHalfPeriods WeierstrassHalfPeriodW1 WeierstrassHalfPeriodW2 WeierstrassHalfPeriodW3 WeierstrassInvariantG2 WeierstrassInvariantG3 WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White WhiteNoiseProcess WhitePoint Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WikipediaData WikipediaSearch WilksW WilksWTest WindDirectionData WindingCount WindingPolygon WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowPersistentStyles WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth WindSpeedData WindVectorData WinsorizedMean WinsorizedVariance WishartMatrixDistribution With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult WolframLanguageData Word WordBoundary WordCharacter WordCloud WordCount WordCounts WordData WordDefinition WordFrequency WordFrequencyData WordList WordOrientation WordSearch WordSelectionFunction WordSeparators WordSpacings WordStem WordTranslation WorkingPrecision WrapAround Write WriteLine WriteString Wronskian' +
  16958       'XMLElement XMLObject XMLTemplate Xnor Xor XYZColor' +
  16959       'Yellow Yesterday YuleDissimilarity' +
  16960       'ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZIPCodeData ZipfDistribution ZoomCenter ZoomFactor ZTest ZTransform' +
  16961       '$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AllowExternalChannelFunctions $AssertFunction $Assumptions $AsynchronousTask $AudioInputDevices $AudioOutputDevices $BaseDirectory $BatchInput $BatchOutput $BlockchainBase $BoxForms $ByteOrdering $CacheBaseDirectory $Canceled $ChannelBase $CharacterEncoding $CharacterEncodings $CloudBase $CloudConnected $CloudCreditsAvailable $CloudEvaluation $CloudExpressionBase $CloudObjectNameFormat $CloudObjectURLType $CloudRootDirectory $CloudSymbolBase $CloudUserID $CloudUserUUID $CloudVersion $CloudVersionNumber $CloudWolframEngineVersionNumber $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $Cookies $CookieStore $CreationDate $CurrentLink $CurrentTask $CurrentWebSession $DateStringFormat $DefaultAudioInputDevice $DefaultAudioOutputDevice $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultLocalBase $DefaultMailbox $DefaultNetworkInterface $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $EmbedCodeEnvironments $EmbeddableServices $EntityStores $Epilog $EvaluationCloudBase $EvaluationCloudObject $EvaluationEnvironment $ExportFormats $Failed $FinancialDataSource $FontFamilies $FormatType $FrontEnd $FrontEndSession $GeoEntityTypes $GeoLocation $GeoLocationCity $GeoLocationCountry $GeoLocationPrecision $GeoLocationSource $HistoryLength $HomeDirectory $HTMLExportRules $HTTPCookies $HTTPRequest $IgnoreEOF $ImageFormattingWidth $ImagingDevice $ImagingDevices $ImportFormats $IncomingMailSettings $InitialDirectory $Initialization $InitializationContexts $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $InterpreterTypes $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $LocalBase $LocalSymbolBase $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $MobilePhone $ModuleNumber $NetworkConnected $NetworkInterfaces $NetworkLicense $NewMessage $NewSymbol $Notebooks $NoValue $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $Permissions $PermissionsGroupBase $PersistenceBase $PersistencePath $PipeSupported $PlotTheme $Post $Pre $PreferencesDirectory $PreInitialization $PrePrint $PreRead $PrintForms $PrintLiteral $Printout3DPreviewer $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $PublisherID $RandomState $RecursionLimit $RegisteredDeviceClasses $RegisteredUserName $ReleaseNumber $RequesterAddress $RequesterWolframID $RequesterWolframUUID $ResourceSystemBase $RootDirectory $ScheduledTask $ScriptCommandLine $ScriptInputString $SecuredAuthenticationKeyTokens $ServiceCreditsAvailable $Services $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SourceLink $SSHAuthentication $SummaryBoxDataSizeLimit $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemMemory $SystemShell $SystemTimeZone $SystemWordLength $TemplatePath $TemporaryDirectory $TemporaryPrefix $TestFileName $TextStyle $TimedOut $TimeUnit $TimeZone $TimeZoneEntity $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $UnitSystem $Urgent $UserAddOnsDirectory $UserAgentLanguages $UserAgentMachine $UserAgentName $UserAgentOperatingSystem $UserAgentString $UserAgentVersion $UserBaseDirectory $UserDocumentsDirectory $Username $UserName $UserURLBase $Version $VersionNumber $VoiceStyles $WolframID $WolframUUID',
  16962     contains: [
  16963       hljs.COMMENT('\\(\\*', '\\*\\)', {contains: ['self']}),
  16964       hljs.QUOTE_STRING_MODE,
  16965       hljs.C_NUMBER_MODE
  16966     ]
  16967   };
  16968 }
  16969 },{name:"matlab",create:/*
  16970 Language: Matlab
  16971 Author: Denis Bardadym <bardadymchik@gmail.com>
  16972 Contributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>, Egor Rogov <e.rogov@postgrespro.ru>
  16973 Category: scientific
  16974 */
  16975 
  16976 /*
  16977   Formal syntax is not published, helpful link:
  16978   https://github.com/kornilova-l/matlab-IntelliJ-plugin/blob/master/src/main/grammar/Matlab.bnf
  16979 */
  16980 function(hljs) {
  16981 
  16982   var TRANSPOSE_RE = '(\'|\\.\')+';
  16983   var TRANSPOSE = {
  16984     relevance: 0,
  16985     contains: [
  16986       { begin: TRANSPOSE_RE }
  16987     ]
  16988   };
  16989 
  16990   return {
  16991     keywords: {
  16992       keyword:
  16993         'break case catch classdef continue else elseif end enumerated events for function ' +
  16994         'global if methods otherwise parfor persistent properties return spmd switch try while',
  16995       built_in:
  16996         'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
  16997         'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
  16998         'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
  16999         'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
  17000         'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
  17001         'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
  17002         'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
  17003         'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
  17004         'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
  17005         'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
  17006         'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
  17007         'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
  17008         'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
  17009         'rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table ' +
  17010         'readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun ' +
  17011         'legend intersect ismember procrustes hold num2cell '
  17012     },
  17013     illegal: '(//|"|#|/\\*|\\s+/\\w+)',
  17014     contains: [
  17015       {
  17016         className: 'function',
  17017         beginKeywords: 'function', end: '$',
  17018         contains: [
  17019           hljs.UNDERSCORE_TITLE_MODE,
  17020           {
  17021             className: 'params',
  17022             variants: [
  17023               {begin: '\\(', end: '\\)'},
  17024               {begin: '\\[', end: '\\]'}
  17025             ]
  17026           }
  17027         ]
  17028       },
  17029       {
  17030         className: 'built_in',
  17031         begin: /true|false/,
  17032         relevance: 0,
  17033         starts: TRANSPOSE
  17034       },
  17035       {
  17036         begin: '[a-zA-Z][a-zA-Z_0-9]*' + TRANSPOSE_RE,
  17037         relevance: 0
  17038       },
  17039       {
  17040         className: 'number',
  17041         begin: hljs.C_NUMBER_RE,
  17042         relevance: 0,
  17043         starts: TRANSPOSE
  17044       },
  17045       {
  17046         className: 'string',
  17047         begin: '\'', end: '\'',
  17048         contains: [
  17049           hljs.BACKSLASH_ESCAPE,
  17050           {begin: '\'\''}]
  17051       },
  17052       {
  17053         begin: /\]|}|\)/,
  17054         relevance: 0,
  17055         starts: TRANSPOSE
  17056       },
  17057       {
  17058         className: 'string',
  17059         begin: '"', end: '"',
  17060         contains: [
  17061           hljs.BACKSLASH_ESCAPE,
  17062           {begin: '""'}
  17063         ],
  17064         starts: TRANSPOSE
  17065       },
  17066       hljs.COMMENT('^\\s*\\%\\{\\s*$', '^\\s*\\%\\}\\s*$'),
  17067       hljs.COMMENT('\\%', '$')
  17068     ]
  17069   };
  17070 }
  17071 },{name:"maxima",create:/*
  17072 Language: Maxima
  17073 Author: Robert Dodier <robert.dodier@gmail.com>
  17074 Category: scientific
  17075 */
  17076 
  17077 function(hljs) {
  17078   var KEYWORDS = 'if then else elseif for thru do while unless step in and or not';
  17079   var LITERALS = 'true false unknown inf minf ind und %e %i %pi %phi %gamma';
  17080   var BUILTIN_FUNCTIONS =
  17081         ' abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate'
  17082       + ' addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix'
  17083       + ' adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type'
  17084       + ' alias allroots alphacharp alphanumericp amortization %and annuity_fv'
  17085       + ' annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2'
  17086       + ' applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply'
  17087       + ' arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger'
  17088       + ' asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order'
  17089       + ' asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method'
  17090       + ' av average_degree backtrace bars barsplot barsplot_description base64 base64_decode'
  17091       + ' bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx'
  17092       + ' bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify'
  17093       + ' bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized'
  17094       + ' bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp'
  17095       + ' bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition'
  17096       + ' block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description'
  17097       + ' break bug_report build_info|10 buildq build_sample burn cabs canform canten'
  17098       + ' cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli'
  17099       + ' cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform'
  17100       + ' cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel'
  17101       + ' cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial'
  17102       + ' cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson'
  17103       + ' cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay'
  17104       + ' ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic'
  17105       + ' cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2'
  17106       + ' charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps'
  17107       + ' chinese cholesky christof chromatic_index chromatic_number cint circulant_graph'
  17108       + ' clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph'
  17109       + ' clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse'
  17110       + ' collectterms columnop columnspace columnswap columnvector combination combine'
  17111       + ' comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph'
  17112       + ' complete_graph complex_number_p components compose_functions concan concat'
  17113       + ' conjugate conmetderiv connected_components connect_vertices cons constant'
  17114       + ' constantp constituent constvalue cont2part content continuous_freq contortion'
  17115       + ' contour_plot contract contract_edge contragrad contrib_ode convert coord'
  17116       + ' copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1'
  17117       + ' covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline'
  17118       + ' ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph'
  17119       + ' cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate'
  17120       + ' declare declare_constvalue declare_dimensions declare_fundamental_dimensions'
  17121       + ' declare_fundamental_units declare_qty declare_translated declare_unit_conversion'
  17122       + ' declare_units declare_weights decsym defcon define define_alt_display define_variable'
  17123       + ' defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten'
  17124       + ' delta demo demoivre denom depends derivdegree derivlist describe desolve'
  17125       + ' determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag'
  17126       + ' diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export'
  17127       + ' dimacs_import dimension dimensionless dimensions dimensions_as_list direct'
  17128       + ' directory discrete_freq disjoin disjointp disolate disp dispcon dispform'
  17129       + ' dispfun dispJordan display disprule dispterms distrib divide divisors divsum'
  17130       + ' dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart'
  17131       + ' draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring'
  17132       + ' edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth'
  17133       + ' einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome'
  17134       + ' ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using'
  17135       + ' ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi'
  17136       + ' ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp'
  17137       + ' equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors'
  17138       + ' euler ev eval_string evenp every evolution evolution2d evundiff example exp'
  17139       + ' expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci'
  17140       + ' expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li'
  17141       + ' expintegral_shi expintegral_si explicit explose exponentialize express expt'
  17142       + ' exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum'
  17143       + ' factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements'
  17144       + ' fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge'
  17145       + ' file_search file_type fillarray findde find_root find_root_abs find_root_error'
  17146       + ' find_root_rel first fix flatten flength float floatnump floor flower_snark'
  17147       + ' flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran'
  17148       + ' fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp'
  17149       + ' foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s'
  17150       + ' from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp'
  17151       + ' fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units'
  17152       + ' fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized'
  17153       + ' gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide'
  17154       + ' gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym'
  17155       + ' geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean'
  17156       + ' geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string'
  17157       + ' get_pixel get_plot_option get_tex_environment get_tex_environment_default'
  17158       + ' get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close'
  17159       + ' gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum'
  17160       + ' gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import'
  17161       + ' graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery'
  17162       + ' graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph'
  17163       + ' grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path'
  17164       + ' hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite'
  17165       + ' hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description'
  17166       + ' hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph'
  17167       + ' icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy'
  17168       + ' ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart'
  17169       + ' imetric implicit implicit_derivative implicit_plot indexed_tensor indices'
  17170       + ' induced_subgraph inferencep inference_result infix info_display init_atensor'
  17171       + ' init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions'
  17172       + ' integrate intersect intersection intervalp intopois intosum invariant1 invariant2'
  17173       + ' inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc'
  17174       + ' inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns'
  17175       + ' inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint'
  17176       + ' invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph'
  17177       + ' is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate'
  17178       + ' isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph'
  17179       + ' items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc'
  17180       + ' jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd'
  17181       + ' jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill'
  17182       + ' killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis'
  17183       + ' kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform'
  17184       + ' kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete'
  17185       + ' kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace'
  17186       + ' kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2'
  17187       + ' kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson'
  17188       + ' kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange'
  17189       + ' laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp'
  17190       + ' lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length'
  17191       + ' let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit'
  17192       + ' Lindstedt linear linearinterpol linear_program linear_regression line_graph'
  17193       + ' linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials'
  17194       + ' listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry'
  17195       + ' log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst'
  17196       + ' lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact'
  17197       + ' lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub'
  17198       + ' lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma'
  17199       + ' make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country'
  17200       + ' make_polygon make_random_state make_rgb_picture makeset make_string_input_stream'
  17201       + ' make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom'
  17202       + ' maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display'
  17203       + ' mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker'
  17204       + ' max max_clique max_degree max_flow maximize_lp max_independent_set max_matching'
  17205       + ' maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform'
  17206       + ' mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete'
  17207       + ' mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic'
  17208       + ' mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t'
  17209       + ' mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull'
  17210       + ' median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree'
  17211       + ' min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor'
  17212       + ' minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton'
  17213       + ' mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions'
  17214       + ' multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff'
  17215       + ' multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary'
  17216       + ' natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext'
  17217       + ' newdet new_graph newline newton new_variable next_prime nicedummies niceindices'
  17218       + ' ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp'
  17219       + ' nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst'
  17220       + ' nthroot nullity nullspace num numbered_boundaries numberp number_to_octets'
  17221       + ' num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai'
  17222       + ' nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin'
  17223       + ' oid_to_octets op opena opena_binary openr openr_binary openw openw_binary'
  17224       + ' operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless'
  17225       + ' orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap'
  17226       + ' out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface'
  17227       + ' parg parGosper parse_string parse_timedate part part2cont partfrac partition'
  17228       + ' partition_set partpol path_digraph path_graph pathname_directory pathname_name'
  17229       + ' pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform'
  17230       + ' pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete'
  17231       + ' pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal'
  17232       + ' pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal'
  17233       + ' pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t'
  17234       + ' pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph'
  17235       + ' petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding'
  17236       + ' playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff'
  17237       + ' poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar'
  17238       + ' polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion'
  17239       + ' poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal'
  17240       + ' poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal'
  17241       + ' poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation'
  17242       + ' poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm'
  17243       + ' poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form'
  17244       + ' poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part'
  17245       + ' poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension'
  17246       + ' poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod'
  17247       + ' powerseries powerset prefix prev_prime primep primes principal_components'
  17248       + ' print printf printfile print_graph printpois printprops prodrac product properties'
  17249       + ' propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct'
  17250       + ' puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp'
  17251       + ' quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile'
  17252       + ' quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2'
  17253       + ' quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f'
  17254       + ' quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel'
  17255       + ' quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal'
  17256       + ' quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t'
  17257       + ' quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t'
  17258       + ' quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan'
  17259       + ' radius random random_bernoulli random_beta random_binomial random_bipartite_graph'
  17260       + ' random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform'
  17261       + ' random_exp random_f random_gamma random_general_finite_discrete random_geometric'
  17262       + ' random_graph random_graph1 random_gumbel random_hypergeometric random_laplace'
  17263       + ' random_logistic random_lognormal random_negative_binomial random_network'
  17264       + ' random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto'
  17265       + ' random_permutation random_poisson random_rayleigh random_regular_graph random_student_t'
  17266       + ' random_tournament random_tree random_weibull range rank rat ratcoef ratdenom'
  17267       + ' ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump'
  17268       + ' ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array'
  17269       + ' read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline'
  17270       + ' read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate'
  17271       + ' realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar'
  17272       + ' rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus'
  17273       + ' rem remainder remarray rembox remcomps remcon remcoord remfun remfunction'
  17274       + ' remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions'
  17275       + ' remove_fundamental_units remove_plot_option remove_vertex rempart remrule'
  17276       + ' remsym remvalue rename rename_file reset reset_displays residue resolvante'
  17277       + ' resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein'
  17278       + ' resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer'
  17279       + ' rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann'
  17280       + ' rinvariant risch rk rmdir rncombine romberg room rootscontract round row'
  17281       + ' rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i'
  17282       + ' scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description'
  17283       + ' scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second'
  17284       + ' sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight'
  17285       + ' setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state'
  17286       + ' set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications'
  17287       + ' set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path'
  17288       + ' show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform'
  17289       + ' simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert'
  17290       + ' sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial'
  17291       + ' skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp'
  17292       + ' skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric'
  17293       + ' skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic'
  17294       + ' skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t'
  17295       + ' skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t'
  17296       + ' skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph'
  17297       + ' smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve'
  17298       + ' solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export'
  17299       + ' sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1'
  17300       + ' spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition'
  17301       + ' sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus'
  17302       + ' ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot'
  17303       + ' starplot_description status std std1 std_bernoulli std_beta std_binomial'
  17304       + ' std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma'
  17305       + ' std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace'
  17306       + ' std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t'
  17307       + ' std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull'
  17308       + ' stemplot stirling stirling1 stirling2 strim striml strimr string stringout'
  17309       + ' stringp strong_components struve_h struve_l sublis sublist sublist_indices'
  17310       + ' submatrix subsample subset subsetp subst substinpart subst_parallel substpart'
  17311       + ' substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext'
  17312       + ' symbolp symmdifference symmetricp system take_channel take_inference tan'
  17313       + ' tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract'
  17314       + ' tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference'
  17315       + ' test_normality test_proportion test_proportions_difference test_rank_sum'
  17316       + ' test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display'
  17317       + ' texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter'
  17318       + ' toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep'
  17319       + ' totalfourier totient tpartpol trace tracematrix trace_options transform_sample'
  17320       + ' translate translate_file transpose treefale tree_reduce treillis treinat'
  17321       + ' triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate'
  17322       + ' truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph'
  17323       + ' truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget'
  17324       + ' ultraspherical underlying_graph undiff union unique uniteigenvectors unitp'
  17325       + ' units unit_step unitvector unorder unsum untellrat untimer'
  17326       + ' untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli'
  17327       + ' var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform'
  17328       + ' var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel'
  17329       + ' var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial'
  17330       + ' var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson'
  17331       + ' var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp'
  17332       + ' verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance'
  17333       + ' vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle'
  17334       + ' vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j'
  17335       + ' wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian'
  17336       + ' xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta'
  17337       + ' zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors'
  17338       + ' zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table'
  17339       + ' absboxchar activecontexts adapt_depth additive adim aform algebraic'
  17340       + ' algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic'
  17341       + ' animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar'
  17342       + ' asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top'
  17343       + ' azimuth background background_color backsubst berlefact bernstein_explicit'
  17344       + ' besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest'
  17345       + ' border boundaries_array box boxchar breakup %c capping cauchysum cbrange'
  17346       + ' cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics'
  17347       + ' colorbox columns commutative complex cone context contexts contour contour_levels'
  17348       + ' cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp'
  17349       + ' cube current_let_rule_package cylinder data_file_name debugmode decreasing'
  17350       + ' default_let_rule_package delay dependencies derivabbrev derivsubst detout'
  17351       + ' diagmetric diff dim dimensions dispflag display2d|10 display_format_internal'
  17352       + ' distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor'
  17353       + ' doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules'
  17354       + ' dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart'
  17355       + ' edge_color edge_coloring edge_partition edge_type edge_width %edispflag'
  17356       + ' elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer'
  17357       + ' epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type'
  17358       + ' %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand'
  17359       + ' expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine'
  17360       + ' factlim factorflag factorial_expand factors_only fb feature features'
  17361       + ' file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10'
  17362       + ' file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color'
  17363       + ' fill_density filled_func fixed_vertices flipflag float2bf font font_size'
  17364       + ' fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim'
  17365       + ' gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command'
  17366       + ' gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command'
  17367       + ' gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command'
  17368       + ' gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble'
  17369       + ' gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args'
  17370       + ' Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both'
  17371       + ' head_length head_type height hypergeometric_representation %iargs ibase'
  17372       + ' icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form'
  17373       + ' ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval'
  17374       + ' infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued'
  17375       + ' integrate_use_rootsof integration_constant integration_constant_counter interpolate_color'
  17376       + ' intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr'
  17377       + ' julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment'
  17378       + ' label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max'
  17379       + ' leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear'
  17380       + ' linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params'
  17381       + ' linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname'
  17382       + ' loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx'
  17383       + ' logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros'
  17384       + ' mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult'
  17385       + ' matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10'
  17386       + ' maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint'
  17387       + ' maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp'
  17388       + ' mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver'
  17389       + ' modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag'
  17390       + ' newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc'
  17391       + ' noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np'
  17392       + ' npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties'
  17393       + ' opsubst optimprefix optionset orientation origin orthopoly_returns_intervals'
  17394       + ' outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution'
  17395       + ' %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart'
  17396       + ' png_file pochhammer_max_index points pointsize point_size points_joined point_type'
  17397       + ' poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm'
  17398       + ' poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list'
  17399       + ' poly_secondary_elimination_order poly_top_reduction_only posfun position'
  17400       + ' powerdisp pred prederror primep_number_of_tests product_use_gamma program'
  17401       + ' programmode promote_float_to_bigfloat prompt proportional_axes props psexpand'
  17402       + ' ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof'
  17403       + ' ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann'
  17404       + ' ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw'
  17405       + ' refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs'
  17406       + ' rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy'
  17407       + ' same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck'
  17408       + ' setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width'
  17409       + ' show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type'
  17410       + ' show_vertices show_weight simp simplified_output simplify_products simpproduct'
  17411       + ' simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn'
  17412       + ' solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag'
  17413       + ' stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda'
  17414       + ' subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric'
  17415       + ' tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials'
  17416       + ' tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch'
  17417       + ' tr track transcompile transform transform_xy translate_fast_arrays transparent'
  17418       + ' transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex'
  17419       + ' tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign'
  17420       + ' trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars'
  17421       + ' tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode'
  17422       + ' tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes'
  17423       + ' ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble'
  17424       + ' usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition'
  17425       + ' vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface'
  17426       + ' wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel'
  17427       + ' xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate'
  17428       + ' xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel'
  17429       + ' xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width'
  17430       + ' ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis'
  17431       + ' ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis'
  17432       + ' yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob'
  17433       + ' zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest';
  17434   var SYMBOLS = '_ __ %|0 %%|0';
  17435 
  17436   return {
  17437     lexemes: '[A-Za-z_%][0-9A-Za-z_%]*',
  17438     keywords: {
  17439       keyword: KEYWORDS,
  17440       literal: LITERALS,
  17441       built_in: BUILTIN_FUNCTIONS,
  17442       symbol: SYMBOLS,
  17443     },
  17444     contains: [
  17445       {
  17446         className: 'comment',
  17447         begin: '/\\*',
  17448         end: '\\*/',
  17449         contains: ['self']
  17450       },
  17451       hljs.QUOTE_STRING_MODE,
  17452       {
  17453         className: 'number',
  17454         relevance: 0,
  17455         variants: [
  17456           {
  17457             // float number w/ exponent
  17458             // hmm, I wonder if we ought to include other exponent markers?
  17459             begin: '\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b',
  17460           },
  17461           {
  17462             // bigfloat number
  17463             begin: '\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b',
  17464             relevance: 10
  17465           },
  17466           {
  17467             // float number w/out exponent
  17468             // Doesn't seem to recognize floats which start with '.'
  17469             begin: '\\b(\\.\\d+|\\d+\\.\\d+)\\b',
  17470           },
  17471           {
  17472             // integer in base up to 36
  17473             // Doesn't seem to recognize integers which end with '.'
  17474             begin: '\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b',
  17475           }
  17476         ]
  17477       }
  17478     ],
  17479     illegal: /@/
  17480   }
  17481 }
  17482 
  17483 },{name:"mel",create:/*
  17484 Language: MEL
  17485 Description: Maya Embedded Language
  17486 Author: Shuen-Huei Guan <drake.guan@gmail.com>
  17487 Category: graphics
  17488 */
  17489 
  17490 function(hljs) {
  17491   return {
  17492     keywords:
  17493       'int float string vector matrix if else switch case default while do for in break ' +
  17494       'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +
  17495       'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +
  17496       'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +
  17497       'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +
  17498       'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +
  17499       'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +
  17500       'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +
  17501       'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +
  17502       'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +
  17503       'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +
  17504       'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +
  17505       'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +
  17506       'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +
  17507       'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +
  17508       'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +
  17509       'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +
  17510       'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +
  17511       'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +
  17512       'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +
  17513       'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +
  17514       'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +
  17515       'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +
  17516       'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +
  17517       'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +
  17518       'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +
  17519       'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +
  17520       'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +
  17521       'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +
  17522       'constrainValue constructionHistory container containsMultibyte contextInfo control ' +
  17523       'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +
  17524       'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +
  17525       'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +
  17526       'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +
  17527       'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +
  17528       'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +
  17529       'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +
  17530       'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +
  17531       'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +
  17532       'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +
  17533       'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +
  17534       'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +
  17535       'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +
  17536       'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +
  17537       'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +
  17538       'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +
  17539       'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +
  17540       'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +
  17541       'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +
  17542       'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +
  17543       'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +
  17544       'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +
  17545       'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +
  17546       'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +
  17547       'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +
  17548       'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +
  17549       'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +
  17550       'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +
  17551       'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +
  17552       'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +
  17553       'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +
  17554       'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +
  17555       'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +
  17556       'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +
  17557       'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +
  17558       'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +
  17559       'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +
  17560       'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +
  17561       'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +
  17562       'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +
  17563       'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +
  17564       'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +
  17565       'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +
  17566       'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +
  17567       'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +
  17568       'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +
  17569       'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +
  17570       'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +
  17571       'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +
  17572       'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +
  17573       'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +
  17574       'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +
  17575       'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +
  17576       'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +
  17577       'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +
  17578       'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +
  17579       'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +
  17580       'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +
  17581       'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +
  17582       'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +
  17583       'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +
  17584       'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +
  17585       'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +
  17586       'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +
  17587       'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +
  17588       'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +
  17589       'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +
  17590       'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +
  17591       'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +
  17592       'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +
  17593       'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +
  17594       'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +
  17595       'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +
  17596       'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +
  17597       'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +
  17598       'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +
  17599       'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +
  17600       'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +
  17601       'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +
  17602       'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +
  17603       'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +
  17604       'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +
  17605       'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +
  17606       'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +
  17607       'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +
  17608       'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +
  17609       'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +
  17610       'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +
  17611       'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +
  17612       'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +
  17613       'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +
  17614       'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +
  17615       'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +
  17616       'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +
  17617       'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +
  17618       'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +
  17619       'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +
  17620       'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +
  17621       'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +
  17622       'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +
  17623       'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +
  17624       'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +
  17625       'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +
  17626       'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +
  17627       'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +
  17628       'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +
  17629       'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +
  17630       'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +
  17631       'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +
  17632       'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +
  17633       'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +
  17634       'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +
  17635       'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +
  17636       'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +
  17637       'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +
  17638       'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +
  17639       'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +
  17640       'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +
  17641       'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +
  17642       'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +
  17643       'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +
  17644       'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +
  17645       'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +
  17646       'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +
  17647       'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +
  17648       'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +
  17649       'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +
  17650       'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +
  17651       'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +
  17652       'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +
  17653       'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +
  17654       'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +
  17655       'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +
  17656       'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +
  17657       'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +
  17658       'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +
  17659       'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +
  17660       'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +
  17661       'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +
  17662       'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +
  17663       'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +
  17664       'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +
  17665       'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +
  17666       'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +
  17667       'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +
  17668       'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +
  17669       'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +
  17670       'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +
  17671       'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +
  17672       'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +
  17673       'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +
  17674       'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +
  17675       'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +
  17676       'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +
  17677       'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +
  17678       'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +
  17679       'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +
  17680       'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +
  17681       'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +
  17682       'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +
  17683       'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +
  17684       'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +
  17685       'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +
  17686       'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +
  17687       'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +
  17688       'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +
  17689       'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +
  17690       'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +
  17691       'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +
  17692       'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +
  17693       'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +
  17694       'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +
  17695       'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',
  17696     illegal: '</',
  17697     contains: [
  17698       hljs.C_NUMBER_MODE,
  17699       hljs.APOS_STRING_MODE,
  17700       hljs.QUOTE_STRING_MODE,
  17701       {
  17702         className: 'string',
  17703         begin: '`', end: '`',
  17704         contains: [hljs.BACKSLASH_ESCAPE]
  17705       },
  17706       { // eats variables
  17707         begin: '[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)'
  17708       },
  17709       hljs.C_LINE_COMMENT_MODE,
  17710       hljs.C_BLOCK_COMMENT_MODE
  17711     ]
  17712   };
  17713 }
  17714 },{name:"mercury",create:/*
  17715 Language: Mercury
  17716 Author: mucaho <mkucko@gmail.com>
  17717 Description: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.
  17718 */
  17719 
  17720 function(hljs) {
  17721   var KEYWORDS = {
  17722     keyword:
  17723       'module use_module import_module include_module end_module initialise ' +
  17724       'mutable initialize finalize finalise interface implementation pred ' +
  17725       'mode func type inst solver any_pred any_func is semidet det nondet ' +
  17726       'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +
  17727       'pragma promise external trace atomic or_else require_complete_switch ' +
  17728       'require_det require_semidet require_multi require_nondet ' +
  17729       'require_cc_multi require_cc_nondet require_erroneous require_failure',
  17730     meta:
  17731       // pragma
  17732       'inline no_inline type_spec source_file fact_table obsolete memo ' +
  17733       'loop_check minimal_model terminates does_not_terminate ' +
  17734       'check_termination promise_equivalent_clauses ' +
  17735       // preprocessor
  17736       'foreign_proc foreign_decl foreign_code foreign_type ' +
  17737       'foreign_import_module foreign_export_enum foreign_export ' +
  17738       'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +
  17739       'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +
  17740       'tabled_for_io local untrailed trailed attach_to_io_state ' +
  17741       'can_pass_as_mercury_type stable will_not_throw_exception ' +
  17742       'may_modify_trail will_not_modify_trail may_duplicate ' +
  17743       'may_not_duplicate affects_liveness does_not_affect_liveness ' +
  17744       'doesnt_affect_liveness no_sharing unknown_sharing sharing',
  17745     built_in:
  17746       'some all not if then else true fail false try catch catch_any ' +
  17747       'semidet_true semidet_false semidet_fail impure_true impure semipure'
  17748   };
  17749 
  17750   var COMMENT = hljs.COMMENT('%', '$');
  17751 
  17752   var NUMCODE = {
  17753     className: 'number',
  17754     begin: "0'.\\|0[box][0-9a-fA-F]*"
  17755   };
  17756 
  17757   var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0});
  17758   var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0});
  17759   var STRING_FMT = {
  17760     className: 'subst',
  17761     begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',
  17762     relevance: 0
  17763   };
  17764   STRING.contains.push(STRING_FMT);
  17765 
  17766   var IMPLICATION = {
  17767     className: 'built_in',
  17768     variants: [
  17769       {begin: '<=>'},
  17770       {begin: '<=', relevance: 0},
  17771       {begin: '=>', relevance: 0},
  17772       {begin: '/\\\\'},
  17773       {begin: '\\\\/'}
  17774     ]
  17775   };
  17776 
  17777   var HEAD_BODY_CONJUNCTION = {
  17778     className: 'built_in',
  17779     variants: [
  17780       {begin: ':-\\|-->'},
  17781       {begin: '=', relevance: 0}
  17782     ]
  17783   };
  17784 
  17785   return {
  17786     aliases: ['m', 'moo'],
  17787     keywords: KEYWORDS,
  17788     contains: [
  17789       IMPLICATION,
  17790       HEAD_BODY_CONJUNCTION,
  17791       COMMENT,
  17792       hljs.C_BLOCK_COMMENT_MODE,
  17793       NUMCODE,
  17794       hljs.NUMBER_MODE,
  17795       ATOM,
  17796       STRING,
  17797       {begin: /:-/} // relevance booster
  17798     ]
  17799   };
  17800 }
  17801 },{name:"mipsasm",create:/*
  17802 Language: MIPS Assembly
  17803 Author: Nebuleon Fumika <nebuleon.fumika@gmail.com>
  17804 Description: MIPS Assembly (up to MIPS32R2)
  17805 Category: assembler
  17806 */
  17807 
  17808 function(hljs) {
  17809     //local labels: %?[FB]?[AT]?\d{1,2}\w+
  17810   return {
  17811     case_insensitive: true,
  17812     aliases: ['mips'],
  17813     lexemes: '\\.?' + hljs.IDENT_RE,
  17814     keywords: {
  17815       meta:
  17816         //GNU preprocs
  17817         '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ',
  17818       built_in:
  17819         '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers
  17820         '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers
  17821         'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases
  17822         't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases
  17823         'k0 k1 gp sp fp ra ' + // integer register aliases
  17824         '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers
  17825         '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers
  17826         'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers
  17827         'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers
  17828         'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers
  17829         'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers
  17830     },
  17831     contains: [
  17832       {
  17833         className: 'keyword',
  17834         begin: '\\b('+     //mnemonics
  17835             // 32-bit integer instructions
  17836             'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +
  17837             'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\.hb)?|jr(\.hb)?|lbu?|lhu?|' +
  17838             'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|' +
  17839             'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +
  17840             'srlv?|subu?|sw[lr]?|xori?|wsbh|' +
  17841             // floating-point instructions
  17842             'abs\.[sd]|add\.[sd]|alnv.ps|bc1[ft]l?|' +
  17843             'c\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\.[sd]|' +
  17844             '(ceil|floor|round|trunc)\.[lw]\.[sd]|cfc1|cvt\.d\.[lsw]|' +
  17845             'cvt\.l\.[dsw]|cvt\.ps\.s|cvt\.s\.[dlw]|cvt\.s\.p[lu]|cvt\.w\.[dls]|' +
  17846             'div\.[ds]|ldx?c1|luxc1|lwx?c1|madd\.[sd]|mfc1|mov[fntz]?\.[ds]|' +
  17847             'msub\.[sd]|mth?c1|mul\.[ds]|neg\.[ds]|nmadd\.[ds]|nmsub\.[ds]|' +
  17848             'p[lu][lu]\.ps|recip\.fmt|r?sqrt\.[ds]|sdx?c1|sub\.[ds]|suxc1|' +
  17849             'swx?c1|' +
  17850             // system control instructions
  17851             'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +
  17852             'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +
  17853             'tlti?u?|tnei?|wait|wrpgpr'+
  17854         ')',
  17855         end: '\\s'
  17856       },
  17857       hljs.COMMENT('[;#]', '$'),
  17858       hljs.C_BLOCK_COMMENT_MODE,
  17859       hljs.QUOTE_STRING_MODE,
  17860       {
  17861         className: 'string',
  17862         begin: '\'',
  17863         end: '[^\\\\]\'',
  17864         relevance: 0
  17865       },
  17866       {
  17867         className: 'title',
  17868         begin: '\\|', end: '\\|',
  17869         illegal: '\\n',
  17870         relevance: 0
  17871       },
  17872       {
  17873         className: 'number',
  17874         variants: [
  17875             {begin: '0x[0-9a-f]+'}, //hex
  17876             {begin: '\\b-?\\d+'}           //bare number
  17877         ],
  17878         relevance: 0
  17879       },
  17880       {
  17881         className: 'symbol',
  17882         variants: [
  17883             {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax
  17884             {begin: '^\\s*[0-9]+:'}, // numbered local labels
  17885             {begin: '[0-9]+[bf]' }  // number local label reference (backwards, forwards)
  17886         ],
  17887         relevance: 0
  17888       }
  17889     ],
  17890     illegal: '\/'
  17891   };
  17892 }
  17893 },{name:"mizar",create:/*
  17894 Language: Mizar
  17895 Author: Kelley van Evert <kelleyvanevert@gmail.com>
  17896 Category: scientific
  17897 */
  17898 
  17899 function(hljs) {
  17900   return {
  17901     keywords:
  17902       'environ vocabularies notations constructors definitions ' +
  17903       'registrations theorems schemes requirements begin end definition ' +
  17904       'registration cluster existence pred func defpred deffunc theorem ' +
  17905       'proof let take assume then thus hence ex for st holds consider ' +
  17906       'reconsider such that and in provided of as from be being by means ' +
  17907       'equals implies iff redefine define now not or attr is mode ' +
  17908       'suppose per cases set thesis contradiction scheme reserve struct ' +
  17909       'correctness compatibility coherence symmetry assymetry ' +
  17910       'reflexivity irreflexivity connectedness uniqueness commutativity ' +
  17911       'idempotence involutiveness projectivity',
  17912     contains: [
  17913       hljs.COMMENT('::', '$')
  17914     ]
  17915   };
  17916 }
  17917 },{name:"mojolicious",create:/*
  17918 Language: Mojolicious
  17919 Requires: xml.js, perl.js
  17920 Author: Dotan Dimet <dotan@corky.net>
  17921 Description: Mojolicious .ep (Embedded Perl) templates
  17922 Category: template
  17923 */
  17924 function(hljs) {
  17925   return {
  17926     subLanguage: 'xml',
  17927     contains: [
  17928       {
  17929         className: 'meta',
  17930         begin: '^__(END|DATA)__$'
  17931       },
  17932     // mojolicious line
  17933       {
  17934         begin: "^\\s*%{1,2}={0,2}", end: '$',
  17935         subLanguage: 'perl'
  17936       },
  17937     // mojolicious block
  17938       {
  17939         begin: "<%{1,2}={0,2}",
  17940         end: "={0,1}%>",
  17941         subLanguage: 'perl',
  17942         excludeBegin: true,
  17943         excludeEnd: true
  17944       }
  17945     ]
  17946   };
  17947 }
  17948 },{name:"monkey",create:/*
  17949 Language: Monkey
  17950 Author: Arthur Bikmullin <devolonter@gmail.com>
  17951 */
  17952 
  17953 function(hljs) {
  17954   var NUMBER = {
  17955     className: 'number', relevance: 0,
  17956     variants: [
  17957       {
  17958         begin: '[$][a-fA-F0-9]+'
  17959       },
  17960       hljs.NUMBER_MODE
  17961     ]
  17962   };
  17963 
  17964   return {
  17965     case_insensitive: true,
  17966     keywords: {
  17967       keyword: 'public private property continue exit extern new try catch ' +
  17968         'eachin not abstract final select case default const local global field ' +
  17969         'end if then else elseif endif while wend repeat until forever for ' +
  17970         'to step next return module inline throw import',
  17971 
  17972       built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +
  17973         'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',
  17974 
  17975       literal: 'true false null and or shl shr mod'
  17976     },
  17977     illegal: /\/\*/,
  17978     contains: [
  17979       hljs.COMMENT('#rem', '#end'),
  17980       hljs.COMMENT(
  17981         "'",
  17982         '$',
  17983         {
  17984           relevance: 0
  17985         }
  17986       ),
  17987       {
  17988         className: 'function',
  17989         beginKeywords: 'function method', end: '[(=:]|$',
  17990         illegal: /\n/,
  17991         contains: [
  17992           hljs.UNDERSCORE_TITLE_MODE
  17993         ]
  17994       },
  17995       {
  17996         className: 'class',
  17997         beginKeywords: 'class interface', end: '$',
  17998         contains: [
  17999           {
  18000             beginKeywords: 'extends implements'
  18001           },
  18002           hljs.UNDERSCORE_TITLE_MODE
  18003         ]
  18004       },
  18005       {
  18006         className: 'built_in',
  18007         begin: '\\b(self|super)\\b'
  18008       },
  18009       {
  18010         className: 'meta',
  18011         begin: '\\s*#', end: '$',
  18012         keywords: {'meta-keyword': 'if else elseif endif end then'}
  18013       },
  18014       {
  18015         className: 'meta',
  18016         begin: '^\\s*strict\\b'
  18017       },
  18018       {
  18019         beginKeywords: 'alias', end: '=',
  18020         contains: [hljs.UNDERSCORE_TITLE_MODE]
  18021       },
  18022       hljs.QUOTE_STRING_MODE,
  18023       NUMBER
  18024     ]
  18025   }
  18026 }
  18027 },{name:"moonscript",create:/*
  18028 Language: MoonScript
  18029 Author: Billy Quith <chinbillybilbo@gmail.com>
  18030 Description: MoonScript is a programming language that transcompiles to Lua. For info about language see http://moonscript.org/
  18031 Origin: coffeescript.js
  18032 Category: scripting
  18033 */
  18034 
  18035 function(hljs) {
  18036   var KEYWORDS = {
  18037     keyword:
  18038       // Moonscript keywords
  18039       'if then not for in while do return else elseif break continue switch and or ' +
  18040       'unless when class extends super local import export from using',
  18041     literal:
  18042       'true false nil',
  18043     built_in:
  18044       '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
  18045       'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
  18046       'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
  18047       'io math os package string table'
  18048   };
  18049   var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
  18050   var SUBST = {
  18051     className: 'subst',
  18052     begin: /#\{/, end: /}/,
  18053     keywords: KEYWORDS
  18054   };
  18055   var EXPRESSIONS = [
  18056     hljs.inherit(hljs.C_NUMBER_MODE,
  18057       {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
  18058     {
  18059       className: 'string',
  18060       variants: [
  18061         {
  18062           begin: /'/, end: /'/,
  18063           contains: [hljs.BACKSLASH_ESCAPE]
  18064         },
  18065         {
  18066           begin: /"/, end: /"/,
  18067           contains: [hljs.BACKSLASH_ESCAPE, SUBST]
  18068         }
  18069       ]
  18070     },
  18071     {
  18072       className: 'built_in',
  18073       begin: '@__' + hljs.IDENT_RE
  18074     },
  18075     {
  18076       begin: '@' + hljs.IDENT_RE // relevance booster on par with CoffeeScript
  18077     },
  18078     {
  18079       begin: hljs.IDENT_RE + '\\\\' + hljs.IDENT_RE // inst\method
  18080     }
  18081   ];
  18082   SUBST.contains = EXPRESSIONS;
  18083 
  18084   var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
  18085   var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
  18086   var PARAMS = {
  18087     className: 'params',
  18088     begin: '\\([^\\(]', returnBegin: true,
  18089     /* We need another contained nameless mode to not have every nested
  18090     pair of parens to be called "params" */
  18091     contains: [{
  18092       begin: /\(/, end: /\)/,
  18093       keywords: KEYWORDS,
  18094       contains: ['self'].concat(EXPRESSIONS)
  18095     }]
  18096   };
  18097 
  18098   return {
  18099     aliases: ['moon'],
  18100     keywords: KEYWORDS,
  18101     illegal: /\/\*/,
  18102     contains: EXPRESSIONS.concat([
  18103       hljs.COMMENT('--', '$'),
  18104       {
  18105         className: 'function',  // function: -> =>
  18106         begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
  18107         returnBegin: true,
  18108         contains: [TITLE, PARAMS]
  18109       },
  18110       {
  18111         begin: /[\(,:=]\s*/, // anonymous function start
  18112         relevance: 0,
  18113         contains: [
  18114           {
  18115             className: 'function',
  18116             begin: PARAMS_RE, end: '[-=]>',
  18117             returnBegin: true,
  18118             contains: [PARAMS]
  18119           }
  18120         ]
  18121       },
  18122       {
  18123         className: 'class',
  18124         beginKeywords: 'class',
  18125         end: '$',
  18126         illegal: /[:="\[\]]/,
  18127         contains: [
  18128           {
  18129             beginKeywords: 'extends',
  18130             endsWithParent: true,
  18131             illegal: /[:="\[\]]/,
  18132             contains: [TITLE]
  18133           },
  18134           TITLE
  18135         ]
  18136       },
  18137       {
  18138         className: 'name',    // table
  18139         begin: JS_IDENT_RE + ':', end: ':',
  18140         returnBegin: true, returnEnd: true,
  18141         relevance: 0
  18142       }
  18143     ])
  18144   };
  18145 }
  18146 },{name:"n1ql",create:/*
  18147  Language: N1QL
  18148  Author: Andres Täht <andres.taht@gmail.com>
  18149  Contributors: Rene Saarsoo <nene@triin.net>
  18150  Description: Couchbase query language
  18151  */
  18152 
  18153 function(hljs) {
  18154   return {
  18155     case_insensitive: true,
  18156     contains: [
  18157       {
  18158         beginKeywords:
  18159           'build create index delete drop explain infer|10 insert merge prepare select update upsert|10',
  18160         end: /;/, endsWithParent: true,
  18161         keywords: {
  18162           // Taken from http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/reservedwords.html
  18163           keyword:
  18164             'all alter analyze and any array as asc begin between binary boolean break bucket build by call ' +
  18165             'case cast cluster collate collection commit connect continue correlate cover create database ' +
  18166             'dataset datastore declare decrement delete derived desc describe distinct do drop each element ' +
  18167             'else end every except exclude execute exists explain fetch first flatten for force from ' +
  18168             'function grant group gsi having if ignore ilike in include increment index infer inline inner ' +
  18169             'insert intersect into is join key keys keyspace known last left let letting like limit lsm map ' +
  18170             'mapping matched materialized merge minus namespace nest not number object offset on ' +
  18171             'option or order outer over parse partition password path pool prepare primary private privilege ' +
  18172             'procedure public raw realm reduce rename return returning revoke right role rollback satisfies ' +
  18173             'schema select self semi set show some start statistics string system then to transaction trigger ' +
  18174             'truncate under union unique unknown unnest unset update upsert use user using validate value ' +
  18175             'valued values via view when where while with within work xor',
  18176           // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/literals.html
  18177           literal:
  18178             'true false null missing|5',
  18179           // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/functions.html
  18180           built_in:
  18181             'array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length ' +
  18182             'array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace ' +
  18183             'array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull ' +
  18184             'missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis ' +
  18185             'date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str ' +
  18186             'duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str ' +
  18187             'str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode ' +
  18188             'base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random ' +
  18189             'round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values ' +
  18190             'object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position ' +
  18191             'regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper ' +
  18192             'isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring'
  18193         },
  18194         contains: [
  18195           {
  18196             className: 'string',
  18197             begin: '\'', end: '\'',
  18198             contains: [hljs.BACKSLASH_ESCAPE],
  18199             relevance: 0
  18200           },
  18201           {
  18202             className: 'string',
  18203             begin: '"', end: '"',
  18204             contains: [hljs.BACKSLASH_ESCAPE],
  18205             relevance: 0
  18206           },
  18207           {
  18208             className: 'symbol',
  18209             begin: '`', end: '`',
  18210             contains: [hljs.BACKSLASH_ESCAPE],
  18211             relevance: 2
  18212           },
  18213           hljs.C_NUMBER_MODE,
  18214           hljs.C_BLOCK_COMMENT_MODE
  18215         ]
  18216       },
  18217       hljs.C_BLOCK_COMMENT_MODE
  18218     ]
  18219   };
  18220 }
  18221 },{name:"nginx",create:/*
  18222 Language: Nginx
  18223 Author: Peter Leonov <gojpeg@yandex.ru>
  18224 Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
  18225 Category: common, config
  18226 */
  18227 
  18228 function(hljs) {
  18229   var VAR = {
  18230     className: 'variable',
  18231     variants: [
  18232       {begin: /\$\d+/},
  18233       {begin: /\$\{/, end: /}/},
  18234       {begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE}
  18235     ]
  18236   };
  18237   var DEFAULT = {
  18238     endsWithParent: true,
  18239     lexemes: '[a-z/_]+',
  18240     keywords: {
  18241       literal:
  18242         'on off yes no true false none blocked debug info notice warn error crit ' +
  18243         'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
  18244     },
  18245     relevance: 0,
  18246     illegal: '=>',
  18247     contains: [
  18248       hljs.HASH_COMMENT_MODE,
  18249       {
  18250         className: 'string',
  18251         contains: [hljs.BACKSLASH_ESCAPE, VAR],
  18252         variants: [
  18253           {begin: /"/, end: /"/},
  18254           {begin: /'/, end: /'/}
  18255         ]
  18256       },
  18257       // this swallows entire URLs to avoid detecting numbers within
  18258       {
  18259         begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true,
  18260         contains: [VAR]
  18261       },
  18262       {
  18263         className: 'regexp',
  18264         contains: [hljs.BACKSLASH_ESCAPE, VAR],
  18265         variants: [
  18266           {begin: "\\s\\^", end: "\\s|{|;", returnEnd: true},
  18267           // regexp locations (~, ~*)
  18268           {begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true},
  18269           // *.example.com
  18270           {begin: "\\*(\\.[a-z\\-]+)+"},
  18271           // sub.example.*
  18272           {begin: "([a-z\\-]+\\.)+\\*"}
  18273         ]
  18274       },
  18275       // IP
  18276       {
  18277         className: 'number',
  18278         begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
  18279       },
  18280       // units
  18281       {
  18282         className: 'number',
  18283         begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
  18284         relevance: 0
  18285       },
  18286       VAR
  18287     ]
  18288   };
  18289 
  18290   return {
  18291     aliases: ['nginxconf'],
  18292     contains: [
  18293       hljs.HASH_COMMENT_MODE,
  18294       {
  18295         begin: hljs.UNDERSCORE_IDENT_RE + '\\s+{', returnBegin: true,
  18296         end: '{',
  18297         contains: [
  18298           {
  18299             className: 'section',
  18300             begin: hljs.UNDERSCORE_IDENT_RE
  18301           }
  18302         ],
  18303         relevance: 0
  18304       },
  18305       {
  18306         begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
  18307         contains: [
  18308           {
  18309             className: 'attribute',
  18310             begin: hljs.UNDERSCORE_IDENT_RE,
  18311             starts: DEFAULT
  18312           }
  18313         ],
  18314         relevance: 0
  18315       }
  18316     ],
  18317     illegal: '[^\\s\\}]'
  18318   };
  18319 }
  18320 },{name:"nimrod",create:/*
  18321 Language: Nimrod
  18322 */
  18323 
  18324 function(hljs) {
  18325   return {
  18326     aliases: ['nim'],
  18327     keywords: {
  18328       keyword:
  18329         'addr and as asm bind block break case cast const continue converter ' +
  18330         'discard distinct div do elif else end enum except export finally ' +
  18331         'for from generic if import in include interface is isnot iterator ' +
  18332         'let macro method mixin mod nil not notin object of or out proc ptr ' +
  18333         'raise ref return shl shr static template try tuple type using var ' +
  18334         'when while with without xor yield',
  18335       literal:
  18336         'shared guarded stdin stdout stderr result true false',
  18337       built_in:
  18338         'int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float ' +
  18339         'float32 float64 bool char string cstring pointer expr stmt void ' +
  18340         'auto any range array openarray varargs seq set clong culong cchar ' +
  18341         'cschar cshort cint csize clonglong cfloat cdouble clongdouble ' +
  18342         'cuchar cushort cuint culonglong cstringarray semistatic'
  18343     },
  18344     contains: [ {
  18345         className: 'meta', // Actually pragma
  18346         begin: /{\./,
  18347         end: /\.}/,
  18348         relevance: 10
  18349       }, {
  18350         className: 'string',
  18351         begin: /[a-zA-Z]\w*"/,
  18352         end: /"/,
  18353         contains: [{begin: /""/}]
  18354       }, {
  18355         className: 'string',
  18356         begin: /([a-zA-Z]\w*)?"""/,
  18357         end: /"""/
  18358       },
  18359       hljs.QUOTE_STRING_MODE,
  18360       {
  18361         className: 'type',
  18362         begin: /\b[A-Z]\w+\b/,
  18363         relevance: 0
  18364       }, {
  18365         className: 'number',
  18366         relevance: 0,
  18367         variants: [
  18368           {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},
  18369           {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},
  18370           {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},
  18371           {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}
  18372         ]
  18373       },
  18374       hljs.HASH_COMMENT_MODE
  18375     ]
  18376   }
  18377 }
  18378 },{name:"nix",create:/*
  18379 Language: Nix
  18380 Author: Domen Kožar <domen@dev.si>
  18381 Description: Nix functional language. See http://nixos.org/nix
  18382 */
  18383 
  18384 
  18385 function(hljs) {
  18386   var NIX_KEYWORDS = {
  18387     keyword:
  18388       'rec with let in inherit assert if else then',
  18389     literal:
  18390       'true false or and null',
  18391     built_in:
  18392       'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
  18393       'toString derivation'
  18394   };
  18395   var ANTIQUOTE = {
  18396     className: 'subst',
  18397     begin: /\$\{/,
  18398     end: /}/,
  18399     keywords: NIX_KEYWORDS
  18400   };
  18401   var ATTRS = {
  18402     begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
  18403     relevance: 0,
  18404     contains: [
  18405       {
  18406         className: 'attr',
  18407         begin: /\S+/
  18408       }
  18409     ]
  18410   };
  18411   var STRING = {
  18412     className: 'string',
  18413     contains: [ANTIQUOTE],
  18414     variants: [
  18415       {begin: "''", end: "''"},
  18416       {begin: '"', end: '"'}
  18417     ]
  18418   };
  18419   var EXPRESSIONS = [
  18420     hljs.NUMBER_MODE,
  18421     hljs.HASH_COMMENT_MODE,
  18422     hljs.C_BLOCK_COMMENT_MODE,
  18423     STRING,
  18424     ATTRS
  18425   ];
  18426   ANTIQUOTE.contains = EXPRESSIONS;
  18427   return {
  18428     aliases: ["nixos"],
  18429     keywords: NIX_KEYWORDS,
  18430     contains: EXPRESSIONS
  18431   };
  18432 }
  18433 },{name:"nsis",create:/*
  18434 Language: NSIS
  18435 Description: Nullsoft Scriptable Install System
  18436 Author: Jan T. Sott <jan.sott@gmail.com>
  18437 Website: http://github.com/idleberg
  18438 */
  18439 
  18440 function(hljs) {
  18441   var CONSTANTS = {
  18442     className: 'variable',
  18443     begin: /\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/
  18444   };
  18445 
  18446   var DEFINES = {
  18447     // ${defines}
  18448     className: 'variable',
  18449     begin: /\$+{[\w\.:-]+}/
  18450   };
  18451 
  18452   var VARIABLES = {
  18453     // $variables
  18454     className: 'variable',
  18455     begin: /\$+\w+/,
  18456     illegal: /\(\){}/
  18457   };
  18458 
  18459   var LANGUAGES = {
  18460     // $(language_strings)
  18461     className: 'variable',
  18462     begin: /\$+\([\w\^\.:-]+\)/
  18463   };
  18464 
  18465   var PARAMETERS = {
  18466     // command parameters
  18467     className: 'params',
  18468     begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'
  18469   };
  18470 
  18471   var COMPILER = {
  18472     // !compiler_flags
  18473     className: 'keyword',
  18474     begin: /\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/
  18475   };
  18476 
  18477   var METACHARS = {
  18478     // $\n, $\r, $\t, $$
  18479     className: 'meta',
  18480     begin: /\$(\\[nrt]|\$)/
  18481   };
  18482 
  18483   var PLUGINS = {
  18484     // plug::ins
  18485     className: 'class',
  18486     begin: /\w+\:\:\w+/
  18487   };
  18488 
  18489     var STRING = {
  18490       className: 'string',
  18491       variants: [
  18492         {
  18493           begin: '"', end: '"'
  18494         },
  18495         {
  18496           begin: '\'', end: '\''
  18497         },
  18498         {
  18499           begin: '`', end: '`'
  18500         }
  18501       ],
  18502       illegal: /\n/,
  18503       contains: [
  18504         METACHARS,
  18505         CONSTANTS,
  18506         DEFINES,
  18507         VARIABLES,
  18508         LANGUAGES
  18509       ]
  18510   };
  18511 
  18512   return {
  18513     case_insensitive: false,
  18514     keywords: {
  18515       keyword:
  18516       'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecShellWait ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle',
  18517       literal:
  18518       'admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib'
  18519     },
  18520     contains: [
  18521       hljs.HASH_COMMENT_MODE,
  18522       hljs.C_BLOCK_COMMENT_MODE,
  18523       hljs.COMMENT(
  18524         ';',
  18525         '$',
  18526         {
  18527           relevance: 0
  18528         }
  18529       ),
  18530       {
  18531         className: 'function',
  18532         beginKeywords: 'Function PageEx Section SectionGroup', end: '$'
  18533       },
  18534       STRING,
  18535       COMPILER,
  18536       DEFINES,
  18537       VARIABLES,
  18538       LANGUAGES,
  18539       PARAMETERS,
  18540       PLUGINS,
  18541       hljs.NUMBER_MODE
  18542     ]
  18543   };
  18544 }
  18545 },{name:"objectivec",create:/*
  18546 Language: Objective-C
  18547 Author: Valerii Hiora <valerii.hiora@gmail.com>
  18548 Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>, Minh Nguyễn <mxn@1ec5.org>
  18549 Category: common
  18550 */
  18551 
  18552 function(hljs) {
  18553   var API_CLASS = {
  18554     className: 'built_in',
  18555     begin: '\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+',
  18556   };
  18557   var OBJC_KEYWORDS = {
  18558     keyword:
  18559       'int float while char export sizeof typedef const struct for union ' +
  18560       'unsigned long volatile static bool mutable if do return goto void ' +
  18561       'enum else break extern asm case short default double register explicit ' +
  18562       'signed typename this switch continue wchar_t inline readonly assign ' +
  18563       'readwrite self @synchronized id typeof ' +
  18564       'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
  18565       'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
  18566       '@private @protected @public @try @property @end @throw @catch @finally ' +
  18567       '@autoreleasepool @synthesize @dynamic @selector @optional @required ' +
  18568       '@encode @package @import @defs @compatibility_alias ' +
  18569       '__bridge __bridge_transfer __bridge_retained __bridge_retain ' +
  18570       '__covariant __contravariant __kindof ' +
  18571       '_Nonnull _Nullable _Null_unspecified ' +
  18572       '__FUNCTION__ __PRETTY_FUNCTION__ __attribute__ ' +
  18573       'getter setter retain unsafe_unretained ' +
  18574       'nonnull nullable null_unspecified null_resettable class instancetype ' +
  18575       'NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER ' +
  18576       'NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED ' +
  18577       'NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE ' +
  18578       'NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END ' +
  18579       'NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW ' +
  18580       'NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN',
  18581     literal:
  18582       'false true FALSE TRUE nil YES NO NULL',
  18583     built_in:
  18584       'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
  18585   };
  18586   var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/;
  18587   var CLASS_KEYWORDS = '@interface @class @protocol @implementation';
  18588   return {
  18589     aliases: ['mm', 'objc', 'obj-c'],
  18590     keywords: OBJC_KEYWORDS,
  18591     lexemes: LEXEMES,
  18592     illegal: '</',
  18593     contains: [
  18594       API_CLASS,
  18595       hljs.C_LINE_COMMENT_MODE,
  18596       hljs.C_BLOCK_COMMENT_MODE,
  18597       hljs.C_NUMBER_MODE,
  18598       hljs.QUOTE_STRING_MODE,
  18599       {
  18600         className: 'string',
  18601         variants: [
  18602           {
  18603             begin: '@"', end: '"',
  18604             illegal: '\\n',
  18605             contains: [hljs.BACKSLASH_ESCAPE]
  18606           },
  18607           {
  18608             begin: '\'', end: '[^\\\\]\'',
  18609             illegal: '[^\\\\][^\']'
  18610           }
  18611         ]
  18612       },
  18613       {
  18614         className: 'meta',
  18615         begin: '#',
  18616         end: '$',
  18617         contains: [
  18618           {
  18619             className: 'meta-string',
  18620             variants: [
  18621               { begin: '\"', end: '\"' },
  18622               { begin: '<', end: '>' }
  18623             ]
  18624           }
  18625         ]
  18626       },
  18627       {
  18628         className: 'class',
  18629         begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
  18630         keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
  18631         contains: [
  18632           hljs.UNDERSCORE_TITLE_MODE
  18633         ]
  18634       },
  18635       {
  18636         begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
  18637         relevance: 0
  18638       }
  18639     ]
  18640   };
  18641 }
  18642 },{name:"ocaml",create:/*
  18643 Language: OCaml
  18644 Author: Mehdi Dogguy <mehdi@dogguy.org>
  18645 Contributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>
  18646 Description: OCaml language definition.
  18647 Category: functional
  18648 */
  18649 function(hljs) {
  18650   /* missing support for heredoc-like string (OCaml 4.0.2+) */
  18651   return {
  18652     aliases: ['ml'],
  18653     keywords: {
  18654       keyword:
  18655         'and as assert asr begin class constraint do done downto else end ' +
  18656         'exception external for fun function functor if in include ' +
  18657         'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +
  18658         'mod module mutable new object of open! open or private rec sig struct ' +
  18659         'then to try type val! val virtual when while with ' +
  18660         /* camlp4 */
  18661         'parser value',
  18662       built_in:
  18663         /* built-in types */
  18664         'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +
  18665         /* (some) types in Pervasives */
  18666         'in_channel out_channel ref',
  18667       literal:
  18668         'true false'
  18669     },
  18670     illegal: /\/\/|>>/,
  18671     lexemes: '[a-z_]\\w*!?',
  18672     contains: [
  18673       {
  18674         className: 'literal',
  18675         begin: '\\[(\\|\\|)?\\]|\\(\\)',
  18676         relevance: 0
  18677       },
  18678       hljs.COMMENT(
  18679         '\\(\\*',
  18680         '\\*\\)',
  18681         {
  18682           contains: ['self']
  18683         }
  18684       ),
  18685       { /* type variable */
  18686         className: 'symbol',
  18687         begin: '\'[A-Za-z_](?!\')[\\w\']*'
  18688         /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
  18689       },
  18690       { /* polymorphic variant */
  18691         className: 'type',
  18692         begin: '`[A-Z][\\w\']*'
  18693       },
  18694       { /* module or constructor */
  18695         className: 'type',
  18696         begin: '\\b[A-Z][\\w\']*',
  18697         relevance: 0
  18698       },
  18699       { /* don't color identifiers, but safely catch all identifiers with '*/
  18700         begin: '[a-z_]\\w*\'[\\w\']*', relevance: 0
  18701       },
  18702       hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
  18703       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
  18704       {
  18705         className: 'number',
  18706         begin:
  18707           '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
  18708           '0[oO][0-7_]+[Lln]?|' +
  18709           '0[bB][01_]+[Lln]?|' +
  18710           '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
  18711         relevance: 0
  18712       },
  18713       {
  18714         begin: /[-=]>/ // relevance booster
  18715       }
  18716     ]
  18717   }
  18718 }
  18719 },{name:"openscad",create:/*
  18720 Language: OpenSCAD
  18721 Author: Dan Panzarella <alsoelp@gmail.com>
  18722 Description: OpenSCAD is a language for the 3D CAD modeling software of the same name.
  18723 Category: scientific
  18724 */
  18725 
  18726 function(hljs) {
  18727 	var SPECIAL_VARS = {
  18728 		className: 'keyword',
  18729 		begin: '\\$(f[asn]|t|vp[rtd]|children)'
  18730 	},
  18731 	LITERALS = {
  18732 		className: 'literal',
  18733 		begin: 'false|true|PI|undef'
  18734 	},
  18735 	NUMBERS = {
  18736 		className: 'number',
  18737 		begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10
  18738 		relevance: 0
  18739 	},
  18740 	STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}),
  18741 	PREPRO = {
  18742 		className: 'meta',
  18743 		keywords: {'meta-keyword': 'include use'},
  18744 		begin: 'include|use <',
  18745 		end: '>'
  18746 	},
  18747 	PARAMS = {
  18748 		className: 'params',
  18749 		begin: '\\(', end: '\\)',
  18750 		contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS]
  18751 	},
  18752 	MODIFIERS = {
  18753 		begin: '[*!#%]',
  18754 		relevance: 0
  18755 	},
  18756 	FUNCTIONS = {
  18757 		className: 'function',
  18758 		beginKeywords: 'module function',
  18759 		end: '\\=|\\{',
  18760 		contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE]
  18761 	};
  18762 
  18763 	return {
  18764 		aliases: ['scad'],
  18765 		keywords: {
  18766 			keyword: 'function module include use for intersection_for if else \\%',
  18767 			literal: 'false true PI undef',
  18768 			built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'
  18769 		},
  18770 		contains: [
  18771 			hljs.C_LINE_COMMENT_MODE,
  18772 			hljs.C_BLOCK_COMMENT_MODE,
  18773 			NUMBERS,
  18774 			PREPRO,
  18775 			STRING,
  18776 			SPECIAL_VARS,
  18777 			MODIFIERS,
  18778 			FUNCTIONS
  18779 		]
  18780 	}
  18781 }
  18782 },{name:"oxygene",create:/*
  18783 Language: Oxygene
  18784 Author: Carlo Kok <ck@remobjects.com>
  18785 Description: Language definition for RemObjects Oxygene (http://www.remobjects.com)
  18786 */
  18787 
  18788 function(hljs) {
  18789   var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+
  18790     'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+
  18791     'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+
  18792     'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+
  18793     'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+
  18794     'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+
  18795     'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+
  18796     'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained';
  18797   var CURLY_COMMENT =  hljs.COMMENT(
  18798     '{',
  18799     '}',
  18800     {
  18801       relevance: 0
  18802     }
  18803   );
  18804   var PAREN_COMMENT = hljs.COMMENT(
  18805     '\\(\\*',
  18806     '\\*\\)',
  18807     {
  18808       relevance: 10
  18809     }
  18810   );
  18811   var STRING = {
  18812     className: 'string',
  18813     begin: '\'', end: '\'',
  18814     contains: [{begin: '\'\''}]
  18815   };
  18816   var CHAR_STRING = {
  18817     className: 'string', begin: '(#\\d+)+'
  18818   };
  18819   var FUNCTION = {
  18820     className: 'function',
  18821     beginKeywords: 'function constructor destructor procedure method', end: '[:;]',
  18822     keywords: 'function constructor|10 destructor|10 procedure|10 method|10',
  18823     contains: [
  18824       hljs.TITLE_MODE,
  18825       {
  18826         className: 'params',
  18827         begin: '\\(', end: '\\)',
  18828         keywords: OXYGENE_KEYWORDS,
  18829         contains: [STRING, CHAR_STRING]
  18830       },
  18831       CURLY_COMMENT, PAREN_COMMENT
  18832     ]
  18833   };
  18834   return {
  18835     case_insensitive: true,
  18836     lexemes: /\.?\w+/,
  18837     keywords: OXYGENE_KEYWORDS,
  18838     illegal: '("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',
  18839     contains: [
  18840       CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
  18841       STRING, CHAR_STRING,
  18842       hljs.NUMBER_MODE,
  18843       FUNCTION,
  18844       {
  18845         className: 'class',
  18846         begin: '=\\bclass\\b', end: 'end;',
  18847         keywords: OXYGENE_KEYWORDS,
  18848         contains: [
  18849           STRING, CHAR_STRING,
  18850           CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
  18851           FUNCTION
  18852         ]
  18853       }
  18854     ]
  18855   };
  18856 }
  18857 },{name:"parser3",create:/*
  18858 Language: Parser3
  18859 Requires: xml.js
  18860 Author: Oleg Volchkov <oleg@volchkov.net>
  18861 Category: template
  18862 */
  18863 
  18864 function(hljs) {
  18865   var CURLY_SUBCOMMENT = hljs.COMMENT(
  18866     '{',
  18867     '}',
  18868     {
  18869       contains: ['self']
  18870     }
  18871   );
  18872   return {
  18873     subLanguage: 'xml', relevance: 0,
  18874     contains: [
  18875       hljs.COMMENT('^#', '$'),
  18876       hljs.COMMENT(
  18877         '\\^rem{',
  18878         '}',
  18879         {
  18880           relevance: 10,
  18881           contains: [
  18882             CURLY_SUBCOMMENT
  18883           ]
  18884         }
  18885       ),
  18886       {
  18887         className: 'meta',
  18888         begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
  18889         relevance: 10
  18890       },
  18891       {
  18892         className: 'title',
  18893         begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
  18894       },
  18895       {
  18896         className: 'variable',
  18897         begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
  18898       },
  18899       {
  18900         className: 'keyword',
  18901         begin: '\\^[\\w\\-\\.\\:]+'
  18902       },
  18903       {
  18904         className: 'number',
  18905         begin: '\\^#[0-9a-fA-F]+'
  18906       },
  18907       hljs.C_NUMBER_MODE
  18908     ]
  18909   };
  18910 }
  18911 },{name:"perl",create:/*
  18912 Language: Perl
  18913 Author: Peter Leonov <gojpeg@yandex.ru>
  18914 Category: common
  18915 */
  18916 
  18917 function(hljs) {
  18918   var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
  18919     'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
  18920     'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
  18921     'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
  18922     'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
  18923     'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
  18924     'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
  18925     'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
  18926     'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
  18927     'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
  18928     'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
  18929     'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
  18930     'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
  18931     'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
  18932     'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
  18933     'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
  18934     'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
  18935     'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
  18936     'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
  18937   var SUBST = {
  18938     className: 'subst',
  18939     begin: '[$@]\\{', end: '\\}',
  18940     keywords: PERL_KEYWORDS
  18941   };
  18942   var METHOD = {
  18943     begin: '->{', end: '}'
  18944     // contains defined later
  18945   };
  18946   var VAR = {
  18947     variants: [
  18948       {begin: /\$\d/},
  18949       {begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},
  18950       {begin: /[\$%@][^\s\w{]/, relevance: 0}
  18951     ]
  18952   };
  18953   var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
  18954   var PERL_DEFAULT_CONTAINS = [
  18955     VAR,
  18956     hljs.HASH_COMMENT_MODE,
  18957     hljs.COMMENT(
  18958       '^\\=\\w',
  18959       '\\=cut',
  18960       {
  18961         endsWithParent: true
  18962       }
  18963     ),
  18964     METHOD,
  18965     {
  18966       className: 'string',
  18967       contains: STRING_CONTAINS,
  18968       variants: [
  18969         {
  18970           begin: 'q[qwxr]?\\s*\\(', end: '\\)',
  18971           relevance: 5
  18972         },
  18973         {
  18974           begin: 'q[qwxr]?\\s*\\[', end: '\\]',
  18975           relevance: 5
  18976         },
  18977         {
  18978           begin: 'q[qwxr]?\\s*\\{', end: '\\}',
  18979           relevance: 5
  18980         },
  18981         {
  18982           begin: 'q[qwxr]?\\s*\\|', end: '\\|',
  18983           relevance: 5
  18984         },
  18985         {
  18986           begin: 'q[qwxr]?\\s*\\<', end: '\\>',
  18987           relevance: 5
  18988         },
  18989         {
  18990           begin: 'qw\\s+q', end: 'q',
  18991           relevance: 5
  18992         },
  18993         {
  18994           begin: '\'', end: '\'',
  18995           contains: [hljs.BACKSLASH_ESCAPE]
  18996         },
  18997         {
  18998           begin: '"', end: '"'
  18999         },
  19000         {
  19001           begin: '`', end: '`',
  19002           contains: [hljs.BACKSLASH_ESCAPE]
  19003         },
  19004         {
  19005           begin: '{\\w+}',
  19006           contains: [],
  19007           relevance: 0
  19008         },
  19009         {
  19010           begin: '\-?\\w+\\s*\\=\\>',
  19011           contains: [],
  19012           relevance: 0
  19013         }
  19014       ]
  19015     },
  19016     {
  19017       className: 'number',
  19018       begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
  19019       relevance: 0
  19020     },
  19021     { // regexp container
  19022       begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
  19023       keywords: 'split return print reverse grep',
  19024       relevance: 0,
  19025       contains: [
  19026         hljs.HASH_COMMENT_MODE,
  19027         {
  19028           className: 'regexp',
  19029           begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
  19030           relevance: 10
  19031         },
  19032         {
  19033           className: 'regexp',
  19034           begin: '(m|qr)?/', end: '/[a-z]*',
  19035           contains: [hljs.BACKSLASH_ESCAPE],
  19036           relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
  19037         }
  19038       ]
  19039     },
  19040     {
  19041       className: 'function',
  19042       beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]', excludeEnd: true,
  19043       relevance: 5,
  19044       contains: [hljs.TITLE_MODE]
  19045     },
  19046     {
  19047       begin: '-\\w\\b',
  19048       relevance: 0
  19049     },
  19050     {
  19051       begin: "^__DATA__$",
  19052       end: "^__END__$",
  19053       subLanguage: 'mojolicious',
  19054       contains: [
  19055         {
  19056             begin: "^@@.*",
  19057             end: "$",
  19058             className: "comment"
  19059         }
  19060       ]
  19061     }
  19062   ];
  19063   SUBST.contains = PERL_DEFAULT_CONTAINS;
  19064   METHOD.contains = PERL_DEFAULT_CONTAINS;
  19065 
  19066   return {
  19067     aliases: ['pl', 'pm'],
  19068     lexemes: /[\w\.]+/,
  19069     keywords: PERL_KEYWORDS,
  19070     contains: PERL_DEFAULT_CONTAINS
  19071   };
  19072 }
  19073 },{name:"pf",create:/*
  19074 Language: pf
  19075 Category: config
  19076 Author: Peter Piwowarski <oldlaptop654@aol.com>
  19077 Description: The pf.conf(5) format as of OpenBSD 5.6
  19078 */
  19079 
  19080 function(hljs) {
  19081   var MACRO = {
  19082     className: 'variable',
  19083     begin: /\$[\w\d#@][\w\d_]*/
  19084   };
  19085   var TABLE = {
  19086     className: 'variable',
  19087     begin: /<(?!\/)/, end: />/
  19088   };
  19089   var QUOTE_STRING = {
  19090     className: 'string',
  19091     begin: /"/, end: /"/
  19092   };
  19093 
  19094   return {
  19095     aliases: ['pf.conf'],
  19096     lexemes: /[a-z0-9_<>-]+/,
  19097     keywords: {
  19098       built_in: /* block match pass are "actions" in pf.conf(5), the rest are
  19099                  * lexically similar top-level commands.
  19100                  */
  19101         'block match pass load anchor|5 antispoof|10 set table',
  19102       keyword:
  19103         'in out log quick on rdomain inet inet6 proto from port os to route' +
  19104         'allow-opts divert-packet divert-reply divert-to flags group icmp-type' +
  19105         'icmp6-type label once probability recieved-on rtable prio queue' +
  19106         'tos tag tagged user keep fragment for os drop' +
  19107         'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin' +
  19108         'source-hash static-port' +
  19109         'dup-to reply-to route-to' +
  19110         'parent bandwidth default min max qlimit' +
  19111         'block-policy debug fingerprints hostid limit loginterface optimization' +
  19112         'reassemble ruleset-optimization basic none profile skip state-defaults' +
  19113         'state-policy timeout' +
  19114         'const counters persist' +
  19115         'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy' +
  19116         'source-track global rule max-src-nodes max-src-states max-src-conn' +
  19117         'max-src-conn-rate overload flush' +
  19118         'scrub|5 max-mss min-ttl no-df|10 random-id',
  19119       literal:
  19120         'all any no-route self urpf-failed egress|5 unknown'
  19121     },
  19122     contains: [
  19123       hljs.HASH_COMMENT_MODE,
  19124       hljs.NUMBER_MODE,
  19125       hljs.QUOTE_STRING_MODE,
  19126       MACRO,
  19127       TABLE
  19128     ]
  19129   };
  19130 }
  19131 },{name:"pgsql",create:/*
  19132 Language: PostgreSQL SQL dialect and PL/pgSQL
  19133 Author: Egor Rogov (e.rogov@postgrespro.ru)
  19134 Description:
  19135     This language incorporates both PostgreSQL SQL dialect and PL/pgSQL language.
  19136     It is based on PostgreSQL version 11. Some notes:
  19137     - Text in double-dollar-strings is _always_ interpreted as some programming code. Text
  19138       in ordinary quotes is _never_ interpreted that way and highlighted just as a string.
  19139     - There are quite a bit "special cases". That's because many keywords are not strictly
  19140       they are keywords in some contexts and ordinary identifiers in others. Only some
  19141       of such cases are handled; you still can get some of your identifiers highlighted
  19142       wrong way.
  19143     - Function names deliberately are not highlighted. There is no way to tell function
  19144       call from other constructs, hence we can't highlight _all_ function names. And
  19145       some names highlighted while others not looks ugly.
  19146 */
  19147 
  19148 function(hljs) {
  19149   var COMMENT_MODE = hljs.COMMENT('--', '$');
  19150   var UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*';
  19151   var DOLLAR_STRING = '\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$';
  19152   var LABEL = '<<\\s*' + UNQUOTED_IDENT + '\\s*>>';
  19153 
  19154   var SQL_KW = 
  19155     // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html
  19156     // https://www.postgresql.org/docs/11/static/sql-commands.html
  19157     // SQL commands (starting words)
  19158     'ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE ' +
  19159     'DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY ' +
  19160     'PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW ' +
  19161     'START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES ' +
  19162     // SQL commands (others)
  19163     'AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN ' +
  19164     'WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS ' +
  19165     'FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM ' +
  19166     'TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS ' +
  19167     'METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION ' +
  19168     'INDEX PROCEDURE ASSERTION ' +
  19169     // additional reserved key words
  19170     'ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK ' +
  19171     'COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS ' +
  19172     'DEFERRABLE RANGE ' +
  19173     'DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ' +
  19174     'ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT ' +
  19175     'NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY ' +
  19176     'REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN ' +
  19177     'TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH ' +
  19178     // some of non-reserved (which are used in clauses or as PL/pgSQL keyword)
  19179     'BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN ' +
  19180     'BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT ' +
  19181     'TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN ' +
  19182     'EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH ' +
  19183     'REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ' +
  19184     'ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED ' +
  19185     'INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 ' +
  19186     'INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ' +
  19187     'ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES ' +
  19188     'RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS ' +
  19189     'UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF ' +
  19190     // some parameters of VACUUM/ANALYZE/EXPLAIN
  19191     'FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING ' +
  19192     //
  19193     'RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED ' +
  19194     'OF NOTHING NONE EXCLUDE ATTRIBUTE ' +
  19195     // from GRANT (not keywords actually)
  19196     'USAGE ROUTINES ' +
  19197     // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc)
  19198     'TRUE FALSE NAN INFINITY ';
  19199 
  19200   var ROLE_ATTRS = // only those not in keywrods already
  19201     'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT ' +
  19202     'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ';
  19203 
  19204   var PLPGSQL_KW = 
  19205     'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS ' +
  19206     'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT ' +
  19207     'OPEN ';
  19208 
  19209   var TYPES =
  19210     // https://www.postgresql.org/docs/11/static/datatype.html
  19211     'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR ' +
  19212     'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 ' +
  19213     'MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 ' +
  19214     'SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 ' +
  19215     'TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR ' +
  19216     'INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ' +
  19217     // pseudotypes
  19218     'ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL ' +
  19219     'RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR ' +
  19220     // spec. type
  19221     'NAME ' +
  19222     // OID-types
  19223     'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 ' +
  19224     'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// +
  19225     // some types from standard extensions
  19226     'HSTORE|10 LO LTREE|10 ';
  19227     
  19228   var TYPES_RE = 
  19229     TYPES.trim()
  19230          .split(' ')
  19231          .map( function(val) { return val.split('|')[0]; } )
  19232          .join('|');
  19233 
  19234   var SQL_BI =
  19235     'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP ' +
  19236     'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ';
  19237 
  19238   var PLPGSQL_BI =
  19239     'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 ' +
  19240     'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ' +
  19241     // get diagnostics
  19242     'ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME ' +
  19243     'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 ' +
  19244     'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ';
  19245 
  19246   var PLPGSQL_EXCEPTIONS =
  19247     // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html
  19248     'SQLSTATE SQLERRM|10 ' +
  19249     'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING ' +
  19250     'NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED ' +
  19251     'STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED ' +
  19252     'SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE ' +
  19253     'SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION ' +
  19254     'TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED ' +
  19255     'INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR ' +
  19256     'INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION ' +
  19257     'STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION ' +
  19258     'DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW ' +
  19259     'DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW ' +
  19260     'INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION ' +
  19261     'INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION ' +
  19262     'INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST ' +
  19263     'INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE ' +
  19264     'NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE ' +
  19265     'INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE ' +
  19266     'INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT ' +
  19267     'INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH ' +
  19268     'NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE ' +
  19269     'SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION ' +
  19270     'SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING ' +
  19271     'FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION ' +
  19272     'BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT ' +
  19273     'INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION ' +
  19274     'INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION ' +
  19275     'UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE ' +
  19276     'INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE ' +
  19277     'HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION ' +
  19278     'INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION ' +
  19279     'NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION ' +
  19280     'SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION ' +
  19281     'IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME ' +
  19282     'TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD ' +
  19283     'DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST ' +
  19284     'INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT ' +
  19285     'MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED ' +
  19286     'READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION ' +
  19287     'CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED ' +
  19288     'PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED ' +
  19289     'EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED ' +
  19290     'TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED ' +
  19291     'SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME ' +
  19292     'INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION ' +
  19293     'SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED ' +
  19294     'SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE ' +
  19295     'GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME ' +
  19296     'NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH ' +
  19297     'INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN ' +
  19298     'UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT ' +
  19299     'DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION ' +
  19300     'DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS ' +
  19301     'DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS ' +
  19302     'INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION ' +
  19303     'INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION ' +
  19304     'INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION ' +
  19305     'INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL ' +
  19306     'OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED ' +
  19307     'STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE ' +
  19308     'OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION ' +
  19309     'QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED ' +
  19310     'SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR ' +
  19311     'LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED ' +
  19312     'FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION ' +
  19313     'FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER ' +
  19314     'FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS ' +
  19315     'FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX ' +
  19316     'FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH ' +
  19317     'FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES ' +
  19318     'FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE ' +
  19319     'FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION ' +
  19320     'FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR ' +
  19321     'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED ' +
  19322     'INDEX_CORRUPTED ';
  19323 
  19324   var FUNCTIONS =
  19325     // https://www.postgresql.org/docs/11/static/functions-aggregate.html
  19326     'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG ' +
  19327     'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG ' +
  19328     'CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE ' +
  19329     'REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP ' +
  19330     'PERCENTILE_CONT PERCENTILE_DISC ' +
  19331     // https://www.postgresql.org/docs/11/static/functions-window.html
  19332     'ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE ' +
  19333     // https://www.postgresql.org/docs/11/static/functions-comparison.html
  19334     'NUM_NONNULLS NUM_NULLS ' +
  19335     // https://www.postgresql.org/docs/11/static/functions-math.html
  19336     'ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT ' +
  19337     'TRUNC WIDTH_BUCKET ' +
  19338     'RANDOM SETSEED ' +
  19339     'ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND ' +
  19340     // https://www.postgresql.org/docs/11/static/functions-string.html
  19341     'BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ' +
  19342     'ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP' +
  19343     'LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 ' +
  19344     'QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY ' +
  19345     'REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR ' +
  19346     'TO_ASCII TO_HEX TRANSLATE ' +
  19347     // https://www.postgresql.org/docs/11/static/functions-binarystring.html
  19348     'OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE ' +
  19349     // https://www.postgresql.org/docs/11/static/functions-formatting.html
  19350     'TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP ' +
  19351     // https://www.postgresql.org/docs/11/static/functions-datetime.html
  19352     'AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL ' +
  19353     'MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 ' +
  19354     'TIMEOFDAY TRANSACTION_TIMESTAMP|10 ' +
  19355     // https://www.postgresql.org/docs/11/static/functions-enum.html
  19356     'ENUM_FIRST ENUM_LAST ENUM_RANGE ' +
  19357     // https://www.postgresql.org/docs/11/static/functions-geometry.html
  19358     'AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH ' +
  19359     'BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ' +
  19360     // https://www.postgresql.org/docs/11/static/functions-net.html
  19361     'ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY' +
  19362     'INET_MERGE MACADDR8_SET7BIT ' +
  19363     // https://www.postgresql.org/docs/11/static/functions-textsearch.html
  19364     'ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY ' +
  19365     'QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE ' +
  19366     'TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY ' +
  19367     'TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN ' +
  19368     // https://www.postgresql.org/docs/11/static/functions-xml.html
  19369     'XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT ' +
  19370     'XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT ' +
  19371     'XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES ' +
  19372     'TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA ' +
  19373     'QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA ' +
  19374     'CURSOR_TO_XML CURSOR_TO_XMLSCHEMA ' +
  19375     'SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA ' +
  19376     'DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA ' +
  19377     'XMLATTRIBUTES ' +
  19378     // https://www.postgresql.org/docs/11/static/functions-json.html
  19379     'TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT ' +
  19380     'JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH ' +
  19381     'JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH ' +
  19382     'JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET ' +
  19383     'JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT ' +
  19384     'JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET ' +
  19385     'JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY ' +
  19386     // https://www.postgresql.org/docs/11/static/functions-sequence.html
  19387     'CURRVAL LASTVAL NEXTVAL SETVAL ' +
  19388     // https://www.postgresql.org/docs/11/static/functions-conditional.html
  19389     'COALESCE NULLIF GREATEST LEAST ' +
  19390     // https://www.postgresql.org/docs/11/static/functions-array.html
  19391     'ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ' +
  19392     'ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY ' +
  19393     'STRING_TO_ARRAY UNNEST ' +
  19394     // https://www.postgresql.org/docs/11/static/functions-range.html
  19395     'ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE ' +
  19396     // https://www.postgresql.org/docs/11/static/functions-srf.html
  19397     'GENERATE_SERIES GENERATE_SUBSCRIPTS ' +
  19398     // https://www.postgresql.org/docs/11/static/functions-info.html
  19399     'CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT ' +
  19400     'INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE ' +
  19401     'TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE ' +
  19402     'COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION ' +
  19403     'TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX ' +
  19404     'TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS ' +
  19405     // https://www.postgresql.org/docs/11/static/functions-admin.html
  19406     'CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE ' +
  19407     'GIN_CLEAN_PENDING_LIST ' +
  19408     // https://www.postgresql.org/docs/11/static/functions-trigger.html
  19409     'SUPPRESS_REDUNDANT_UPDATES_TRIGGER ' +
  19410     // ihttps://www.postgresql.org/docs/devel/static/lo-funcs.html
  19411     'LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE ' +
  19412     //
  19413     'GROUPING CAST ';
  19414 
  19415     var FUNCTIONS_RE = 
  19416       FUNCTIONS.trim()
  19417                .split(' ')
  19418                .map( function(val) { return val.split('|')[0]; } )
  19419                .join('|');
  19420 
  19421     return {
  19422         aliases: ['postgres','postgresql'],
  19423         case_insensitive: true,
  19424         keywords: {
  19425           keyword:
  19426             SQL_KW + PLPGSQL_KW + ROLE_ATTRS,
  19427           built_in:
  19428             SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS,
  19429         },
  19430         // Forbid some cunstructs from other languages to improve autodetect. In fact
  19431         // "[a-z]:" is legal (as part of array slice), but improbabal.
  19432         illegal: /:==|\W\s*\(\*|(^|\s)\$[a-z]|{{|[a-z]:\s*$|\.\.\.|TO:|DO:/,
  19433         contains: [
  19434           // special handling of some words, which are reserved only in some contexts
  19435           {
  19436             className: 'keyword',
  19437             variants: [
  19438               { begin: /\bTEXT\s*SEARCH\b/ },
  19439               { begin: /\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/ },
  19440               { begin: /\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/ },
  19441               { begin: /\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/ },
  19442               { begin: /\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/ },
  19443               { begin: /\bNULLS\s+(FIRST|LAST)\b/ },
  19444               { begin: /\bEVENT\s+TRIGGER\b/ },
  19445               { begin: /\b(MAPPING|OR)\s+REPLACE\b/ },
  19446               { begin: /\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/ },
  19447               { begin: /\b(SHARE|EXCLUSIVE)\s+MODE\b/ },
  19448               { begin: /\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/ },
  19449               { begin: /\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/ },
  19450               { begin: /\bPRESERVE\s+ROWS\b/ },
  19451               { begin: /\bDISCARD\s+PLANS\b/ },
  19452               { begin: /\bREFERENCING\s+(OLD|NEW)\b/ },
  19453               { begin: /\bSKIP\s+LOCKED\b/ },
  19454               { begin: /\bGROUPING\s+SETS\b/ },
  19455               { begin: /\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/ },
  19456               { begin: /\b(WITH|WITHOUT)\s+HOLD\b/ },
  19457               { begin: /\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/ },
  19458               { begin: /\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/ },
  19459               { begin: /\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/ },
  19460               { begin: /\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/ },
  19461               { begin: /\bIS\s+(NOT\s+)?UNKNOWN\b/ },
  19462               { begin: /\bSECURITY\s+LABEL\b/ },
  19463               { begin: /\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/ },
  19464               { begin: /\bWITH\s+(NO\s+)?DATA\b/ },
  19465               { begin: /\b(FOREIGN|SET)\s+DATA\b/ },
  19466               { begin: /\bSET\s+(CATALOG|CONSTRAINTS)\b/ },
  19467               { begin: /\b(WITH|FOR)\s+ORDINALITY\b/ },
  19468               { begin: /\bIS\s+(NOT\s+)?DOCUMENT\b/ },
  19469               { begin: /\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/ },
  19470               { begin: /\b(STRIP|PRESERVE)\s+WHITESPACE\b/ },
  19471               { begin: /\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/ },
  19472               { begin: /\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/ },
  19473               { begin: /\bAT\s+TIME\s+ZONE\b/ },
  19474               { begin: /\bGRANTED\s+BY\b/ },
  19475               { begin: /\bRETURN\s+(QUERY|NEXT)\b/ },
  19476               { begin: /\b(ATTACH|DETACH)\s+PARTITION\b/ },
  19477               { begin: /\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/ },
  19478               { begin: /\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/ },
  19479               { begin: /\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/ }
  19480             ]
  19481           },
  19482           // functions named as keywords, followed by '('
  19483           {
  19484             begin: /\b(FORMAT|FAMILY|VERSION)\s*\(/,
  19485             //keywords: { built_in: 'FORMAT FAMILY VERSION' }
  19486           },
  19487           // INCLUDE ( ... ) in index_parameters in CREATE TABLE
  19488           {
  19489             begin: /\bINCLUDE\s*\(/,
  19490             keywords: 'INCLUDE'
  19491           },
  19492           // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory)
  19493           {
  19494             begin: /\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/
  19495           },
  19496           // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE
  19497           // and in PL/pgSQL RAISE ... USING
  19498           {
  19499             begin: /\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/
  19500           },
  19501           // PG_smth; HAS_some_PRIVILEGE
  19502           {
  19503             //className: 'built_in',
  19504             begin: /\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,
  19505             relevance: 10
  19506           },
  19507           // extract
  19508           {
  19509             begin: /\bEXTRACT\s*\(/,
  19510             end: /\bFROM\b/,
  19511             returnEnd: true,
  19512             keywords: {
  19513               //built_in: 'EXTRACT',
  19514               type:     'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' +
  19515                         'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' +
  19516                         'TIMEZONE_MINUTE WEEK YEAR'
  19517             }
  19518           },
  19519           // xmlelement, xmlpi - special NAME
  19520           {
  19521             begin: /\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,
  19522             keywords: {
  19523               //built_in: 'XMLELEMENT XMLPI',
  19524               keyword:  'NAME'
  19525             }
  19526           },
  19527           // xmlparse, xmlserialize
  19528           {
  19529             begin: /\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,
  19530             keywords: {
  19531               //built_in: 'XMLPARSE XMLSERIALIZE',
  19532               keyword:  'DOCUMENT CONTENT'
  19533             }
  19534           },
  19535           // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and
  19536           // nearest following numeric constant. Without with trick we find a lot of "keywords"
  19537           // in 'avrasm' autodetection test...
  19538           {
  19539             beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE',
  19540             end: hljs.C_NUMBER_RE,
  19541             returnEnd: true,
  19542             keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE'
  19543           },
  19544           // WITH|WITHOUT TIME ZONE as part of datatype
  19545           {
  19546             className: 'type',
  19547             begin: /\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/
  19548           },
  19549           // INTERVAL optional fields
  19550           {
  19551             className: 'type',
  19552             begin: /\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/
  19553           },
  19554           // Pseudo-types which allowed only as return type
  19555           {
  19556             begin: /\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,
  19557             keywords: {
  19558               keyword: 'RETURNS',
  19559               type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER'
  19560             }
  19561           },
  19562           // Known functions - only when followed by '('
  19563           {
  19564             begin: '\\b(' + FUNCTIONS_RE + ')\\s*\\('
  19565             //keywords: { built_in: FUNCTIONS }
  19566           },
  19567           // Types
  19568           {
  19569             begin: '\\.(' + TYPES_RE + ')\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid'
  19570           },
  19571           {
  19572             begin: '\\b(' + TYPES_RE + ')\\s+PATH\\b', // in XMLTABLE
  19573             keywords: {
  19574               keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE...
  19575               type: TYPES.replace('PATH ','')
  19576             }
  19577           },
  19578           {
  19579             className: 'type',
  19580             begin: '\\b(' + TYPES_RE + ')\\b'
  19581           },
  19582           // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS
  19583           {
  19584             className: 'string',
  19585             begin: '\'', end: '\'',
  19586             contains: [{begin: '\'\''}]
  19587           },
  19588           {
  19589             className: 'string',
  19590             begin: '(e|E|u&|U&)\'', end: '\'',
  19591             contains: [{begin: '\\\\.'}],
  19592             relevance: 10
  19593           },
  19594           {
  19595             begin: DOLLAR_STRING,
  19596             endSameAsBegin: true,
  19597             contains: [
  19598               {
  19599                 // actually we want them all except SQL; listed are those with known implementations
  19600                 // and XML + JSON just in case
  19601                 subLanguage: ['pgsql','perl','python','tcl','r','lua','java','php','ruby','bash','scheme','xml','json'],
  19602                 endsWithParent: true
  19603               }
  19604             ]
  19605           },
  19606           // identifiers in quotes
  19607           {
  19608             begin: '"', end: '"',
  19609             contains: [{begin: '""'}]
  19610           },
  19611           // numbers
  19612           hljs.C_NUMBER_MODE,
  19613           // comments
  19614           hljs.C_BLOCK_COMMENT_MODE,
  19615           COMMENT_MODE,
  19616           // PL/pgSQL staff
  19617           // %ROWTYPE, %TYPE, $n
  19618           {
  19619             className: 'meta',
  19620             variants: [
  19621               {begin: '%(ROW)?TYPE', relevance: 10}, // %TYPE, %ROWTYPE
  19622               {begin: '\\$\\d+'},                    // $n
  19623               {begin: '^#\\w', end: '$'}             // #compiler option
  19624             ]
  19625           },
  19626           // <<labeles>>
  19627           {
  19628             className: 'symbol',
  19629             begin: LABEL,
  19630             relevance: 10
  19631           }
  19632         ]
  19633   };
  19634 }
  19635 },{name:"php",create:/*
  19636 Language: PHP
  19637 Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
  19638 Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
  19639 Category: common
  19640 */
  19641 
  19642 function(hljs) {
  19643   var VARIABLE = {
  19644     begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
  19645   };
  19646   var PREPROCESSOR = {
  19647     className: 'meta', begin: /<\?(php)?|\?>/
  19648   };
  19649   var STRING = {
  19650     className: 'string',
  19651     contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],
  19652     variants: [
  19653       {
  19654         begin: 'b"', end: '"'
  19655       },
  19656       {
  19657         begin: 'b\'', end: '\''
  19658       },
  19659       hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
  19660       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
  19661     ]
  19662   };
  19663   var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
  19664   return {
  19665     aliases: ['php', 'php3', 'php4', 'php5', 'php6', 'php7'],
  19666     case_insensitive: true,
  19667     keywords:
  19668       'and include_once list abstract global private echo interface as static endswitch ' +
  19669       'array null if endwhile or const for endforeach self var while isset public ' +
  19670       'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
  19671       'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
  19672       'catch __METHOD__ case exception default die require __FUNCTION__ ' +
  19673       'enddeclare final try switch continue endfor endif declare unset true false ' +
  19674       'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
  19675       'yield finally',
  19676     contains: [
  19677       hljs.HASH_COMMENT_MODE,
  19678       hljs.COMMENT('//', '$', {contains: [PREPROCESSOR]}),
  19679       hljs.COMMENT(
  19680         '/\\*',
  19681         '\\*/',
  19682         {
  19683           contains: [
  19684             {
  19685               className: 'doctag',
  19686               begin: '@[A-Za-z]+'
  19687             }
  19688           ]
  19689         }
  19690       ),
  19691       hljs.COMMENT(
  19692         '__halt_compiler.+?;',
  19693         false,
  19694         {
  19695           endsWithParent: true,
  19696           keywords: '__halt_compiler',
  19697           lexemes: hljs.UNDERSCORE_IDENT_RE
  19698         }
  19699       ),
  19700       {
  19701         className: 'string',
  19702         begin: /<<<['"]?\w+['"]?$/, end: /^\w+;?$/,
  19703         contains: [
  19704           hljs.BACKSLASH_ESCAPE,
  19705           {
  19706             className: 'subst',
  19707             variants: [
  19708               {begin: /\$\w+/},
  19709               {begin: /\{\$/, end: /\}/}
  19710             ]
  19711           }
  19712         ]
  19713       },
  19714       PREPROCESSOR,
  19715       {
  19716         className: 'keyword', begin: /\$this\b/
  19717       },
  19718       VARIABLE,
  19719       {
  19720         // swallow composed identifiers to avoid parsing them as keywords
  19721         begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
  19722       },
  19723       {
  19724         className: 'function',
  19725         beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
  19726         illegal: '\\$|\\[|%',
  19727         contains: [
  19728           hljs.UNDERSCORE_TITLE_MODE,
  19729           {
  19730             className: 'params',
  19731             begin: '\\(', end: '\\)',
  19732             contains: [
  19733               'self',
  19734               VARIABLE,
  19735               hljs.C_BLOCK_COMMENT_MODE,
  19736               STRING,
  19737               NUMBER
  19738             ]
  19739           }
  19740         ]
  19741       },
  19742       {
  19743         className: 'class',
  19744         beginKeywords: 'class interface', end: '{', excludeEnd: true,
  19745         illegal: /[:\(\$"]/,
  19746         contains: [
  19747           {beginKeywords: 'extends implements'},
  19748           hljs.UNDERSCORE_TITLE_MODE
  19749         ]
  19750       },
  19751       {
  19752         beginKeywords: 'namespace', end: ';',
  19753         illegal: /[\.']/,
  19754         contains: [hljs.UNDERSCORE_TITLE_MODE]
  19755       },
  19756       {
  19757         beginKeywords: 'use', end: ';',
  19758         contains: [hljs.UNDERSCORE_TITLE_MODE]
  19759       },
  19760       {
  19761         begin: '=>' // No markup, just a relevance booster
  19762       },
  19763       STRING,
  19764       NUMBER
  19765     ]
  19766   };
  19767 }
  19768 },{name:"plaintext",create:/*
  19769 Language: plaintext
  19770 Author: Egor Rogov (e.rogov@postgrespro.ru)
  19771 Description:
  19772     Plain text without any highlighting.
  19773 */
  19774 
  19775 function(hljs) {
  19776     return {
  19777         disableAutodetect: true
  19778     };
  19779 }
  19780 },{name:"pony",create:/*
  19781 Language: Pony
  19782 Author: Joe Eli McIlvain <joe.eli.mac@gmail.com>
  19783 Description: Pony is an open-source, object-oriented, actor-model,
  19784              capabilities-secure, high performance programming language.
  19785 */
  19786 
  19787 function(hljs) {
  19788   var KEYWORDS = {
  19789     keyword:
  19790       'actor addressof and as be break class compile_error compile_intrinsic ' +
  19791       'consume continue delegate digestof do else elseif embed end error ' +
  19792       'for fun if ifdef in interface is isnt lambda let match new not object ' +
  19793       'or primitive recover repeat return struct then trait try type until ' +
  19794       'use var where while with xor',
  19795     meta:
  19796       'iso val tag trn box ref',
  19797     literal:
  19798       'this false true'
  19799   };
  19800 
  19801   var TRIPLE_QUOTE_STRING_MODE = {
  19802     className: 'string',
  19803     begin: '"""', end: '"""',
  19804     relevance: 10
  19805   };
  19806 
  19807   var QUOTE_STRING_MODE = {
  19808     className: 'string',
  19809     begin: '"', end: '"',
  19810     contains: [hljs.BACKSLASH_ESCAPE]
  19811   };
  19812 
  19813   var SINGLE_QUOTE_CHAR_MODE = {
  19814     className: 'string',
  19815     begin: '\'', end: '\'',
  19816     contains: [hljs.BACKSLASH_ESCAPE],
  19817     relevance: 0
  19818   };
  19819 
  19820   var TYPE_NAME = {
  19821     className: 'type',
  19822     begin: '\\b_?[A-Z][\\w]*',
  19823     relevance: 0
  19824   };
  19825 
  19826   var PRIMED_NAME = {
  19827     begin: hljs.IDENT_RE + '\'', relevance: 0
  19828   };
  19829 
  19830   /**
  19831    * The `FUNCTION` and `CLASS` modes were intentionally removed to simplify
  19832    * highlighting and fix cases like
  19833    * ```
  19834    * interface Iterator[A: A]
  19835    *   fun has_next(): Bool
  19836    *   fun next(): A?
  19837    * ```
  19838    * where it is valid to have a function head without a body
  19839    */
  19840 
  19841   return {
  19842     keywords: KEYWORDS,
  19843     contains: [
  19844       TYPE_NAME,
  19845       TRIPLE_QUOTE_STRING_MODE,
  19846       QUOTE_STRING_MODE,
  19847       SINGLE_QUOTE_CHAR_MODE,
  19848       PRIMED_NAME,
  19849       hljs.C_NUMBER_MODE,
  19850       hljs.C_LINE_COMMENT_MODE,
  19851       hljs.C_BLOCK_COMMENT_MODE
  19852     ]
  19853   };
  19854 }
  19855 },{name:"powershell",create:/*
  19856 Language: PowerShell
  19857 Author: David Mohundro <david@mohundro.com>
  19858 Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>, Victor Zhou <OiCMudkips@users.noreply.github.com>, Nicolas Le Gall <contact@nlegall.fr>
  19859 */
  19860 
  19861 function(hljs){
  19862   var BACKTICK_ESCAPE = {
  19863     begin: "`[\\s\\S]",
  19864     relevance: 0,
  19865   };
  19866   var VAR = {
  19867     className: "variable",
  19868     variants: [{ begin: /\$[\w\d][\w\d_:]*/ }],
  19869   };
  19870   var LITERAL = {
  19871     className: "literal",
  19872     begin: /\$(null|true|false)\b/,
  19873   };
  19874   var QUOTE_STRING = {
  19875     className: "string",
  19876     variants: [{ begin: /"/, end: /"/ }, { begin: /@"/, end: /^"@/ }],
  19877     contains: [
  19878       BACKTICK_ESCAPE,
  19879       VAR,
  19880       {
  19881         className: "variable",
  19882         begin: /\$[A-z]/,
  19883         end: /[^A-z]/,
  19884       },
  19885     ],
  19886   };
  19887   var APOS_STRING = {
  19888     className: "string",
  19889     variants: [{ begin: /'/, end: /'/ }, { begin: /@'/, end: /^'@/ }],
  19890   };
  19891 
  19892   var PS_HELPTAGS = {
  19893     className: "doctag",
  19894     variants: [
  19895       /* no paramater help tags */
  19896 
  19897       {
  19898         begin: /\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/,
  19899       },
  19900       /* one parameter help tags */
  19901       {
  19902         begin: /\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/,
  19903       },
  19904     ],
  19905   };
  19906   var PS_COMMENT = hljs.inherit(hljs.COMMENT(null, null), {
  19907     variants: [
  19908       /* single-line comment */
  19909       { begin: /#/, end: /$/ },
  19910       /* multi-line comment */
  19911       { begin: /<#/, end: /#>/ },
  19912     ],
  19913     contains: [PS_HELPTAGS],
  19914   });
  19915 
  19916   return {
  19917     aliases: ["ps"],
  19918     lexemes: /-?[A-z\.\-]+/,
  19919     case_insensitive: true,
  19920     keywords: {
  19921       keyword:
  19922         "if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch" +
  19923         "ValidateNoCircleInNodeResources ValidateNodeExclusiveResources ValidateNodeManager ValidateNodeResources ValidateNodeResourceSource ValidateNoNameNodeResources ThrowError IsHiddenResource" +
  19924         "IsPatternMatched ",
  19925       built_in:
  19926         "Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content " +
  19927         "Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession " +
  19928         "Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html " +
  19929         "ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger " +
  19930         "Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan " +
  19931         "Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration " +
  19932         "Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv " +
  19933         "Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias " +
  19934         "Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential " +
  19935         "Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History " +
  19936         "Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process " +
  19937         "Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob " +
  19938         "Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent " +
  19939         "Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet " +
  19940         "Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item " +
  19941         "Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item " +
  19942         "Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module " +
  19943         "New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption " +
  19944         "New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy " +
  19945         "New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location " +
  19946         "Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob " +
  19947         "Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module " +
  19948         "Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance " +
  19949         "Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer " +
  19950         "Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature " +
  19951         "Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug " +
  19952         "Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance " +
  19953         "Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process " +
  19954         "Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job " +
  19955         "Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile " +
  19956         "Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData " +
  19957         "Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog " +
  19958         "Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Add-MDTPersistentDrive Disable-MDTMonitorService Enable-MDTMonitorService " +
  19959         "Get-MDTDeploymentShareStatistics Get-MDTMonitorData Get-MDTOperatingSystemCatalog Get-MDTPersistentDrive Import-MDTApplication " +
  19960         "Import-MDTDriver Import-MDTOperatingSystem Import-MDTPackage Import-MDTTaskSequence New-MDTDatabase Remove-MDTMonitorData " +
  19961         "Remove-MDTPersistentDrive Restore-MDTPersistentDrive Set-MDTMonitorData Test-MDTDeploymentShare Test-MDTMonitorData Update-MDTDatabaseSchema " +
  19962         "Update-MDTDeploymentShare Update-MDTLinkedDS Update-MDTMedia Add-VamtProductKey Export-VamtData Find-VamtManagedMachine " +
  19963         "Get-VamtConfirmationId Get-VamtProduct Get-VamtProductKey Import-VamtData Initialize-VamtData Install-VamtConfirmationId " +
  19964         "Install-VamtProductActivation Install-VamtProductKey Update-VamtProduct Add-CIDatastore Add-KeyManagementServer Add-NodeKeys " +
  19965         "Add-NsxDynamicCriteria Add-NsxDynamicMemberSet Add-NsxEdgeInterfaceAddress Add-NsxFirewallExclusionListMember Add-NsxFirewallRuleMember " +
  19966         "Add-NsxIpSetMember Add-NsxLicense Add-NsxLoadBalancerPoolMember Add-NsxLoadBalancerVip Add-NsxSecondaryManager Add-NsxSecurityGroupMember " +
  19967         "Add-NsxSecurityPolicyRule Add-NsxSecurityPolicyRuleGroup Add-NsxSecurityPolicyRuleService Add-NsxServiceGroupMember " +
  19968         "Add-NsxTransportZoneMember Add-PassthroughDevice Add-VDSwitchPhysicalNetworkAdapter Add-VDSwitchVMHost Add-VMHost Add-VMHostNtpServer " +
  19969         "Add-VirtualSwitchPhysicalNetworkAdapter Add-XmlElement Add-vRACustomForm Add-vRAPrincipalToTenantRole Add-vRAReservationNetwork " +
  19970         "Add-vRAReservationStorage Clear-NsxEdgeInterface Clear-NsxManagerTimeSettings Compress-Archive Connect-CIServer Connect-CisServer " +
  19971         "Connect-HCXServer Connect-NIServer Connect-NsxLogicalSwitch Connect-NsxServer Connect-NsxtServer Connect-SrmServer Connect-VIServer " +
  19972         "Connect-Vmc Connect-vRAServer Connect-vRNIServer ConvertFrom-Markdown ConvertTo-MOFInstance Copy-DatastoreItem Copy-HardDisk Copy-NsxEdge " +
  19973         "Copy-VDisk Copy-VMGuestFile Debug-Runspace Disable-NsxEdgeSsh Disable-RunspaceDebug Disable-vRNIDataSource Disconnect-CIServer " +
  19974         "Disconnect-CisServer Disconnect-HCXServer Disconnect-NsxLogicalSwitch Disconnect-NsxServer Disconnect-NsxtServer Disconnect-SrmServer " +
  19975         "Disconnect-VIServer Disconnect-Vmc Disconnect-vRAServer Disconnect-vRNIServer Dismount-Tools Enable-NsxEdgeSsh Enable-RunspaceDebug " +
  19976         "Enable-vRNIDataSource Expand-Archive Export-NsxObject Export-SpbmStoragePolicy Export-VApp Export-VDPortGroup Export-VDSwitch " +
  19977         "Export-VMHostProfile Export-vRAIcon Export-vRAPackage Find-Command Find-DscResource Find-Module Find-NsxWhereVMUsed Find-Package " +
  19978         "Find-PackageProvider Find-RoleCapability Find-Script Format-Hex Format-VMHostDiskPartition Format-XML Generate-VersionInfo " +
  19979         "Get-AdvancedSetting Get-AlarmAction Get-AlarmActionTrigger Get-AlarmDefinition Get-Annotation Get-CDDrive Get-CIAccessControlRule " +
  19980         "Get-CIDatastore Get-CINetworkAdapter Get-CIRole Get-CIUser Get-CIVApp Get-CIVAppNetwork Get-CIVAppStartRule Get-CIVAppTemplate Get-CIVM " +
  19981         "Get-CIVMTemplate Get-CIView Get-Catalog Get-CisCommand Get-CisService Get-CloudCommand Get-Cluster Get-CompatibleVersionAddtionaPropertiesStr " +
  19982         "Get-ComplexResourceQualifier Get-ConfigurationErrorCount Get-ContentLibraryItem Get-CustomAttribute Get-DSCResourceModules Get-Datacenter " +
  19983         "Get-Datastore Get-DatastoreCluster Get-DrsClusterGroup Get-DrsRecommendation Get-DrsRule Get-DrsVMHostRule Get-DscResource Get-EdgeGateway " +
  19984         "Get-EncryptedPassword Get-ErrorReport Get-EsxCli Get-EsxTop Get-ExternalNetwork Get-FileHash Get-FloppyDrive Get-Folder Get-HAPrimaryVMHost " +
  19985         "Get-HCXAppliance Get-HCXApplianceCompute Get-HCXApplianceDVS Get-HCXApplianceDatastore Get-HCXApplianceNetwork Get-HCXContainer " +
  19986         "Get-HCXDatastore Get-HCXGateway Get-HCXInterconnectStatus Get-HCXJob Get-HCXMigration Get-HCXNetwork Get-HCXNetworkExtension " +
  19987         "Get-HCXReplication Get-HCXReplicationSnapshot Get-HCXService Get-HCXSite Get-HCXSitePairing Get-HCXVM Get-HardDisk Get-IScsiHbaTarget " +
  19988         "Get-InnerMostErrorRecord Get-InstallPath Get-InstalledModule Get-InstalledScript Get-Inventory Get-ItemPropertyValue Get-KeyManagementServer " +
  19989         "Get-KmipClientCertificate Get-KmsCluster Get-Log Get-LogType Get-MarkdownOption Get-Media Get-MofInstanceName Get-MofInstanceText Get-NetworkAdapter Get-NetworkPool " +
  19990         "Get-NfsUser Get-NicTeamingPolicy Get-NsxApplicableMember Get-NsxApplicableSecurityAction Get-NsxBackingDVSwitch Get-NsxBackingPortGroup Get-NsxCliDfwAddrSet " +
  19991         "Get-NsxCliDfwFilter Get-NsxCliDfwRule Get-NsxClusterStatus Get-NsxController Get-NsxDynamicCriteria Get-NsxDynamicMemberSet Get-NsxEdge Get-NsxEdgeBgp " +
  19992         "Get-NsxEdgeBgpNeighbour Get-NsxEdgeCertificate Get-NsxEdgeCsr Get-NsxEdgeFirewall Get-NsxEdgeFirewallRule Get-NsxEdgeInterface Get-NsxEdgeInterfaceAddress " +
  19993         "Get-NsxEdgeNat Get-NsxEdgeNatRule Get-NsxEdgeOspf Get-NsxEdgeOspfArea Get-NsxEdgeOspfInterface Get-NsxEdgePrefix Get-NsxEdgeRedistributionRule Get-NsxEdgeRouting " +
  19994         "Get-NsxEdgeStaticRoute Get-NsxEdgeSubInterface Get-NsxFirewallExclusionListMember Get-NsxFirewallGlobalConfiguration Get-NsxFirewallPublishStatus Get-NsxFirewallRule " +
  19995         "Get-NsxFirewallRuleMember Get-NsxFirewallSavedConfiguration Get-NsxFirewallSection Get-NsxFirewallThreshold Get-NsxIpPool Get-NsxIpSet Get-NsxLicense Get-NsxLoadBalancer " +
  19996         "Get-NsxLoadBalancerApplicationProfile Get-NsxLoadBalancerApplicationRule Get-NsxLoadBalancerMonitor Get-NsxLoadBalancerPool Get-NsxLoadBalancerPoolMember Get-NsxLoadBalancerStats " +
  19997         "Get-NsxLoadBalancerVip Get-NsxLogicalRouter Get-NsxLogicalRouterBgp Get-NsxLogicalRouterBgpNeighbour Get-NsxLogicalRouterBridge Get-NsxLogicalRouterBridging " +
  19998         "Get-NsxLogicalRouterInterface Get-NsxLogicalRouterOspf Get-NsxLogicalRouterOspfArea Get-NsxLogicalRouterOspfInterface Get-NsxLogicalRouterPrefix " +
  19999         "Get-NsxLogicalRouterRedistributionRule Get-NsxLogicalRouterRouting Get-NsxLogicalRouterStaticRoute Get-NsxLogicalSwitch Get-NsxMacSet Get-NsxManagerBackup " +
  20000         "Get-NsxManagerCertificate Get-NsxManagerComponentSummary Get-NsxManagerNetwork Get-NsxManagerRole Get-NsxManagerSsoConfig Get-NsxManagerSyncStatus Get-NsxManagerSyslogServer " +
  20001         "Get-NsxManagerSystemSummary Get-NsxManagerTimeSettings Get-NsxManagerVcenterConfig Get-NsxSecondaryManager Get-NsxSecurityGroup Get-NsxSecurityGroupEffectiveIpAddress " +
  20002         "Get-NsxSecurityGroupEffectiveMacAddress Get-NsxSecurityGroupEffectiveMember Get-NsxSecurityGroupEffectiveVirtualMachine Get-NsxSecurityGroupEffectiveVnic " +
  20003         "Get-NsxSecurityGroupMemberTypes Get-NsxSecurityPolicy Get-NsxSecurityPolicyHighestUsedPrecedence Get-NsxSecurityPolicyRule Get-NsxSecurityTag Get-NsxSecurityTagAssignment " +
  20004         "Get-NsxSegmentIdRange Get-NsxService Get-NsxServiceDefinition Get-NsxServiceGroup Get-NsxServiceGroupMember Get-NsxServiceProfile Get-NsxSpoofguardNic Get-NsxSpoofguardPolicy " +
  20005         "Get-NsxSslVpn Get-NsxSslVpnAuthServer Get-NsxSslVpnClientInstallationPackage Get-NsxSslVpnIpPool Get-NsxSslVpnPrivateNetwork Get-NsxSslVpnUser Get-NsxTransportZone " +
  20006         "Get-NsxUserRole Get-NsxVdsContext Get-NsxtPolicyService Get-NsxtService Get-OSCustomizationNicMapping Get-OSCustomizationSpec Get-Org Get-OrgNetwork Get-OrgVdc " +
  20007         "Get-OrgVdcNetwork Get-OvfConfiguration Get-PSCurrentConfigurationNode Get-PSDefaultConfigurationDocument Get-PSMetaConfigDocumentInstVersionInfo Get-PSMetaConfigurationProcessed " +
  20008         "Get-PSReadLineKeyHandler Get-PSReadLineOption Get-PSRepository Get-PSTopConfigurationName Get-PSVersion Get-Package Get-PackageProvider Get-PackageSource Get-PassthroughDevice " +
  20009         "Get-PositionInfo Get-PowerCLICommunity Get-PowerCLIConfiguration Get-PowerCLIHelp Get-PowerCLIVersion Get-PowerNsxVersion Get-ProviderVdc Get-PublicKeyFromFile " +
  20010         "Get-PublicKeyFromStore Get-ResourcePool Get-Runspace Get-RunspaceDebug Get-ScsiController Get-ScsiLun Get-ScsiLunPath Get-SecurityInfo Get-SecurityPolicy Get-Snapshot " +
  20011         "Get-SpbmCapability Get-SpbmCompatibleStorage Get-SpbmEntityConfiguration Get-SpbmFaultDomain Get-SpbmPointInTimeReplica Get-SpbmReplicationGroup Get-SpbmReplicationPair " +
  20012         "Get-SpbmStoragePolicy Get-Stat Get-StatInterval Get-StatType Get-Tag Get-TagAssignment Get-TagCategory Get-Task Get-Template Get-TimeZone Get-Uptime Get-UsbDevice Get-VAIOFilter " +
  20013         "Get-VApp Get-VDBlockedPolicy Get-VDPort Get-VDPortgroup Get-VDPortgroupOverridePolicy Get-VDSecurityPolicy Get-VDSwitch Get-VDSwitchPrivateVlan Get-VDTrafficShapingPolicy " +
  20014         "Get-VDUplinkLacpPolicy Get-VDUplinkTeamingPolicy Get-VDisk Get-VIAccount Get-VICommand Get-VICredentialStoreItem Get-VIEvent Get-VIObjectByVIView Get-VIPermission Get-VIPrivilege " +
  20015         "Get-VIProperty Get-VIRole Get-VM Get-VMGuest Get-VMHost Get-VMHostAccount Get-VMHostAdvancedConfiguration Get-VMHostAuthentication Get-VMHostAvailableTimeZone " +
  20016         "Get-VMHostDiagnosticPartition Get-VMHostDisk Get-VMHostDiskPartition Get-VMHostFirewallDefaultPolicy Get-VMHostFirewallException Get-VMHostFirmware Get-VMHostHardware " +
  20017         "Get-VMHostHba Get-VMHostModule Get-VMHostNetwork Get-VMHostNetworkAdapter Get-VMHostNtpServer Get-VMHostPatch Get-VMHostPciDevice Get-VMHostProfile " +
  20018         "Get-VMHostProfileImageCacheConfiguration Get-VMHostProfileRequiredInput Get-VMHostProfileStorageDeviceConfiguration Get-VMHostProfileUserConfiguration " +
  20019         "Get-VMHostProfileVmPortGroupConfiguration Get-VMHostRoute Get-VMHostService Get-VMHostSnmp Get-VMHostStartPolicy Get-VMHostStorage Get-VMHostSysLogServer Get-VMQuestion " +
  20020         "Get-VMResourceConfiguration Get-VMStartPolicy Get-VTpm Get-VTpmCSR Get-VTpmCertificate Get-VasaProvider Get-VasaStorageArray Get-View Get-VirtualPortGroup Get-VirtualSwitch " +
  20021         "Get-VmcSddcNetworkService Get-VmcService Get-VsanClusterConfiguration Get-VsanComponent Get-VsanDisk Get-VsanDiskGroup Get-VsanEvacuationPlan Get-VsanFaultDomain " +
  20022         "Get-VsanIscsiInitiatorGroup Get-VsanIscsiInitiatorGroupTargetAssociation Get-VsanIscsiLun Get-VsanIscsiTarget Get-VsanObject Get-VsanResyncingComponent Get-VsanRuntimeInfo " +
  20023         "Get-VsanSpaceUsage Get-VsanStat Get-VsanView Get-vRAApplianceServiceStatus Get-vRAAuthorizationRole Get-vRABlueprint Get-vRABusinessGroup Get-vRACatalogItem " +
  20024         "Get-vRACatalogItemRequestTemplate Get-vRACatalogPrincipal Get-vRAComponentRegistryService Get-vRAComponentRegistryServiceEndpoint Get-vRAComponentRegistryServiceStatus " +
  20025         "Get-vRAContent Get-vRAContentData Get-vRAContentType Get-vRACustomForm Get-vRAEntitledCatalogItem Get-vRAEntitledService Get-vRAEntitlement Get-vRAExternalNetworkProfile " +
  20026         "Get-vRAGroupPrincipal Get-vRAIcon Get-vRANATNetworkProfile Get-vRANetworkProfileIPAddressList Get-vRANetworkProfileIPRangeSummary Get-vRAPackage Get-vRAPackageContent " +
  20027         "Get-vRAPropertyDefinition Get-vRAPropertyGroup Get-vRARequest Get-vRARequestDetail Get-vRAReservation Get-vRAReservationComputeResource Get-vRAReservationComputeResourceMemory " +
  20028         "Get-vRAReservationComputeResourceNetwork Get-vRAReservationComputeResourceResourcePool Get-vRAReservationComputeResourceStorage Get-vRAReservationPolicy " +
  20029         "Get-vRAReservationTemplate Get-vRAReservationType Get-vRAResource Get-vRAResourceAction Get-vRAResourceActionRequestTemplate Get-vRAResourceMetric Get-vRAResourceOperation " +
  20030         "Get-vRAResourceType Get-vRARoutedNetworkProfile Get-vRAService Get-vRAServiceBlueprint Get-vRASourceMachine Get-vRAStorageReservationPolicy Get-vRATenant Get-vRATenantDirectory " +
  20031         "Get-vRATenantDirectoryStatus Get-vRATenantRole Get-vRAUserPrincipal Get-vRAUserPrincipalGroupMembership Get-vRAVersion Get-vRNIAPIVersion Get-vRNIApplication " +
  20032         "Get-vRNIApplicationTier Get-vRNIDataSource Get-vRNIDataSourceSNMPConfig Get-vRNIDatastore Get-vRNIDistributedSwitch Get-vRNIDistributedSwitchPortGroup Get-vRNIEntity " +
  20033         "Get-vRNIEntityName Get-vRNIFirewallRule Get-vRNIFlow Get-vRNIHost Get-vRNIHostVMKNic Get-vRNIIPSet Get-vRNIL2Network Get-vRNINSXManager Get-vRNINodes Get-vRNIProblem " +
  20034         "Get-vRNIRecommendedRules Get-vRNIRecommendedRulesNsxBundle Get-vRNISecurityGroup Get-vRNISecurityTag Get-vRNIService Get-vRNIServiceGroup Get-vRNIVM Get-vRNIVMvNIC " +
  20035         "Get-vRNIvCenter Get-vRNIvCenterCluster Get-vRNIvCenterDatacenter Get-vRNIvCenterFolder Grant-NsxSpoofguardNicApproval Import-CIVApp Import-CIVAppTemplate Import-NsxObject " +
  20036         "Import-PackageProvider Import-PowerShellDataFile Import-SpbmStoragePolicy Import-VApp Import-VMHostProfile Import-vRAContentData Import-vRAIcon Import-vRAPackage " +
  20037         "Initialize-ConfigurationRuntimeState Install-Module Install-NsxCluster Install-Package Install-PackageProvider Install-Script Install-VMHostPatch Invoke-DrsRecommendation " +
  20038         "Invoke-NsxCli Invoke-NsxClusterResolveAll Invoke-NsxManagerSync Invoke-NsxRestMethod Invoke-NsxWebRequest Invoke-VMHostProfile Invoke-VMScript Invoke-XpathQuery " +
  20039         "Invoke-vRADataCollection Invoke-vRARestMethod Invoke-vRATenantDirectorySync Invoke-vRNIRestMethod Join-String Mount-Tools Move-Cluster Move-Datacenter Move-Datastore Move-Folder " +
  20040         "Move-HardDisk Move-Inventory Move-NsxSecurityPolicyRule Move-ResourcePool Move-Template Move-VApp Move-VDisk Move-VM Move-VMHost New-AdvancedSetting New-AlarmAction " +
  20041         "New-AlarmActionTrigger New-CDDrive New-CIAccessControlRule New-CIVApp New-CIVAppNetwork New-CIVAppTemplate New-CIVM New-Cluster New-CustomAttribute New-Datacenter New-Datastore " +
  20042         "New-DatastoreCluster New-DatastoreDrive New-DrsClusterGroup New-DrsRule New-DrsVMHostRule New-DscChecksum New-FloppyDrive New-Folder New-Guid New-HCXAppliance New-HCXMigration " +
  20043         "New-HCXNetworkExtension New-HCXNetworkMapping New-HCXReplication New-HCXSitePairing New-HCXStaticRoute New-HardDisk New-IScsiHbaTarget New-KmipClientCertificate " +
  20044         "New-NetworkAdapter New-NfsUser New-NsxAddressSpec New-NsxClusterVxlanConfig New-NsxController New-NsxDynamicCriteriaSpec New-NsxEdge New-NsxEdgeBgpNeighbour New-NsxEdgeCsr " +
  20045         "New-NsxEdgeFirewallRule New-NsxEdgeInterfaceSpec New-NsxEdgeNatRule New-NsxEdgeOspfArea New-NsxEdgeOspfInterface New-NsxEdgePrefix New-NsxEdgeRedistributionRule " +
  20046         "New-NsxEdgeSelfSignedCertificate New-NsxEdgeStaticRoute New-NsxEdgeSubInterface New-NsxEdgeSubInterfaceSpec New-NsxFirewallRule New-NsxFirewallSavedConfiguration " +
  20047         "New-NsxFirewallSection New-NsxIpPool New-NsxIpSet New-NsxLoadBalancerApplicationProfile New-NsxLoadBalancerApplicationRule New-NsxLoadBalancerMemberSpec " +
  20048         "New-NsxLoadBalancerMonitor New-NsxLoadBalancerPool New-NsxLogicalRouter New-NsxLogicalRouterBgpNeighbour New-NsxLogicalRouterBridge New-NsxLogicalRouterInterface " +
  20049         "New-NsxLogicalRouterInterfaceSpec New-NsxLogicalRouterOspfArea New-NsxLogicalRouterOspfInterface New-NsxLogicalRouterPrefix New-NsxLogicalRouterRedistributionRule " +
  20050         "New-NsxLogicalRouterStaticRoute New-NsxLogicalSwitch New-NsxMacSet New-NsxManager New-NsxSecurityGroup New-NsxSecurityPolicy New-NsxSecurityPolicyAssignment " +
  20051         "New-NsxSecurityPolicyFirewallRuleSpec New-NsxSecurityPolicyGuestIntrospectionSpec New-NsxSecurityPolicyNetworkIntrospectionSpec New-NsxSecurityTag New-NsxSecurityTagAssignment " +
  20052         "New-NsxSegmentIdRange New-NsxService New-NsxServiceGroup New-NsxSpoofguardPolicy New-NsxSslVpnAuthServer New-NsxSslVpnClientInstallationPackage New-NsxSslVpnIpPool " +
  20053         "New-NsxSslVpnPrivateNetwork New-NsxSslVpnUser New-NsxTransportZone New-NsxVdsContext New-OSCustomizationNicMapping New-OSCustomizationSpec New-Org New-OrgNetwork New-OrgVdc " +
  20054         "New-OrgVdcNetwork New-ResourcePool New-ScriptFileInfo New-ScsiController New-Snapshot New-SpbmRule New-SpbmRuleSet New-SpbmStoragePolicy New-StatInterval New-Tag " +
  20055         "New-TagAssignment New-TagCategory New-Template New-TemporaryFile New-VAIOFilter New-VApp New-VDPortgroup New-VDSwitch New-VDSwitchPrivateVlan New-VDisk " +
  20056         "New-VICredentialStoreItem New-VIInventoryDrive New-VIPermission New-VIProperty New-VIRole New-VISamlSecurityContext New-VM New-VMHostAccount New-VMHostNetworkAdapter " +
  20057         "New-VMHostProfile New-VMHostProfileVmPortGroupConfiguration New-VMHostRoute New-VTpm New-VasaProvider New-VcsOAuthSecurityContext New-VirtualPortGroup New-VirtualSwitch " +
  20058         "New-VsanDisk New-VsanDiskGroup New-VsanFaultDomain New-VsanIscsiInitiatorGroup New-VsanIscsiInitiatorGroupTargetAssociation New-VsanIscsiLun New-VsanIscsiTarget " +
  20059         "New-vRABusinessGroup New-vRAEntitlement New-vRAExternalNetworkProfile New-vRAGroupPrincipal New-vRANATNetworkProfile New-vRANetworkProfileIPRangeDefinition New-vRAPackage " +
  20060         "New-vRAPropertyDefinition New-vRAPropertyGroup New-vRAReservation New-vRAReservationNetworkDefinition New-vRAReservationPolicy New-vRAReservationStorageDefinition " +
  20061         "New-vRARoutedNetworkProfile New-vRAService New-vRAStorageReservationPolicy New-vRATenant New-vRATenantDirectory New-vRAUserPrincipal New-vRNIApplication New-vRNIApplicationTier " +
  20062         "New-vRNIDataSource Open-VMConsoleWindow Publish-Module Publish-NsxSpoofguardPolicy Publish-Script Register-PSRepository Register-PackageSource Remove-AdvancedSetting " +
  20063         "Remove-AlarmAction Remove-AlarmActionTrigger Remove-Alias Remove-CDDrive Remove-CIAccessControlRule Remove-CIVApp Remove-CIVAppNetwork Remove-CIVAppTemplate Remove-Cluster " +
  20064         "Remove-CustomAttribute Remove-Datacenter Remove-Datastore Remove-DatastoreCluster Remove-DrsClusterGroup Remove-DrsRule Remove-DrsVMHostRule Remove-FloppyDrive Remove-Folder " +
  20065         "Remove-HCXAppliance Remove-HCXNetworkExtension Remove-HCXReplication Remove-HCXSitePairing Remove-HardDisk Remove-IScsiHbaTarget Remove-Inventory Remove-KeyManagementServer " +
  20066         "Remove-NetworkAdapter Remove-NfsUser Remove-NsxCluster Remove-NsxClusterVxlanConfig Remove-NsxController Remove-NsxDynamicCriteria Remove-NsxDynamicMemberSet Remove-NsxEdge " +
  20067         "Remove-NsxEdgeBgpNeighbour Remove-NsxEdgeCertificate Remove-NsxEdgeCsr Remove-NsxEdgeFirewallRule Remove-NsxEdgeInterfaceAddress Remove-NsxEdgeNatRule Remove-NsxEdgeOspfArea " +
  20068         "Remove-NsxEdgeOspfInterface Remove-NsxEdgePrefix Remove-NsxEdgeRedistributionRule Remove-NsxEdgeStaticRoute Remove-NsxEdgeSubInterface Remove-NsxFirewallExclusionListMember " +
  20069         "Remove-NsxFirewallRule Remove-NsxFirewallRuleMember Remove-NsxFirewallSavedConfiguration Remove-NsxFirewallSection Remove-NsxIpPool Remove-NsxIpSet Remove-NsxIpSetMember " +
  20070         "Remove-NsxLoadBalancerApplicationProfile Remove-NsxLoadBalancerMonitor Remove-NsxLoadBalancerPool Remove-NsxLoadBalancerPoolMember Remove-NsxLoadBalancerVip " +
  20071         "Remove-NsxLogicalRouter Remove-NsxLogicalRouterBgpNeighbour Remove-NsxLogicalRouterBridge Remove-NsxLogicalRouterInterface Remove-NsxLogicalRouterOspfArea " +
  20072         "Remove-NsxLogicalRouterOspfInterface Remove-NsxLogicalRouterPrefix Remove-NsxLogicalRouterRedistributionRule Remove-NsxLogicalRouterStaticRoute Remove-NsxLogicalSwitch " +
  20073         "Remove-NsxMacSet Remove-NsxSecondaryManager Remove-NsxSecurityGroup Remove-NsxSecurityGroupMember Remove-NsxSecurityPolicy Remove-NsxSecurityPolicyAssignment " +
  20074         "Remove-NsxSecurityPolicyRule Remove-NsxSecurityPolicyRuleGroup Remove-NsxSecurityPolicyRuleService Remove-NsxSecurityTag Remove-NsxSecurityTagAssignment " +
  20075         "Remove-NsxSegmentIdRange Remove-NsxService Remove-NsxServiceGroup Remove-NsxSpoofguardPolicy Remove-NsxSslVpnClientInstallationPackage Remove-NsxSslVpnIpPool " +
  20076         "Remove-NsxSslVpnPrivateNetwork Remove-NsxSslVpnUser Remove-NsxTransportZone Remove-NsxTransportZoneMember Remove-NsxVdsContext Remove-OSCustomizationNicMapping " +
  20077         "Remove-OSCustomizationSpec Remove-Org Remove-OrgNetwork Remove-OrgVdc Remove-OrgVdcNetwork Remove-PSReadLineKeyHandler Remove-PassthroughDevice Remove-ResourcePool " +
  20078         "Remove-Snapshot Remove-SpbmStoragePolicy Remove-StatInterval Remove-Tag Remove-TagAssignment Remove-TagCategory Remove-Template Remove-UsbDevice Remove-VAIOFilter Remove-VApp " +
  20079         "Remove-VDPortGroup Remove-VDSwitch Remove-VDSwitchPhysicalNetworkAdapter Remove-VDSwitchPrivateVlan Remove-VDSwitchVMHost Remove-VDisk Remove-VICredentialStoreItem " +
  20080         "Remove-VIPermission Remove-VIProperty Remove-VIRole Remove-VM Remove-VMHost Remove-VMHostAccount Remove-VMHostNetworkAdapter Remove-VMHostNtpServer Remove-VMHostProfile " +
  20081         "Remove-VMHostProfileVmPortGroupConfiguration Remove-VMHostRoute Remove-VTpm Remove-VasaProvider Remove-VirtualPortGroup Remove-VirtualSwitch " +
  20082         "Remove-VirtualSwitchPhysicalNetworkAdapter Remove-VsanDisk Remove-VsanDiskGroup Remove-VsanFaultDomain Remove-VsanIscsiInitiatorGroup " +
  20083         "Remove-VsanIscsiInitiatorGroupTargetAssociation Remove-VsanIscsiLun Remove-VsanIscsiTarget Remove-vRABusinessGroup Remove-vRACustomForm Remove-vRAExternalNetworkProfile " +
  20084         "Remove-vRAGroupPrincipal Remove-vRAIcon Remove-vRANATNetworkProfile Remove-vRAPackage Remove-vRAPrincipalFromTenantRole Remove-vRAPropertyDefinition Remove-vRAPropertyGroup " +
  20085         "Remove-vRAReservation Remove-vRAReservationNetwork Remove-vRAReservationPolicy Remove-vRAReservationStorage Remove-vRARoutedNetworkProfile Remove-vRAService " +
  20086         "Remove-vRAStorageReservationPolicy Remove-vRATenant Remove-vRATenantDirectory Remove-vRAUserPrincipal Remove-vRNIApplication Remove-vRNIApplicationTier Remove-vRNIDataSource " +
  20087         "Repair-NsxEdge Repair-VsanObject Request-vRACatalogItem Request-vRAResourceAction Restart-CIVApp Restart-CIVAppGuest Restart-CIVM Restart-CIVMGuest Restart-VM Restart-VMGuest " +
  20088         "Restart-VMHost Restart-VMHostService Resume-HCXReplication Revoke-NsxSpoofguardNicApproval Save-Module Save-Package Save-Script Search-Cloud Set-AdvancedSetting " +
  20089         "Set-AlarmDefinition Set-Annotation Set-CDDrive Set-CIAccessControlRule Set-CINetworkAdapter Set-CIVApp Set-CIVAppNetwork Set-CIVAppStartRule Set-CIVAppTemplate Set-Cluster " +
  20090         "Set-CustomAttribute Set-Datacenter Set-Datastore Set-DatastoreCluster Set-DrsClusterGroup Set-DrsRule Set-DrsVMHostRule Set-FloppyDrive Set-Folder Set-HCXAppliance " +
  20091         "Set-HCXMigration Set-HCXReplication Set-HardDisk Set-IScsiHbaTarget Set-KeyManagementServer Set-KmsCluster Set-MarkdownOption Set-NetworkAdapter Set-NfsUser Set-NicTeamingPolicy " +
  20092         "Set-NodeExclusiveResources Set-NodeManager Set-NodeResourceSource Set-NodeResources Set-NsxEdge Set-NsxEdgeBgp Set-NsxEdgeFirewall Set-NsxEdgeInterface Set-NsxEdgeNat " +
  20093         "Set-NsxEdgeOspf Set-NsxEdgeRouting Set-NsxFirewallGlobalConfiguration Set-NsxFirewallRule Set-NsxFirewallSavedConfiguration Set-NsxFirewallThreshold Set-NsxLoadBalancer " +
  20094         "Set-NsxLoadBalancerPoolMember Set-NsxLogicalRouter Set-NsxLogicalRouterBgp Set-NsxLogicalRouterBridging Set-NsxLogicalRouterInterface Set-NsxLogicalRouterOspf " +
  20095         "Set-NsxLogicalRouterRouting Set-NsxManager Set-NsxManagerRole Set-NsxManagerTimeSettings Set-NsxSecurityPolicy Set-NsxSecurityPolicyFirewallRule Set-NsxSslVpn " +
  20096         "Set-OSCustomizationNicMapping Set-OSCustomizationSpec Set-Org Set-OrgNetwork Set-OrgVdc Set-OrgVdcNetwork Set-PSCurrentConfigurationNode Set-PSDefaultConfigurationDocument " +
  20097         "Set-PSMetaConfigDocInsProcessedBeforeMeta Set-PSMetaConfigVersionInfoV2 Set-PSReadLineKeyHandler Set-PSReadLineOption Set-PSRepository Set-PSTopConfigurationName " +
  20098         "Set-PackageSource Set-PowerCLIConfiguration Set-ResourcePool Set-ScsiController Set-ScsiLun Set-ScsiLunPath Set-SecurityPolicy Set-Snapshot Set-SpbmEntityConfiguration " +
  20099         "Set-SpbmStoragePolicy Set-StatInterval Set-Tag Set-TagCategory Set-Template Set-VAIOFilter Set-VApp Set-VDBlockedPolicy Set-VDPort Set-VDPortgroup Set-VDPortgroupOverridePolicy " +
  20100         "Set-VDSecurityPolicy Set-VDSwitch Set-VDTrafficShapingPolicy Set-VDUplinkLacpPolicy Set-VDUplinkTeamingPolicy Set-VDVlanConfiguration Set-VDisk Set-VIPermission Set-VIRole Set-VM " +
  20101         "Set-VMHost Set-VMHostAccount Set-VMHostAdvancedConfiguration Set-VMHostAuthentication Set-VMHostDiagnosticPartition Set-VMHostFirewallDefaultPolicy Set-VMHostFirewallException " +
  20102         "Set-VMHostFirmware Set-VMHostHba Set-VMHostModule Set-VMHostNetwork Set-VMHostNetworkAdapter Set-VMHostProfile Set-VMHostProfileImageCacheConfiguration " +
  20103         "Set-VMHostProfileStorageDeviceConfiguration Set-VMHostProfileUserConfiguration Set-VMHostProfileVmPortGroupConfiguration Set-VMHostRoute Set-VMHostService Set-VMHostSnmp " +
  20104         "Set-VMHostStartPolicy Set-VMHostStorage Set-VMHostSysLogServer Set-VMQuestion Set-VMResourceConfiguration Set-VMStartPolicy Set-VTpm Set-VirtualPortGroup Set-VirtualSwitch " +
  20105         "Set-VsanClusterConfiguration Set-VsanFaultDomain Set-VsanIscsiInitiatorGroup Set-VsanIscsiLun Set-VsanIscsiTarget Set-vRABusinessGroup Set-vRACatalogItem Set-vRACustomForm " +
  20106         "Set-vRAEntitlement Set-vRAExternalNetworkProfile Set-vRANATNetworkProfile Set-vRAReservation Set-vRAReservationNetwork Set-vRAReservationPolicy Set-vRAReservationStorage " +
  20107         "Set-vRARoutedNetworkProfile Set-vRAService Set-vRAStorageReservationPolicy Set-vRATenant Set-vRATenantDirectory Set-vRAUserPrincipal Set-vRNIDataSourceSNMPConfig Show-Markdown " +
  20108         "Start-CIVApp Start-CIVM Start-HCXMigration Start-HCXReplication Start-SpbmReplicationFailover Start-SpbmReplicationPrepareFailover Start-SpbmReplicationPromote " +
  20109         "Start-SpbmReplicationReverse Start-SpbmReplicationTestFailover Start-ThreadJob Start-VApp Start-VM Start-VMHost Start-VMHostService Start-VsanClusterDiskUpdate " +
  20110         "Start-VsanClusterRebalance Start-VsanEncryptionConfiguration Stop-CIVApp Stop-CIVAppGuest Stop-CIVM Stop-CIVMGuest Stop-SpbmReplicationTestFailover Stop-Task Stop-VApp Stop-VM " +
  20111         "Stop-VMGuest Stop-VMHost Stop-VMHostService Stop-VsanClusterRebalance Suspend-CIVApp Suspend-CIVM Suspend-HCXReplication Suspend-VM Suspend-VMGuest Suspend-VMHost " +
  20112         "Sync-SpbmReplicationGroup Test-ConflictingResources Test-HCXMigration Test-HCXReplication Test-Json Test-ModuleReloadRequired Test-MofInstanceText Test-NodeManager " +
  20113         "Test-NodeResourceSource Test-NodeResources Test-ScriptFileInfo Test-VMHostProfileCompliance Test-VMHostSnmp Test-VsanClusterHealth Test-VsanNetworkPerformance " +
  20114         "Test-VsanStoragePerformance Test-VsanVMCreation Test-vRAPackage Uninstall-Module Uninstall-Package Uninstall-Script Unlock-VM Unregister-PSRepository Unregister-PackageSource " +
  20115         "Update-ConfigurationDocumentRef Update-ConfigurationErrorCount Update-DependsOn Update-LocalConfigManager Update-Module Update-ModuleManifest Update-ModuleVersion Update-PowerNsx " +
  20116         "Update-Script Update-ScriptFileInfo Update-Tools Update-VsanHclDatabase ValidateUpdate-ConfigurationData Wait-Debugger Wait-NsxControllerJob Wait-NsxGenericJob Wait-NsxJob " +
  20117         "Wait-Task Wait-Tools Write-Information Write-Log Write-MetaConfigFile Write-NodeMOFFile",
  20118       nomarkup:
  20119         "-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace",
  20120     },
  20121     contains: [
  20122       BACKTICK_ESCAPE,
  20123       hljs.NUMBER_MODE,
  20124       QUOTE_STRING,
  20125       APOS_STRING,
  20126       LITERAL,
  20127       VAR,
  20128       PS_COMMENT,
  20129     ],
  20130   };
  20131 }
  20132 },{name:"processing",create:/*
  20133 Language: Processing
  20134 Author: Erik Paluka <erik.paluka@gmail.com>
  20135 Category: graphics
  20136 */
  20137 
  20138 function(hljs) {
  20139   return {
  20140     keywords: {
  20141       keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +
  20142         'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +
  20143         'Object StringDict StringList Table TableRow XML ' +
  20144         // Java keywords
  20145         'false synchronized int abstract float private char boolean static null if const ' +
  20146         'for true while long throw strictfp finally protected import native final return void ' +
  20147         'enum else break transient new catch instanceof byte super volatile case assert short ' +
  20148         'package default double public try this switch continue throws protected public private',
  20149       literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',
  20150       title: 'setup draw',
  20151       built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +
  20152         'keyCode pixels focused frameCount frameRate height width ' +
  20153         'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +
  20154         'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +
  20155         'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +
  20156         'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +
  20157         'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +
  20158         'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +
  20159         'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +
  20160         'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +
  20161         'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +
  20162         'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +
  20163         'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +
  20164         'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +
  20165         'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +
  20166         'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +
  20167         'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +
  20168         'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +
  20169         'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +
  20170         'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +
  20171         'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +
  20172         'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +
  20173         'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +
  20174         'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'
  20175     },
  20176     contains: [
  20177       hljs.C_LINE_COMMENT_MODE,
  20178       hljs.C_BLOCK_COMMENT_MODE,
  20179       hljs.APOS_STRING_MODE,
  20180       hljs.QUOTE_STRING_MODE,
  20181       hljs.C_NUMBER_MODE
  20182     ]
  20183   };
  20184 }
  20185 },{name:"profile",create:/*
  20186 Language: Python profile
  20187 Description: Python profiler results
  20188 Author: Brian Beck <exogen@gmail.com>
  20189 */
  20190 
  20191 function(hljs) {
  20192   return {
  20193     contains: [
  20194       hljs.C_NUMBER_MODE,
  20195       {
  20196         begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
  20197         excludeEnd: true
  20198       },
  20199       {
  20200         begin: '(ncalls|tottime|cumtime)', end: '$',
  20201         keywords: 'ncalls tottime|10 cumtime|10 filename',
  20202         relevance: 10
  20203       },
  20204       {
  20205         begin: 'function calls', end: '$',
  20206         contains: [hljs.C_NUMBER_MODE],
  20207         relevance: 10
  20208       },
  20209       hljs.APOS_STRING_MODE,
  20210       hljs.QUOTE_STRING_MODE,
  20211       {
  20212         className: 'string',
  20213         begin: '\\(', end: '\\)$',
  20214         excludeBegin: true, excludeEnd: true,
  20215         relevance: 0
  20216       }
  20217     ]
  20218   };
  20219 }
  20220 },{name:"prolog",create:/*
  20221 Language: Prolog
  20222 Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
  20223 Author: Raivo Laanemets <raivo@infdot.com>
  20224 */
  20225 
  20226 function(hljs) {
  20227 
  20228   var ATOM = {
  20229 
  20230     begin: /[a-z][A-Za-z0-9_]*/,
  20231     relevance: 0
  20232   };
  20233 
  20234   var VAR = {
  20235 
  20236     className: 'symbol',
  20237     variants: [
  20238       {begin: /[A-Z][a-zA-Z0-9_]*/},
  20239       {begin: /_[A-Za-z0-9_]*/},
  20240     ],
  20241     relevance: 0
  20242   };
  20243 
  20244   var PARENTED = {
  20245 
  20246     begin: /\(/,
  20247     end: /\)/,
  20248     relevance: 0
  20249   };
  20250 
  20251   var LIST = {
  20252 
  20253     begin: /\[/,
  20254     end: /\]/
  20255   };
  20256 
  20257   var LINE_COMMENT = {
  20258 
  20259     className: 'comment',
  20260     begin: /%/, end: /$/,
  20261     contains: [hljs.PHRASAL_WORDS_MODE]
  20262   };
  20263 
  20264   var BACKTICK_STRING = {
  20265 
  20266     className: 'string',
  20267     begin: /`/, end: /`/,
  20268     contains: [hljs.BACKSLASH_ESCAPE]
  20269   };
  20270 
  20271   var CHAR_CODE = {
  20272 
  20273     className: 'string', // 0'a etc.
  20274     begin: /0\'(\\\'|.)/
  20275   };
  20276 
  20277   var SPACE_CODE = {
  20278 
  20279     className: 'string',
  20280     begin: /0\'\\s/ // 0'\s
  20281   };
  20282 
  20283   var PRED_OP = { // relevance booster
  20284     begin: /:-/
  20285   };
  20286 
  20287   var inner = [
  20288 
  20289     ATOM,
  20290     VAR,
  20291     PARENTED,
  20292     PRED_OP,
  20293     LIST,
  20294     LINE_COMMENT,
  20295     hljs.C_BLOCK_COMMENT_MODE,
  20296     hljs.QUOTE_STRING_MODE,
  20297     hljs.APOS_STRING_MODE,
  20298     BACKTICK_STRING,
  20299     CHAR_CODE,
  20300     SPACE_CODE,
  20301     hljs.C_NUMBER_MODE
  20302   ];
  20303 
  20304   PARENTED.contains = inner;
  20305   LIST.contains = inner;
  20306 
  20307   return {
  20308     contains: inner.concat([
  20309       {begin: /\.$/} // relevance booster
  20310     ])
  20311   };
  20312 }
  20313 },{name:"properties",create:/*
  20314 Language: Properties
  20315 Contributors: Valentin Aitken <valentin@nalisbg.com>, Egor Rogov <e.rogov@postgrespro.ru>
  20316 Category: common, config
  20317 */
  20318 
  20319 function(hljs) {
  20320 
  20321   // whitespaces: space, tab, formfeed
  20322   var WS0 = '[ \\t\\f]*';
  20323   var WS1 = '[ \\t\\f]+';
  20324   // delimiter
  20325   var DELIM = '(' + WS0+'[:=]'+WS0+ '|' + WS1 + ')';
  20326   var KEY_ALPHANUM = '([^\\\\\\W:= \\t\\f\\n]|\\\\.)+';
  20327   var KEY_OTHER = '([^\\\\:= \\t\\f\\n]|\\\\.)+';
  20328 
  20329   var DELIM_AND_VALUE = {
  20330           // skip DELIM
  20331           end: DELIM,
  20332           relevance: 0,
  20333           starts: {
  20334             // value: everything until end of line (again, taking into account backslashes)
  20335             className: 'string',
  20336             end: /$/,
  20337             relevance: 0,
  20338             contains: [
  20339               { begin: '\\\\\\n' }
  20340             ]
  20341           }
  20342         };
  20343 
  20344   return {
  20345     case_insensitive: true,
  20346     illegal: /\S/,
  20347     contains: [
  20348       hljs.COMMENT('^\\s*[!#]', '$'),
  20349       // key: everything until whitespace or = or : (taking into account backslashes)
  20350       // case of a "normal" key
  20351       {
  20352         begin: KEY_ALPHANUM + DELIM,
  20353         returnBegin: true,
  20354         contains: [
  20355           {
  20356             className: 'attr',
  20357             begin: KEY_ALPHANUM,
  20358             endsParent: true,
  20359             relevance: 0
  20360           }
  20361         ],
  20362         starts: DELIM_AND_VALUE
  20363       },
  20364       // case of key containing non-alphanumeric chars => relevance = 0
  20365       {
  20366         begin: KEY_OTHER + DELIM,
  20367         returnBegin: true,
  20368         relevance: 0,
  20369         contains: [
  20370           {
  20371             className: 'meta',
  20372             begin: KEY_OTHER,
  20373             endsParent: true,
  20374             relevance: 0
  20375           }
  20376         ],
  20377         starts: DELIM_AND_VALUE
  20378       },
  20379       // case of an empty key
  20380       {
  20381         className: 'attr',
  20382         relevance: 0,
  20383         begin: KEY_OTHER + WS0 + '$'
  20384       }
  20385     ]
  20386   };
  20387 }
  20388 },{name:"protobuf",create:/*
  20389 Language: Protocol Buffers
  20390 Author: Dan Tao <daniel.tao@gmail.com>
  20391 Description: Protocol buffer message definition format
  20392 Category: protocols
  20393 */
  20394 
  20395 function(hljs) {
  20396   return {
  20397     keywords: {
  20398       keyword: 'package import option optional required repeated group oneof',
  20399       built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +
  20400         'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',
  20401       literal: 'true false'
  20402     },
  20403     contains: [
  20404       hljs.QUOTE_STRING_MODE,
  20405       hljs.NUMBER_MODE,
  20406       hljs.C_LINE_COMMENT_MODE,
  20407       {
  20408         className: 'class',
  20409         beginKeywords: 'message enum service', end: /\{/,
  20410         illegal: /\n/,
  20411         contains: [
  20412           hljs.inherit(hljs.TITLE_MODE, {
  20413             starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
  20414           })
  20415         ]
  20416       },
  20417       {
  20418         className: 'function',
  20419         beginKeywords: 'rpc',
  20420         end: /;/, excludeEnd: true,
  20421         keywords: 'rpc returns'
  20422       },
  20423       {
  20424         begin: /^\s*[A-Z_]+/,
  20425         end: /\s*=/, excludeEnd: true
  20426       }
  20427     ]
  20428   };
  20429 }
  20430 },{name:"puppet",create:/*
  20431 Language: Puppet
  20432 Author: Jose Molina Colmenero <gaudy41@gmail.com>
  20433 Category: config
  20434 */
  20435 
  20436 function(hljs) {
  20437 
  20438   var PUPPET_KEYWORDS = {
  20439     keyword:
  20440     /* language keywords */
  20441       'and case default else elsif false if in import enherits node or true undef unless main settings $string ',
  20442     literal:
  20443     /* metaparameters */
  20444       'alias audit before loglevel noop require subscribe tag ' +
  20445     /* normal attributes */
  20446       'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +
  20447       'en_address ip_address realname command environment hour monute month monthday special target weekday '+
  20448       'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +
  20449       'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +
  20450       'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+
  20451       'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +
  20452       'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +
  20453       'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +
  20454       'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +
  20455       'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +
  20456       'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +
  20457       'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +
  20458       'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +
  20459       'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +
  20460       'sslverify mounted',
  20461     built_in:
  20462     /* core facts */
  20463       'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +
  20464       'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+
  20465       'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +
  20466       'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +
  20467       'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +
  20468       'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+
  20469       'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+
  20470       'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+
  20471       'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+
  20472       'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'
  20473   };
  20474 
  20475   var COMMENT = hljs.COMMENT('#', '$');
  20476 
  20477   var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*';
  20478 
  20479   var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE});
  20480 
  20481   var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE};
  20482 
  20483   var STRING = {
  20484     className: 'string',
  20485     contains: [hljs.BACKSLASH_ESCAPE, VARIABLE],
  20486     variants: [
  20487       {begin: /'/, end: /'/},
  20488       {begin: /"/, end: /"/}
  20489     ]
  20490   };
  20491 
  20492   return {
  20493     aliases: ['pp'],
  20494     contains: [
  20495       COMMENT,
  20496       VARIABLE,
  20497       STRING,
  20498       {
  20499         beginKeywords: 'class', end: '\\{|;',
  20500         illegal: /=/,
  20501         contains: [TITLE, COMMENT]
  20502       },
  20503       {
  20504         beginKeywords: 'define', end: /\{/,
  20505         contains: [
  20506           {
  20507             className: 'section', begin: hljs.IDENT_RE, endsParent: true
  20508           }
  20509         ]
  20510       },
  20511       {
  20512         begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true,
  20513         end: /\S/,
  20514         contains: [
  20515           {
  20516             className: 'keyword',
  20517             begin: hljs.IDENT_RE
  20518           },
  20519           {
  20520             begin: /\{/, end: /\}/,
  20521             keywords: PUPPET_KEYWORDS,
  20522             relevance: 0,
  20523             contains: [
  20524               STRING,
  20525               COMMENT,
  20526               {
  20527                 begin:'[a-zA-Z_]+\\s*=>',
  20528                 returnBegin: true, end: '=>',
  20529                 contains: [
  20530                   {
  20531                     className: 'attr',
  20532                     begin: hljs.IDENT_RE,
  20533                   }
  20534                 ]
  20535               },
  20536               {
  20537                 className: 'number',
  20538                 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
  20539                 relevance: 0
  20540               },
  20541               VARIABLE
  20542             ]
  20543           }
  20544         ],
  20545         relevance: 0
  20546       }
  20547     ]
  20548   }
  20549 }
  20550 },{name:"purebasic",create:/*
  20551 Language: PureBASIC
  20552 Author: Tristano Ajmone <tajmone@gmail.com>
  20553 Description: Syntax highlighting for PureBASIC (v.5.00-5.60). No inline ASM highlighting. (v.1.2, May 2017)
  20554 Credits: I've taken inspiration from the PureBasic language file for GeSHi, created by Gustavo Julio Fiorenza (GuShH).
  20555 */
  20556 
  20557 // Base deafult colors in PB IDE: background: #FFFFDF; foreground: #000000;
  20558 
  20559 function(hljs) {
  20560   var STRINGS = { // PB IDE color: #0080FF (Azure Radiance)
  20561     className: 'string',
  20562     begin: '(~)?"', end: '"',
  20563     illegal: '\\n'
  20564   };
  20565   var CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink)
  20566     //  "#" + a letter or underscore + letters, digits or underscores + (optional) "$"
  20567     className: 'symbol',
  20568     begin: '#[a-zA-Z_]\\w*\\$?'
  20569   };
  20570 
  20571   return {
  20572     aliases: ['pb', 'pbi'],
  20573     keywords: // PB IDE color: #006666 (Blue Stone) + Bold
  20574       // Keywords from all version of PureBASIC 5.00 upward ...
  20575       'Align And Array As Break CallDebugger Case CompilerCase CompilerDefault ' +
  20576       'CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError ' +
  20577       'CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug ' +
  20578       'DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default ' +
  20579       'Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM ' +
  20580       'EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration ' +
  20581       'EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect ' +
  20582       'EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends ' +
  20583       'FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC ' +
  20584       'IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount ' +
  20585       'Map Module NewList NewMap Next Not Or Procedure ProcedureC ' +
  20586       'ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim ' +
  20587       'Read Repeat Restore Return Runtime Select Shared Static Step Structure ' +
  20588       'StructureUnion Swap Threaded To UndefineMacro Until Until  UnuseModule ' +
  20589       'UseModule Wend While With XIncludeFile XOr',
  20590     contains: [
  20591       // COMMENTS | PB IDE color: #00AAAA (Persian Green)
  20592       hljs.COMMENT(';', '$', {relevance: 0}),
  20593 
  20594       { // PROCEDURES DEFINITIONS
  20595         className: 'function',
  20596         begin: '\\b(Procedure|Declare)(C|CDLL|DLL)?\\b',
  20597         end: '\\(',
  20598         excludeEnd: true,
  20599         returnBegin: true,
  20600         contains: [
  20601           { // PROCEDURE KEYWORDS | PB IDE color: #006666 (Blue Stone) + Bold
  20602             className: 'keyword',
  20603             begin: '(Procedure|Declare)(C|CDLL|DLL)?',
  20604             excludeEnd: true
  20605           },
  20606           { // PROCEDURE RETURN TYPE SETTING | PB IDE color: #000000 (Black)
  20607             className: 'type',
  20608             begin: '\\.\\w*'
  20609             // end: ' ',
  20610           },
  20611           hljs.UNDERSCORE_TITLE_MODE // PROCEDURE NAME | PB IDE color: #006666 (Blue Stone)
  20612         ]
  20613       },
  20614       STRINGS,
  20615       CONSTANTS
  20616     ]
  20617   };
  20618 }
  20619 
  20620 /*  ==============================================================================
  20621                                       CHANGELOG                                   
  20622     ==============================================================================
  20623     - v.1.2 (2017-05-12)
  20624         -- BUG-FIX: Some keywords were accidentally joyned together. Now fixed.
  20625     - v.1.1 (2017-04-30)
  20626         -- Updated to PureBASIC 5.60.
  20627         -- Keywords list now built by extracting them from the PureBASIC SDK's
  20628            "SyntaxHilighting.dll" (from each PureBASIC version). Tokens from each
  20629            version are added to the list, and renamed or removed tokens are kept
  20630            for the sake of covering all versions of the language from PureBASIC
  20631            v5.00 upward. (NOTE: currently, there are no renamed or deprecated
  20632            tokens in the keywords list). For more info, see:
  20633            -- http://www.purebasic.fr/english/viewtopic.php?&p=506269
  20634            -- https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/guidelines
  20635     - v.1.0 (April 2016)
  20636         -- First release
  20637         -- Keywords list taken and adapted from GuShH's (Gustavo Julio Fiorenza)
  20638            PureBasic language file for GeSHi:
  20639            -- https://github.com/easybook/geshi/blob/master/geshi/purebasic.php
  20640 */},{name:"python",create:/*
  20641 Language: Python
  20642 Category: common
  20643 */
  20644 
  20645 function(hljs) {
  20646   var KEYWORDS = {
  20647     keyword:
  20648       'and elif is global as in if from raise for except finally print import pass return ' +
  20649       'exec else break not with class assert yield try while continue del or def lambda ' +
  20650       'async await nonlocal|10',
  20651     built_in:
  20652       'Ellipsis NotImplemented',
  20653     literal: 'False None True'
  20654   };
  20655   var PROMPT = {
  20656     className: 'meta',  begin: /^(>>>|\.\.\.) /
  20657   };
  20658   var SUBST = {
  20659     className: 'subst',
  20660     begin: /\{/, end: /\}/,
  20661     keywords: KEYWORDS,
  20662     illegal: /#/
  20663   };
  20664   var STRING = {
  20665     className: 'string',
  20666     contains: [hljs.BACKSLASH_ESCAPE],
  20667     variants: [
  20668       {
  20669         begin: /(u|b)?r?'''/, end: /'''/,
  20670         contains: [hljs.BACKSLASH_ESCAPE, PROMPT],
  20671         relevance: 10
  20672       },
  20673       {
  20674         begin: /(u|b)?r?"""/, end: /"""/,
  20675         contains: [hljs.BACKSLASH_ESCAPE, PROMPT],
  20676         relevance: 10
  20677       },
  20678       {
  20679         begin: /(fr|rf|f)'''/, end: /'''/,
  20680         contains: [hljs.BACKSLASH_ESCAPE, PROMPT, SUBST]
  20681       },
  20682       {
  20683         begin: /(fr|rf|f)"""/, end: /"""/,
  20684         contains: [hljs.BACKSLASH_ESCAPE, PROMPT, SUBST]
  20685       },
  20686       {
  20687         begin: /(u|r|ur)'/, end: /'/,
  20688         relevance: 10
  20689       },
  20690       {
  20691         begin: /(u|r|ur)"/, end: /"/,
  20692         relevance: 10
  20693       },
  20694       {
  20695         begin: /(b|br)'/, end: /'/
  20696       },
  20697       {
  20698         begin: /(b|br)"/, end: /"/
  20699       },
  20700       {
  20701         begin: /(fr|rf|f)'/, end: /'/,
  20702         contains: [hljs.BACKSLASH_ESCAPE, SUBST]
  20703       },
  20704       {
  20705         begin: /(fr|rf|f)"/, end: /"/,
  20706         contains: [hljs.BACKSLASH_ESCAPE, SUBST]
  20707       },
  20708       hljs.APOS_STRING_MODE,
  20709       hljs.QUOTE_STRING_MODE
  20710     ]
  20711   };
  20712   var NUMBER = {
  20713     className: 'number', relevance: 0,
  20714     variants: [
  20715       {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
  20716       {begin: '\\b(0o[0-7]+)[lLjJ]?'},
  20717       {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
  20718     ]
  20719   };
  20720   var PARAMS = {
  20721     className: 'params',
  20722     begin: /\(/, end: /\)/,
  20723     contains: ['self', PROMPT, NUMBER, STRING]
  20724   };
  20725   SUBST.contains = [STRING, NUMBER, PROMPT];
  20726   return {
  20727     aliases: ['py', 'gyp', 'ipython'],
  20728     keywords: KEYWORDS,
  20729     illegal: /(<\/|->|\?)|=>/,
  20730     contains: [
  20731       PROMPT,
  20732       NUMBER,
  20733       STRING,
  20734       hljs.HASH_COMMENT_MODE,
  20735       {
  20736         variants: [
  20737           {className: 'function', beginKeywords: 'def'},
  20738           {className: 'class', beginKeywords: 'class'}
  20739         ],
  20740         end: /:/,
  20741         illegal: /[${=;\n,]/,
  20742         contains: [
  20743           hljs.UNDERSCORE_TITLE_MODE,
  20744           PARAMS,
  20745           {
  20746             begin: /->/, endsWithParent: true,
  20747             keywords: 'None'
  20748           }
  20749         ]
  20750       },
  20751       {
  20752         className: 'meta',
  20753         begin: /^[\t ]*@/, end: /$/
  20754       },
  20755       {
  20756         begin: /\b(print|exec)\(/ // don’t highlight keywords-turned-functions in Python 3
  20757       }
  20758     ]
  20759   };
  20760 }
  20761 },{name:"q",create:/*
  20762 Language: Q
  20763 Author: Sergey Vidyuk <svidyuk@gmail.com>
  20764 Description: K/Q/Kdb+ from Kx Systems
  20765 */
  20766 function(hljs) {
  20767   var Q_KEYWORDS = {
  20768   keyword:
  20769     'do while select delete by update from',
  20770   literal:
  20771     '0b 1b',
  20772   built_in:
  20773     'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum',
  20774   type:
  20775     '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'
  20776   };
  20777   return {
  20778   aliases:['k', 'kdb'],
  20779   keywords: Q_KEYWORDS,
  20780   lexemes: /(`?)[A-Za-z0-9_]+\b/,
  20781   contains: [
  20782   hljs.C_LINE_COMMENT_MODE,
  20783     hljs.QUOTE_STRING_MODE,
  20784     hljs.C_NUMBER_MODE
  20785      ]
  20786   };
  20787 }
  20788 },{name:"qml",create:/*
  20789 Language: QML
  20790 Requires: javascript.js, xml.js
  20791 Author: John Foster <jfoster@esri.com>
  20792 Description: Syntax highlighting for the Qt Quick QML scripting language, based mostly off
  20793              the JavaScript parser.
  20794 Category: scripting
  20795 */
  20796 
  20797 function(hljs) {
  20798   var KEYWORDS = {
  20799       keyword:
  20800         'in of on if for while finally var new function do return void else break catch ' +
  20801         'instanceof with throw case default try this switch continue typeof delete ' +
  20802         'let yield const export super debugger as async await import',
  20803       literal:
  20804         'true false null undefined NaN Infinity',
  20805       built_in:
  20806         'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
  20807         'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
  20808         'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
  20809         'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
  20810         'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
  20811         'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
  20812         'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
  20813         'Behavior bool color coordinate date double enumeration font geocircle georectangle ' +
  20814         'geoshape int list matrix4x4 parent point quaternion real rect ' +
  20815         'size string url variant vector2d vector3d vector4d' +
  20816         'Promise'
  20817     };
  20818 
  20819   var QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\._]*';
  20820 
  20821   // Isolate property statements. Ends at a :, =, ;, ,, a comment or end of line.
  20822   // Use property class.
  20823   var PROPERTY = {
  20824       className: 'keyword',
  20825       begin: '\\bproperty\\b',
  20826       starts: {
  20827         className: 'string',
  20828         end: '(:|=|;|,|//|/\\*|$)',
  20829         returnEnd: true
  20830       }
  20831   };
  20832 
  20833   // Isolate signal statements. Ends at a ) a comment or end of line.
  20834   // Use property class.
  20835   var SIGNAL = {
  20836       className: 'keyword',
  20837       begin: '\\bsignal\\b',
  20838       starts: {
  20839         className: 'string',
  20840         end: '(\\(|:|=|;|,|//|/\\*|$)',
  20841         returnEnd: true
  20842       }
  20843   };
  20844 
  20845   // id: is special in QML. When we see id: we want to mark the id: as attribute and
  20846   // emphasize the token following.
  20847   var ID_ID = {
  20848       className: 'attribute',
  20849       begin: '\\bid\\s*:',
  20850       starts: {
  20851         className: 'string',
  20852         end: QML_IDENT_RE,
  20853         returnEnd: false
  20854       }
  20855   };
  20856 
  20857   // Find QML object attribute. An attribute is a QML identifier followed by :.
  20858   // Unfortunately it's hard to know where it ends, as it may contain scalars,
  20859   // objects, object definitions, or javascript. The true end is either when the parent
  20860   // ends or the next attribute is detected.
  20861   var QML_ATTRIBUTE = {
  20862     begin: QML_IDENT_RE + '\\s*:',
  20863     returnBegin: true,
  20864     contains: [
  20865       {
  20866         className: 'attribute',
  20867         begin: QML_IDENT_RE,
  20868         end: '\\s*:',
  20869         excludeEnd: true,
  20870         relevance: 0
  20871       }
  20872     ],
  20873     relevance: 0
  20874   };
  20875 
  20876   // Find QML object. A QML object is a QML identifier followed by { and ends at the matching }.
  20877   // All we really care about is finding IDENT followed by { and just mark up the IDENT and ignore the {.
  20878   var QML_OBJECT = {
  20879     begin: QML_IDENT_RE + '\\s*{', end: '{',
  20880     returnBegin: true,
  20881     relevance: 0,
  20882     contains: [
  20883       hljs.inherit(hljs.TITLE_MODE, {begin: QML_IDENT_RE})
  20884     ]
  20885   };
  20886 
  20887   return {
  20888     aliases: ['qt'],
  20889     case_insensitive: false,
  20890     keywords: KEYWORDS,
  20891     contains: [
  20892       {
  20893         className: 'meta',
  20894         begin: /^\s*['"]use (strict|asm)['"]/
  20895       },
  20896       hljs.APOS_STRING_MODE,
  20897       hljs.QUOTE_STRING_MODE,
  20898       { // template string
  20899         className: 'string',
  20900         begin: '`', end: '`',
  20901         contains: [
  20902           hljs.BACKSLASH_ESCAPE,
  20903           {
  20904             className: 'subst',
  20905             begin: '\\$\\{', end: '\\}'
  20906           }
  20907         ]
  20908       },
  20909       hljs.C_LINE_COMMENT_MODE,
  20910       hljs.C_BLOCK_COMMENT_MODE,
  20911       {
  20912         className: 'number',
  20913         variants: [
  20914           { begin: '\\b(0[bB][01]+)' },
  20915           { begin: '\\b(0[oO][0-7]+)' },
  20916           { begin: hljs.C_NUMBER_RE }
  20917         ],
  20918         relevance: 0
  20919       },
  20920       { // "value" container
  20921         begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
  20922         keywords: 'return throw case',
  20923         contains: [
  20924           hljs.C_LINE_COMMENT_MODE,
  20925           hljs.C_BLOCK_COMMENT_MODE,
  20926           hljs.REGEXP_MODE,
  20927           { // E4X / JSX
  20928             begin: /</, end: />\s*[);\]]/,
  20929             relevance: 0,
  20930             subLanguage: 'xml'
  20931           }
  20932         ],
  20933         relevance: 0
  20934       },
  20935       SIGNAL,
  20936       PROPERTY,
  20937       {
  20938         className: 'function',
  20939         beginKeywords: 'function', end: /\{/, excludeEnd: true,
  20940         contains: [
  20941           hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
  20942           {
  20943             className: 'params',
  20944             begin: /\(/, end: /\)/,
  20945             excludeBegin: true,
  20946             excludeEnd: true,
  20947             contains: [
  20948               hljs.C_LINE_COMMENT_MODE,
  20949               hljs.C_BLOCK_COMMENT_MODE
  20950             ]
  20951           }
  20952         ],
  20953         illegal: /\[|%/
  20954       },
  20955       {
  20956         begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
  20957       },
  20958       ID_ID,
  20959       QML_ATTRIBUTE,
  20960       QML_OBJECT
  20961     ],
  20962     illegal: /#/
  20963   };
  20964 }
  20965 },{name:"r",create:/*
  20966 Language: R
  20967 Author: Joe Cheng <joe@rstudio.org>
  20968 Category: scientific
  20969 */
  20970 
  20971 function(hljs) {
  20972   var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
  20973 
  20974   return {
  20975     contains: [
  20976       hljs.HASH_COMMENT_MODE,
  20977       {
  20978         begin: IDENT_RE,
  20979         lexemes: IDENT_RE,
  20980         keywords: {
  20981           keyword:
  20982             'function if in break next repeat else for return switch while try tryCatch ' +
  20983             'stop warning require library attach detach source setMethod setGeneric ' +
  20984             'setGroupGeneric setClass ...',
  20985           literal:
  20986             'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
  20987             'NA_complex_|10'
  20988         },
  20989         relevance: 0
  20990       },
  20991       {
  20992         // hex value
  20993         className: 'number',
  20994         begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
  20995         relevance: 0
  20996       },
  20997       {
  20998         // explicit integer
  20999         className: 'number',
  21000         begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
  21001         relevance: 0
  21002       },
  21003       {
  21004         // number with trailing decimal
  21005         className: 'number',
  21006         begin: "\\d+\\.(?!\\d)(?:i\\b)?",
  21007         relevance: 0
  21008       },
  21009       {
  21010         // number
  21011         className: 'number',
  21012         begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
  21013         relevance: 0
  21014       },
  21015       {
  21016         // number with leading decimal
  21017         className: 'number',
  21018         begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
  21019         relevance: 0
  21020       },
  21021 
  21022       {
  21023         // escaped identifier
  21024         begin: '`',
  21025         end: '`',
  21026         relevance: 0
  21027       },
  21028 
  21029       {
  21030         className: 'string',
  21031         contains: [hljs.BACKSLASH_ESCAPE],
  21032         variants: [
  21033           {begin: '"', end: '"'},
  21034           {begin: "'", end: "'"}
  21035         ]
  21036       }
  21037     ]
  21038   };
  21039 }
  21040 },{name:"reasonml",create:/*
  21041 Language: ReasonML
  21042 Author: Gidi Meir Morris <oss@gidi.io>
  21043 Category: functional
  21044 */
  21045 function(hljs) {
  21046   function orReValues(ops){
  21047     return ops
  21048     .map(function(op) {
  21049       return op
  21050         .split('')
  21051         .map(function(char) {
  21052           return '\\' + char;
  21053         })
  21054         .join('');
  21055     })
  21056     .join('|');
  21057   }
  21058 
  21059   var RE_IDENT = '~?[a-z$_][0-9a-zA-Z$_]*';
  21060   var RE_MODULE_IDENT = '`?[A-Z$_][0-9a-zA-Z$_]*';
  21061 
  21062   var RE_PARAM_TYPEPARAM = '\'?[a-z$_][0-9a-z$_]*';
  21063   var RE_PARAM_TYPE = '\s*:\s*[a-z$_][0-9a-z$_]*(\(\s*(' + RE_PARAM_TYPEPARAM + '\s*(,' + RE_PARAM_TYPEPARAM + ')*)?\s*\))?';
  21064   var RE_PARAM = RE_IDENT + '(' + RE_PARAM_TYPE + ')?(' + RE_PARAM_TYPE + ')?';
  21065   var RE_OPERATOR = "(" + orReValues(['||', '&&', '++', '**', '+.', '*', '/', '*.', '/.', '...', '|>']) + "|==|===)";
  21066   var RE_OPERATOR_SPACED = "\\s+" + RE_OPERATOR + "\\s+";
  21067 
  21068   var KEYWORDS = {
  21069     keyword:
  21070       'and as asr assert begin class constraint do done downto else end exception external' +
  21071       'for fun function functor if in include inherit initializer' +
  21072       'land lazy let lor lsl lsr lxor match method mod module mutable new nonrec' +
  21073       'object of open or private rec sig struct then to try type val virtual when while with',
  21074     built_in:
  21075       'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ',
  21076     literal:
  21077       'true false'
  21078   };
  21079 
  21080   var RE_NUMBER = '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
  21081     '0[oO][0-7_]+[Lln]?|' +
  21082     '0[bB][01_]+[Lln]?|' +
  21083     '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)';
  21084 
  21085   var NUMBER_MODE = {
  21086     className: 'number',
  21087     relevance: 0,
  21088     variants: [
  21089       {
  21090         begin: RE_NUMBER
  21091       },
  21092       {
  21093         begin: '\\(\\-' + RE_NUMBER + '\\)'
  21094       }
  21095     ]
  21096   };
  21097 
  21098   var OPERATOR_MODE = {
  21099     className: 'operator',
  21100     relevance: 0,
  21101     begin: RE_OPERATOR
  21102   };
  21103   var LIST_CONTENTS_MODES = [
  21104     {
  21105       className: 'identifier',
  21106       relevance: 0,
  21107       begin: RE_IDENT
  21108     },
  21109     OPERATOR_MODE,
  21110     NUMBER_MODE
  21111   ];
  21112 
  21113   var MODULE_ACCESS_CONTENTS = [
  21114     hljs.QUOTE_STRING_MODE,
  21115     OPERATOR_MODE,
  21116     {
  21117       className: 'module',
  21118       begin: "\\b" + RE_MODULE_IDENT, returnBegin: true,
  21119       end: "\.",
  21120       contains: [
  21121         {
  21122           className: 'identifier',
  21123           begin: RE_MODULE_IDENT,
  21124           relevance: 0
  21125         }
  21126       ]
  21127     }
  21128   ];
  21129 
  21130   var PARAMS_CONTENTS = [
  21131     {
  21132       className: 'module',
  21133       begin: "\\b" + RE_MODULE_IDENT, returnBegin: true,
  21134       end: "\.",
  21135       relevance: 0,
  21136       contains: [
  21137         {
  21138           className: 'identifier',
  21139           begin: RE_MODULE_IDENT,
  21140           relevance: 0
  21141         }
  21142       ]
  21143     }
  21144   ];
  21145 
  21146   var PARAMS_MODE = {
  21147     begin: RE_IDENT,
  21148     end: '(,|\\n|\\))',
  21149     relevance: 0,
  21150     contains: [
  21151       OPERATOR_MODE,
  21152       {
  21153         className: 'typing',
  21154         begin: ':',
  21155         end: '(,|\\n)',
  21156         returnBegin: true,
  21157         relevance: 0,
  21158         contains: PARAMS_CONTENTS
  21159       }
  21160     ]
  21161   };
  21162 
  21163   var FUNCTION_BLOCK_MODE = {
  21164     className: 'function',
  21165     relevance: 0,
  21166     keywords: KEYWORDS,
  21167     variants: [
  21168       {
  21169         begin: '\\s(\\(\\.?.*?\\)|' + RE_IDENT + ')\\s*=>',
  21170         end: '\\s*=>',
  21171         returnBegin: true,
  21172         relevance: 0,
  21173         contains: [
  21174           {
  21175             className: 'params',
  21176             variants: [
  21177               {
  21178                 begin: RE_IDENT
  21179               },
  21180               {
  21181                 begin: RE_PARAM
  21182               },
  21183               {
  21184                 begin: /\(\s*\)/,
  21185               }
  21186             ]
  21187           }
  21188         ]
  21189       },
  21190       {
  21191         begin: '\\s\\(\\.?[^;\\|]*\\)\\s*=>',
  21192         end: '\\s=>',
  21193         returnBegin: true,
  21194         relevance: 0,
  21195         contains: [
  21196           {
  21197             className: 'params',
  21198             relevance: 0,
  21199             variants: [
  21200               PARAMS_MODE
  21201             ]
  21202           }
  21203         ]
  21204       },
  21205       {
  21206         begin: '\\(\\.\\s' + RE_IDENT + '\\)\\s*=>'
  21207       }
  21208     ]
  21209   };
  21210   MODULE_ACCESS_CONTENTS.push(FUNCTION_BLOCK_MODE);
  21211 
  21212   var CONSTRUCTOR_MODE = {
  21213     className: 'constructor',
  21214     begin: RE_MODULE_IDENT + '\\(',
  21215     end: '\\)',
  21216     illegal: '\\n',
  21217     keywords: KEYWORDS,
  21218     contains: [
  21219       hljs.QUOTE_STRING_MODE,
  21220       OPERATOR_MODE,
  21221       {
  21222         className: 'params',
  21223         begin: '\\b' + RE_IDENT
  21224       }
  21225     ]
  21226   };
  21227 
  21228   var PATTERN_MATCH_BLOCK_MODE = {
  21229     className: 'pattern-match',
  21230     begin: '\\|',
  21231     returnBegin: true,
  21232     keywords: KEYWORDS,
  21233     end: '=>',
  21234     relevance: 0,
  21235     contains: [
  21236       CONSTRUCTOR_MODE,
  21237       OPERATOR_MODE,
  21238       {
  21239         relevance: 0,
  21240         className: 'constructor',
  21241         begin: RE_MODULE_IDENT
  21242       }
  21243     ]
  21244   };
  21245 
  21246   var MODULE_ACCESS_MODE = {
  21247     className: 'module-access',
  21248     keywords: KEYWORDS,
  21249     returnBegin: true,
  21250     variants: [
  21251       {
  21252         begin: "\\b(" + RE_MODULE_IDENT + "\\.)+" + RE_IDENT
  21253       },
  21254       {
  21255         begin: "\\b(" + RE_MODULE_IDENT + "\\.)+\\(",
  21256         end: "\\)",
  21257         returnBegin: true,
  21258         contains: [
  21259           FUNCTION_BLOCK_MODE,
  21260           {
  21261             begin: '\\(',
  21262             end: '\\)',
  21263             skip: true
  21264           }
  21265         ].concat(MODULE_ACCESS_CONTENTS)
  21266       },
  21267       {
  21268         begin: "\\b(" + RE_MODULE_IDENT + "\\.)+{",
  21269         end: "}"
  21270       }
  21271     ],
  21272     contains: MODULE_ACCESS_CONTENTS
  21273   };
  21274 
  21275   PARAMS_CONTENTS.push(MODULE_ACCESS_MODE);
  21276 
  21277   return {
  21278     aliases: ['re'],
  21279     keywords: KEYWORDS,
  21280     illegal: '(:\\-|:=|\\${|\\+=)',
  21281     contains: [
  21282       hljs.COMMENT('/\\*', '\\*/', { illegal: '^(\\#,\\/\\/)' }),
  21283       {
  21284         className: 'character',
  21285         begin: '\'(\\\\[^\']+|[^\'])\'',
  21286         illegal: '\\n',
  21287         relevance: 0
  21288       },
  21289       hljs.QUOTE_STRING_MODE,
  21290       {
  21291         className: 'literal',
  21292         begin: '\\(\\)',
  21293         relevance: 0
  21294       },
  21295       {
  21296         className: 'literal',
  21297         begin: '\\[\\|',
  21298         end: '\\|\\]',
  21299         relevance:  0,
  21300         contains: LIST_CONTENTS_MODES
  21301       },
  21302       {
  21303         className: 'literal',
  21304         begin: '\\[',
  21305         end: '\\]',
  21306         relevance: 0,
  21307         contains: LIST_CONTENTS_MODES
  21308       },
  21309       CONSTRUCTOR_MODE,
  21310       {
  21311         className: 'operator',
  21312         begin: RE_OPERATOR_SPACED,
  21313         illegal: '\\-\\->',
  21314         relevance: 0
  21315       },
  21316       NUMBER_MODE,
  21317       hljs.C_LINE_COMMENT_MODE,
  21318       PATTERN_MATCH_BLOCK_MODE,
  21319       FUNCTION_BLOCK_MODE,
  21320       {
  21321         className: 'module-def',
  21322         begin: "\\bmodule\\s+" + RE_IDENT + "\\s+" + RE_MODULE_IDENT + "\\s+=\\s+{",
  21323         end: "}",
  21324         returnBegin: true,
  21325         keywords: KEYWORDS,
  21326         relevance: 0,
  21327         contains: [
  21328           {
  21329             className: 'module',
  21330             relevance: 0,
  21331             begin: RE_MODULE_IDENT
  21332           },
  21333           {
  21334             begin: '{',
  21335             end: '}',
  21336             skip: true
  21337           }
  21338         ].concat(MODULE_ACCESS_CONTENTS)
  21339       },
  21340       MODULE_ACCESS_MODE
  21341     ]
  21342   };
  21343 }
  21344 },{name:"rib",create:/*
  21345 Language: RenderMan RIB
  21346 Author: Konstantin Evdokimenko <qewerty@gmail.com>
  21347 Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
  21348 Category: graphics
  21349 */
  21350 
  21351 function(hljs) {
  21352   return {
  21353     keywords:
  21354       'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
  21355       'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
  21356       'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
  21357       'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
  21358       'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
  21359       'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
  21360       'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
  21361       'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
  21362       'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
  21363       'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
  21364       'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
  21365       'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
  21366       'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
  21367       'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
  21368     illegal: '</',
  21369     contains: [
  21370       hljs.HASH_COMMENT_MODE,
  21371       hljs.C_NUMBER_MODE,
  21372       hljs.APOS_STRING_MODE,
  21373       hljs.QUOTE_STRING_MODE
  21374     ]
  21375   };
  21376 }
  21377 },{name:"roboconf",create:/*
  21378 Language: Roboconf
  21379 Author: Vincent Zurczak <vzurczak@linagora.com>
  21380 Website: http://roboconf.net
  21381 Description: Syntax highlighting for Roboconf's DSL
  21382 Category: config
  21383 */
  21384 
  21385 function(hljs) {
  21386   var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{';
  21387 
  21388   var PROPERTY = {
  21389     className: 'attribute',
  21390     begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true,
  21391     starts: {
  21392       end: ';',
  21393       relevance: 0,
  21394       contains: [
  21395         {
  21396           className: 'variable',
  21397           begin: /\.[a-zA-Z-_]+/
  21398         },
  21399         {
  21400           className: 'keyword',
  21401           begin: /\(optional\)/
  21402         }
  21403       ]
  21404     }
  21405   };
  21406 
  21407   return {
  21408     aliases: ['graph', 'instances'],
  21409     case_insensitive: true,
  21410     keywords: 'import',
  21411     contains: [
  21412       // Facet sections
  21413       {
  21414         begin: '^facet ' + IDENTIFIER,
  21415         end: '}',
  21416         keywords: 'facet',
  21417         contains: [
  21418           PROPERTY,
  21419           hljs.HASH_COMMENT_MODE
  21420         ]
  21421       },
  21422 
  21423       // Instance sections
  21424       {
  21425         begin: '^\\s*instance of ' + IDENTIFIER,
  21426         end: '}',
  21427         keywords: 'name count channels instance-data instance-state instance of',
  21428         illegal: /\S/,
  21429         contains: [
  21430           'self',
  21431           PROPERTY,
  21432           hljs.HASH_COMMENT_MODE
  21433         ]
  21434       },
  21435 
  21436       // Component sections
  21437       {
  21438         begin: '^' + IDENTIFIER,
  21439         end: '}',
  21440         contains: [
  21441           PROPERTY,
  21442           hljs.HASH_COMMENT_MODE
  21443         ]
  21444       },
  21445 
  21446       // Comments
  21447       hljs.HASH_COMMENT_MODE
  21448     ]
  21449   };
  21450 }
  21451 },{name:"routeros",create:/*
  21452 Language: Microtik RouterOS script
  21453 Author: Ivan Dementev <ivan_div@mail.ru>
  21454 Description: Scripting host provides a way to automate some router maintenance tasks by means of executing user-defined scripts bounded to some event occurrence
  21455 URL: https://wiki.mikrotik.com/wiki/Manual:Scripting
  21456 */
  21457 
  21458 // Colors from RouterOS terminal:
  21459 //   green        - #0E9A00
  21460 //   teal         - #0C9A9A
  21461 //   purple       - #99069A
  21462 //   light-brown  - #9A9900
  21463 
  21464 function(hljs) {
  21465 
  21466   var STATEMENTS = 'foreach do while for if from to step else on-error and or not in';
  21467 
  21468   // Global commands: Every global command should start with ":" token, otherwise it will be treated as variable.
  21469   var GLOBAL_COMMANDS = 'global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime';
  21470 
  21471   // Common commands: Following commands available from most sub-menus:
  21472   var COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';
  21473 
  21474   var LITERALS = 'true false yes no nothing nil null';
  21475 
  21476   var OBJECTS = 'traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firewall firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw';
  21477 
  21478   // print parameters
  21479   // Several parameters are available for print command:
  21480   // ToDo: var PARAMETERS_PRINT = 'append as-value brief detail count-only file follow follow-only from interval terse value-list without-paging where info';
  21481   // ToDo: var OPERATORS = '&& and ! not || or in ~ ^ & << >> + - * /';
  21482   // ToDo: var TYPES = 'num number bool boolean str string ip ip6-prefix id time array';
  21483   // ToDo: The following tokens serve as delimiters in the grammar: ()  []  {}  :   ;   $   / 
  21484 
  21485   var VAR_PREFIX = 'global local set for foreach';
  21486 
  21487   var VAR = {
  21488     className: 'variable',
  21489     variants: [
  21490       {begin: /\$[\w\d#@][\w\d_]*/},
  21491       {begin: /\$\{(.*?)}/}
  21492     ]
  21493   };
  21494   
  21495   var QUOTE_STRING = {
  21496     className: 'string',
  21497     begin: /"/, end: /"/,
  21498     contains: [
  21499       hljs.BACKSLASH_ESCAPE,
  21500       VAR,
  21501       {
  21502         className: 'variable',
  21503         begin: /\$\(/, end: /\)/,
  21504         contains: [hljs.BACKSLASH_ESCAPE]
  21505       }
  21506     ]
  21507   };
  21508   
  21509   var APOS_STRING = {
  21510     className: 'string',
  21511     begin: /'/, end: /'/
  21512   };
  21513   
  21514   var IPADDR = '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b';
  21515   var IPADDR_wBITMASK =  IPADDR+'/(3[0-2]|[1-2][0-9]|\\d)';
  21516   //////////////////////////////////////////////////////////////////////
  21517   return {
  21518     aliases: ['routeros', 'mikrotik'],
  21519     case_insensitive: true,
  21520     lexemes: /:?[\w-]+/,
  21521     keywords: {
  21522       literal: LITERALS,
  21523       keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :'),
  21524     },
  21525     contains: [
  21526       { // недопустимые конструкции
  21527         variants: [
  21528           { begin: /^@/, end: /$/, },               // dns
  21529           { begin: /\/\*/, end: /\*\//, },          // -- comment
  21530           { begin: /%%/, end: /$/, },               // -- comment
  21531           { begin: /^'/, end: /$/, },               // Monkey one line comment
  21532           { begin: /^\s*\/[\w-]+=/, end: /$/, },    // jboss-cli
  21533           { begin: /\/\//, end: /$/, },             // Stan comment
  21534           { begin: /^\[\</, end: /\>\]$/, },        // F# class declaration?
  21535           { begin: /<\//, end: />/, },              // HTML tags
  21536           { begin: /^facet /, end: /\}/, },         // roboconf - лютый костыль )))
  21537           { begin: '^1\\.\\.(\\d+)$', end: /$/, },  // tap  
  21538         ],
  21539         illegal: /./,
  21540       },
  21541       hljs.COMMENT('^#', '$'),
  21542       QUOTE_STRING,
  21543       APOS_STRING,
  21544       VAR,
  21545       { // attribute=value
  21546         begin: /[\w-]+\=([^\s\{\}\[\]\(\)]+)/, 
  21547         relevance: 0,
  21548         returnBegin: true,
  21549         contains: [
  21550           {
  21551             className: 'attribute',
  21552             begin: /[^=]+/
  21553           },
  21554           {
  21555             begin: /=/, 
  21556             endsWithParent:  true,
  21557             relevance: 0,
  21558             contains: [
  21559               QUOTE_STRING,
  21560               APOS_STRING,
  21561               VAR,
  21562               {
  21563                 className: 'literal',
  21564                 begin: '\\b(' + LITERALS.split(' ').join('|') + ')\\b',
  21565               },
  21566               /*{
  21567                 // IPv4 addresses and subnets
  21568                 className: 'number',
  21569                 variants: [
  21570                   {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24
  21571                   {begin: IPADDR+'-'+IPADDR},       // 192.168.0.1-192.168.0.3
  21572                   {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1
  21573                 ]
  21574               }, // */
  21575               /*{
  21576                 // MAC addresses and DHCP Client IDs
  21577                 className: 'number',
  21578                 begin: /\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\b/,
  21579               }, //*/
  21580               {
  21581                 // Не форматировать не классифицированные значения. Необходимо для исключения подсветки значений как built_in.
  21582                 // className: 'number',  
  21583                 begin: /("[^"]*"|[^\s\{\}\[\]]+)/,
  21584               }, //*/
  21585             ]
  21586           } //*/
  21587         ]
  21588       },//*/
  21589       {
  21590         // HEX values
  21591         className: 'number',
  21592         begin: /\*[0-9a-fA-F]+/,
  21593       }, //*/
  21594 
  21595       { 
  21596         begin: '\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\s\[\(]|\])',
  21597         returnBegin: true,
  21598         contains: [
  21599           {
  21600             className: 'builtin-name', //'function',
  21601             begin: /\w+/,
  21602           },
  21603         ],  
  21604       },
  21605       
  21606       { 
  21607         className: 'built_in',
  21608         variants: [
  21609           {begin: '(\\.\\./|/|\\s)((' + OBJECTS.split(' ').join('|') + ');?\\s)+',relevance: 10,},
  21610           {begin: /\.\./,},
  21611         ],
  21612       },//*/
  21613     ]
  21614   };
  21615 }
  21616 
  21617 
  21618 
  21619 
  21620 },{name:"rsl",create:/*
  21621 Language: RenderMan RSL
  21622 Author: Konstantin Evdokimenko <qewerty@gmail.com>
  21623 Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
  21624 Category: graphics
  21625 */
  21626 
  21627 function(hljs) {
  21628   return {
  21629     keywords: {
  21630       keyword:
  21631         'float color point normal vector matrix while for if do return else break extern continue',
  21632       built_in:
  21633         'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
  21634         'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
  21635         'faceforward filterstep floor format fresnel incident length lightsource log match ' +
  21636         'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
  21637         'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
  21638         'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
  21639         'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
  21640     },
  21641     illegal: '</',
  21642     contains: [
  21643       hljs.C_LINE_COMMENT_MODE,
  21644       hljs.C_BLOCK_COMMENT_MODE,
  21645       hljs.QUOTE_STRING_MODE,
  21646       hljs.APOS_STRING_MODE,
  21647       hljs.C_NUMBER_MODE,
  21648       {
  21649         className: 'meta',
  21650         begin: '#', end: '$'
  21651       },
  21652       {
  21653         className: 'class',
  21654         beginKeywords: 'surface displacement light volume imager', end: '\\('
  21655       },
  21656       {
  21657         beginKeywords: 'illuminate illuminance gather', end: '\\('
  21658       }
  21659     ]
  21660   };
  21661 }
  21662 },{name:"ruby",create:/*
  21663 Language: Ruby
  21664 Author: Anton Kovalyov <anton@kovalyov.net>
  21665 Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>
  21666 Category: common
  21667 */
  21668 
  21669 function(hljs) {
  21670   var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
  21671   var RUBY_KEYWORDS = {
  21672     keyword:
  21673       'and then defined module in return redo if BEGIN retry end for self when ' +
  21674       'next until do begin unless END rescue else break undef not super class case ' +
  21675       'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor',
  21676     literal:
  21677       'true false nil'
  21678   };
  21679   var YARDOCTAG = {
  21680     className: 'doctag',
  21681     begin: '@[A-Za-z]+'
  21682   };
  21683   var IRB_OBJECT = {
  21684     begin: '#<', end: '>'
  21685   };
  21686   var COMMENT_MODES = [
  21687     hljs.COMMENT(
  21688       '#',
  21689       '$',
  21690       {
  21691         contains: [YARDOCTAG]
  21692       }
  21693     ),
  21694     hljs.COMMENT(
  21695       '^\\=begin',
  21696       '^\\=end',
  21697       {
  21698         contains: [YARDOCTAG],
  21699         relevance: 10
  21700       }
  21701     ),
  21702     hljs.COMMENT('^__END__', '\\n$')
  21703   ];
  21704   var SUBST = {
  21705     className: 'subst',
  21706     begin: '#\\{', end: '}',
  21707     keywords: RUBY_KEYWORDS
  21708   };
  21709   var STRING = {
  21710     className: 'string',
  21711     contains: [hljs.BACKSLASH_ESCAPE, SUBST],
  21712     variants: [
  21713       {begin: /'/, end: /'/},
  21714       {begin: /"/, end: /"/},
  21715       {begin: /`/, end: /`/},
  21716       {begin: '%[qQwWx]?\\(', end: '\\)'},
  21717       {begin: '%[qQwWx]?\\[', end: '\\]'},
  21718       {begin: '%[qQwWx]?{', end: '}'},
  21719       {begin: '%[qQwWx]?<', end: '>'},
  21720       {begin: '%[qQwWx]?/', end: '/'},
  21721       {begin: '%[qQwWx]?%', end: '%'},
  21722       {begin: '%[qQwWx]?-', end: '-'},
  21723       {begin: '%[qQwWx]?\\|', end: '\\|'},
  21724       {
  21725         // \B in the beginning suppresses recognition of ?-sequences where ?
  21726         // is the last character of a preceding identifier, as in: `func?4`
  21727         begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/
  21728       },
  21729       { // heredocs
  21730         begin: /<<[-~]?'?(\w+)(?:.|\n)*?\n\s*\1\b/,
  21731         returnBegin: true,
  21732         contains: [
  21733           { begin: /<<[-~]?'?/ },
  21734           { begin: /\w+/,
  21735             endSameAsBegin: true,
  21736             contains: [hljs.BACKSLASH_ESCAPE, SUBST],
  21737           }
  21738         ]
  21739       }
  21740     ]
  21741   };
  21742   var PARAMS = {
  21743     className: 'params',
  21744     begin: '\\(', end: '\\)', endsParent: true,
  21745     keywords: RUBY_KEYWORDS
  21746   };
  21747 
  21748   var RUBY_DEFAULT_CONTAINS = [
  21749     STRING,
  21750     IRB_OBJECT,
  21751     {
  21752       className: 'class',
  21753       beginKeywords: 'class module', end: '$|;',
  21754       illegal: /=/,
  21755       contains: [
  21756         hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
  21757         {
  21758           begin: '<\\s*',
  21759           contains: [{
  21760             begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
  21761           }]
  21762         }
  21763       ].concat(COMMENT_MODES)
  21764     },
  21765     {
  21766       className: 'function',
  21767       beginKeywords: 'def', end: '$|;',
  21768       contains: [
  21769         hljs.inherit(hljs.TITLE_MODE, {begin: RUBY_METHOD_RE}),
  21770         PARAMS
  21771       ].concat(COMMENT_MODES)
  21772     },
  21773     {
  21774       // swallow namespace qualifiers before symbols
  21775       begin: hljs.IDENT_RE + '::'
  21776     },
  21777     {
  21778       className: 'symbol',
  21779       begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
  21780       relevance: 0
  21781     },
  21782     {
  21783       className: 'symbol',
  21784       begin: ':(?!\\s)',
  21785       contains: [STRING, {begin: RUBY_METHOD_RE}],
  21786       relevance: 0
  21787     },
  21788     {
  21789       className: 'number',
  21790       begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
  21791       relevance: 0
  21792     },
  21793     {
  21794       begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' // variables
  21795     },
  21796     {
  21797       className: 'params',
  21798       begin: /\|/, end: /\|/,
  21799       keywords: RUBY_KEYWORDS
  21800     },
  21801     { // regexp container
  21802       begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\s*',
  21803       keywords: 'unless',
  21804       contains: [
  21805         IRB_OBJECT,
  21806         {
  21807           className: 'regexp',
  21808           contains: [hljs.BACKSLASH_ESCAPE, SUBST],
  21809           illegal: /\n/,
  21810           variants: [
  21811             {begin: '/', end: '/[a-z]*'},
  21812             {begin: '%r{', end: '}[a-z]*'},
  21813             {begin: '%r\\(', end: '\\)[a-z]*'},
  21814             {begin: '%r!', end: '![a-z]*'},
  21815             {begin: '%r\\[', end: '\\][a-z]*'}
  21816           ]
  21817         }
  21818       ].concat(COMMENT_MODES),
  21819       relevance: 0
  21820     }
  21821   ].concat(COMMENT_MODES);
  21822 
  21823   SUBST.contains = RUBY_DEFAULT_CONTAINS;
  21824   PARAMS.contains = RUBY_DEFAULT_CONTAINS;
  21825 
  21826   var SIMPLE_PROMPT = "[>?]>";
  21827   var DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+>";
  21828   var RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>";
  21829 
  21830   var IRB_DEFAULT = [
  21831     {
  21832       begin: /^\s*=>/,
  21833       starts: {
  21834         end: '$', contains: RUBY_DEFAULT_CONTAINS
  21835       }
  21836     },
  21837     {
  21838       className: 'meta',
  21839       begin: '^('+SIMPLE_PROMPT+"|"+DEFAULT_PROMPT+'|'+RVM_PROMPT+')',
  21840       starts: {
  21841         end: '$', contains: RUBY_DEFAULT_CONTAINS
  21842       }
  21843     }
  21844   ];
  21845 
  21846   return {
  21847     aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],
  21848     keywords: RUBY_KEYWORDS,
  21849     illegal: /\/\*/,
  21850     contains: COMMENT_MODES.concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
  21851   };
  21852 }
  21853 },{name:"ruleslanguage",create:/*
  21854 Language: Oracle Rules Language
  21855 Author: Jason Jacobson <jason.a.jacobson@gmail.com>
  21856 Description: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation.  The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.
  21857 Category: enterprise
  21858 */
  21859 
  21860 function(hljs) {
  21861   return {
  21862     keywords: {
  21863        keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +
  21864          'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +
  21865          'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +
  21866          'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +
  21867          'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +
  21868          'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +
  21869          'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +
  21870          'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +
  21871          'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +
  21872          'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +
  21873          'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +
  21874          'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +
  21875          'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +
  21876          'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +
  21877          'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +
  21878          'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +
  21879          'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +
  21880          'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +
  21881          'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +
  21882          'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +
  21883          'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +
  21884          'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +
  21885          'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +
  21886          'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +
  21887          'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +
  21888          'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +
  21889          'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +
  21890          'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +
  21891          'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +
  21892          'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +
  21893          'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +
  21894          'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +
  21895          'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +
  21896          'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +
  21897          'NUMDAYS READ_DATE STAGING',
  21898        built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +
  21899          'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +
  21900          'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +
  21901          'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +
  21902          'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'
  21903     },
  21904     contains: [
  21905       hljs.C_LINE_COMMENT_MODE,
  21906       hljs.C_BLOCK_COMMENT_MODE,
  21907       hljs.APOS_STRING_MODE,
  21908       hljs.QUOTE_STRING_MODE,
  21909       hljs.C_NUMBER_MODE,
  21910       {
  21911         className: 'literal',
  21912         variants: [
  21913           {begin: '#\\s+[a-zA-Z\\ \\.]*', relevance: 0}, // looks like #-comment
  21914           {begin: '#[a-zA-Z\\ \\.]+'}
  21915         ]
  21916       }
  21917     ]
  21918   };
  21919 }
  21920 },{name:"rust",create:/*
  21921 Language: Rust
  21922 Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
  21923 Contributors: Roman Shmatov <romanshmatov@gmail.com>, Kasper Andersen <kma_untrusted@protonmail.com>
  21924 Category: system
  21925 */
  21926 
  21927 function(hljs) {
  21928   var NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\?';
  21929   var KEYWORDS =
  21930     'abstract as async await become box break const continue crate do dyn ' +
  21931     'else enum extern false final fn for if impl in let loop macro match mod ' +
  21932     'move mut override priv pub ref return self Self static struct super ' +
  21933     'trait true try type typeof unsafe unsized use virtual where while yield';
  21934   var BUILTINS =
  21935     // functions
  21936     'drop ' +
  21937     // types
  21938     'i8 i16 i32 i64 i128 isize ' +
  21939     'u8 u16 u32 u64 u128 usize ' +
  21940     'f32 f64 ' +
  21941     'str char bool ' +
  21942     'Box Option Result String Vec ' +
  21943     // traits
  21944     'Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug ' +
  21945     'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +
  21946     'Extend IntoIterator DoubleEndedIterator ExactSizeIterator ' +
  21947     'SliceConcatExt ToString ' +
  21948     // macros
  21949     'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +
  21950     'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +
  21951     'include_bin! include_str! line! local_data_key! module_path! ' +
  21952     'option_env! print! println! select! stringify! try! unimplemented! ' +
  21953     'unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!';
  21954   return {
  21955     aliases: ['rs'],
  21956     keywords: {
  21957       keyword:
  21958         KEYWORDS,
  21959       literal:
  21960         'true false Some None Ok Err',
  21961       built_in:
  21962         BUILTINS
  21963     },
  21964     lexemes: hljs.IDENT_RE + '!?',
  21965     illegal: '</',
  21966     contains: [
  21967       hljs.C_LINE_COMMENT_MODE,
  21968       hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
  21969       hljs.inherit(hljs.QUOTE_STRING_MODE, {begin: /b?"/, illegal: null}),
  21970       {
  21971         className: 'string',
  21972         variants: [
  21973            { begin: /r(#*)"(.|\n)*?"\1(?!#)/ },
  21974            { begin: /b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ }
  21975         ]
  21976       },
  21977       {
  21978         className: 'symbol',
  21979         begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
  21980       },
  21981       {
  21982         className: 'number',
  21983         variants: [
  21984           { begin: '\\b0b([01_]+)' + NUM_SUFFIX },
  21985           { begin: '\\b0o([0-7_]+)' + NUM_SUFFIX },
  21986           { begin: '\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX },
  21987           { begin: '\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +
  21988                    NUM_SUFFIX
  21989           }
  21990         ],
  21991         relevance: 0
  21992       },
  21993       {
  21994         className: 'function',
  21995         beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true,
  21996         contains: [hljs.UNDERSCORE_TITLE_MODE]
  21997       },
  21998       {
  21999         className: 'meta',
  22000         begin: '#\\!?\\[', end: '\\]',
  22001         contains: [
  22002           {
  22003             className: 'meta-string',
  22004             begin: /"/, end: /"/
  22005           }
  22006         ]
  22007       },
  22008       {
  22009         className: 'class',
  22010         beginKeywords: 'type', end: ';',
  22011         contains: [
  22012           hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
  22013         ],
  22014         illegal: '\\S'
  22015       },
  22016       {
  22017         className: 'class',
  22018         beginKeywords: 'trait enum struct union', end: '{',
  22019         contains: [
  22020           hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
  22021         ],
  22022         illegal: '[\\w\\d]'
  22023       },
  22024       {
  22025         begin: hljs.IDENT_RE + '::',
  22026         keywords: {built_in: BUILTINS}
  22027       },
  22028       {
  22029         begin: '->'
  22030       }
  22031     ]
  22032   };
  22033 }
  22034 },{name:"sas",create:/*
  22035 Language: SAS
  22036 Author: Mauricio Caceres <mauricio.caceres.bravo@gmail.com>
  22037 Description: Syntax Highlighting for SAS
  22038 */
  22039 
  22040 function(hljs) {
  22041 
  22042     // Data step and PROC SQL statements
  22043     var SAS_KEYWORDS = ''+
  22044         'do if then else end until while '+
  22045         ''+
  22046         'abort array attrib by call cards cards4 catname continue '+
  22047         'datalines datalines4 delete delim delimiter display dm drop '+
  22048         'endsas error file filename footnote format goto in infile '+
  22049         'informat input keep label leave length libname link list '+
  22050         'lostcard merge missing modify options output out page put '+
  22051         'redirect remove rename replace retain return select set skip '+
  22052         'startsas stop title update waitsas where window x systask '+
  22053         ''+
  22054         'add and alter as cascade check create delete describe '+
  22055         'distinct drop foreign from group having index insert into in '+
  22056         'key like message modify msgtype not null on or order primary '+
  22057         'references reset restrict select set table unique update '+
  22058         'validate view where';
  22059 
  22060     // Built-in SAS functions
  22061     var SAS_FUN = ''+
  22062         'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|'+
  22063         'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|'+
  22064         'cexist|cinv|close|cnonct|collate|compbl|compound|'+
  22065         'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|'+
  22066         'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|'+
  22067         'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|'+
  22068         'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|'+
  22069         'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|'+
  22070         'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|'+
  22071         'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|'+
  22072         'filename|fileref|finfo|finv|fipname|fipnamel|'+
  22073         'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|'+
  22074         'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|'+
  22075         'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|'+
  22076         'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|'+
  22077         'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|'+
  22078         'juldate|kurtosis|lag|lbound|left|length|lgamma|'+
  22079         'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|'+
  22080         'lowcase|max|mdy|mean|min|minute|mod|month|mopen|'+
  22081         'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|'+
  22082         'pathname|pdf|peek|peekc|pmf|point|poisson|poke|'+
  22083         'probbeta|probbnml|probchi|probf|probgam|probhypr|'+
  22084         'probit|probnegb|probnorm|probt|put|putc|putn|qtr|'+
  22085         'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|'+
  22086         'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|'+
  22087         'rewind|right|round|saving|scan|sdf|second|sign|'+
  22088         'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|'+
  22089         'stfips|stname|stnamel|substr|sum|symget|sysget|'+
  22090         'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|'+
  22091         'tinv|tnonct|today|translate|tranwrd|trigamma|'+
  22092         'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|'+
  22093         'varinfmt|varlabel|varlen|varname|varnum|varray|'+
  22094         'varrayx|vartype|verify|vformat|vformatd|vformatdx|'+
  22095         'vformatn|vformatnx|vformatw|vformatwx|vformatx|'+
  22096         'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|'+
  22097         'vinformatn|vinformatnx|vinformatw|vinformatwx|'+
  22098         'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|'+
  22099         'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|'+
  22100         'zipnamel|zipstate';
  22101 
  22102     // Built-in macro functions
  22103     var SAS_MACRO_FUN = 'bquote|nrbquote|cmpres|qcmpres|compstor|'+
  22104         'datatyp|display|do|else|end|eval|global|goto|'+
  22105         'if|index|input|keydef|label|left|length|let|'+
  22106         'local|lowcase|macro|mend|nrbquote|nrquote|'+
  22107         'nrstr|put|qcmpres|qleft|qlowcase|qscan|'+
  22108         'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|'+
  22109         'substr|superq|syscall|sysevalf|sysexec|sysfunc|'+
  22110         'sysget|syslput|sysprod|sysrc|sysrput|then|to|'+
  22111         'trim|unquote|until|upcase|verify|while|window';
  22112 
  22113     return {
  22114         aliases: ['sas', 'SAS'],
  22115         case_insensitive: true, // SAS is case-insensitive
  22116         keywords: {
  22117             literal:
  22118                 'null missing _all_ _automatic_ _character_ _infile_ '+
  22119                 '_n_ _name_ _null_ _numeric_ _user_ _webout_',
  22120             meta:
  22121                 SAS_KEYWORDS
  22122         },
  22123         contains: [
  22124             {
  22125                 // Distinct highlight for proc <proc>, data, run, quit
  22126                 className: 'keyword',
  22127                 begin: /^\s*(proc [\w\d_]+|data|run|quit)[\s\;]/
  22128             },
  22129             {
  22130                 // Macro variables
  22131                 className: 'variable',
  22132                 begin: /\&[a-zA-Z_\&][a-zA-Z0-9_]*\.?/
  22133             },
  22134             {
  22135                 // Special emphasis for datalines|cards
  22136                 className: 'emphasis',
  22137                 begin: /^\s*datalines|cards.*;/,
  22138                 end: /^\s*;\s*$/
  22139             },
  22140             {   // Built-in macro variables take precedence
  22141                 className: 'built_in',
  22142                 begin: '%(' + SAS_MACRO_FUN + ')'
  22143             },
  22144             {
  22145                 // User-defined macro functions highlighted after
  22146                 className: 'name',
  22147                 begin: /%[a-zA-Z_][a-zA-Z_0-9]*/
  22148             },
  22149             {
  22150                 className: 'meta',
  22151                 begin: '[^%](' + SAS_FUN + ')[\(]'
  22152             },
  22153             {
  22154                 className: 'string',
  22155                 variants: [
  22156                     hljs.APOS_STRING_MODE,
  22157                     hljs.QUOTE_STRING_MODE
  22158                 ]
  22159             },
  22160             hljs.COMMENT('\\*', ';'),
  22161             hljs.C_BLOCK_COMMENT_MODE
  22162         ]
  22163     };
  22164 }
  22165 },{name:"scala",create:/*
  22166 Language: Scala
  22167 Category: functional
  22168 Author: Jan Berkel <jan.berkel@gmail.com>
  22169 Contributors: Erik Osheim <d_m@plastic-idolatry.com>
  22170 */
  22171 
  22172 function(hljs) {
  22173 
  22174   var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
  22175 
  22176   // used in strings for escaping/interpolation/substitution
  22177   var SUBST = {
  22178     className: 'subst',
  22179     variants: [
  22180       {begin: '\\$[A-Za-z0-9_]+'},
  22181       {begin: '\\${', end: '}'}
  22182     ]
  22183   };
  22184 
  22185   var STRING = {
  22186     className: 'string',
  22187     variants: [
  22188       {
  22189         begin: '"', end: '"',
  22190         illegal: '\\n',
  22191         contains: [hljs.BACKSLASH_ESCAPE]
  22192       },
  22193       {
  22194         begin: '"""', end: '"""',
  22195         relevance: 10
  22196       },
  22197       {
  22198         begin: '[a-z]+"', end: '"',
  22199         illegal: '\\n',
  22200         contains: [hljs.BACKSLASH_ESCAPE, SUBST]
  22201       },
  22202       {
  22203         className: 'string',
  22204         begin: '[a-z]+"""', end: '"""',
  22205         contains: [SUBST],
  22206         relevance: 10
  22207       }
  22208     ]
  22209 
  22210   };
  22211 
  22212   var SYMBOL = {
  22213     className: 'symbol',
  22214     begin: '\'\\w[\\w\\d_]*(?!\')'
  22215   };
  22216 
  22217   var TYPE = {
  22218     className: 'type',
  22219     begin: '\\b[A-Z][A-Za-z0-9_]*',
  22220     relevance: 0
  22221   };
  22222 
  22223   var NAME = {
  22224     className: 'title',
  22225     begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
  22226     relevance: 0
  22227   };
  22228 
  22229   var CLASS = {
  22230     className: 'class',
  22231     beginKeywords: 'class object trait type',
  22232     end: /[:={\[\n;]/,
  22233     excludeEnd: true,
  22234     contains: [
  22235       {
  22236         beginKeywords: 'extends with',
  22237         relevance: 10
  22238       },
  22239       {
  22240         begin: /\[/,
  22241         end: /\]/,
  22242         excludeBegin: true,
  22243         excludeEnd: true,
  22244         relevance: 0,
  22245         contains: [TYPE]
  22246       },
  22247       {
  22248         className: 'params',
  22249         begin: /\(/,
  22250         end: /\)/,
  22251         excludeBegin: true,
  22252         excludeEnd: true,
  22253         relevance: 0,
  22254         contains: [TYPE]
  22255       },
  22256       NAME
  22257     ]
  22258   };
  22259 
  22260   var METHOD = {
  22261     className: 'function',
  22262     beginKeywords: 'def',
  22263     end: /[:={\[(\n;]/,
  22264     excludeEnd: true,
  22265     contains: [NAME]
  22266   };
  22267 
  22268   return {
  22269     keywords: {
  22270       literal: 'true false null',
  22271       keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'
  22272     },
  22273     contains: [
  22274       hljs.C_LINE_COMMENT_MODE,
  22275       hljs.C_BLOCK_COMMENT_MODE,
  22276       STRING,
  22277       SYMBOL,
  22278       TYPE,
  22279       METHOD,
  22280       CLASS,
  22281       hljs.C_NUMBER_MODE,
  22282       ANNOTATION
  22283     ]
  22284   };
  22285 }
  22286 },{name:"scheme",create:/*
  22287 Language: Scheme
  22288 Description: Keywords based on http://community.schemewiki.org/?scheme-keywords
  22289 Author: JP Verkamp <me@jverkamp.com>
  22290 Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
  22291 Origin: clojure.js
  22292 Category: lisp
  22293 */
  22294 
  22295 function(hljs) {
  22296   var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+';
  22297   var SCHEME_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+([./]\\d+)?';
  22298   var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';
  22299   var BUILTINS = {
  22300     'builtin-name':
  22301       'case-lambda call/cc class define-class exit-handler field import ' +
  22302       'inherit init-field interface let*-values let-values let/ec mixin ' +
  22303       'opt-lambda override protect provide public rename require ' +
  22304       'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +
  22305       'when with-syntax and begin call-with-current-continuation ' +
  22306       'call-with-input-file call-with-output-file case cond define ' +
  22307       'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +
  22308       'let-syntax letrec letrec-syntax map or syntax-rules \' * + , ,@ - ... / ' +
  22309       '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +
  22310       'boolean? caar cadr call-with-input-file call-with-output-file ' +
  22311       'call-with-values car cdddar cddddr cdr ceiling char->integer ' +
  22312       'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +
  22313       'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +
  22314       'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +
  22315       'char? close-input-port close-output-port complex? cons cos ' +
  22316       'current-input-port current-output-port denominator display eof-object? ' +
  22317       'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +
  22318       'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +
  22319       'integer? interaction-environment lcm length list list->string ' +
  22320       'list->vector list-ref list-tail list? load log magnitude make-polar ' +
  22321       'make-rectangular make-string make-vector max member memq memv min ' +
  22322       'modulo negative? newline not null-environment null? number->string ' +
  22323       'number? numerator odd? open-input-file open-output-file output-port? ' +
  22324       'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +
  22325       'rational? rationalize read read-char real-part real? remainder reverse ' +
  22326       'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +
  22327       'string->list string->number string->symbol string-append string-ci<=? ' +
  22328       'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +
  22329       'string-fill! string-length string-ref string-set! string<=? string<? ' +
  22330       'string=? string>=? string>? string? substring symbol->string symbol? ' +
  22331       'tan transcript-off transcript-on truncate values vector ' +
  22332       'vector->list vector-fill! vector-length vector-ref vector-set! ' +
  22333       'with-input-from-file with-output-to-file write write-char zero?'
  22334   };
  22335 
  22336   var SHEBANG = {
  22337     className: 'meta',
  22338     begin: '^#!',
  22339     end: '$'
  22340   };
  22341 
  22342   var LITERAL = {
  22343     className: 'literal',
  22344     begin: '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
  22345   };
  22346 
  22347   var NUMBER = {
  22348     className: 'number',
  22349     variants: [
  22350       { begin: SCHEME_SIMPLE_NUMBER_RE, relevance: 0 },
  22351       { begin: SCHEME_COMPLEX_NUMBER_RE, relevance: 0 },
  22352       { begin: '#b[0-1]+(/[0-1]+)?' },
  22353       { begin: '#o[0-7]+(/[0-7]+)?' },
  22354       { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }
  22355     ]
  22356   };
  22357 
  22358   var STRING = hljs.QUOTE_STRING_MODE;
  22359 
  22360   var REGULAR_EXPRESSION = {
  22361     className: 'regexp',
  22362     begin: '#[pr]x"',
  22363     end: '[^\\\\]"'
  22364   };
  22365 
  22366   var COMMENT_MODES = [
  22367     hljs.COMMENT(
  22368       ';',
  22369       '$',
  22370       {
  22371         relevance: 0
  22372       }
  22373     ),
  22374     hljs.COMMENT('#\\|', '\\|#')
  22375   ];
  22376 
  22377   var IDENT = {
  22378     begin: SCHEME_IDENT_RE,
  22379     relevance: 0
  22380   };
  22381 
  22382   var QUOTED_IDENT = {
  22383     className: 'symbol',
  22384     begin: '\'' + SCHEME_IDENT_RE
  22385   };
  22386 
  22387   var BODY = {
  22388     endsWithParent: true,
  22389     relevance: 0
  22390   };
  22391 
  22392   var QUOTED_LIST = {
  22393     variants: [
  22394       { begin: /'/ },
  22395       { begin: '`' }
  22396     ],
  22397     contains: [
  22398       {
  22399         begin: '\\(', end: '\\)',
  22400         contains: ['self', LITERAL, STRING, NUMBER, IDENT, QUOTED_IDENT]
  22401       }
  22402     ]
  22403   };
  22404 
  22405   var NAME = {
  22406     className: 'name',
  22407     begin: SCHEME_IDENT_RE,
  22408     lexemes: SCHEME_IDENT_RE,
  22409     keywords: BUILTINS
  22410   };
  22411 
  22412   var LAMBDA = {
  22413     begin: /lambda/, endsWithParent: true, returnBegin: true,
  22414     contains: [
  22415       NAME,
  22416       {
  22417         begin: /\(/, end: /\)/, endsParent: true,
  22418         contains: [IDENT],
  22419       }
  22420     ]
  22421   };
  22422 
  22423   var LIST = {
  22424     variants: [
  22425       { begin: '\\(', end: '\\)' },
  22426       { begin: '\\[', end: '\\]' }
  22427     ],
  22428     contains: [LAMBDA, NAME, BODY]
  22429   };
  22430 
  22431   BODY.contains = [LITERAL, NUMBER, STRING, IDENT, QUOTED_IDENT, QUOTED_LIST, LIST].concat(COMMENT_MODES);
  22432 
  22433   return {
  22434     illegal: /\S/,
  22435     contains: [SHEBANG, NUMBER, STRING, QUOTED_IDENT, QUOTED_LIST, LIST].concat(COMMENT_MODES)
  22436   };
  22437 }
  22438 },{name:"scilab",create:/*
  22439 Language: Scilab
  22440 Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
  22441 Origin: matlab.js
  22442 Description: Scilab is a port from Matlab
  22443 Category: scientific
  22444 */
  22445 
  22446 function(hljs) {
  22447 
  22448   var COMMON_CONTAINS = [
  22449     hljs.C_NUMBER_MODE,
  22450     {
  22451       className: 'string',
  22452       begin: '\'|\"', end: '\'|\"',
  22453       contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
  22454     }
  22455   ];
  22456 
  22457   return {
  22458     aliases: ['sci'],
  22459     lexemes: /%?\w+/,
  22460     keywords: {
  22461       keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+
  22462         'global if pause return resume select try then while',
  22463       literal:
  22464         '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
  22465       built_in: // Scilab has more than 2000 functions. Just list the most commons
  22466        'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+
  22467        'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+
  22468        'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+
  22469        'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+
  22470        'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+
  22471        'type typename warning zeros matrix'
  22472     },
  22473     illegal: '("|#|/\\*|\\s+/\\w+)',
  22474     contains: [
  22475       {
  22476         className: 'function',
  22477         beginKeywords: 'function', end: '$',
  22478         contains: [
  22479           hljs.UNDERSCORE_TITLE_MODE,
  22480           {
  22481             className: 'params',
  22482             begin: '\\(', end: '\\)'
  22483           }
  22484         ]
  22485       },
  22486       {
  22487         begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
  22488         relevance: 0
  22489       },
  22490       {
  22491         begin: '\\[', end: '\\]\'*[\\.\']*',
  22492         relevance: 0,
  22493         contains: COMMON_CONTAINS
  22494       },
  22495       hljs.COMMENT('//', '$')
  22496     ].concat(COMMON_CONTAINS)
  22497   };
  22498 }
  22499 },{name:"scss",create:/*
  22500 Language: SCSS
  22501 Author: Kurt Emch <kurt@kurtemch.com>
  22502 Category: css
  22503 */
  22504 function(hljs) {
  22505   var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
  22506   var VARIABLE = {
  22507     className: 'variable',
  22508     begin: '(\\$' + IDENT_RE + ')\\b'
  22509   };
  22510   var HEXCOLOR = {
  22511     className: 'number', begin: '#[0-9A-Fa-f]+'
  22512   };
  22513   var DEF_INTERNALS = {
  22514     className: 'attribute',
  22515     begin: '[A-Z\\_\\.\\-]+', end: ':',
  22516     excludeEnd: true,
  22517     illegal: '[^\\s]',
  22518     starts: {
  22519       endsWithParent: true, excludeEnd: true,
  22520       contains: [
  22521         HEXCOLOR,
  22522         hljs.CSS_NUMBER_MODE,
  22523         hljs.QUOTE_STRING_MODE,
  22524         hljs.APOS_STRING_MODE,
  22525         hljs.C_BLOCK_COMMENT_MODE,
  22526         {
  22527           className: 'meta', begin: '!important'
  22528         }
  22529       ]
  22530     }
  22531   };
  22532   return {
  22533     case_insensitive: true,
  22534     illegal: '[=/|\']',
  22535     contains: [
  22536       hljs.C_LINE_COMMENT_MODE,
  22537       hljs.C_BLOCK_COMMENT_MODE,
  22538       {
  22539         className: 'selector-id', begin: '\\#[A-Za-z0-9_-]+',
  22540         relevance: 0
  22541       },
  22542       {
  22543         className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+',
  22544         relevance: 0
  22545       },
  22546       {
  22547         className: 'selector-attr', begin: '\\[', end: '\\]',
  22548         illegal: '$'
  22549       },
  22550       {
  22551         className: 'selector-tag', // begin: IDENT_RE, end: '[,|\\s]'
  22552         begin: '\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b',
  22553         relevance: 0
  22554       },
  22555       {
  22556         begin: ':(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)'
  22557       },
  22558       {
  22559         begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
  22560       },
  22561       VARIABLE,
  22562       {
  22563         className: 'attribute',
  22564         begin: '\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b',
  22565         illegal: '[^\\s]'
  22566       },
  22567       {
  22568         begin: '\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b'
  22569       },
  22570       {
  22571         begin: ':', end: ';',
  22572         contains: [
  22573           VARIABLE,
  22574           HEXCOLOR,
  22575           hljs.CSS_NUMBER_MODE,
  22576           hljs.QUOTE_STRING_MODE,
  22577           hljs.APOS_STRING_MODE,
  22578           {
  22579             className: 'meta', begin: '!important'
  22580           }
  22581         ]
  22582       },
  22583       {
  22584         begin: '@', end: '[{;]',
  22585         keywords: 'mixin include extend for if else each while charset import debug media page content font-face namespace warn',
  22586         contains: [
  22587           VARIABLE,
  22588           hljs.QUOTE_STRING_MODE,
  22589           hljs.APOS_STRING_MODE,
  22590           HEXCOLOR,
  22591           hljs.CSS_NUMBER_MODE,
  22592           {
  22593             begin: '\\s[A-Za-z0-9_.-]+',
  22594             relevance: 0
  22595           }
  22596         ]
  22597       }
  22598     ]
  22599   };
  22600 }
  22601 },{name:"shell",create:/*
  22602 Language: Shell Session
  22603 Requires: bash.js
  22604 Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
  22605 Category: common
  22606 */
  22607 
  22608 function(hljs) {
  22609   return {
  22610     aliases: ['console'],
  22611     contains: [
  22612       {
  22613         className: 'meta',
  22614         begin: '^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]',
  22615         starts: {
  22616           end: '$', subLanguage: 'bash'
  22617         }
  22618       }
  22619     ]
  22620   }
  22621 }
  22622 },{name:"smali",create:/*
  22623 Language: Smali
  22624 Author: Dennis Titze <dennis.titze@gmail.com>
  22625 Description: Basic Smali highlighting
  22626 */
  22627 
  22628 function(hljs) {
  22629   var smali_instr_low_prio = ['add', 'and', 'cmp', 'cmpg', 'cmpl', 'const', 'div', 'double', 'float', 'goto', 'if', 'int', 'long', 'move', 'mul', 'neg', 'new', 'nop', 'not', 'or', 'rem', 'return', 'shl', 'shr', 'sput', 'sub', 'throw', 'ushr', 'xor'];
  22630   var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse'];
  22631   var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system'];
  22632   return {
  22633     aliases: ['smali'],
  22634     contains: [
  22635       {
  22636         className: 'string',
  22637         begin: '"', end: '"',
  22638         relevance: 0
  22639       },
  22640       hljs.COMMENT(
  22641         '#',
  22642         '$',
  22643         {
  22644           relevance: 0
  22645         }
  22646       ),
  22647       {
  22648         className: 'keyword',
  22649         variants: [
  22650           {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'},
  22651           {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0},
  22652           {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0},
  22653           {begin: '\\s(' + smali_keywords.join('|') + ')'}
  22654         ]
  22655       },
  22656       {
  22657         className: 'built_in',
  22658         variants : [
  22659           {
  22660             begin: '\\s('+smali_instr_low_prio.join('|')+')\\s'
  22661           },
  22662           {
  22663             begin: '\\s('+smali_instr_low_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)+\\s',
  22664             relevance: 10
  22665           },
  22666           {
  22667             begin: '\\s('+smali_instr_high_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)*\\s',
  22668             relevance: 10
  22669           },
  22670         ]
  22671       },
  22672       {
  22673         className: 'class',
  22674         begin: 'L[^\(;:\n]*;',
  22675         relevance: 0
  22676       },
  22677       {
  22678         begin: '[vp][0-9]+',
  22679       }
  22680     ]
  22681   };
  22682 }
  22683 },{name:"smalltalk",create:/*
  22684 Language: Smalltalk
  22685 Author: Vladimir Gubarkov <xonixx@gmail.com>
  22686 */
  22687 
  22688 function(hljs) {
  22689   var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
  22690   var CHAR = {
  22691     className: 'string',
  22692     begin: '\\$.{1}'
  22693   };
  22694   var SYMBOL = {
  22695     className: 'symbol',
  22696     begin: '#' + hljs.UNDERSCORE_IDENT_RE
  22697   };
  22698   return {
  22699     aliases: ['st'],
  22700     keywords: 'self super nil true false thisContext', // only 6
  22701     contains: [
  22702       hljs.COMMENT('"', '"'),
  22703       hljs.APOS_STRING_MODE,
  22704       {
  22705         className: 'type',
  22706         begin: '\\b[A-Z][A-Za-z0-9_]*',
  22707         relevance: 0
  22708       },
  22709       {
  22710         begin: VAR_IDENT_RE + ':',
  22711         relevance: 0
  22712       },
  22713       hljs.C_NUMBER_MODE,
  22714       SYMBOL,
  22715       CHAR,
  22716       {
  22717         // This looks more complicated than needed to avoid combinatorial
  22718         // explosion under V8. It effectively means `| var1 var2 ... |` with
  22719         // whitespace adjacent to `|` being optional.
  22720         begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|',
  22721         returnBegin: true, end: /\|/,
  22722         illegal: /\S/,
  22723         contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}]
  22724       },
  22725       {
  22726         begin: '\\#\\(', end: '\\)',
  22727         contains: [
  22728           hljs.APOS_STRING_MODE,
  22729           CHAR,
  22730           hljs.C_NUMBER_MODE,
  22731           SYMBOL
  22732         ]
  22733       }
  22734     ]
  22735   };
  22736 }
  22737 },{name:"sml",create:/*
  22738 Language: SML
  22739 Author: Edwin Dalorzo <edwin@dalorzo.org>
  22740 Description: SML language definition.
  22741 Origin: ocaml.js
  22742 Category: functional
  22743 */
  22744 function(hljs) {
  22745   return {
  22746     aliases: ['ml'],
  22747     keywords: {
  22748       keyword:
  22749         /* according to Definition of Standard ML 97  */
  22750         'abstype and andalso as case datatype do else end eqtype ' +
  22751         'exception fn fun functor handle if in include infix infixr ' +
  22752         'let local nonfix of op open orelse raise rec sharing sig ' +
  22753         'signature struct structure then type val with withtype where while',
  22754       built_in:
  22755         /* built-in types according to basis library */
  22756         'array bool char exn int list option order real ref string substring vector unit word',
  22757       literal:
  22758         'true false NONE SOME LESS EQUAL GREATER nil'
  22759     },
  22760     illegal: /\/\/|>>/,
  22761     lexemes: '[a-z_]\\w*!?',
  22762     contains: [
  22763       {
  22764         className: 'literal',
  22765         begin: /\[(\|\|)?\]|\(\)/,
  22766         relevance: 0
  22767       },
  22768       hljs.COMMENT(
  22769         '\\(\\*',
  22770         '\\*\\)',
  22771         {
  22772           contains: ['self']
  22773         }
  22774       ),
  22775       { /* type variable */
  22776         className: 'symbol',
  22777         begin: '\'[A-Za-z_](?!\')[\\w\']*'
  22778         /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
  22779       },
  22780       { /* polymorphic variant */
  22781         className: 'type',
  22782         begin: '`[A-Z][\\w\']*'
  22783       },
  22784       { /* module or constructor */
  22785         className: 'type',
  22786         begin: '\\b[A-Z][\\w\']*',
  22787         relevance: 0
  22788       },
  22789       { /* don't color identifiers, but safely catch all identifiers with '*/
  22790         begin: '[a-z_]\\w*\'[\\w\']*'
  22791       },
  22792       hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
  22793       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
  22794       {
  22795         className: 'number',
  22796         begin:
  22797           '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
  22798           '0[oO][0-7_]+[Lln]?|' +
  22799           '0[bB][01_]+[Lln]?|' +
  22800           '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
  22801         relevance: 0
  22802       },
  22803       {
  22804         begin: /[-=]>/ // relevance booster
  22805       }
  22806     ]
  22807   };
  22808 }
  22809 },{name:"sqf",create:/*
  22810 Language: SQF
  22811 Author: Søren Enevoldsen <senevoldsen90@gmail.com>
  22812 Contributors: Marvin Saignat <contact@zgmrvn.com>, Dedmen Miller <dedmen@dedmen.de>
  22813 Description: Scripting language for the Arma game series
  22814 Requires: cpp.js
  22815 */
  22816 
  22817 function(hljs) {
  22818   var CPP = hljs.getLanguage('cpp').exports;
  22819 
  22820   // In SQF, a variable start with _
  22821   var VARIABLE = {
  22822     className: 'variable',
  22823     begin: /\b_+[a-zA-Z_]\w*/
  22824   };
  22825 
  22826   // In SQF, a function should fit myTag_fnc_myFunction pattern
  22827   // https://community.bistudio.com/wiki/Functions_Library_(Arma_3)#Adding_a_Function
  22828   var FUNCTION = {
  22829     className: 'title',
  22830     begin: /[a-zA-Z][a-zA-Z0-9]+_fnc_\w*/
  22831   };
  22832 
  22833   // In SQF strings, quotes matching the start are escaped by adding a consecutive.
  22834   // Example of single escaped quotes: " "" " and  ' '' '.
  22835   var STRINGS = {
  22836     className: 'string',
  22837     variants: [
  22838       {
  22839         begin: '"',
  22840         end: '"',
  22841         contains: [{begin: '""', relevance: 0}]
  22842       },
  22843       {
  22844         begin: '\'',
  22845         end: '\'',
  22846         contains: [{begin: '\'\'', relevance: 0}]
  22847       }
  22848     ]
  22849   };
  22850 
  22851   return {
  22852     aliases: ['sqf'],
  22853     case_insensitive: true,
  22854     keywords: {
  22855       keyword:
  22856         'case catch default do else exit exitWith for forEach from if ' +
  22857         'private switch then throw to try waitUntil while with',
  22858       built_in:
  22859         'abs accTime acos action actionIDs actionKeys actionKeysImages actionKeysNames ' +
  22860         'actionKeysNamesArray actionName actionParams activateAddons activatedAddons activateKey ' +
  22861         'add3DENConnection add3DENEventHandler add3DENLayer addAction addBackpack addBackpackCargo ' +
  22862         'addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea ' +
  22863         'addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler ' +
  22864         'addForce addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo ' +
  22865         'addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats ' +
  22866         'addMagazine addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal ' +
  22867         'addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler ' +
  22868         'addMPEventHandler addMusicEventHandler addOwnedMine addPlayerScores addPrimaryWeaponItem ' +
  22869         'addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem ' +
  22870         'addSwitchableUnit addTeamMember addToRemainsCollector addTorque addUniform addVehicle addVest ' +
  22871         'addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponItem ' +
  22872         'addWeaponPool addWeaponTurret admin agent agents AGLToASL aimedAtTarget aimPos airDensityRTD ' +
  22873         'airplaneThrottle airportSide AISFinishHeal alive all3DENEntities allAirports allControls ' +
  22874         'allCurators allCutLayers allDead allDeadMen allDisplays allGroups allMapMarkers allMines ' +
  22875         'allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage ' +
  22876         'allowDammage allowFileOperations allowFleeing allowGetIn allowSprint allPlayers allSimpleObjects ' +
  22877         'allSites allTurrets allUnits allUnitsUAV allVariables ammo ammoOnPylon and animate animateBay ' +
  22878         'animateDoor animatePylon animateSource animationNames animationPhase animationSourcePhase ' +
  22879         'animationState append apply armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert ' +
  22880         'assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret ' +
  22881         'assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems ' +
  22882         'assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam ' +
  22883         'assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject ' +
  22884         'attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines ' +
  22885         'backpackSpaceFor behaviour benchmark binocular boundingBox boundingBoxReal boundingCenter ' +
  22886         'breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode ' +
  22887         'call callExtension camCommand camCommit camCommitPrepared camCommitted camConstuctionSetParams ' +
  22888         'camCreate camDestroy cameraEffect cameraEffectEnableHUD cameraInterest cameraOn cameraView ' +
  22889         'campaignConfigFile camPreload camPreloaded camPrepareBank camPrepareDir camPrepareDive ' +
  22890         'camPrepareFocus camPrepareFov camPrepareFovRange camPreparePos camPrepareRelPos camPrepareTarget ' +
  22891         'camSetBank camSetDir camSetDive camSetFocus camSetFov camSetFovRange camSetPos camSetRelPos ' +
  22892         'camSetTarget camTarget camUseNVG canAdd canAddItemToBackpack canAddItemToUniform canAddItemToVest ' +
  22893         'cancelSimpleTaskDestination canFire canMove canSlingLoad canStand canSuspend ' +
  22894         'canTriggerDynamicSimulation canUnloadInCombat canVehicleCargo captive captiveNum cbChecked ' +
  22895         'cbSetChecked ceil channelEnabled cheatsEnabled checkAIFeature checkVisibility className ' +
  22896         'clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons ' +
  22897         'clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal ' +
  22898         'clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool ' +
  22899         'clientOwner closeDialog closeDisplay closeOverlay collapseObjectTree collect3DENHistory ' +
  22900         'collectiveRTD combatMode commandArtilleryFire commandChat commander commandFire commandFollow ' +
  22901         'commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop ' +
  22902         'commandSuppressiveFire commandTarget commandWatch comment commitOverlay compile compileFinal ' +
  22903         'completedFSM composeText configClasses configFile configHierarchy configName configProperties ' +
  22904         'configSourceAddonList configSourceMod configSourceModList confirmSensorTarget ' +
  22905         'connectTerminalToUAV controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count ' +
  22906         'countEnemy countFriendly countSide countType countUnknown create3DENComposition create3DENEntity ' +
  22907         'createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject ' +
  22908         'createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker ' +
  22909         'createMarkerLocal createMenu createMine createMissionDisplay createMPCampaignDisplay ' +
  22910         'createSimpleObject createSimpleTask createSite createSoundSource createTask createTeam ' +
  22911         'createTrigger createUnit createVehicle createVehicleCrew createVehicleLocal crew ctAddHeader ' +
  22912         'ctAddRow ctClear ctCurSel ctData ctFindHeaderRows ctFindRowHeader ctHeaderControls ctHeaderCount ' +
  22913         'ctRemoveHeaders ctRemoveRows ctrlActivate ctrlAddEventHandler ctrlAngle ctrlAutoScrollDelay ' +
  22914         'ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ' +
  22915         'ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ' +
  22916         'ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ' +
  22917         'ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ' +
  22918         'ctrlParent ctrlParentControlsGroup ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ' +
  22919         'ctrlScale ctrlSetActiveColor ctrlSetAngle ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ' +
  22920         'ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ' +
  22921         'ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ' +
  22922         'ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ' +
  22923         'ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ' +
  22924         'ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontHeightSecondary ' +
  22925         'ctrlSetFontP ctrlSetFontPB ctrlSetFontSecondary ctrlSetForegroundColor ctrlSetModel ' +
  22926         'ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPixelPrecision ctrlSetPosition ctrlSetScale ' +
  22927         'ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ' +
  22928         'ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ' +
  22929         'ctrlTextWidth ctrlType ctrlVisible ctRowControls ctRowCount ctSetCurSel ctSetData ' +
  22930         'ctSetHeaderTemplate ctSetRowTemplate ctSetValue ctValue curatorAddons curatorCamera ' +
  22931         'curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea ' +
  22932         'curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected ' +
  22933         'curatorWaypointCost current3DENOperation currentChannel currentCommand currentMagazine ' +
  22934         'currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle ' +
  22935         'currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint ' +
  22936         'currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorObject cursorTarget ' +
  22937         'customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime ' +
  22938         'deActivateKey debriefingText debugFSM debugLog deg delete3DENEntities deleteAt deleteCenter ' +
  22939         'deleteCollection deleteEditorObject deleteGroup deleteGroupWhenEmpty deleteIdentity ' +
  22940         'deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus ' +
  22941         'deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines ' +
  22942         'diag_activeMissionFSMs diag_activeScripts diag_activeSQFScripts diag_activeSQSScripts ' +
  22943         'diag_captureFrame diag_captureFrameToFile diag_captureSlowFrame diag_codePerformance ' +
  22944         'diag_drawMode diag_enable diag_enabled diag_fps diag_fpsMin diag_frameNo diag_lightNewLoad ' +
  22945         'diag_list diag_log diag_logSlowFrame diag_mergeConfigFile diag_recordTurretLimits ' +
  22946         'diag_setLightNew diag_tickTime diag_toggle dialog diarySubjectExists didJIP didJIPOwner ' +
  22947         'difficulty difficultyEnabled difficultyEnabledRTD difficultyOption direction directSay disableAI ' +
  22948         'disableCollisionWith disableConversation disableDebriefingStats disableMapIndicators ' +
  22949         'disableNVGEquipment disableRemoteSensors disableSerialization disableTIEquipment ' +
  22950         'disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayParent ' +
  22951         'displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam ' +
  22952         'distance distance2D distanceSqr distributionRegion do3DENAction doArtilleryFire doFire doFollow ' +
  22953         'doFSM doGetOut doMove doorPhase doStop doSuppressiveFire doTarget doWatch drawArrow drawEllipse ' +
  22954         'drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawPolygon drawRectangle ' +
  22955         'drawTriangle driver drop dynamicSimulationDistance dynamicSimulationDistanceCoef ' +
  22956         'dynamicSimulationEnabled dynamicSimulationSystemEnabled echo edit3DENMissionAttributes editObject ' +
  22957         'editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature ' +
  22958         'enableAimPrecision enableAttack enableAudioFeature enableAutoStartUpRTD enableAutoTrimRTD ' +
  22959         'enableCamShake enableCaustics enableChannel enableCollisionWith enableCopilot ' +
  22960         'enableDebriefingStats enableDiagLegend enableDynamicSimulation enableDynamicSimulationSystem ' +
  22961         'enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights ' +
  22962         'enableInfoPanelComponent enableIRLasers enableMimics enablePersonTurret enableRadio enableReload ' +
  22963         'enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation ' +
  22964         'enableSimulationGlobal enableStamina enableTeamSwitch enableTraffic enableUAVConnectability ' +
  22965         'enableUAVWaypoints enableVehicleCargo enableVehicleSensor enableWeaponDisassembly ' +
  22966         'endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities ' +
  22967         'environmentEnabled estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack ' +
  22968         'everyContainer exec execEditorScript execFSM execVM exp expectedDestination exportJIPMessages ' +
  22969         'eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission ' +
  22970         'fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition ' +
  22971         'findEmptyPositionReady findIf findNearestEnemy finishMissionInit finite fire fireAtTarget ' +
  22972         'firstBackpack flag flagAnimationPhase flagOwner flagSide flagTexture fleeing floor flyInHeight ' +
  22973         'flyInHeightASL fog fogForecast fogParams forceAddUniform forcedMap forceEnd forceFlagTexture ' +
  22974         'forceFollowRoad forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange ' +
  22975         'forEachMember forEachMemberAgent forEachMemberTeam forgetTarget format formation ' +
  22976         'formationDirection formationLeader formationMembers formationPosition formationTask formatText ' +
  22977         'formLeader freeLook fromEditor fuel fullCrew gearIDCAmmoCount gearSlotAmmoCount gearSlotData ' +
  22978         'get3DENActionState get3DENAttribute get3DENCamera get3DENConnections get3DENEntity ' +
  22979         'get3DENEntityID get3DENGrid get3DENIconsVisible get3DENLayerEntities get3DENLinesVisible ' +
  22980         'get3DENMissionAttribute get3DENMouseOver get3DENSelected getAimingCoef getAllEnvSoundControllers ' +
  22981         'getAllHitPointsDamage getAllOwnedMines getAllSoundControllers getAmmoCargo getAnimAimPrecision ' +
  22982         'getAnimSpeedCoef getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA ' +
  22983         'getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining ' +
  22984         'getBurningValue getCameraViewDirection getCargoIndex getCenterOfMass getClientState ' +
  22985         'getClientStateNumber getCompatiblePylonMagazines getConnectedUAV getContainerMaxLoad ' +
  22986         'getCursorObjectParams getCustomAimCoef getDammage getDescription getDir getDirVisual ' +
  22987         'getDLCAssetsUsage getDLCAssetsUsageByName getDLCs getEditorCamera getEditorMode ' +
  22988         'getEditorObjectScope getElevationOffset getEnvSoundController getFatigue getForcedFlagTexture ' +
  22989         'getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom ' +
  22990         'getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos ' +
  22991         'getMarkerSize getMarkerType getMass getMissionConfig getMissionConfigValue getMissionDLCs ' +
  22992         'getMissionLayerEntities getModelInfo getMousePosition getMusicPlayedTime getNumber ' +
  22993         'getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy ' +
  22994         'getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs ' +
  22995         'getPilotCameraDirection getPilotCameraPosition getPilotCameraRotation getPilotCameraTarget ' +
  22996         'getPlateNumber getPlayerChannel getPlayerScores getPlayerUID getPos getPosASL getPosASLVisual ' +
  22997         'getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getPylonMagazines getRelDir ' +
  22998         'getRelPos getRemoteSensorsDisabled getRepairCargo getResolution getShadowDistance getShotParents ' +
  22999         'getSlingLoad getSoundController getSoundControllerResult getSpeed getStamina getStatValue ' +
  23000         'getSuppression getTerrainGrid getTerrainHeightASL getText getTotalDLCUsageTime getUnitLoadout ' +
  23001         'getUnitTrait getUserMFDText getUserMFDvalue getVariable getVehicleCargo getWeaponCargo ' +
  23002         'getWeaponSway getWingsOrientationRTD getWingsPositionRTD getWPPos glanceAt globalChat globalRadio ' +
  23003         'goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId ' +
  23004         'groupOwner groupRadio groupSelectedUnits groupSelectUnit gunner gusts halt handgunItems ' +
  23005         'handgunMagazine handgunWeapon handsHit hasInterface hasPilotCamera hasWeapon hcAllGroups ' +
  23006         'hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup ' +
  23007         'hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hideSelection hint hintC ' +
  23008         'hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups ' +
  23009         'importance in inArea inAreaArray incapacitatedState inflame inflamed infoPanel ' +
  23010         'infoPanelComponentEnabled infoPanelComponents infoPanels inGameUISetEventHandler inheritsFrom ' +
  23011         'initAmbientLife inPolygon inputAction inRangeOfArtillery insertEditorObject intersect is3DEN ' +
  23012         'is3DENMultiplayer isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest ' +
  23013         'isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDamageAllowed isDedicated ' +
  23014         'isDLCAvailable isEngineOn isEqualTo isEqualType isEqualTypeAll isEqualTypeAny isEqualTypeArray ' +
  23015         'isEqualTypeParams isFilePatchingEnabled isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader ' +
  23016         'isGroupDeletedWhenEmpty isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn ' +
  23017         'isKeyActive isKindOf isLaserOn isLightOn isLocalized isManualFire isMarkedForCollection ' +
  23018         'isMultiplayer isMultiplayerSolo isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad ' +
  23019         'isPipEnabled isPlayer isRealTime isRemoteExecuted isRemoteExecutedJIP isServer isShowing3DIcons ' +
  23020         'isSimpleObject isSprintAllowed isStaminaEnabled isSteamMission isStreamFriendlyUIEnabled isText ' +
  23021         'isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUIContext ' +
  23022         'isUniformAllowed isVehicleCargo isVehicleRadarOn isVehicleSensorEnabled isWalking ' +
  23023         'isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent ' +
  23024         'joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact ' +
  23025         'kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language ' +
  23026         'laserTarget lbAdd lbClear lbColor lbColorRight lbCurSel lbData lbDelete lbIsSelected lbPicture ' +
  23027         'lbPictureRight lbSelection lbSetColor lbSetColorRight lbSetCurSel lbSetData lbSetPicture ' +
  23028         'lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetPictureRight ' +
  23029         'lbSetPictureRightColor lbSetPictureRightColorDisabled lbSetPictureRightColorSelected ' +
  23030         'lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetText lbSetTextRight lbSetTooltip ' +
  23031         'lbSetValue lbSize lbSort lbSortByValue lbText lbTextRight lbValue leader leaderboardDeInit ' +
  23032         'leaderboardGetRows leaderboardInit leaderboardRequestRowsFriends leaderboardsRequestUploadScore ' +
  23033         'leaderboardsRequestUploadScoreKeepBest leaderboardState leaveVehicle libraryCredits ' +
  23034         'libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed ' +
  23035         'linearConversion lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith ' +
  23036         'linkItem list listObjects listRemoteTargets listVehicleSensors ln lnbAddArray lnbAddColumn ' +
  23037         'lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow ' +
  23038         'lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData ' +
  23039         'lnbSetPicture lnbSetText lnbSetValue lnbSize lnbSort lnbSortByValue lnbText lnbValue load loadAbs ' +
  23040         'loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform ' +
  23041         'loadVest local localize locationPosition lock lockCameraTo lockCargo lockDriver locked ' +
  23042         'lockedCargo lockedDriver lockedTurret lockIdentity lockTurret lockWP log logEntities logNetwork ' +
  23043         'logNetworkTerminate lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo ' +
  23044         'magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack ' +
  23045         'magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd ' +
  23046         'mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam ' +
  23047         'markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText ' +
  23048         'markerType max members menuAction menuAdd menuChecked menuClear menuCollapse menuData menuDelete ' +
  23049         'menuEnable menuEnabled menuExpand menuHover menuPicture menuSetAction menuSetCheck menuSetData ' +
  23050         'menuSetPicture menuSetValue menuShortcut menuShortcutText menuSize menuSort menuText menuURL ' +
  23051         'menuValue min mineActive mineDetectedBy missionConfigFile missionDifficulty missionName ' +
  23052         'missionNamespace missionStart missionVersion mod modelToWorld modelToWorldVisual ' +
  23053         'modelToWorldVisualWorld modelToWorldWorld modParams moonIntensity moonPhase morale move ' +
  23054         'move3DENCamera moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret ' +
  23055         'moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name nameSound ' +
  23056         'nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing ' +
  23057         'nearestObject nearestObjects nearestTerrainObjects nearObjects nearObjectsReady nearRoads ' +
  23058         'nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex ' +
  23059         'nextWeatherChange nMenuItems not numberOfEnginesRTD numberToDate objectCurators objectFromNetId ' +
  23060         'objectParent objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch ' +
  23061         'onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter ' +
  23062         'onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected ' +
  23063         'onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch ' +
  23064         'openCuratorInterface openDLCPage openMap openSteamApp openYoutubeVideo or orderGetIn overcast ' +
  23065         'overcastForecast owner param params parseNumber parseSimpleArray parseText parsingNamespace ' +
  23066         'particlesQuality pickWeaponPool pitch pixelGrid pixelGridBase pixelGridNoUIScale pixelH pixelW ' +
  23067         'playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide ' +
  23068         'playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission ' +
  23069         'playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ' +
  23070         'ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ' +
  23071         'ppEffectEnabled ppEffectForceInNVG precision preloadCamera preloadObject preloadSound ' +
  23072         'preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon ' +
  23073         'primaryWeaponItems primaryWeaponMagazine priority processDiaryLink productVersion profileName ' +
  23074         'profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition ' +
  23075         'publicVariable publicVariableClient publicVariableServer pushBack pushBackUnique putWeaponPool ' +
  23076         'queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate ' +
  23077         'radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random ' +
  23078         'rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl ' +
  23079         'remoteExec remoteExecCall remoteExecutedOwner remove3DENConnection remove3DENEventHandler ' +
  23080         'remove3DENLayer removeAction removeAll3DENEventHandlers removeAllActions removeAllAssignedItems ' +
  23081         'removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas ' +
  23082         'removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems ' +
  23083         'removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers ' +
  23084         'removeAllMusicEventHandlers removeAllOwnedMines removeAllPrimaryWeaponItems removeAllWeapons ' +
  23085         'removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea ' +
  23086         'removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks ' +
  23087         'removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem ' +
  23088         'removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest ' +
  23089         'removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret ' +
  23090         'removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler ' +
  23091         'removeMusicEventHandler removeOwnedMine removePrimaryWeaponItem removeSecondaryWeaponItem ' +
  23092         'removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon ' +
  23093         'removeWeaponAttachmentCargo removeWeaponCargo removeWeaponGlobal removeWeaponTurret ' +
  23094         'reportRemoteTarget requiredVersion resetCamShake resetSubgroupDirection resize resources ' +
  23095         'respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadAt ' +
  23096         'roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ' +
  23097         'ropeAttachTo ropeCreate ropeCut ropeDestroy ropeDetach ropeEndPosition ropeLength ropes ' +
  23098         'ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW ' +
  23099         'safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY save3DENInventory saveGame saveIdentity ' +
  23100         'saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D ' +
  23101         'scopeName score scoreSide screenshot screenToWorld scriptDone scriptName scudState ' +
  23102         'secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces ' +
  23103         'selectDiarySubject selectedEditorObjects selectEditorObject selectionNames selectionPosition ' +
  23104         'selectLeader selectMax selectMin selectNoPlayer selectPlayer selectRandom selectRandomWeighted ' +
  23105         'selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult ' +
  23106         'sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime ' +
  23107         'set set3DENAttribute set3DENAttributes set3DENGrid set3DENIconsVisible set3DENLayer ' +
  23108         'set3DENLinesVisible set3DENLogicType set3DENMissionAttribute set3DENMissionAttributes ' +
  23109         'set3DENModelsVisible set3DENObjectType set3DENSelected setAccTime setActualCollectiveRTD ' +
  23110         'setAirplaneThrottle setAirportSide setAmmo setAmmoCargo setAmmoOnPylon setAnimSpeedCoef ' +
  23111         'setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour ' +
  23112         'setBleedingRemaining setBrakesRTD setCameraInterest setCamShakeDefParams setCamShakeParams ' +
  23113         'setCamUseTI setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation ' +
  23114         'setConvoySeparation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType ' +
  23115         'setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setCustomAimCoef ' +
  23116         'setCustomWeightRTD setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination ' +
  23117         'setDetailMapBlendPars setDir setDirection setDrawIcon setDriveOnPath setDropInterval ' +
  23118         'setDynamicSimulationDistance setDynamicSimulationDistanceCoef setEditorMode setEditorObjectScope ' +
  23119         'setEffectCondition setEngineRPMRTD setFace setFaceAnimation setFatigue setFeatureType ' +
  23120         'setFlagAnimationPhase setFlagOwner setFlagSide setFlagTexture setFog setFormation ' +
  23121         'setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo ' +
  23122         'setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId ' +
  23123         'setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage ' +
  23124         'setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setInfoPanel setLeader ' +
  23125         'setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight ' +
  23126         'setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare ' +
  23127         'setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush ' +
  23128         'setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal ' +
  23129         'setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize ' +
  23130         'setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass ' +
  23131         'setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound ' +
  23132         'setObjectArguments setObjectMaterial setObjectMaterialGlobal setObjectProxy setObjectTexture ' +
  23133         'setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining ' +
  23134         'setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom ' +
  23135         'setPilotCameraDirection setPilotCameraRotation setPilotCameraTarget setPilotLight setPiPEffect ' +
  23136         'setPitch setPlateNumber setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW ' +
  23137         'setPosATL setPosition setPosWorld setPylonLoadOut setPylonsPriority setRadioMsg setRain ' +
  23138         'setRainbow setRandomLip setRank setRectangular setRepairCargo setRotorBrakeRTD setShadowDistance ' +
  23139         'setShotParents setSide setSimpleTaskAlwaysVisible setSimpleTaskCustomData ' +
  23140         'setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimpleTaskType ' +
  23141         'setSimulWeatherLayers setSize setSkill setSlingLoad setSoundEffect setSpeaker setSpeech ' +
  23142         'setSpeedMode setStamina setStaminaScheme setStatValue setSuppression setSystemOfUnits ' +
  23143         'setTargetAge setTaskMarkerOffset setTaskResult setTaskState setTerrainGrid setText ' +
  23144         'setTimeMultiplier setTitleEffect setTrafficDensity setTrafficDistance setTrafficGap ' +
  23145         'setTrafficSpeed setTriggerActivation setTriggerArea setTriggerStatements setTriggerText ' +
  23146         'setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitLoadout setUnitPos ' +
  23147         'setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnitTrait setUnloadInCombat ' +
  23148         'setUserActionText setUserMFDText setUserMFDvalue setVariable setVectorDir setVectorDirAndUp ' +
  23149         'setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleCargo setVehicleId ' +
  23150         'setVehicleLock setVehiclePosition setVehicleRadar setVehicleReceiveRemoteTargets ' +
  23151         'setVehicleReportOwnPosition setVehicleReportRemoteTargets setVehicleTIPars setVehicleVarName ' +
  23152         'setVelocity setVelocityModelSpace setVelocityTransformation setViewDistance ' +
  23153         'setVisibleIfTreeCollapsed setWantedRPMRTD setWaves setWaypointBehaviour setWaypointCombatMode ' +
  23154         'setWaypointCompletionRadius setWaypointDescription setWaypointForceBehaviour setWaypointFormation ' +
  23155         'setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName ' +
  23156         'setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout ' +
  23157         'setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce ' +
  23158         'setWindStr setWingForceScaleRTD setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu ' +
  23159         'showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer ' +
  23160         'shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap ' +
  23161         'shownPad shownRadio shownScoretable shownUAVFeed shownWarrant shownWatch showPad showRadio ' +
  23162         'showScoretable showSubtitles showUAVFeed showWarrant showWatch showWaypoint showWaypoints side ' +
  23163         'sideChat sideEnemy sideFriendly sideRadio simpleTasks simulationEnabled simulCloudDensity ' +
  23164         'simulCloudOcclusion simulInClouds simulWeatherSync sin size sizeOf skill skillFinal skipTime ' +
  23165         'sleep sliderPosition sliderRange sliderSetPosition sliderSetRange sliderSetSpeed sliderSpeed ' +
  23166         'slingLoadAssistantShown soldierMagazines someAmmo sort soundVolume spawn speaker speed speedMode ' +
  23167         'splitString sqrt squadParams stance startLoadingScreen step stop stopEngineRTD stopped str ' +
  23168         'sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth ' +
  23169         'switchableUnits switchAction switchCamera switchGesture switchLight switchMove ' +
  23170         'synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd ' +
  23171         'synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint systemChat systemOfUnits tan ' +
  23172         'targetKnowledge targets targetsAggregate targetsQuery taskAlwaysVisible taskChildren ' +
  23173         'taskCompleted taskCustomData taskDescription taskDestination taskHint taskMarkerOffset taskParent ' +
  23174         'taskResult taskState taskType teamMember teamName teams teamSwitch teamSwitchEnabled teamType ' +
  23175         'terminate terrainIntersect terrainIntersectASL terrainIntersectAtASL text textLog textLogFormat ' +
  23176         'tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toFixed toLower ' +
  23177         'toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle ' +
  23178         'triggerAttachObject triggerAttachVehicle triggerDynamicSimulation triggerStatements triggerText ' +
  23179         'triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear ' +
  23180         'tvCollapse tvCollapseAll tvCount tvCurSel tvData tvDelete tvExpand tvExpandAll tvPicture ' +
  23181         'tvSetColor tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetPictureColorDisabled ' +
  23182         'tvSetPictureColorSelected tvSetPictureRight tvSetPictureRightColor tvSetPictureRightColorDisabled ' +
  23183         'tvSetPictureRightColorSelected tvSetText tvSetTooltip tvSetValue tvSort tvSortByValue tvText ' +
  23184         'tvTooltip tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator ' +
  23185         'unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems ' +
  23186         'uniformMagazines unitAddons unitAimPosition unitAimPositionVisual unitBackpack unitIsUAV unitPos ' +
  23187         'unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement ' +
  23188         'unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAISteeringComponent ' +
  23189         'useAudioTimeForMoves userInputDisabled vectorAdd vectorCos vectorCrossProduct vectorDiff ' +
  23190         'vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo ' +
  23191         'vectorMagnitude vectorMagnitudeSqr vectorModelToWorld vectorModelToWorldVisual vectorMultiply ' +
  23192         'vectorNormalized vectorUp vectorUpVisual vectorWorldToModel vectorWorldToModelVisual vehicle ' +
  23193         'vehicleCargoEnabled vehicleChat vehicleRadio vehicleReceiveRemoteTargets vehicleReportOwnPosition ' +
  23194         'vehicleReportRemoteTargets vehicles vehicleVarName velocity velocityModelSpace verifySignature ' +
  23195         'vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap ' +
  23196         'visiblePosition visiblePositionASL visibleScoretable visibleWatch waves waypointAttachedObject ' +
  23197         'waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour ' +
  23198         'waypointCombatMode waypointCompletionRadius waypointDescription waypointForceBehaviour ' +
  23199         'waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName ' +
  23200         'waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed ' +
  23201         'waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible ' +
  23202         'weaponAccessories weaponAccessoriesCargo weaponCargo weaponDirection weaponInertia weaponLowered ' +
  23203         'weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD WFSideText wind ',
  23204       literal:
  23205         'blufor civilian configNull controlNull displayNull east endl false grpNull independent lineBreak ' +
  23206         'locationNull nil objNull opfor pi resistance scriptNull sideAmbientLife sideEmpty sideLogic ' +
  23207         'sideUnknown taskNull teamMemberNull true west',
  23208     },
  23209     contains: [
  23210       hljs.C_LINE_COMMENT_MODE,
  23211       hljs.C_BLOCK_COMMENT_MODE,
  23212       hljs.NUMBER_MODE,
  23213       VARIABLE,
  23214       FUNCTION,
  23215       STRINGS,
  23216       CPP.preprocessor
  23217     ],
  23218     illegal: /#|^\$ /
  23219   };
  23220 }
  23221 },{name:"sql",create:/*
  23222  Language: SQL
  23223  Contributors: Nikolay Lisienko <info@neor.ru>, Heiko August <post@auge8472.de>, Travis Odom <travis.a.odom@gmail.com>, Vadimtro <vadimtro@yahoo.com>, Benjamin Auder <benjamin.auder@gmail.com>
  23224  Category: common
  23225  */
  23226 
  23227 function(hljs) {
  23228   var COMMENT_MODE = hljs.COMMENT('--', '$');
  23229   return {
  23230     case_insensitive: true,
  23231     illegal: /[<>{}*]/,
  23232     contains: [
  23233       {
  23234         beginKeywords:
  23235           'begin end start commit rollback savepoint lock alter create drop rename call ' +
  23236           'delete do handler insert load replace select truncate update set show pragma grant ' +
  23237           'merge describe use explain help declare prepare execute deallocate release ' +
  23238           'unlock purge reset change stop analyze cache flush optimize repair kill ' +
  23239           'install uninstall checksum restore check backup revoke comment values with',
  23240         end: /;/, endsWithParent: true,
  23241         lexemes: /[\w\.]+/,
  23242         keywords: {
  23243           keyword:
  23244             'as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
  23245             'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
  23246             'all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply ' +
  23247             'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
  23248             'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
  23249             'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
  23250             'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
  23251             'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
  23252             'bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel ' +
  23253             'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
  23254             'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
  23255             'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
  23256             'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
  23257             'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
  23258             'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
  23259             'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
  23260             'consider consistent constant constraint constraints constructor container content contents context ' +
  23261             'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
  23262             'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
  23263             'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
  23264             'cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add ' +
  23265             'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
  23266             'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
  23267             'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
  23268             'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
  23269             'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
  23270             'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
  23271             'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
  23272             'do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable ' +
  23273             'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
  23274             'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
  23275             'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
  23276             'execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external ' +
  23277             'external_1 external_2 externally extract failed failed_login_attempts failover failure far fast ' +
  23278             'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
  23279             'finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign ' +
  23280             'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
  23281             'ftp full function general generated get get_format get_lock getdate getutcdate global global_name ' +
  23282             'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
  23283             'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
  23284             'hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified ' +
  23285             'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
  23286             'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
  23287             'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
  23288             'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
  23289             'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
  23290             'keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase ' +
  23291             'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
  23292             'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
  23293             'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
  23294             'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime ' +
  23295             'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
  23296             'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
  23297             'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
  23298             'minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month ' +
  23299             'months mount move movement multiset mutex name name_const names nan national native natural nav nchar ' +
  23300             'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
  23301             'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
  23302             'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
  23303             'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
  23304             'noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
  23305             'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
  23306             'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
  23307             'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
  23308             'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
  23309             'out outer outfile outline output over overflow overriding package pad parallel parallel_enable ' +
  23310             'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
  23311             'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
  23312             'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
  23313             'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
  23314             'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
  23315             'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
  23316             'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
  23317             'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
  23318             'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
  23319             'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
  23320             'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
  23321             'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
  23322             'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
  23323             'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
  23324             'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
  23325             'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
  23326             'sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select ' +
  23327             'self semi sequence sequential serializable server servererror session session_user sessions_per_user set ' +
  23328             'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
  23329             'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
  23330             'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
  23331             'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
  23332             'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
  23333             'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
  23334             'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
  23335             'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
  23336             'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
  23337             'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
  23338             'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
  23339             'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo ' +
  23340             'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
  23341             'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
  23342             'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
  23343             'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
  23344             'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
  23345             'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot ' +
  23346             'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
  23347             'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
  23348             'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
  23349             'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
  23350             'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
  23351             'wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped ' +
  23352             'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
  23353             'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
  23354           literal:
  23355             'true false null unknown',
  23356           built_in:
  23357             'array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number ' +
  23358             'numeric real record serial serial8 smallint text time timestamp tinyint varchar varying void'
  23359         },
  23360         contains: [
  23361           {
  23362             className: 'string',
  23363             begin: '\'', end: '\'',
  23364             contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
  23365           },
  23366           {
  23367             className: 'string',
  23368             begin: '"', end: '"',
  23369             contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}]
  23370           },
  23371           {
  23372             className: 'string',
  23373             begin: '`', end: '`',
  23374             contains: [hljs.BACKSLASH_ESCAPE]
  23375           },
  23376           hljs.C_NUMBER_MODE,
  23377           hljs.C_BLOCK_COMMENT_MODE,
  23378           COMMENT_MODE,
  23379           hljs.HASH_COMMENT_MODE
  23380         ]
  23381       },
  23382       hljs.C_BLOCK_COMMENT_MODE,
  23383       COMMENT_MODE,
  23384       hljs.HASH_COMMENT_MODE
  23385     ]
  23386   };
  23387 }
  23388 },{name:"stan",create:/*
  23389 Language: Stan
  23390 Author: Brendan Rocks <rocks.brendan@gmail.com>
  23391  Category: scientific
  23392 Description: The Stan probabilistic programming language (http://mc-stan.org/).
  23393 */
  23394 
  23395 function(hljs) {
  23396   return {
  23397     contains: [
  23398       hljs.HASH_COMMENT_MODE,
  23399       hljs.C_LINE_COMMENT_MODE,
  23400       hljs.C_BLOCK_COMMENT_MODE,
  23401       {
  23402         begin: hljs.UNDERSCORE_IDENT_RE,
  23403         lexemes: hljs.UNDERSCORE_IDENT_RE,
  23404         keywords: {
  23405           // Stan's keywords
  23406           name:
  23407             'for in while repeat until if then else',
  23408           // Stan's probablity distributions (less beta and gamma, as commonly
  23409           // used for parameter names). So far, _log and _rng variants are not
  23410           // included
  23411           symbol:
  23412             'bernoulli bernoulli_logit binomial binomial_logit '               +
  23413             'beta_binomial hypergeometric categorical categorical_logit '      +
  23414             'ordered_logistic neg_binomial neg_binomial_2 '                    +
  23415             'neg_binomial_2_log poisson poisson_log multinomial normal '       +
  23416             'exp_mod_normal skew_normal student_t cauchy double_exponential '  +
  23417             'logistic gumbel lognormal chi_square inv_chi_square '             +
  23418             'scaled_inv_chi_square exponential inv_gamma weibull frechet '     +
  23419             'rayleigh wiener pareto pareto_type_2 von_mises uniform '          +
  23420             'multi_normal multi_normal_prec multi_normal_cholesky multi_gp '   +
  23421             'multi_gp_cholesky multi_student_t gaussian_dlm_obs dirichlet '    +
  23422             'lkj_corr lkj_corr_cholesky wishart inv_wishart',
  23423           // Stan's data types
  23424           'selector-tag':
  23425             'int real vector simplex unit_vector ordered positive_ordered '    +
  23426             'row_vector matrix cholesky_factor_corr cholesky_factor_cov '      +
  23427             'corr_matrix cov_matrix',
  23428           // Stan's model blocks
  23429           title:
  23430             'functions model data parameters quantities transformed '          +
  23431             'generated',
  23432           literal:
  23433             'true false'
  23434         },
  23435         relevance: 0
  23436       },
  23437       // The below is all taken from the R language definition
  23438       {
  23439         // hex value
  23440         className: 'number',
  23441         begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
  23442         relevance: 0
  23443       },
  23444       {
  23445         // hex value
  23446         className: 'number',
  23447         begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
  23448         relevance: 0
  23449       },
  23450       {
  23451         // explicit integer
  23452         className: 'number',
  23453         begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
  23454         relevance: 0
  23455       },
  23456       {
  23457         // number with trailing decimal
  23458         className: 'number',
  23459         begin: "\\d+\\.(?!\\d)(?:i\\b)?",
  23460         relevance: 0
  23461       },
  23462       {
  23463         // number
  23464         className: 'number',
  23465         begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
  23466         relevance: 0
  23467       },
  23468       {
  23469         // number with leading decimal
  23470         className: 'number',
  23471         begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
  23472         relevance: 0
  23473       }
  23474     ]
  23475   };
  23476 }
  23477 },{name:"stata",create:/*
  23478 Language: Stata
  23479 Author: Brian Quistorff <bquistorff@gmail.com>
  23480 Contributors: Drew McDonald <drewmcdo@gmail.com>
  23481 Description: Syntax highlighting for Stata code. This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.
  23482 Category: scientific
  23483 */
  23484 
  23485 function(hljs) {
  23486   return {
  23487     aliases: ['do', 'ado'],
  23488     case_insensitive: true,
  23489     keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5',
  23490         contains: [
  23491       {
  23492         className: 'symbol',
  23493         begin: /`[a-zA-Z0-9_]+'/
  23494       },
  23495       {
  23496         className: 'variable',
  23497         begin: /\$\{?[a-zA-Z0-9_]+\}?/
  23498       },
  23499       {
  23500         className: 'string',
  23501         variants: [
  23502           {begin: '`"[^\r\n]*?"\''},
  23503           {begin: '"[^\r\n"]*"'}
  23504         ]
  23505       },
  23506 
  23507       {
  23508         className: 'built_in',
  23509         variants: [
  23510           {
  23511             begin: '\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)'
  23512           }
  23513         ]
  23514       },
  23515 
  23516       hljs.COMMENT('^[ \t]*\\*.*$', false),
  23517       hljs.C_LINE_COMMENT_MODE,
  23518       hljs.C_BLOCK_COMMENT_MODE
  23519     ]
  23520   };
  23521 }
  23522 },{name:"step21",create:/*
  23523 Language: STEP Part 21
  23524 Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
  23525 Description: Syntax highlighter for STEP Part 21 files (ISO 10303-21).
  23526 */
  23527 
  23528 function(hljs) {
  23529   var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
  23530   var STEP21_KEYWORDS = {
  23531     keyword: 'HEADER ENDSEC DATA'
  23532   };
  23533   var STEP21_START = {
  23534     className: 'meta',
  23535     begin: 'ISO-10303-21;',
  23536     relevance: 10
  23537   };
  23538   var STEP21_CLOSE = {
  23539     className: 'meta',
  23540     begin: 'END-ISO-10303-21;',
  23541     relevance: 10
  23542   };
  23543 
  23544   return {
  23545     aliases: ['p21', 'step', 'stp'],
  23546     case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.
  23547     lexemes: STEP21_IDENT_RE,
  23548     keywords: STEP21_KEYWORDS,
  23549     contains: [
  23550       STEP21_START,
  23551       STEP21_CLOSE,
  23552       hljs.C_LINE_COMMENT_MODE,
  23553       hljs.C_BLOCK_COMMENT_MODE,
  23554       hljs.COMMENT('/\\*\\*!', '\\*/'),
  23555       hljs.C_NUMBER_MODE,
  23556       hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
  23557       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
  23558       {
  23559         className: 'string',
  23560         begin: "'", end: "'"
  23561       },
  23562       {
  23563         className: 'symbol',
  23564         variants: [
  23565           {
  23566             begin: '#', end: '\\d+',
  23567             illegal: '\\W'
  23568           }
  23569         ]
  23570       }
  23571     ]
  23572   };
  23573 }
  23574 },{name:"stylus",create:/*
  23575 Language: Stylus
  23576 Author: Bryant Williams <b.n.williams@gmail.com>
  23577 Description: Stylus (https://github.com/LearnBoost/stylus/)
  23578 Category: css
  23579 */
  23580 
  23581 function(hljs) {
  23582 
  23583   var VARIABLE = {
  23584     className: 'variable',
  23585     begin: '\\$' + hljs.IDENT_RE
  23586   };
  23587 
  23588   var HEX_COLOR = {
  23589     className: 'number',
  23590     begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
  23591   };
  23592 
  23593   var AT_KEYWORDS = [
  23594     'charset',
  23595     'css',
  23596     'debug',
  23597     'extend',
  23598     'font-face',
  23599     'for',
  23600     'import',
  23601     'include',
  23602     'media',
  23603     'mixin',
  23604     'page',
  23605     'warn',
  23606     'while'
  23607   ];
  23608 
  23609   var PSEUDO_SELECTORS = [
  23610     'after',
  23611     'before',
  23612     'first-letter',
  23613     'first-line',
  23614     'active',
  23615     'first-child',
  23616     'focus',
  23617     'hover',
  23618     'lang',
  23619     'link',
  23620     'visited'
  23621   ];
  23622 
  23623   var TAGS = [
  23624     'a',
  23625     'abbr',
  23626     'address',
  23627     'article',
  23628     'aside',
  23629     'audio',
  23630     'b',
  23631     'blockquote',
  23632     'body',
  23633     'button',
  23634     'canvas',
  23635     'caption',
  23636     'cite',
  23637     'code',
  23638     'dd',
  23639     'del',
  23640     'details',
  23641     'dfn',
  23642     'div',
  23643     'dl',
  23644     'dt',
  23645     'em',
  23646     'fieldset',
  23647     'figcaption',
  23648     'figure',
  23649     'footer',
  23650     'form',
  23651     'h1',
  23652     'h2',
  23653     'h3',
  23654     'h4',
  23655     'h5',
  23656     'h6',
  23657     'header',
  23658     'hgroup',
  23659     'html',
  23660     'i',
  23661     'iframe',
  23662     'img',
  23663     'input',
  23664     'ins',
  23665     'kbd',
  23666     'label',
  23667     'legend',
  23668     'li',
  23669     'mark',
  23670     'menu',
  23671     'nav',
  23672     'object',
  23673     'ol',
  23674     'p',
  23675     'q',
  23676     'quote',
  23677     'samp',
  23678     'section',
  23679     'span',
  23680     'strong',
  23681     'summary',
  23682     'sup',
  23683     'table',
  23684     'tbody',
  23685     'td',
  23686     'textarea',
  23687     'tfoot',
  23688     'th',
  23689     'thead',
  23690     'time',
  23691     'tr',
  23692     'ul',
  23693     'var',
  23694     'video'
  23695   ];
  23696 
  23697   var TAG_END = '[\\.\\s\\n\\[\\:,]';
  23698 
  23699   var ATTRIBUTES = [
  23700     'align-content',
  23701     'align-items',
  23702     'align-self',
  23703     'animation',
  23704     'animation-delay',
  23705     'animation-direction',
  23706     'animation-duration',
  23707     'animation-fill-mode',
  23708     'animation-iteration-count',
  23709     'animation-name',
  23710     'animation-play-state',
  23711     'animation-timing-function',
  23712     'auto',
  23713     'backface-visibility',
  23714     'background',
  23715     'background-attachment',
  23716     'background-clip',
  23717     'background-color',
  23718     'background-image',
  23719     'background-origin',
  23720     'background-position',
  23721     'background-repeat',
  23722     'background-size',
  23723     'border',
  23724     'border-bottom',
  23725     'border-bottom-color',
  23726     'border-bottom-left-radius',
  23727     'border-bottom-right-radius',
  23728     'border-bottom-style',
  23729     'border-bottom-width',
  23730     'border-collapse',
  23731     'border-color',
  23732     'border-image',
  23733     'border-image-outset',
  23734     'border-image-repeat',
  23735     'border-image-slice',
  23736     'border-image-source',
  23737     'border-image-width',
  23738     'border-left',
  23739     'border-left-color',
  23740     'border-left-style',
  23741     'border-left-width',
  23742     'border-radius',
  23743     'border-right',
  23744     'border-right-color',
  23745     'border-right-style',
  23746     'border-right-width',
  23747     'border-spacing',
  23748     'border-style',
  23749     'border-top',
  23750     'border-top-color',
  23751     'border-top-left-radius',
  23752     'border-top-right-radius',
  23753     'border-top-style',
  23754     'border-top-width',
  23755     'border-width',
  23756     'bottom',
  23757     'box-decoration-break',
  23758     'box-shadow',
  23759     'box-sizing',
  23760     'break-after',
  23761     'break-before',
  23762     'break-inside',
  23763     'caption-side',
  23764     'clear',
  23765     'clip',
  23766     'clip-path',
  23767     'color',
  23768     'column-count',
  23769     'column-fill',
  23770     'column-gap',
  23771     'column-rule',
  23772     'column-rule-color',
  23773     'column-rule-style',
  23774     'column-rule-width',
  23775     'column-span',
  23776     'column-width',
  23777     'columns',
  23778     'content',
  23779     'counter-increment',
  23780     'counter-reset',
  23781     'cursor',
  23782     'direction',
  23783     'display',
  23784     'empty-cells',
  23785     'filter',
  23786     'flex',
  23787     'flex-basis',
  23788     'flex-direction',
  23789     'flex-flow',
  23790     'flex-grow',
  23791     'flex-shrink',
  23792     'flex-wrap',
  23793     'float',
  23794     'font',
  23795     'font-family',
  23796     'font-feature-settings',
  23797     'font-kerning',
  23798     'font-language-override',
  23799     'font-size',
  23800     'font-size-adjust',
  23801     'font-stretch',
  23802     'font-style',
  23803     'font-variant',
  23804     'font-variant-ligatures',
  23805     'font-weight',
  23806     'height',
  23807     'hyphens',
  23808     'icon',
  23809     'image-orientation',
  23810     'image-rendering',
  23811     'image-resolution',
  23812     'ime-mode',
  23813     'inherit',
  23814     'initial',
  23815     'justify-content',
  23816     'left',
  23817     'letter-spacing',
  23818     'line-height',
  23819     'list-style',
  23820     'list-style-image',
  23821     'list-style-position',
  23822     'list-style-type',
  23823     'margin',
  23824     'margin-bottom',
  23825     'margin-left',
  23826     'margin-right',
  23827     'margin-top',
  23828     'marks',
  23829     'mask',
  23830     'max-height',
  23831     'max-width',
  23832     'min-height',
  23833     'min-width',
  23834     'nav-down',
  23835     'nav-index',
  23836     'nav-left',
  23837     'nav-right',
  23838     'nav-up',
  23839     'none',
  23840     'normal',
  23841     'object-fit',
  23842     'object-position',
  23843     'opacity',
  23844     'order',
  23845     'orphans',
  23846     'outline',
  23847     'outline-color',
  23848     'outline-offset',
  23849     'outline-style',
  23850     'outline-width',
  23851     'overflow',
  23852     'overflow-wrap',
  23853     'overflow-x',
  23854     'overflow-y',
  23855     'padding',
  23856     'padding-bottom',
  23857     'padding-left',
  23858     'padding-right',
  23859     'padding-top',
  23860     'page-break-after',
  23861     'page-break-before',
  23862     'page-break-inside',
  23863     'perspective',
  23864     'perspective-origin',
  23865     'pointer-events',
  23866     'position',
  23867     'quotes',
  23868     'resize',
  23869     'right',
  23870     'tab-size',
  23871     'table-layout',
  23872     'text-align',
  23873     'text-align-last',
  23874     'text-decoration',
  23875     'text-decoration-color',
  23876     'text-decoration-line',
  23877     'text-decoration-style',
  23878     'text-indent',
  23879     'text-overflow',
  23880     'text-rendering',
  23881     'text-shadow',
  23882     'text-transform',
  23883     'text-underline-position',
  23884     'top',
  23885     'transform',
  23886     'transform-origin',
  23887     'transform-style',
  23888     'transition',
  23889     'transition-delay',
  23890     'transition-duration',
  23891     'transition-property',
  23892     'transition-timing-function',
  23893     'unicode-bidi',
  23894     'vertical-align',
  23895     'visibility',
  23896     'white-space',
  23897     'widows',
  23898     'width',
  23899     'word-break',
  23900     'word-spacing',
  23901     'word-wrap',
  23902     'z-index'
  23903   ];
  23904 
  23905   // illegals
  23906   var ILLEGAL = [
  23907     '\\?',
  23908     '(\\bReturn\\b)', // monkey
  23909     '(\\bEnd\\b)', // monkey
  23910     '(\\bend\\b)', // vbscript
  23911     '(\\bdef\\b)', // gradle
  23912     ';', // a whole lot of languages
  23913     '#\\s', // markdown
  23914     '\\*\\s', // markdown
  23915     '===\\s', // markdown
  23916     '\\|',
  23917     '%', // prolog
  23918   ];
  23919 
  23920   return {
  23921     aliases: ['styl'],
  23922     case_insensitive: false,
  23923     keywords: 'if else for in',
  23924     illegal: '(' + ILLEGAL.join('|') + ')',
  23925     contains: [
  23926 
  23927       // strings
  23928       hljs.QUOTE_STRING_MODE,
  23929       hljs.APOS_STRING_MODE,
  23930 
  23931       // comments
  23932       hljs.C_LINE_COMMENT_MODE,
  23933       hljs.C_BLOCK_COMMENT_MODE,
  23934 
  23935       // hex colors
  23936       HEX_COLOR,
  23937 
  23938       // class tag
  23939       {
  23940         begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
  23941         returnBegin: true,
  23942         contains: [
  23943           {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
  23944         ]
  23945       },
  23946 
  23947       // id tag
  23948       {
  23949         begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
  23950         returnBegin: true,
  23951         contains: [
  23952           {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
  23953         ]
  23954       },
  23955 
  23956       // tags
  23957       {
  23958         begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
  23959         returnBegin: true,
  23960         contains: [
  23961           {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
  23962         ]
  23963       },
  23964 
  23965       // psuedo selectors
  23966       {
  23967         begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
  23968       },
  23969 
  23970       // @ keywords
  23971       {
  23972         begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
  23973       },
  23974 
  23975       // variables
  23976       VARIABLE,
  23977 
  23978       // dimension
  23979       hljs.CSS_NUMBER_MODE,
  23980 
  23981       // number
  23982       hljs.NUMBER_MODE,
  23983 
  23984       // functions
  23985       //  - only from beginning of line + whitespace
  23986       {
  23987         className: 'function',
  23988         begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
  23989         illegal: '[\\n]',
  23990         returnBegin: true,
  23991         contains: [
  23992           {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
  23993           {
  23994             className: 'params',
  23995             begin: /\(/,
  23996             end: /\)/,
  23997             contains: [
  23998               HEX_COLOR,
  23999               VARIABLE,
  24000               hljs.APOS_STRING_MODE,
  24001               hljs.CSS_NUMBER_MODE,
  24002               hljs.NUMBER_MODE,
  24003               hljs.QUOTE_STRING_MODE
  24004             ]
  24005           }
  24006         ]
  24007       },
  24008 
  24009       // attributes
  24010       //  - only from beginning of line + whitespace
  24011       //  - must have whitespace after it
  24012       {
  24013         className: 'attribute',
  24014         begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b',
  24015         starts: {
  24016           // value container
  24017           end: /;|$/,
  24018           contains: [
  24019             HEX_COLOR,
  24020             VARIABLE,
  24021             hljs.APOS_STRING_MODE,
  24022             hljs.QUOTE_STRING_MODE,
  24023             hljs.CSS_NUMBER_MODE,
  24024             hljs.NUMBER_MODE,
  24025             hljs.C_BLOCK_COMMENT_MODE
  24026           ],
  24027           illegal: /\./,
  24028           relevance: 0
  24029         }
  24030       }
  24031     ]
  24032   };
  24033 }
  24034 },{name:"subunit",create:/*
  24035 Language: SubUnit
  24036 Author: Sergey Bronnikov <sergeyb@bronevichok.ru>
  24037 Website: https://bronevichok.ru/
  24038 */
  24039 
  24040 function(hljs) {
  24041   var DETAILS = {
  24042     className: 'string',
  24043     begin: '\\[\n(multipart)?', end: '\\]\n'
  24044   };
  24045   var TIME = {
  24046     className: 'string',
  24047     begin: '\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}\.\\d+Z'
  24048   };
  24049   var PROGRESSVALUE = {
  24050     className: 'string',
  24051     begin: '(\\+|-)\\d+'
  24052   };
  24053   var KEYWORDS = {
  24054     className: 'keyword',
  24055     relevance: 10,
  24056     variants: [
  24057       { begin: '^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?' },
  24058       { begin: '^progress(:?)(\\s+)?(pop|push)?' },
  24059       { begin: '^tags:' },
  24060       { begin: '^time:' }
  24061     ],
  24062   };
  24063   return {
  24064     case_insensitive: true,
  24065     contains: [
  24066       DETAILS,
  24067       TIME,
  24068       PROGRESSVALUE,
  24069       KEYWORDS
  24070     ]
  24071   };
  24072 }
  24073 },{name:"swift",create:/*
  24074 Language: Swift
  24075 Author: Chris Eidhof <chris@eidhof.nl>
  24076 Contributors: Nate Cook <natecook@gmail.com>, Alexander Lichter <manniL@gmx.net>
  24077 Category: system
  24078 */
  24079 
  24080 
  24081 function(hljs) {
  24082   var SWIFT_KEYWORDS = {
  24083       keyword: '#available #colorLiteral #column #else #elseif #endif #file ' +
  24084         '#fileLiteral #function #if #imageLiteral #line #selector #sourceLocation ' +
  24085         '_ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype ' +
  24086         'associativity break case catch class continue convenience default defer deinit didSet do ' +
  24087         'dynamic dynamicType else enum extension fallthrough false fileprivate final for func ' +
  24088         'get guard if import in indirect infix init inout internal is lazy left let ' +
  24089         'mutating nil none nonmutating open operator optional override postfix precedence ' +
  24090         'prefix private protocol Protocol public repeat required rethrows return ' +
  24091         'right self Self set static struct subscript super switch throw throws true ' +
  24092         'try try! try? Type typealias unowned var weak where while willSet',
  24093       literal: 'true false nil',
  24094       built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
  24095         'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
  24096         'bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros ' +
  24097         'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
  24098         'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
  24099         'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
  24100         'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
  24101         'map max maxElement min minElement numericCast overlaps partition posix ' +
  24102         'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
  24103         'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
  24104         'startsWith stride strideof strideofValue swap toString transcode ' +
  24105         'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
  24106         'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
  24107         'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
  24108         'withUnsafePointer withUnsafePointers withVaList zip'
  24109     };
  24110 
  24111   var TYPE = {
  24112     className: 'type',
  24113     begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*',
  24114     relevance: 0
  24115   };
  24116   // slightly more special to swift
  24117   var OPTIONAL_USING_TYPE = {
  24118     className: 'type',
  24119     begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*[!?]'
  24120   }
  24121   var BLOCK_COMMENT = hljs.COMMENT(
  24122     '/\\*',
  24123     '\\*/',
  24124     {
  24125       contains: ['self']
  24126     }
  24127   );
  24128   var SUBST = {
  24129     className: 'subst',
  24130     begin: /\\\(/, end: '\\)',
  24131     keywords: SWIFT_KEYWORDS,
  24132     contains: [] // assigned later
  24133   };
  24134   var STRING = {
  24135     className: 'string',
  24136     contains: [hljs.BACKSLASH_ESCAPE, SUBST],
  24137     variants: [
  24138       {begin: /"""/, end: /"""/},
  24139       {begin: /"/, end: /"/},
  24140     ]
  24141   };
  24142   var NUMBERS = {
  24143       className: 'number',
  24144       begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b',
  24145       relevance: 0
  24146   };
  24147   SUBST.contains = [NUMBERS];
  24148 
  24149   return {
  24150     keywords: SWIFT_KEYWORDS,
  24151     contains: [
  24152       STRING,
  24153       hljs.C_LINE_COMMENT_MODE,
  24154       BLOCK_COMMENT,
  24155       OPTIONAL_USING_TYPE,
  24156       TYPE,
  24157       NUMBERS,
  24158       {
  24159         className: 'function',
  24160         beginKeywords: 'func', end: '{', excludeEnd: true,
  24161         contains: [
  24162           hljs.inherit(hljs.TITLE_MODE, {
  24163             begin: /[A-Za-z$_][0-9A-Za-z$_]*/
  24164           }),
  24165           {
  24166             begin: /</, end: />/
  24167           },
  24168           {
  24169             className: 'params',
  24170             begin: /\(/, end: /\)/, endsParent: true,
  24171             keywords: SWIFT_KEYWORDS,
  24172             contains: [
  24173               'self',
  24174               NUMBERS,
  24175               STRING,
  24176               hljs.C_BLOCK_COMMENT_MODE,
  24177               {begin: ':'} // relevance booster
  24178             ],
  24179             illegal: /["']/
  24180           }
  24181         ],
  24182         illegal: /\[|%/
  24183       },
  24184       {
  24185         className: 'class',
  24186         beginKeywords: 'struct protocol class extension enum',
  24187         keywords: SWIFT_KEYWORDS,
  24188         end: '\\{',
  24189         excludeEnd: true,
  24190         contains: [
  24191           hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})
  24192         ]
  24193       },
  24194       {
  24195         className: 'meta', // @attributes
  24196         begin: '(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|' +
  24197                   '@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|' +
  24198                   '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
  24199                   '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
  24200                   '@nonobjc|@NSApplicationMain|@UIApplicationMain)'
  24201 
  24202       },
  24203       {
  24204         beginKeywords: 'import', end: /$/,
  24205         contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT]
  24206       }
  24207     ]
  24208   };
  24209 }
  24210 },{name:"taggerscript",create:/*
  24211 Language: Tagger Script
  24212 Author: Philipp Wolfer <ph.wolfer@gmail.com>
  24213 Description: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.
  24214  */
  24215 function(hljs) {
  24216 
  24217   var COMMENT = {
  24218     className: 'comment',
  24219     begin: /\$noop\(/,
  24220     end: /\)/,
  24221     contains: [{
  24222       begin: /\(/,
  24223       end: /\)/,
  24224       contains: ['self', {
  24225         begin: /\\./
  24226       }]
  24227     }],
  24228     relevance: 10
  24229   };
  24230 
  24231   var FUNCTION = {
  24232     className: 'keyword',
  24233     begin: /\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,
  24234     end: /\(/,
  24235     excludeEnd: true
  24236   };
  24237 
  24238   var VARIABLE = {
  24239     className: 'variable',
  24240     begin: /%[_a-zA-Z0-9:]*/,
  24241     end: '%'
  24242   };
  24243 
  24244   var ESCAPE_SEQUENCE = {
  24245     className: 'symbol',
  24246     begin: /\\./
  24247   };
  24248 
  24249   return {
  24250     contains: [
  24251       COMMENT,
  24252       FUNCTION,
  24253       VARIABLE,
  24254       ESCAPE_SEQUENCE
  24255     ]
  24256   };
  24257 }
  24258 },{name:"tap",create:/*
  24259 Language: Test Anything Protocol
  24260 Requires: yaml.js
  24261 Author: Sergey Bronnikov <sergeyb@bronevichok.ru>
  24262 Website: https://bronevichok.ru/
  24263 */
  24264 
  24265 function(hljs) {
  24266   return {
  24267     case_insensitive: true,
  24268     contains: [
  24269       hljs.HASH_COMMENT_MODE,
  24270       // version of format and total amount of testcases
  24271       {
  24272         className: 'meta',
  24273         variants: [
  24274           { begin: '^TAP version (\\d+)$' },
  24275           { begin: '^1\\.\\.(\\d+)$' }
  24276         ],
  24277       },
  24278       // YAML block
  24279       {
  24280         begin: '(\s+)?---$', end: '\\.\\.\\.$',
  24281         subLanguage: 'yaml',
  24282         relevance: 0
  24283       },
  24284 	  // testcase number
  24285       {
  24286         className: 'number',
  24287         begin: ' (\\d+) '
  24288       },
  24289 	  // testcase status and description
  24290       {
  24291         className: 'symbol',
  24292         variants: [
  24293           { begin: '^ok' },
  24294           { begin: '^not ok' }
  24295         ],
  24296       },
  24297     ]
  24298   };
  24299 }
  24300 },{name:"tcl",create:/*
  24301 Language: Tcl
  24302 Author: Radek Liska <radekliska@gmail.com>
  24303 */
  24304 
  24305 function(hljs) {
  24306   return {
  24307     aliases: ['tk'],
  24308     keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +
  24309       'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +
  24310       'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +
  24311       'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +
  24312       'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +
  24313       'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+
  24314       'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+
  24315       'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+
  24316       'return safe scan seek set socket source split string subst switch tcl_endOfWord '+
  24317       'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+
  24318       'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+
  24319       'uplevel upvar variable vwait while',
  24320     contains: [
  24321       hljs.COMMENT(';[ \\t]*#', '$'),
  24322       hljs.COMMENT('^[ \\t]*#', '$'),
  24323       {
  24324         beginKeywords: 'proc',
  24325         end: '[\\{]',
  24326         excludeEnd: true,
  24327         contains: [
  24328           {
  24329             className: 'title',
  24330             begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
  24331             end: '[ \\t\\n\\r]',
  24332             endsWithParent: true,
  24333             excludeEnd: true
  24334           }
  24335         ]
  24336       },
  24337       {
  24338         excludeEnd: true,
  24339         variants: [
  24340           {
  24341             begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)',
  24342             end: '[^a-zA-Z0-9_\\}\\$]'
  24343           },
  24344           {
  24345             begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
  24346             end: '(\\))?[^a-zA-Z0-9_\\}\\$]'
  24347           }
  24348         ]
  24349       },
  24350       {
  24351         className: 'string',
  24352         contains: [hljs.BACKSLASH_ESCAPE],
  24353         variants: [
  24354           hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
  24355         ]
  24356       },
  24357       {
  24358         className: 'number',
  24359         variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
  24360       }
  24361     ]
  24362   }
  24363 }
  24364 },{name:"tex",create:/*
  24365 Language: TeX
  24366 Author: Vladimir Moskva <vladmos@gmail.com>
  24367 Website: http://fulc.ru/
  24368 Category: markup
  24369 */
  24370 
  24371 function(hljs) {
  24372   var COMMAND = {
  24373     className: 'tag',
  24374     begin: /\\/,
  24375     relevance: 0,
  24376     contains: [
  24377       {
  24378         className: 'name',
  24379         variants: [
  24380           {begin: /[a-zA-Z\u0430-\u044f\u0410-\u042f]+[*]?/},
  24381           {begin: /[^a-zA-Z\u0430-\u044f\u0410-\u042f0-9]/}
  24382         ],
  24383         starts: {
  24384           endsWithParent: true,
  24385           relevance: 0,
  24386           contains: [
  24387             {
  24388               className: 'string', // because it looks like attributes in HTML tags
  24389               variants: [
  24390                 {begin: /\[/, end: /\]/},
  24391                 {begin: /\{/, end: /\}/}
  24392               ]
  24393             },
  24394             {
  24395               begin: /\s*=\s*/, endsWithParent: true,
  24396               relevance: 0,
  24397               contains: [
  24398                 {
  24399                   className: 'number',
  24400                   begin: /-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/
  24401                 }
  24402               ]
  24403             }
  24404           ]
  24405         }
  24406       }
  24407     ]
  24408   };
  24409 
  24410   return {
  24411     contains: [
  24412       COMMAND,
  24413       {
  24414         className: 'formula',
  24415         contains: [COMMAND],
  24416         relevance: 0,
  24417         variants: [
  24418           {begin: /\$\$/, end: /\$\$/},
  24419           {begin: /\$/, end: /\$/}
  24420         ]
  24421       },
  24422       hljs.COMMENT(
  24423         '%',
  24424         '$',
  24425         {
  24426           relevance: 0
  24427         }
  24428       )
  24429     ]
  24430   };
  24431 }
  24432 },{name:"thrift",create:/*
  24433 Language: Thrift
  24434 Author: Oleg Efimov <efimovov@gmail.com>
  24435 Description: Thrift message definition format
  24436 Category: protocols
  24437 */
  24438 
  24439 function(hljs) {
  24440   var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';
  24441   return {
  24442     keywords: {
  24443       keyword:
  24444         'namespace const typedef struct enum service exception void oneway set list map required optional',
  24445       built_in:
  24446         BUILT_IN_TYPES,
  24447       literal:
  24448         'true false'
  24449     },
  24450     contains: [
  24451       hljs.QUOTE_STRING_MODE,
  24452       hljs.NUMBER_MODE,
  24453       hljs.C_LINE_COMMENT_MODE,
  24454       hljs.C_BLOCK_COMMENT_MODE,
  24455       {
  24456         className: 'class',
  24457         beginKeywords: 'struct enum service exception', end: /\{/,
  24458         illegal: /\n/,
  24459         contains: [
  24460           hljs.inherit(hljs.TITLE_MODE, {
  24461             starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
  24462           })
  24463         ]
  24464       },
  24465       {
  24466         begin: '\\b(set|list|map)\\s*<', end: '>',
  24467         keywords: BUILT_IN_TYPES,
  24468         contains: ['self']
  24469       }
  24470     ]
  24471   };
  24472 }
  24473 },{name:"tp",create:/*
  24474 Language: TP
  24475 Author: Jay Strybis <jay.strybis@gmail.com>
  24476 Description: FANUC TP programming language (TPP).
  24477 */
  24478 
  24479 
  24480 function(hljs) {
  24481   var TPID = {
  24482     className: 'number',
  24483     begin: '[1-9][0-9]*', /* no leading zeros */
  24484     relevance: 0
  24485   };
  24486   var TPLABEL = {
  24487     className: 'symbol',
  24488     begin: ':[^\\]]+'
  24489   };
  24490   var TPDATA = {
  24491     className: 'built_in',
  24492     begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' +
  24493     'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]',
  24494     contains: [
  24495       'self',
  24496       TPID,
  24497       TPLABEL
  24498     ]
  24499   };
  24500   var TPIO = {
  24501     className: 'built_in',
  24502     begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]',
  24503     contains: [
  24504       'self',
  24505       TPID,
  24506       hljs.QUOTE_STRING_MODE, /* for pos section at bottom */
  24507       TPLABEL
  24508     ]
  24509   };
  24510 
  24511   return {
  24512     keywords: {
  24513       keyword:
  24514         'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +
  24515         'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +
  24516         'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +
  24517         'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +
  24518         'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +
  24519         'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',
  24520       literal:
  24521         'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'
  24522     },
  24523     contains: [
  24524       TPDATA,
  24525       TPIO,
  24526       {
  24527         className: 'keyword',
  24528         begin: '/(PROG|ATTR|MN|POS|END)\\b'
  24529       },
  24530       {
  24531         /* this is for cases like ,CALL */
  24532         className: 'keyword',
  24533         begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
  24534       },
  24535       {
  24536         /* this is for cases like CNT100 where the default lexemes do not
  24537          * separate the keyword and the number */
  24538         className: 'keyword',
  24539         begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
  24540       },
  24541       {
  24542         /* to catch numbers that do not have a word boundary on the left */
  24543         className: 'number',
  24544         begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
  24545         relevance: 0
  24546       },
  24547       hljs.COMMENT('//', '[;$]'),
  24548       hljs.COMMENT('!', '[;$]'),
  24549       hljs.COMMENT('--eg:', '$'),
  24550       hljs.QUOTE_STRING_MODE,
  24551       {
  24552         className: 'string',
  24553         begin: '\'', end: '\''
  24554       },
  24555       hljs.C_NUMBER_MODE,
  24556       {
  24557         className: 'variable',
  24558         begin: '\\$[A-Za-z0-9_]+'
  24559       }
  24560     ]
  24561   };
  24562 }
  24563 },{name:"twig",create:/*
  24564 Language: Twig
  24565 Requires: xml.js
  24566 Author: Luke Holder <lukemh@gmail.com>
  24567 Description: Twig is a templating language for PHP
  24568 Category: template
  24569 */
  24570 
  24571 function(hljs) {
  24572   var PARAMS = {
  24573     className: 'params',
  24574     begin: '\\(', end: '\\)'
  24575   };
  24576 
  24577   var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +
  24578                   'max min parent random range source template_from_string';
  24579 
  24580   var FUNCTIONS = {
  24581     beginKeywords: FUNCTION_NAMES,
  24582     keywords: {name: FUNCTION_NAMES},
  24583     relevance: 0,
  24584     contains: [
  24585       PARAMS
  24586     ]
  24587   };
  24588 
  24589   var FILTER = {
  24590     begin: /\|[A-Za-z_]+:?/,
  24591     keywords:
  24592       'abs batch capitalize convert_encoding date date_modify default ' +
  24593       'escape first format join json_encode keys last length lower ' +
  24594       'merge nl2br number_format raw replace reverse round slice sort split ' +
  24595       'striptags title trim upper url_encode',
  24596     contains: [
  24597       FUNCTIONS
  24598     ]
  24599   };
  24600 
  24601   var TAGS = 'autoescape block do embed extends filter flush for ' +
  24602     'if import include macro sandbox set spaceless use verbatim';
  24603 
  24604   TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');
  24605 
  24606   return {
  24607     aliases: ['craftcms'],
  24608     case_insensitive: true,
  24609     subLanguage: 'xml',
  24610     contains: [
  24611       hljs.COMMENT(/\{#/, /#}/),
  24612       {
  24613         className: 'template-tag',
  24614         begin: /\{%/, end: /%}/,
  24615         contains: [
  24616           {
  24617             className: 'name',
  24618             begin: /\w+/,
  24619             keywords: TAGS,
  24620             starts: {
  24621               endsWithParent: true,
  24622               contains: [FILTER, FUNCTIONS],
  24623               relevance: 0
  24624             }
  24625           }
  24626         ]
  24627       },
  24628       {
  24629         className: 'template-variable',
  24630         begin: /\{\{/, end: /}}/,
  24631         contains: ['self', FILTER, FUNCTIONS]
  24632       }
  24633     ]
  24634   };
  24635 }
  24636 },{name:"typescript",create:/*
  24637 Language: TypeScript
  24638 Author: Panu Horsmalahti <panu.horsmalahti@iki.fi>
  24639 Contributors: Ike Ku <dempfi@yahoo.com>
  24640 Description: TypeScript is a strict superset of JavaScript
  24641 Category: scripting
  24642 */
  24643 
  24644 function(hljs) {
  24645   var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
  24646   var KEYWORDS = {
  24647     keyword:
  24648       'in if for while finally var new function do return void else break catch ' +
  24649       'instanceof with throw case default try this switch continue typeof delete ' +
  24650       'let yield const class public private protected get set super ' +
  24651       'static implements enum export import declare type namespace abstract ' +
  24652       'as from extends async await',
  24653     literal:
  24654       'true false null undefined NaN Infinity',
  24655     built_in:
  24656       'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
  24657       'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
  24658       'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
  24659       'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
  24660       'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
  24661       'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
  24662       'module console window document any number boolean string void Promise'
  24663   };
  24664 
  24665   var DECORATOR = {
  24666     className: 'meta',
  24667     begin: '@' + JS_IDENT_RE,
  24668   };
  24669 
  24670   var ARGS =
  24671   {
  24672     begin: '\\(',
  24673     end: /\)/,
  24674     keywords: KEYWORDS,
  24675     contains: [
  24676       'self',
  24677       hljs.QUOTE_STRING_MODE,
  24678       hljs.APOS_STRING_MODE,
  24679       hljs.NUMBER_MODE
  24680     ]
  24681   };
  24682 
  24683   var PARAMS = {
  24684     className: 'params',
  24685     begin: /\(/, end: /\)/,
  24686     excludeBegin: true,
  24687     excludeEnd: true,
  24688     keywords: KEYWORDS,
  24689     contains: [
  24690       hljs.C_LINE_COMMENT_MODE,
  24691       hljs.C_BLOCK_COMMENT_MODE,
  24692       DECORATOR,
  24693       ARGS
  24694     ]
  24695   };
  24696   var NUMBER = {
  24697     className: 'number',
  24698     variants: [
  24699       { begin: '\\b(0[bB][01]+)' },
  24700       { begin: '\\b(0[oO][0-7]+)' },
  24701       { begin: hljs.C_NUMBER_RE }
  24702     ],
  24703     relevance: 0
  24704   };
  24705   var SUBST = {
  24706     className: 'subst',
  24707     begin: '\\$\\{', end: '\\}',
  24708     keywords: KEYWORDS,
  24709     contains: []  // defined later
  24710   };
  24711   var HTML_TEMPLATE = {
  24712     begin: 'html`', end: '',
  24713     starts: {
  24714       end: '`', returnEnd: false,
  24715       contains: [
  24716         hljs.BACKSLASH_ESCAPE,
  24717         SUBST
  24718       ],
  24719       subLanguage: 'xml',
  24720     }
  24721   };
  24722   var CSS_TEMPLATE = {
  24723     begin: 'css`', end: '',
  24724     starts: {
  24725       end: '`', returnEnd: false,
  24726       contains: [
  24727         hljs.BACKSLASH_ESCAPE,
  24728         SUBST
  24729       ],
  24730       subLanguage: 'css',
  24731     }
  24732   };
  24733   var TEMPLATE_STRING = {
  24734     className: 'string',
  24735     begin: '`', end: '`',
  24736     contains: [
  24737       hljs.BACKSLASH_ESCAPE,
  24738       SUBST
  24739     ]
  24740   };
  24741   SUBST.contains = [
  24742     hljs.APOS_STRING_MODE,
  24743     hljs.QUOTE_STRING_MODE,
  24744     HTML_TEMPLATE,
  24745     CSS_TEMPLATE,
  24746     TEMPLATE_STRING,
  24747     NUMBER,
  24748     hljs.REGEXP_MODE
  24749   ];
  24750 
  24751 
  24752 
  24753   return {
  24754     aliases: ['ts'],
  24755     keywords: KEYWORDS,
  24756     contains: [
  24757       {
  24758         className: 'meta',
  24759         begin: /^\s*['"]use strict['"]/
  24760       },
  24761       hljs.APOS_STRING_MODE,
  24762       hljs.QUOTE_STRING_MODE,
  24763       HTML_TEMPLATE,
  24764       CSS_TEMPLATE,
  24765       TEMPLATE_STRING,
  24766       hljs.C_LINE_COMMENT_MODE,
  24767       hljs.C_BLOCK_COMMENT_MODE,
  24768       NUMBER,
  24769       { // "value" container
  24770         begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
  24771         keywords: 'return throw case',
  24772         contains: [
  24773           hljs.C_LINE_COMMENT_MODE,
  24774           hljs.C_BLOCK_COMMENT_MODE,
  24775           hljs.REGEXP_MODE,
  24776           {
  24777             className: 'function',
  24778             begin: '(\\(.*?\\)|' + hljs.IDENT_RE + ')\\s*=>', returnBegin: true,
  24779             end: '\\s*=>',
  24780             contains: [
  24781               {
  24782                 className: 'params',
  24783                 variants: [
  24784                   {
  24785                     begin: hljs.IDENT_RE
  24786                   },
  24787                   {
  24788                     begin: /\(\s*\)/,
  24789                   },
  24790                   {
  24791                     begin: /\(/, end: /\)/,
  24792                     excludeBegin: true, excludeEnd: true,
  24793                     keywords: KEYWORDS,
  24794                     contains: [
  24795                       'self',
  24796                       hljs.C_LINE_COMMENT_MODE,
  24797                       hljs.C_BLOCK_COMMENT_MODE
  24798                     ]
  24799                   }
  24800                 ]
  24801               }
  24802             ]
  24803           }
  24804         ],
  24805         relevance: 0
  24806       },
  24807       {
  24808         className: 'function',
  24809         begin: 'function', end: /[\{;]/, excludeEnd: true,
  24810         keywords: KEYWORDS,
  24811         contains: [
  24812           'self',
  24813           hljs.inherit(hljs.TITLE_MODE, { begin: JS_IDENT_RE }),
  24814           PARAMS
  24815         ],
  24816         illegal: /%/,
  24817         relevance: 0 // () => {} is more typical in TypeScript
  24818       },
  24819       {
  24820         beginKeywords: 'constructor', end: /\{/, excludeEnd: true,
  24821         contains: [
  24822           'self',
  24823           PARAMS
  24824         ]
  24825       },
  24826       { // prevent references like module.id from being higlighted as module definitions
  24827         begin: /module\./,
  24828         keywords: { built_in: 'module' },
  24829         relevance: 0
  24830       },
  24831       {
  24832         beginKeywords: 'module', end: /\{/, excludeEnd: true
  24833       },
  24834       {
  24835         beginKeywords: 'interface', end: /\{/, excludeEnd: true,
  24836         keywords: 'interface extends'
  24837       },
  24838       {
  24839         begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
  24840       },
  24841       {
  24842         begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
  24843       },
  24844       DECORATOR,
  24845       ARGS
  24846     ]
  24847   };
  24848 }
  24849 },{name:"vala",create:/*
  24850 Language: Vala
  24851 Author: Antono Vasiljev <antono.vasiljev@gmail.com>
  24852 Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
  24853 */
  24854 
  24855 function(hljs) {
  24856   return {
  24857     keywords: {
  24858       keyword:
  24859         // Value types
  24860         'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
  24861         'uint16 uint32 uint64 float double bool struct enum string void ' +
  24862         // Reference types
  24863         'weak unowned owned ' +
  24864         // Modifiers
  24865         'async signal static abstract interface override virtual delegate ' +
  24866         // Control Structures
  24867         'if while do for foreach else switch case break default return try catch ' +
  24868         // Visibility
  24869         'public private protected internal ' +
  24870         // Other
  24871         'using new this get set const stdout stdin stderr var',
  24872       built_in:
  24873         'DBus GLib CCode Gee Object Gtk Posix',
  24874       literal:
  24875         'false true null'
  24876     },
  24877     contains: [
  24878       {
  24879         className: 'class',
  24880         beginKeywords: 'class interface namespace', end: '{', excludeEnd: true,
  24881         illegal: '[^,:\\n\\s\\.]',
  24882         contains: [
  24883           hljs.UNDERSCORE_TITLE_MODE
  24884         ]
  24885       },
  24886       hljs.C_LINE_COMMENT_MODE,
  24887       hljs.C_BLOCK_COMMENT_MODE,
  24888       {
  24889         className: 'string',
  24890         begin: '"""', end: '"""',
  24891         relevance: 5
  24892       },
  24893       hljs.APOS_STRING_MODE,
  24894       hljs.QUOTE_STRING_MODE,
  24895       hljs.C_NUMBER_MODE,
  24896       {
  24897         className: 'meta',
  24898         begin: '^#', end: '$',
  24899         relevance: 2
  24900       }
  24901     ]
  24902   };
  24903 }
  24904 },{name:"vbnet",create:/*
  24905 Language: VB.NET
  24906 Author: Poren Chiang <ren.chiang@gmail.com>
  24907 */
  24908 
  24909 function(hljs) {
  24910   return {
  24911     aliases: ['vb'],
  24912     case_insensitive: true,
  24913     keywords: {
  24914       keyword:
  24915         'addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval ' + /* a-b */
  24916         'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */
  24917         'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */
  24918         'get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue ' + /* g-i */
  24919         'join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass ' + /* j-m */
  24920         'namespace narrowing new next not notinheritable notoverridable ' + /* n */
  24921         'of off on operator option optional or order orelse overloads overridable overrides ' + /* o */
  24922         'paramarray partial preserve private property protected public ' + /* p */
  24923         'raiseevent readonly redim rem removehandler resume return ' + /* r */
  24924         'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */
  24925         'take text then throw to try unicode until using when where while widening with withevents writeonly xor', /* t-x */
  24926       built_in:
  24927         'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' +  /* b-c */
  24928         'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */
  24929         'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */
  24930       literal:
  24931         'true false nothing'
  24932     },
  24933     illegal: '//|{|}|endif|gosub|variant|wend|^\\$ ', /* reserved deprecated keywords */
  24934     contains: [
  24935       hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
  24936       hljs.COMMENT(
  24937         '\'',
  24938         '$',
  24939         {
  24940           returnBegin: true,
  24941           contains: [
  24942             {
  24943               className: 'doctag',
  24944               begin: '\'\'\'|<!--|-->',
  24945               contains: [hljs.PHRASAL_WORDS_MODE]
  24946             },
  24947             {
  24948               className: 'doctag',
  24949               begin: '</?', end: '>',
  24950               contains: [hljs.PHRASAL_WORDS_MODE]
  24951             }
  24952           ]
  24953         }
  24954       ),
  24955       hljs.C_NUMBER_MODE,
  24956       {
  24957         className: 'meta',
  24958         begin: '#', end: '$',
  24959         keywords: {'meta-keyword': 'if else elseif end region externalsource'}
  24960       }
  24961     ]
  24962   };
  24963 }
  24964 },{name:"vbscript-html",create:/*
  24965 Language: VBScript in HTML
  24966 Requires: xml.js, vbscript.js
  24967 Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
  24968 Description: "Bridge" language defining fragments of VBScript in HTML within <% .. %>
  24969 Category: scripting
  24970 */
  24971 
  24972 function(hljs) {
  24973   return {
  24974     subLanguage: 'xml',
  24975     contains: [
  24976       {
  24977         begin: '<%', end: '%>',
  24978         subLanguage: 'vbscript'
  24979       }
  24980     ]
  24981   };
  24982 }
  24983 },{name:"vbscript",create:/*
  24984 Language: VBScript
  24985 Author: Nikita Ledyaev <lenikita@yandex.ru>
  24986 Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
  24987 Category: scripting
  24988 */
  24989 
  24990 function(hljs) {
  24991   return {
  24992     aliases: ['vbs'],
  24993     case_insensitive: true,
  24994     keywords: {
  24995       keyword:
  24996         'call class const dim do loop erase execute executeglobal exit for each next function ' +
  24997         'if then else on error option explicit new private property let get public randomize ' +
  24998         'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
  24999         'class_initialize class_terminate default preserve in me byval byref step resume goto',
  25000       built_in:
  25001         'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
  25002         'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
  25003         'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
  25004         'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
  25005         'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
  25006         'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
  25007         'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
  25008         'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
  25009         'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
  25010         'chrw regexp server response request cstr err',
  25011       literal:
  25012         'true false null nothing empty'
  25013     },
  25014     illegal: '//',
  25015     contains: [
  25016       hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
  25017       hljs.COMMENT(
  25018         /'/,
  25019         /$/,
  25020         {
  25021           relevance: 0
  25022         }
  25023       ),
  25024       hljs.C_NUMBER_MODE
  25025     ]
  25026   };
  25027 }
  25028 },{name:"verilog",create:/*
  25029 Language: Verilog
  25030 Author: Jon Evans <jon@craftyjon.com>
  25031 Contributors: Boone Severson <boone.severson@gmail.com>
  25032 Description: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter supports Verilog and SystemVerilog through IEEE 1800-2012.
  25033 */
  25034 
  25035 function(hljs) {
  25036   var SV_KEYWORDS = {
  25037     keyword:
  25038       'accept_on alias always always_comb always_ff always_latch and assert assign ' +
  25039       'assume automatic before begin bind bins binsof bit break buf|0 bufif0 bufif1 ' +
  25040       'byte case casex casez cell chandle checker class clocking cmos config const ' +
  25041       'constraint context continue cover covergroup coverpoint cross deassign default ' +
  25042       'defparam design disable dist do edge else end endcase endchecker endclass ' +
  25043       'endclocking endconfig endfunction endgenerate endgroup endinterface endmodule ' +
  25044       'endpackage endprimitive endprogram endproperty endspecify endsequence endtable ' +
  25045       'endtask enum event eventually expect export extends extern final first_match for ' +
  25046       'force foreach forever fork forkjoin function generate|5 genvar global highz0 highz1 ' +
  25047       'if iff ifnone ignore_bins illegal_bins implements implies import incdir include ' +
  25048       'initial inout input inside instance int integer interconnect interface intersect ' +
  25049       'join join_any join_none large let liblist library local localparam logic longint ' +
  25050       'macromodule matches medium modport module nand negedge nettype new nexttime nmos ' +
  25051       'nor noshowcancelled not notif0 notif1 or output package packed parameter pmos ' +
  25052       'posedge primitive priority program property protected pull0 pull1 pulldown pullup ' +
  25053       'pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos ' +
  25054       'real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran ' +
  25055       'rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared ' +
  25056       'sequence shortint shortreal showcancelled signed small soft solve specify specparam ' +
  25057       'static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on ' +
  25058       'sync_reject_on table tagged task this throughout time timeprecision timeunit tran ' +
  25059       'tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 ' +
  25060       'unsigned until until_with untyped use uwire var vectored virtual void wait wait_order ' +
  25061       'wand weak weak0 weak1 while wildcard wire with within wor xnor xor',
  25062     literal:
  25063       'null',
  25064     built_in:
  25065       '$finish $stop $exit $fatal $error $warning $info $realtime $time $printtimescale ' +
  25066       '$bitstoreal $bitstoshortreal $itor $signed $cast $bits $stime $timeformat ' +
  25067       '$realtobits $shortrealtobits $rtoi $unsigned $asserton $assertkill $assertpasson ' +
  25068       '$assertfailon $assertnonvacuouson $assertoff $assertcontrol $assertpassoff ' +
  25069       '$assertfailoff $assertvacuousoff $isunbounded $sampled $fell $changed $past_gclk ' +
  25070       '$fell_gclk $changed_gclk $rising_gclk $steady_gclk $coverage_control ' +
  25071       '$coverage_get $coverage_save $set_coverage_db_name $rose $stable $past ' +
  25072       '$rose_gclk $stable_gclk $future_gclk $falling_gclk $changing_gclk $display ' +
  25073       '$coverage_get_max $coverage_merge $get_coverage $load_coverage_db $typename ' +
  25074       '$unpacked_dimensions $left $low $increment $clog2 $ln $log10 $exp $sqrt $pow ' +
  25075       '$floor $ceil $sin $cos $tan $countbits $onehot $isunknown $fatal $warning ' +
  25076       '$dimensions $right $high $size $asin $acos $atan $atan2 $hypot $sinh $cosh ' +
  25077       '$tanh $asinh $acosh $atanh $countones $onehot0 $error $info $random ' +
  25078       '$dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson ' +
  25079       '$dist_t $dist_uniform $q_initialize $q_remove $q_exam $async$and$array ' +
  25080       '$async$nand$array $async$or$array $async$nor$array $sync$and$array ' +
  25081       '$sync$nand$array $sync$or$array $sync$nor$array $q_add $q_full $psprintf ' +
  25082       '$async$and$plane $async$nand$plane $async$or$plane $async$nor$plane ' +
  25083       '$sync$and$plane $sync$nand$plane $sync$or$plane $sync$nor$plane $system ' +
  25084       '$display $displayb $displayh $displayo $strobe $strobeb $strobeh $strobeo ' +
  25085       '$write $readmemb $readmemh $writememh $value$plusargs ' +
  25086       '$dumpvars $dumpon $dumplimit $dumpports $dumpportson $dumpportslimit ' +
  25087       '$writeb $writeh $writeo $monitor $monitorb $monitorh $monitoro $writememb ' +
  25088       '$dumpfile $dumpoff $dumpall $dumpflush $dumpportsoff $dumpportsall ' +
  25089       '$dumpportsflush $fclose $fdisplay $fdisplayb $fdisplayh $fdisplayo ' +
  25090       '$fstrobe $fstrobeb $fstrobeh $fstrobeo $swrite $swriteb $swriteh ' +
  25091       '$swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb ' +
  25092       '$fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat ' +
  25093       '$sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror'
  25094     };
  25095   return {
  25096     aliases: ['v', 'sv', 'svh'],
  25097     case_insensitive: false,
  25098     keywords: SV_KEYWORDS, lexemes: /[\w\$]+/,
  25099     contains: [
  25100       hljs.C_BLOCK_COMMENT_MODE,
  25101       hljs.C_LINE_COMMENT_MODE,
  25102       hljs.QUOTE_STRING_MODE,
  25103       {
  25104         className: 'number',
  25105         contains: [hljs.BACKSLASH_ESCAPE],
  25106         variants: [
  25107           {begin: '\\b((\\d+\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'},
  25108           {begin: '\\B((\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'},
  25109           {begin: '\\b([0-9_])+', relevance: 0}
  25110         ]
  25111       },
  25112       /* parameters to instances */
  25113       {
  25114         className: 'variable',
  25115         variants: [
  25116           {begin: '#\\((?!parameter).+\\)'},
  25117           {begin: '\\.\\w+', relevance: 0},
  25118         ]
  25119       },
  25120       {
  25121         className: 'meta',
  25122         begin: '`', end: '$',
  25123         keywords: {'meta-keyword': 'define __FILE__ ' +
  25124           '__LINE__ begin_keywords celldefine default_nettype define ' +
  25125           'else elsif end_keywords endcelldefine endif ifdef ifndef ' +
  25126           'include line nounconnected_drive pragma resetall timescale ' +
  25127           'unconnected_drive undef undefineall'},
  25128         relevance: 0
  25129       }
  25130     ]
  25131   }; // return
  25132 }
  25133 },{name:"vhdl",create:/*
  25134 Language: VHDL
  25135 Author: Igor Kalnitsky <igor@kalnitsky.org>
  25136 Contributors: Daniel C.K. Kho <daniel.kho@tauhop.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>
  25137 Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
  25138 */
  25139 
  25140 function(hljs) {
  25141   // Regular expression for VHDL numeric literals.
  25142 
  25143   // Decimal literal:
  25144   var INTEGER_RE = '\\d(_|\\d)*';
  25145   var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
  25146   var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
  25147   // Based literal:
  25148   var BASED_INTEGER_RE = '\\w+';
  25149   var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
  25150 
  25151   var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
  25152 
  25153   return {
  25154     case_insensitive: true,
  25155     keywords: {
  25156       keyword:
  25157         'abs access after alias all and architecture array assert assume assume_guarantee attribute ' +
  25158         'begin block body buffer bus case component configuration constant context cover disconnect ' +
  25159         'downto default else elsif end entity exit fairness file for force function generate ' +
  25160         'generic group guarded if impure in inertial inout is label library linkage literal ' +
  25161         'loop map mod nand new next nor not null of on open or others out package parameter port ' +
  25162         'postponed procedure process property protected pure range record register reject ' +
  25163         'release rem report restrict restrict_guarantee return rol ror select sequence ' +
  25164         'severity shared signal sla sll sra srl strong subtype then to transport type ' +
  25165         'unaffected units until use variable view vmode vprop vunit wait when while with xnor xor',
  25166       built_in:
  25167         'boolean bit character ' +
  25168         'integer time delay_length natural positive ' +
  25169         'string bit_vector file_open_kind file_open_status ' +
  25170         'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
  25171         'std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed ' +
  25172         'real_vector time_vector',
  25173       literal:
  25174         'false true note warning error failure ' +  // severity_level
  25175         'line text side width'                      // textio
  25176     },
  25177     illegal: '{',
  25178     contains: [
  25179       hljs.C_BLOCK_COMMENT_MODE,      // VHDL-2008 block commenting.
  25180       hljs.COMMENT('--', '$'),
  25181       hljs.QUOTE_STRING_MODE,
  25182       {
  25183         className: 'number',
  25184         begin: NUMBER_RE,
  25185         relevance: 0
  25186       },
  25187       {
  25188         className: 'string',
  25189         begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
  25190         contains: [hljs.BACKSLASH_ESCAPE]
  25191       },
  25192       {
  25193         className: 'symbol',
  25194         begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
  25195         contains: [hljs.BACKSLASH_ESCAPE]
  25196       }
  25197     ]
  25198   };
  25199 }
  25200 },{name:"vim",create:/*
  25201 Language: Vim Script
  25202 Author: Jun Yang <yangjvn@126.com>
  25203 Description: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/
  25204 Category: scripting
  25205 */
  25206 
  25207 function(hljs) {
  25208   return {
  25209     lexemes: /[!#@\w]+/,
  25210     keywords: {
  25211       keyword:
  25212         // express version except: ! & * < = > !! # @ @@
  25213         'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope '+
  25214         'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc '+
  25215         'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 '+
  25216         'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor '+
  25217         'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew '+
  25218         'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ '+
  25219         // full version
  25220         'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload '+
  25221         'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap '+
  25222         'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor '+
  25223         'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap '+
  25224         'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview '+
  25225         'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap '+
  25226         'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext '+
  25227         'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding '+
  25228         'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace '+
  25229         'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious '+'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew '+
  25230         'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',
  25231       built_in: //built in func
  25232         'synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv ' +
  25233         'complete_check add getwinposx getqflist getwinposy screencol ' +
  25234         'clearmatches empty extend getcmdpos mzeval garbagecollect setreg ' +
  25235         'ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable ' +
  25236         'shiftwidth max sinh isdirectory synID system inputrestore winline ' +
  25237         'atan visualmode inputlist tabpagewinnr round getregtype mapcheck ' +
  25238         'hasmapto histdel argidx findfile sha256 exists toupper getcmdline ' +
  25239         'taglist string getmatches bufnr strftime winwidth bufexists ' +
  25240         'strtrans tabpagebuflist setcmdpos remote_read printf setloclist ' +
  25241         'getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval ' +
  25242         'resolve libcallnr foldclosedend reverse filter has_key bufname ' +
  25243         'str2float strlen setline getcharmod setbufvar index searchpos ' +
  25244         'shellescape undofile foldclosed setqflist buflisted strchars str2nr ' +
  25245         'virtcol floor remove undotree remote_expr winheight gettabwinvar ' +
  25246         'reltime cursor tabpagenr finddir localtime acos getloclist search ' +
  25247         'tanh matchend rename gettabvar strdisplaywidth type abs py3eval ' +
  25248         'setwinvar tolower wildmenumode log10 spellsuggest bufloaded ' +
  25249         'synconcealed nextnonblank server2client complete settabwinvar ' +
  25250         'executable input wincol setmatches getftype hlID inputsave ' +
  25251         'searchpair or screenrow line settabvar histadd deepcopy strpart ' +
  25252         'remote_peek and eval getftime submatch screenchar winsaveview ' +
  25253         'matchadd mkdir screenattr getfontname libcall reltimestr getfsize ' +
  25254         'winnr invert pow getbufline byte2line soundfold repeat fnameescape ' +
  25255         'tagfiles sin strwidth spellbadword trunc maparg log lispindent ' +
  25256         'hostname setpos globpath remote_foreground getchar synIDattr ' +
  25257         'fnamemodify cscope_connection stridx winbufnr indent min ' +
  25258         'complete_add nr2char searchpairpos inputdialog values matchlist ' +
  25259         'items hlexists strridx browsedir expand fmod pathshorten line2byte ' +
  25260         'argc count getwinvar glob foldtextresult getreg foreground cosh ' +
  25261         'matchdelete has char2nr simplify histget searchdecl iconv ' +
  25262         'winrestcmd pumvisible writefile foldlevel haslocaldir keys cos ' +
  25263         'matchstr foldtext histnr tan tempname getcwd byteidx getbufvar ' +
  25264         'islocked escape eventhandler remote_send serverlist winrestview ' +
  25265         'synstack pyeval prevnonblank readfile cindent filereadable changenr ' +
  25266         'exp'
  25267     },
  25268     illegal: /;/,
  25269     contains: [
  25270       hljs.NUMBER_MODE,
  25271       {
  25272         className: 'string',
  25273         begin: '\'', end: '\'',
  25274         illegal: '\\n'
  25275       },
  25276 
  25277       /*
  25278       A double quote can start either a string or a line comment. Strings are
  25279       ended before the end of a line by another double quote and can contain
  25280       escaped double-quotes and post-escaped line breaks.
  25281 
  25282       Also, any double quote at the beginning of a line is a comment but we
  25283       don't handle that properly at the moment: any double quote inside will
  25284       turn them into a string. Handling it properly will require a smarter
  25285       parser.
  25286       */
  25287       {
  25288         className: 'string',
  25289         begin: /"(\\"|\n\\|[^"\n])*"/
  25290       },
  25291       hljs.COMMENT('"', '$'),
  25292 
  25293       {
  25294         className: 'variable',
  25295         begin: /[bwtglsav]:[\w\d_]*/
  25296       },
  25297       {
  25298         className: 'function',
  25299         beginKeywords: 'function function!', end: '$',
  25300         relevance: 0,
  25301         contains: [
  25302           hljs.TITLE_MODE,
  25303           {
  25304             className: 'params',
  25305             begin: '\\(', end: '\\)'
  25306           }
  25307         ]
  25308       },
  25309       {
  25310         className: 'symbol',
  25311         begin: /<[\w-]+>/
  25312       }
  25313     ]
  25314   };
  25315 }
  25316 },{name:"x86asm",create:/*
  25317 Language: Intel x86 Assembly
  25318 Author: innocenat <innocenat@gmail.com>
  25319 Description: x86 assembly language using Intel's mnemonic and NASM syntax
  25320 Category: assembler
  25321 */
  25322 
  25323 function(hljs) {
  25324   return {
  25325     case_insensitive: true,
  25326     lexemes: '[.%]?' + hljs.IDENT_RE,
  25327     keywords: {
  25328       keyword:
  25329         'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +
  25330         'aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63',
  25331       built_in:
  25332         // Instruction pointer
  25333         'ip eip rip ' +
  25334         // 8-bit registers
  25335         'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +
  25336         // 16-bit registers
  25337         'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +
  25338         // 32-bit registers
  25339         'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +
  25340         // 64-bit registers
  25341         'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +
  25342         // Segment registers
  25343         'cs ds es fs gs ss ' +
  25344         // Floating point stack registers
  25345         'st st0 st1 st2 st3 st4 st5 st6 st7 ' +
  25346         // MMX Registers
  25347         'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +
  25348         // SSE registers
  25349         'xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7  xmm8  xmm9 xmm10  xmm11 xmm12 xmm13 xmm14 xmm15 ' +
  25350         'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +
  25351         // AVX registers
  25352         'ymm0  ymm1  ymm2  ymm3  ymm4  ymm5  ymm6  ymm7  ymm8  ymm9 ymm10  ymm11 ymm12 ymm13 ymm14 ymm15 ' +
  25353         'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +
  25354         // AVX-512F registers
  25355         'zmm0  zmm1  zmm2  zmm3  zmm4  zmm5  zmm6  zmm7  zmm8  zmm9 zmm10  zmm11 zmm12 zmm13 zmm14 zmm15 ' +
  25356         'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +
  25357         // AVX-512F mask registers
  25358         'k0 k1 k2 k3 k4 k5 k6 k7 ' +
  25359         // Bound (MPX) register
  25360         'bnd0 bnd1 bnd2 bnd3 ' +
  25361         // Special register
  25362         'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +
  25363         // NASM altreg package
  25364         'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +
  25365         'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +
  25366         'r0h r1h r2h r3h ' +
  25367         'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +
  25368 
  25369         'db dw dd dq dt ddq do dy dz ' +
  25370         'resb resw resd resq rest resdq reso resy resz ' +
  25371         'incbin equ times ' +
  25372         'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',
  25373 
  25374       meta:
  25375         '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +
  25376         '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +
  25377         '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +
  25378         '.nolist ' +
  25379         '__FILE__ __LINE__ __SECT__  __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +
  25380         '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__  __PASS__ struc endstruc istruc at iend ' +
  25381         'align alignb sectalign daz nodaz up down zero default option assume public ' +
  25382 
  25383         'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +
  25384         '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +
  25385         '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +
  25386         '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +
  25387         'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'
  25388     },
  25389     contains: [
  25390       hljs.COMMENT(
  25391         ';',
  25392         '$',
  25393         {
  25394           relevance: 0
  25395         }
  25396       ),
  25397       {
  25398         className: 'number',
  25399         variants: [
  25400           // Float number and x87 BCD
  25401           {
  25402             begin: '\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +
  25403                    '(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b',
  25404             relevance: 0
  25405           },
  25406 
  25407           // Hex number in $
  25408           { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 },
  25409 
  25410           // Number in H,D,T,Q,O,B,Y suffix
  25411           { begin: '\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b' },
  25412 
  25413           // Number in X,D,T,Q,O,B,Y prefix
  25414           { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'}
  25415         ]
  25416       },
  25417       // Double quote string
  25418       hljs.QUOTE_STRING_MODE,
  25419       {
  25420         className: 'string',
  25421         variants: [
  25422           // Single-quoted string
  25423           { begin: '\'', end: '[^\\\\]\'' },
  25424           // Backquoted string
  25425           { begin: '`', end: '[^\\\\]`' }
  25426         ],
  25427         relevance: 0
  25428       },
  25429       {
  25430         className: 'symbol',
  25431         variants: [
  25432           // Global label and local label
  25433           { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' },
  25434           // Macro-local label
  25435           { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' }
  25436         ],
  25437         relevance: 0
  25438       },
  25439       // Macro parameter
  25440       {
  25441         className: 'subst',
  25442         begin: '%[0-9]+',
  25443         relevance: 0
  25444       },
  25445       // Macro parameter
  25446       {
  25447         className: 'subst',
  25448         begin: '%!\S+',
  25449         relevance: 0
  25450       },
  25451       {
  25452         className: 'meta',
  25453         begin: /^\s*\.[\w_-]+/
  25454       }
  25455     ]
  25456   };
  25457 }
  25458 },{name:"xl",create:/*
  25459 Language: XL
  25460 Author: Christophe de Dinechin <christophe@taodyne.com>
  25461 Description: An extensible programming language, based on parse tree rewriting (http://xlr.sf.net)
  25462 */
  25463 
  25464 function(hljs) {
  25465   var BUILTIN_MODULES =
  25466     'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +
  25467     'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';
  25468 
  25469   var XL_KEYWORDS = {
  25470     keyword:
  25471       'if then else do while until for loop import with is as where when by data constant ' +
  25472       'integer real text name boolean symbol infix prefix postfix block tree',
  25473     literal:
  25474       'true false nil',
  25475     built_in:
  25476       'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +
  25477       'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +
  25478       'text_find text_replace contains page slide basic_slide title_slide ' +
  25479       'title subtitle fade_in fade_out fade_at clear_color color line_color ' +
  25480       'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +
  25481       'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +
  25482       'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +
  25483       'quad_to curve_to theme background contents locally time mouse_?x ' +
  25484       'mouse_?y mouse_buttons ' +
  25485       BUILTIN_MODULES
  25486   };
  25487 
  25488   var DOUBLE_QUOTE_TEXT = {
  25489     className: 'string',
  25490     begin: '"', end: '"', illegal: '\\n'
  25491   };
  25492   var SINGLE_QUOTE_TEXT = {
  25493     className: 'string',
  25494     begin: '\'', end: '\'', illegal: '\\n'
  25495   };
  25496   var LONG_TEXT = {
  25497     className: 'string',
  25498     begin: '<<', end: '>>'
  25499   };
  25500   var BASED_NUMBER = {
  25501     className: 'number',
  25502     begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
  25503   };
  25504   var IMPORT = {
  25505     beginKeywords: 'import', end: '$',
  25506     keywords: XL_KEYWORDS,
  25507     contains: [DOUBLE_QUOTE_TEXT]
  25508   };
  25509   var FUNCTION_DEFINITION = {
  25510     className: 'function',
  25511     begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/,
  25512     contains: [
  25513       hljs.inherit(hljs.TITLE_MODE, {starts: {
  25514         endsWithParent: true,
  25515         keywords: XL_KEYWORDS
  25516       }})
  25517     ]
  25518   };
  25519   return {
  25520     aliases: ['tao'],
  25521     lexemes: /[a-zA-Z][a-zA-Z0-9_?]*/,
  25522     keywords: XL_KEYWORDS,
  25523     contains: [
  25524     hljs.C_LINE_COMMENT_MODE,
  25525     hljs.C_BLOCK_COMMENT_MODE,
  25526     DOUBLE_QUOTE_TEXT,
  25527     SINGLE_QUOTE_TEXT,
  25528     LONG_TEXT,
  25529     FUNCTION_DEFINITION,
  25530     IMPORT,
  25531     BASED_NUMBER,
  25532     hljs.NUMBER_MODE
  25533     ]
  25534   };
  25535 }
  25536 },{name:"xml",create:/*
  25537 Language: HTML, XML
  25538 Category: common
  25539 */
  25540 
  25541 function(hljs) {
  25542   var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
  25543   var TAG_INTERNALS = {
  25544     endsWithParent: true,
  25545     illegal: /</,
  25546     relevance: 0,
  25547     contains: [
  25548       {
  25549         className: 'attr',
  25550         begin: XML_IDENT_RE,
  25551         relevance: 0
  25552       },
  25553       {
  25554         begin: /=\s*/,
  25555         relevance: 0,
  25556         contains: [
  25557           {
  25558             className: 'string',
  25559             endsParent: true,
  25560             variants: [
  25561               {begin: /"/, end: /"/},
  25562               {begin: /'/, end: /'/},
  25563               {begin: /[^\s"'=<>`]+/}
  25564             ]
  25565           }
  25566         ]
  25567       }
  25568     ]
  25569   };
  25570   return {
  25571     aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist', 'wsf'],
  25572     case_insensitive: true,
  25573     contains: [
  25574       {
  25575         className: 'meta',
  25576         begin: '<!DOCTYPE', end: '>',
  25577         relevance: 10,
  25578         contains: [{begin: '\\[', end: '\\]'}]
  25579       },
  25580       hljs.COMMENT(
  25581         '<!--',
  25582         '-->',
  25583         {
  25584           relevance: 10
  25585         }
  25586       ),
  25587       {
  25588         begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
  25589         relevance: 10
  25590       },
  25591       {
  25592         className: 'meta',
  25593         begin: /<\?xml/, end: /\?>/, relevance: 10
  25594       },
  25595       {
  25596         begin: /<\?(php)?/, end: /\?>/,
  25597         subLanguage: 'php',
  25598         contains: [
  25599           // We don't want the php closing tag ?> to close the PHP block when
  25600           // inside any of the following blocks:
  25601           {begin: '/\\*', end: '\\*/', skip: true},
  25602           {begin: 'b"', end: '"', skip: true},
  25603           {begin: 'b\'', end: '\'', skip: true},
  25604           hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null, className: null, contains: null, skip: true}),
  25605           hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null, className: null, contains: null, skip: true})
  25606         ]
  25607       },
  25608       {
  25609         className: 'tag',
  25610         /*
  25611         The lookahead pattern (?=...) ensures that 'begin' only matches
  25612         '<style' as a single word, followed by a whitespace or an
  25613         ending braket. The '$' is needed for the lexeme to be recognized
  25614         by hljs.subMode() that tests lexemes outside the stream.
  25615         */
  25616         begin: '<style(?=\\s|>|$)', end: '>',
  25617         keywords: {name: 'style'},
  25618         contains: [TAG_INTERNALS],
  25619         starts: {
  25620           end: '</style>', returnEnd: true,
  25621           subLanguage: ['css', 'xml']
  25622         }
  25623       },
  25624       {
  25625         className: 'tag',
  25626         // See the comment in the <style tag about the lookahead pattern
  25627         begin: '<script(?=\\s|>|$)', end: '>',
  25628         keywords: {name: 'script'},
  25629         contains: [TAG_INTERNALS],
  25630         starts: {
  25631           end: '\<\/script\>', returnEnd: true,
  25632           subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml', 'vbscript']
  25633         }
  25634       },
  25635       {
  25636         className: 'tag',
  25637         begin: '</?', end: '/?>',
  25638         contains: [
  25639           {
  25640             className: 'name', begin: /[^\/><\s]+/, relevance: 0
  25641           },
  25642           TAG_INTERNALS
  25643         ]
  25644       }
  25645     ]
  25646   };
  25647 }
  25648 },{name:"xquery",create:/*
  25649 Language: XQuery
  25650 Author: Dirk Kirsten <dk@basex.org>
  25651 Contributor: Duncan Paterson
  25652 Description: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)
  25653 Refactored to process xml constructor syntax and function-bodies. Added missing data-types, xpath operands, inbuilt functions, and query prologs
  25654 Category: functional
  25655 */
  25656 
  25657 function(hljs) {
  25658   // see https://www.w3.org/TR/xquery/#id-terminal-delimitation
  25659   var KEYWORDS = 'module schema namespace boundary-space preserve no-preserve strip default collation base-uri ordering context decimal-format decimal-separator copy-namespaces empty-sequence except exponent-separator external grouping-separator inherit no-inherit lax minus-sign per-mille percent schema-attribute schema-element strict unordered zero-digit ' +
  25660   'declare import option function validate variable ' +
  25661   'for at in let where order group by return if then else ' +
  25662   'tumbling sliding window start when only end previous next stable ' +
  25663   'ascending descending allowing empty greatest least some every satisfies switch case typeswitch try catch ' +
  25664   'and or to union intersect instance of treat as castable cast map array ' +
  25665   'delete insert into replace value rename copy modify update';
  25666 
  25667   // Node Types (sorted by inheritance)
  25668   // atomic types (sorted by inheritance)
  25669   var TYPE = 'item document-node node attribute document element comment namespace namespace-node processing-instruction text construction ' +
  25670   'xs:anyAtomicType xs:untypedAtomic xs:duration xs:time xs:decimal xs:float xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary xs:hexBinary xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string xs:normalizedString xs:token xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer xs:nonPositiveInteger xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger xs:unisignedLong xs:unsignedInt xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration xs:dayTimeDuration';
  25671 
  25672   var LITERAL = 'eq ne lt le gt ge is ' +
  25673     'self:: child:: descendant:: descendant-or-self:: attribute:: following:: following-sibling:: parent:: ancestor:: ancestor-or-self:: preceding:: preceding-sibling:: ' +
  25674     'NaN';
  25675 
  25676   // functions (TODO: find regex for op: without breaking build)
  25677   var BUILT_IN = {
  25678     className: 'built_in',
  25679     variants: [{
  25680       begin: /\barray\:/,
  25681       end: /(?:append|filter|flatten|fold\-(?:left|right)|for-each(?:\-pair)?|get|head|insert\-before|join|put|remove|reverse|size|sort|subarray|tail)\b/
  25682     }, {
  25683       begin: /\bmap\:/,
  25684       end: /(?:contains|entry|find|for\-each|get|keys|merge|put|remove|size)\b/
  25685     }, {
  25686       begin: /\bmath\:/,
  25687       end: /(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/
  25688     }, {
  25689       begin: /\bop\:/,
  25690       end: /\(/,
  25691       excludeEnd: true
  25692     }, {
  25693       begin: /\bfn\:/,
  25694       end: /\(/,
  25695       excludeEnd: true
  25696     },
  25697 // do not highlight inbuilt strings as variable or xml element names
  25698     {
  25699       begin: /[^<\/\$\:'"-]\b(?:abs|accumulator\-(?:after|before)|adjust\-(?:date(?:Time)?|time)\-to\-timezone|analyze\-string|apply|available\-(?:environment\-variables|system\-properties)|avg|base\-uri|boolean|ceiling|codepoints?\-(?:equal|to\-string)|collation\-key|collection|compare|concat|contains(?:\-token)?|copy\-of|count|current(?:\-)?(?:date(?:Time)?|time|group(?:ing\-key)?|output\-uri|merge\-(?:group|key))?data|dateTime|days?\-from\-(?:date(?:Time)?|duration)|deep\-equal|default\-(?:collation|language)|distinct\-values|document(?:\-uri)?|doc(?:\-available)?|element\-(?:available|with\-id)|empty|encode\-for\-uri|ends\-with|environment\-variable|error|escape\-html\-uri|exactly\-one|exists|false|filter|floor|fold\-(?:left|right)|for\-each(?:\-pair)?|format\-(?:date(?:Time)?|time|integer|number)|function\-(?:arity|available|lookup|name)|generate\-id|has\-children|head|hours\-from\-(?:dateTime|duration|time)|id(?:ref)?|implicit\-timezone|in\-scope\-prefixes|index\-of|innermost|insert\-before|iri\-to\-uri|json\-(?:doc|to\-xml)|key|lang|last|load\-xquery\-module|local\-name(?:\-from\-QName)?|(?:lower|upper)\-case|matches|max|minutes\-from\-(?:dateTime|duration|time)|min|months?\-from\-(?:date(?:Time)?|duration)|name(?:space\-uri\-?(?:for\-prefix|from\-QName)?)?|nilled|node\-name|normalize\-(?:space|unicode)|not|number|one\-or\-more|outermost|parse\-(?:ietf\-date|json)|path|position|(?:prefix\-from\-)?QName|random\-number\-generator|regex\-group|remove|replace|resolve\-(?:QName|uri)|reverse|root|round(?:\-half\-to\-even)?|seconds\-from\-(?:dateTime|duration|time)|snapshot|sort|starts\-with|static\-base\-uri|stream\-available|string\-?(?:join|length|to\-codepoints)?|subsequence|substring\-?(?:after|before)?|sum|system\-property|tail|timezone\-from\-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type\-available|unordered|unparsed\-(?:entity|text)?\-?(?:public\-id|uri|available|lines)?|uri\-collection|xml\-to\-json|years?\-from\-(?:date(?:Time)?|duration)|zero\-or\-one)\b/,
  25700     }, {
  25701       begin: /\blocal\:/,
  25702       end: /\(/,
  25703       excludeEnd: true
  25704     }, {
  25705       begin: /\bzip\:/,
  25706       end: /(?:zip\-file|(?:xml|html|text|binary)\-entry| (?:update\-)?entries)\b/
  25707     }, {
  25708       begin: /\b(?:util|db|functx|app|xdmp|xmldb)\:/,
  25709       end: /\(/,
  25710       excludeEnd: true
  25711     }
  25712   ]
  25713   };
  25714 
  25715   var TITLE = {
  25716     className: 'title',
  25717     begin: /\bxquery version "[13]\.[01]"\s?(?:encoding ".+")?/,
  25718     end: /;/
  25719   };
  25720 
  25721   var VAR = {
  25722     className: 'variable',
  25723     begin: /[\$][\w-:]+/
  25724   };
  25725 
  25726   var NUMBER = {
  25727     className: 'number',
  25728     begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
  25729     relevance: 0
  25730   };
  25731 
  25732   var STRING = {
  25733     className: 'string',
  25734     variants: [{
  25735         begin: /"/,
  25736         end: /"/,
  25737         contains: [{
  25738           begin: /""/,
  25739           relevance: 0
  25740         }]
  25741       },
  25742       {
  25743         begin: /'/,
  25744         end: /'/,
  25745         contains: [{
  25746           begin: /''/,
  25747           relevance: 0
  25748         }]
  25749       }
  25750     ]
  25751   };
  25752 
  25753   var ANNOTATION = {
  25754     className: 'meta',
  25755     begin: /%[\w-:]+/
  25756   };
  25757 
  25758   var COMMENT = {
  25759     className: 'comment',
  25760     begin: '\\(:',
  25761     end: ':\\)',
  25762     relevance: 10,
  25763     contains: [{
  25764       className: 'doctag',
  25765       begin: '@\\w+'
  25766     }]
  25767   };
  25768 
  25769   // see https://www.w3.org/TR/xquery/#id-computedConstructors
  25770   // mocha: computed_inbuilt
  25771   // see https://www.regexpal.com/?fam=99749
  25772   var COMPUTED = {
  25773     beginKeywords: 'element attribute comment document processing-instruction',
  25774     end: '{',
  25775     excludeEnd: true
  25776   };
  25777 
  25778   // mocha: direct_method
  25779     var DIRECT = {
  25780       begin: /<([\w\._:\-]+)((\s*.*)=('|").*('|"))?>/,
  25781       end: /(\/[\w\._:\-]+>)/,
  25782       subLanguage: 'xml',
  25783       contains: [{
  25784         begin: '{',
  25785         end: '}',
  25786         subLanguage: 'xquery'
  25787       }, 'self']
  25788     };
  25789 
  25790 
  25791   var CONTAINS = [
  25792     VAR,
  25793     BUILT_IN,
  25794     STRING,
  25795     NUMBER,
  25796     COMMENT,
  25797     ANNOTATION,
  25798     TITLE,
  25799     COMPUTED,
  25800     DIRECT
  25801   ];
  25802 
  25803 
  25804 
  25805     var METHOD = {
  25806       begin: '{',
  25807       end: '}',
  25808       contains: CONTAINS
  25809     };
  25810 
  25811 
  25812 
  25813   return {
  25814     aliases: ['xpath', 'xq'],
  25815     case_insensitive: false,
  25816     lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
  25817     illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
  25818     keywords: {
  25819       keyword: KEYWORDS,
  25820       type: TYPE,
  25821       literal: LITERAL
  25822     },
  25823     contains: CONTAINS
  25824   };
  25825 }
  25826 },{name:"yaml",create:/*
  25827 Language: YAML
  25828 Author: Stefan Wienert <stwienert@gmail.com>
  25829 Requires: ruby.js
  25830 Description: YAML (Yet Another Markdown Language)
  25831 Category: common, config
  25832 */
  25833 function(hljs) {
  25834   var LITERALS = 'true false yes no null';
  25835 
  25836   var keyPrefix = '^[ \\-]*';
  25837   var keyName =  '[a-zA-Z_][\\w\\-]*';
  25838   var KEY = {
  25839     className: 'attr',
  25840     variants: [
  25841       { begin: keyPrefix + keyName + ":"},
  25842       { begin: keyPrefix + '"' + keyName + '"' + ":"},
  25843       { begin: keyPrefix + "'" + keyName + "'" + ":"}
  25844     ]
  25845   };
  25846 
  25847   var TEMPLATE_VARIABLES = {
  25848     className: 'template-variable',
  25849     variants: [
  25850       { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible
  25851       { begin: '%\{', end: '\}' } // Ruby i18n
  25852     ]
  25853   };
  25854   var STRING = {
  25855     className: 'string',
  25856     relevance: 0,
  25857     variants: [
  25858       {begin: /'/, end: /'/},
  25859       {begin: /"/, end: /"/},
  25860       {begin: /\S+/}
  25861     ],
  25862     contains: [
  25863       hljs.BACKSLASH_ESCAPE,
  25864       TEMPLATE_VARIABLES
  25865     ]
  25866   };
  25867 
  25868   return {
  25869     case_insensitive: true,
  25870     aliases: ['yml', 'YAML', 'yaml'],
  25871     contains: [
  25872       KEY,
  25873       {
  25874         className: 'meta',
  25875         begin: '^---\s*$',
  25876         relevance: 10
  25877       },
  25878       { // multi line string
  25879         className: 'string',
  25880         begin: '[\\|>] *$',
  25881         returnEnd: true,
  25882         contains: STRING.contains,
  25883         // very simple termination: next hash key
  25884         end: KEY.variants[0].begin
  25885       },
  25886       { // Ruby/Rails erb
  25887         begin: '<%[%=-]?', end: '[%-]?%>',
  25888         subLanguage: 'ruby',
  25889         excludeBegin: true,
  25890         excludeEnd: true,
  25891         relevance: 0
  25892       },
  25893       { // local tags
  25894         className: 'type',
  25895         begin: '!' + hljs.UNDERSCORE_IDENT_RE,
  25896       },
  25897       { // data type
  25898         className: 'type',
  25899         begin: '!!' + hljs.UNDERSCORE_IDENT_RE,
  25900       },
  25901       { // fragment id &ref
  25902         className: 'meta',
  25903         begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',
  25904       },
  25905       { // fragment reference *ref
  25906         className: 'meta',
  25907         begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'
  25908       },
  25909       { // array listing
  25910         className: 'bullet',
  25911         begin: '^ *-',
  25912         relevance: 0
  25913       },
  25914       hljs.HASH_COMMENT_MODE,
  25915       {
  25916         beginKeywords: LITERALS,
  25917         keywords: {literal: LITERALS}
  25918       },
  25919       hljs.C_NUMBER_MODE,
  25920       STRING
  25921     ]
  25922   };
  25923 }
  25924 },{name:"zephir",create:/*
  25925  Language: Zephir
  25926  Author: Oleg Efimov <efimovov@gmail.com>
  25927  */
  25928 
  25929 function(hljs) {
  25930   var STRING = {
  25931     className: 'string',
  25932     contains: [hljs.BACKSLASH_ESCAPE],
  25933     variants: [
  25934       {
  25935         begin: 'b"', end: '"'
  25936       },
  25937       {
  25938         begin: 'b\'', end: '\''
  25939       },
  25940       hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
  25941       hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
  25942     ]
  25943   };
  25944   var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
  25945   return {
  25946     aliases: ['zep'],
  25947     case_insensitive: true,
  25948     keywords:
  25949       'and include_once list abstract global private echo interface as static endswitch ' +
  25950       'array null if endwhile or const for endforeach self var let while isset public ' +
  25951       'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
  25952       'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
  25953       'catch __METHOD__ case exception default die require __FUNCTION__ ' +
  25954       'enddeclare final try switch continue endfor endif declare unset true false ' +
  25955       'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
  25956       'yield finally int uint long ulong char uchar double float bool boolean string' +
  25957       'likely unlikely',
  25958     contains: [
  25959       hljs.C_LINE_COMMENT_MODE,
  25960       hljs.HASH_COMMENT_MODE,
  25961       hljs.COMMENT(
  25962         '/\\*',
  25963         '\\*/',
  25964         {
  25965           contains: [
  25966             {
  25967               className: 'doctag',
  25968               begin: '@[A-Za-z]+'
  25969             }
  25970           ]
  25971         }
  25972       ),
  25973       hljs.COMMENT(
  25974         '__halt_compiler.+?;',
  25975         false,
  25976         {
  25977           endsWithParent: true,
  25978           keywords: '__halt_compiler',
  25979           lexemes: hljs.UNDERSCORE_IDENT_RE
  25980         }
  25981       ),
  25982       {
  25983         className: 'string',
  25984         begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
  25985         contains: [hljs.BACKSLASH_ESCAPE]
  25986       },
  25987       {
  25988         // swallow composed identifiers to avoid parsing them as keywords
  25989         begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
  25990       },
  25991       {
  25992         className: 'function',
  25993         beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
  25994         illegal: '\\$|\\[|%',
  25995         contains: [
  25996           hljs.UNDERSCORE_TITLE_MODE,
  25997           {
  25998             className: 'params',
  25999             begin: '\\(', end: '\\)',
  26000             contains: [
  26001               'self',
  26002               hljs.C_BLOCK_COMMENT_MODE,
  26003               STRING,
  26004               NUMBER
  26005             ]
  26006           }
  26007         ]
  26008       },
  26009       {
  26010         className: 'class',
  26011         beginKeywords: 'class interface', end: '{', excludeEnd: true,
  26012         illegal: /[:\(\$"]/,
  26013         contains: [
  26014           {beginKeywords: 'extends implements'},
  26015           hljs.UNDERSCORE_TITLE_MODE
  26016         ]
  26017       },
  26018       {
  26019         beginKeywords: 'namespace', end: ';',
  26020         illegal: /[\.']/,
  26021         contains: [hljs.UNDERSCORE_TITLE_MODE]
  26022       },
  26023       {
  26024         beginKeywords: 'use', end: ';',
  26025         contains: [hljs.UNDERSCORE_TITLE_MODE]
  26026       },
  26027       {
  26028         begin: '=>' // No markup, just a relevance booster
  26029       },
  26030       STRING,
  26031       NUMBER
  26032     ]
  26033   };
  26034 }
  26035 }]
  26036   ;
  26037 
  26038 for (var i = 0; i < languages.length; ++i) {
  26039   hljs.registerLanguage(languages[i].name, languages[i].create);
  26040 }
  26041 
  26042 module.exports = {
  26043   styles: {"a11y-dark":".hljs-a11y-dark .hljs-comment,.hljs-a11y-dark .hljs-quote{color:#d4d0ab}.hljs-a11y-dark .hljs-variable,.hljs-a11y-dark .hljs-template-variable,.hljs-a11y-dark .hljs-tag,.hljs-a11y-dark .hljs-name,.hljs-a11y-dark .hljs-selector-id,.hljs-a11y-dark .hljs-selector-class,.hljs-a11y-dark .hljs-regexp,.hljs-a11y-dark .hljs-deletion{color:#ffa07a}.hljs-a11y-dark .hljs-number,.hljs-a11y-dark .hljs-built_in,.hljs-a11y-dark .hljs-builtin-name,.hljs-a11y-dark .hljs-literal,.hljs-a11y-dark .hljs-type,.hljs-a11y-dark .hljs-params,.hljs-a11y-dark .hljs-meta,.hljs-a11y-dark .hljs-link{color:#f5ab35}.hljs-a11y-dark .hljs-attribute{color:#ffd700}.hljs-a11y-dark .hljs-string,.hljs-a11y-dark .hljs-symbol,.hljs-a11y-dark .hljs-bullet,.hljs-a11y-dark .hljs-addition{color:#abe338}.hljs-a11y-dark .hljs-title,.hljs-a11y-dark .hljs-section{color:#00e0e0}.hljs-a11y-dark .hljs-keyword,.hljs-a11y-dark .hljs-selector-tag{color:#dcc6e0}.hljs-a11y-dark .hljs{display:block;overflow-x:auto;background:#2b2b2b;color:#f8f8f2;padding:.5em}.hljs-a11y-dark .hljs-emphasis{font-style:italic}.hljs-a11y-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast:active){.hljs-a11y-dark .hljs-addition,.hljs-a11y-dark .hljs-attribute,.hljs-a11y-dark .hljs-built_in,.hljs-a11y-dark .hljs-builtin-name,.hljs-a11y-dark .hljs-bullet,.hljs-a11y-dark .hljs-comment,.hljs-a11y-dark .hljs-link,.hljs-a11y-dark .hljs-literal,.hljs-a11y-dark .hljs-meta,.hljs-a11y-dark .hljs-number,.hljs-a11y-dark .hljs-params,.hljs-a11y-dark .hljs-string,.hljs-a11y-dark .hljs-symbol,.hljs-a11y-dark .hljs-type,.hljs-a11y-dark .hljs-quote{color:highlight}.hljs-a11y-dark .hljs-keyword,.hljs-a11y-dark .hljs-selector-tag{font-weight:bold}}","a11y-light":".hljs-a11y-light .hljs-comment,.hljs-a11y-light .hljs-quote{color:#696969}.hljs-a11y-light .hljs-variable,.hljs-a11y-light .hljs-template-variable,.hljs-a11y-light .hljs-tag,.hljs-a11y-light .hljs-name,.hljs-a11y-light .hljs-selector-id,.hljs-a11y-light .hljs-selector-class,.hljs-a11y-light .hljs-regexp,.hljs-a11y-light .hljs-deletion{color:#d91e18}.hljs-a11y-light .hljs-number,.hljs-a11y-light .hljs-built_in,.hljs-a11y-light .hljs-builtin-name,.hljs-a11y-light .hljs-literal,.hljs-a11y-light .hljs-type,.hljs-a11y-light .hljs-params,.hljs-a11y-light .hljs-meta,.hljs-a11y-light .hljs-link{color:#aa5d00}.hljs-a11y-light .hljs-attribute{color:#aa5d00}.hljs-a11y-light .hljs-string,.hljs-a11y-light .hljs-symbol,.hljs-a11y-light .hljs-bullet,.hljs-a11y-light .hljs-addition{color:#008000}.hljs-a11y-light .hljs-title,.hljs-a11y-light .hljs-section{color:#007faa}.hljs-a11y-light .hljs-keyword,.hljs-a11y-light .hljs-selector-tag{color:#7928a1}.hljs-a11y-light .hljs{display:block;overflow-x:auto;background:#fefefe;color:#545454;padding:.5em}.hljs-a11y-light .hljs-emphasis{font-style:italic}.hljs-a11y-light .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast:active){.hljs-a11y-light .hljs-addition,.hljs-a11y-light .hljs-attribute,.hljs-a11y-light .hljs-built_in,.hljs-a11y-light .hljs-builtin-name,.hljs-a11y-light .hljs-bullet,.hljs-a11y-light .hljs-comment,.hljs-a11y-light .hljs-link,.hljs-a11y-light .hljs-literal,.hljs-a11y-light .hljs-meta,.hljs-a11y-light .hljs-number,.hljs-a11y-light .hljs-params,.hljs-a11y-light .hljs-string,.hljs-a11y-light .hljs-symbol,.hljs-a11y-light .hljs-type,.hljs-a11y-light .hljs-quote{color:highlight}.hljs-a11y-light .hljs-keyword,.hljs-a11y-light .hljs-selector-tag{font-weight:bold}}","agate":".hljs-agate{/*! * Agate by Taufik Nurrohman <https://github.com/tovic> * ---------------------------------------------------- * * #ade5fc * #a2fca2 * #c6b4f0 * #d36363 * #fcc28c * #fc9b9b * #ffa * #fff * #333 * #62c8f3 * #888 * */}.hljs-agate .hljs{display:block;overflow-x:auto;padding:.5em;background:#333;color:white}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic}.hljs-agate .hljs-tag{color:#62c8f3}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0}.hljs-agate .hljs-meta{color:#fc9b9b}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333}.hljs-agate .hljs a{color:inherit}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline}","an-old-hope":".hljs-an-old-hope .hljs-comment,.hljs-an-old-hope .hljs-quote{color:#B6B18B}.hljs-an-old-hope .hljs-variable,.hljs-an-old-hope .hljs-template-variable,.hljs-an-old-hope .hljs-tag,.hljs-an-old-hope .hljs-name,.hljs-an-old-hope .hljs-selector-id,.hljs-an-old-hope .hljs-selector-class,.hljs-an-old-hope .hljs-regexp,.hljs-an-old-hope .hljs-deletion{color:#EB3C54}.hljs-an-old-hope .hljs-number,.hljs-an-old-hope .hljs-built_in,.hljs-an-old-hope .hljs-builtin-name,.hljs-an-old-hope .hljs-literal,.hljs-an-old-hope .hljs-type,.hljs-an-old-hope .hljs-params,.hljs-an-old-hope .hljs-meta,.hljs-an-old-hope .hljs-link{color:#E7CE56}.hljs-an-old-hope .hljs-attribute{color:#EE7C2B}.hljs-an-old-hope .hljs-string,.hljs-an-old-hope .hljs-symbol,.hljs-an-old-hope .hljs-bullet,.hljs-an-old-hope .hljs-addition{color:#4FB4D7}.hljs-an-old-hope .hljs-title,.hljs-an-old-hope .hljs-section{color:#78BB65}.hljs-an-old-hope .hljs-keyword,.hljs-an-old-hope .hljs-selector-tag{color:#B45EA4}.hljs-an-old-hope .hljs{display:block;overflow-x:auto;background:#1C1D21;color:#c0c5ce;padding:.5em}.hljs-an-old-hope .hljs-emphasis{font-style:italic}.hljs-an-old-hope .hljs-strong{font-weight:bold}","androidstudio":".hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:.5em}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080}.hljs-androidstudio .hljs-meta{color:#bbb529}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a}.hljs-androidstudio .hljs-emphasis{font-style:italic}.hljs-androidstudio .hljs-strong{font-weight:bold}","arduino-light":".hljs-arduino-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFFF}.hljs-arduino-light .hljs,.hljs-arduino-light .hljs-subst{color:#434f54}.hljs-arduino-light .hljs-keyword,.hljs-arduino-light .hljs-attribute,.hljs-arduino-light .hljs-selector-tag,.hljs-arduino-light .hljs-doctag,.hljs-arduino-light .hljs-name{color:#00979D}.hljs-arduino-light .hljs-built_in,.hljs-arduino-light .hljs-literal,.hljs-arduino-light .hljs-bullet,.hljs-arduino-light .hljs-code,.hljs-arduino-light .hljs-addition{color:#D35400}.hljs-arduino-light .hljs-regexp,.hljs-arduino-light .hljs-symbol,.hljs-arduino-light .hljs-variable,.hljs-arduino-light .hljs-template-variable,.hljs-arduino-light .hljs-link,.hljs-arduino-light .hljs-selector-attr,.hljs-arduino-light .hljs-selector-pseudo{color:#00979D}.hljs-arduino-light .hljs-type,.hljs-arduino-light .hljs-string,.hljs-arduino-light .hljs-selector-id,.hljs-arduino-light .hljs-selector-class,.hljs-arduino-light .hljs-quote,.hljs-arduino-light .hljs-template-tag,.hljs-arduino-light .hljs-deletion{color:#005C5F}.hljs-arduino-light .hljs-title,.hljs-arduino-light .hljs-section{color:#880000;font-weight:bold}.hljs-arduino-light .hljs-comment{color:rgba(149,165,166,0.8)}.hljs-arduino-light .hljs-meta-keyword{color:#728E00}.hljs-arduino-light .hljs-meta{color:#728E00;color:#434f54}.hljs-arduino-light .hljs-emphasis{font-style:italic}.hljs-arduino-light .hljs-strong{font-weight:bold}.hljs-arduino-light .hljs-function{color:#728E00}.hljs-arduino-light .hljs-number{color:#8A7B52}","arta":".hljs-arta .hljs{display:block;overflow-x:auto;padding:.5em;background:#222}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa}.hljs-arta .hljs-section{color:#fff}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold}.hljs-arta .hljs-emphasis{font-style:italic}","ascetic":".hljs-ascetic .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold}.hljs-ascetic .hljs-emphasis{font-style:italic}","atelier-cave-dark":".hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:.5em}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold}","atelier-cave-light":".hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:.5em}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic}.hljs-atelier-cave-light .hljs-strong{font-weight:bold}","atelier-dune-dark":".hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:.5em}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold}","atelier-dune-light":".hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:.5em}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic}.hljs-atelier-dune-light .hljs-strong{font-weight:bold}","atelier-estuary-dark":".hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:.5em}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold}","atelier-estuary-light":".hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:.5em}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold}","atelier-forest-dark":".hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:.5em}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold}","atelier-forest-light":".hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:.5em}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic}.hljs-atelier-forest-light .hljs-strong{font-weight:bold}","atelier-heath-dark":".hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:.5em}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold}","atelier-heath-light":".hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:.5em}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic}.hljs-atelier-heath-light .hljs-strong{font-weight:bold}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:.5em}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold}","atelier-lakeside-light":".hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:.5em}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold}","atelier-plateau-dark":".hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:.5em}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold}","atelier-plateau-light":".hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:.5em}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold}","atelier-savanna-dark":".hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:.5em}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold}","atelier-savanna-light":".hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:.5em}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold}","atelier-seaside-dark":".hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:.5em}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold}","atelier-seaside-light":".hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:.5em}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:.5em}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:.5em}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold}","atom-one-dark-reasonable":".hljs-atom-one-dark-reasonable .hljs{display:block;overflow-x:auto;padding:.5em;line-height:1.3em;color:#abb2bf;background:#282c34;border-radius:5px}.hljs-atom-one-dark-reasonable .hljs-keyword,.hljs-atom-one-dark-reasonable .hljs-operator{color:#F92672}.hljs-atom-one-dark-reasonable .hljs-pattern-match{color:#F92672}.hljs-atom-one-dark-reasonable .hljs-pattern-match .hljs-constructor{color:#61aeee}.hljs-atom-one-dark-reasonable .hljs-function{color:#61aeee}.hljs-atom-one-dark-reasonable .hljs-function .hljs-params{color:#A6E22E}.hljs-atom-one-dark-reasonable .hljs-function .hljs-params .hljs-typing{color:#FD971F}.hljs-atom-one-dark-reasonable .hljs-module-access .hljs-module{color:#7e57c2}.hljs-atom-one-dark-reasonable .hljs-constructor{color:#e2b93d}.hljs-atom-one-dark-reasonable .hljs-constructor .hljs-string{color:#9CCC65}.hljs-atom-one-dark-reasonable .hljs-comment,.hljs-atom-one-dark-reasonable .hljs-quote{color:#b18eb1;font-style:italic}.hljs-atom-one-dark-reasonable .hljs-doctag,.hljs-atom-one-dark-reasonable .hljs-formula{color:#c678dd}.hljs-atom-one-dark-reasonable .hljs-section,.hljs-atom-one-dark-reasonable .hljs-name,.hljs-atom-one-dark-reasonable .hljs-selector-tag,.hljs-atom-one-dark-reasonable .hljs-deletion,.hljs-atom-one-dark-reasonable .hljs-subst{color:#e06c75}.hljs-atom-one-dark-reasonable .hljs-literal{color:#56b6c2}.hljs-atom-one-dark-reasonable .hljs-string,.hljs-atom-one-dark-reasonable .hljs-regexp,.hljs-atom-one-dark-reasonable .hljs-addition,.hljs-atom-one-dark-reasonable .hljs-attribute,.hljs-atom-one-dark-reasonable .hljs-meta-string{color:#98c379}.hljs-atom-one-dark-reasonable .hljs-built_in,.hljs-atom-one-dark-reasonable .hljs-class .hljs-title{color:#e6c07b}.hljs-atom-one-dark-reasonable .hljs-attr,.hljs-atom-one-dark-reasonable .hljs-variable,.hljs-atom-one-dark-reasonable .hljs-template-variable,.hljs-atom-one-dark-reasonable .hljs-type,.hljs-atom-one-dark-reasonable .hljs-selector-class,.hljs-atom-one-dark-reasonable .hljs-selector-attr,.hljs-atom-one-dark-reasonable .hljs-selector-pseudo,.hljs-atom-one-dark-reasonable .hljs-number{color:#d19a66}.hljs-atom-one-dark-reasonable .hljs-symbol,.hljs-atom-one-dark-reasonable .hljs-bullet,.hljs-atom-one-dark-reasonable .hljs-link,.hljs-atom-one-dark-reasonable .hljs-meta,.hljs-atom-one-dark-reasonable .hljs-selector-id,.hljs-atom-one-dark-reasonable .hljs-title{color:#61aeee}.hljs-atom-one-dark-reasonable .hljs-emphasis{font-style:italic}.hljs-atom-one-dark-reasonable .hljs-strong{font-weight:bold}.hljs-atom-one-dark-reasonable .hljs-link{text-decoration:underline}","atom-one-dark":".hljs-atom-one-dark .hljs{display:block;overflow-x:auto;padding:.5em;color:#abb2bf;background:#282c34}.hljs-atom-one-dark .hljs-comment,.hljs-atom-one-dark .hljs-quote{color:#5c6370;font-style:italic}.hljs-atom-one-dark .hljs-doctag,.hljs-atom-one-dark .hljs-keyword,.hljs-atom-one-dark .hljs-formula{color:#c678dd}.hljs-atom-one-dark .hljs-section,.hljs-atom-one-dark .hljs-name,.hljs-atom-one-dark .hljs-selector-tag,.hljs-atom-one-dark .hljs-deletion,.hljs-atom-one-dark .hljs-subst{color:#e06c75}.hljs-atom-one-dark .hljs-literal{color:#56b6c2}.hljs-atom-one-dark .hljs-string,.hljs-atom-one-dark .hljs-regexp,.hljs-atom-one-dark .hljs-addition,.hljs-atom-one-dark .hljs-attribute,.hljs-atom-one-dark .hljs-meta-string{color:#98c379}.hljs-atom-one-dark .hljs-built_in,.hljs-atom-one-dark .hljs-class .hljs-title{color:#e6c07b}.hljs-atom-one-dark .hljs-attr,.hljs-atom-one-dark .hljs-variable,.hljs-atom-one-dark .hljs-template-variable,.hljs-atom-one-dark .hljs-type,.hljs-atom-one-dark .hljs-selector-class,.hljs-atom-one-dark .hljs-selector-attr,.hljs-atom-one-dark .hljs-selector-pseudo,.hljs-atom-one-dark .hljs-number{color:#d19a66}.hljs-atom-one-dark .hljs-symbol,.hljs-atom-one-dark .hljs-bullet,.hljs-atom-one-dark .hljs-link,.hljs-atom-one-dark .hljs-meta,.hljs-atom-one-dark .hljs-selector-id,.hljs-atom-one-dark .hljs-title{color:#61aeee}.hljs-atom-one-dark .hljs-emphasis{font-style:italic}.hljs-atom-one-dark .hljs-strong{font-weight:bold}.hljs-atom-one-dark .hljs-link{text-decoration:underline}","atom-one-light":".hljs-atom-one-light .hljs{display:block;overflow-x:auto;padding:.5em;color:#383a42;background:#fafafa}.hljs-atom-one-light .hljs-comment,.hljs-atom-one-light .hljs-quote{color:#a0a1a7;font-style:italic}.hljs-atom-one-light .hljs-doctag,.hljs-atom-one-light .hljs-keyword,.hljs-atom-one-light .hljs-formula{color:#a626a4}.hljs-atom-one-light .hljs-section,.hljs-atom-one-light .hljs-name,.hljs-atom-one-light .hljs-selector-tag,.hljs-atom-one-light .hljs-deletion,.hljs-atom-one-light .hljs-subst{color:#e45649}.hljs-atom-one-light .hljs-literal{color:#0184bb}.hljs-atom-one-light .hljs-string,.hljs-atom-one-light .hljs-regexp,.hljs-atom-one-light .hljs-addition,.hljs-atom-one-light .hljs-attribute,.hljs-atom-one-light .hljs-meta-string{color:#50a14f}.hljs-atom-one-light .hljs-built_in,.hljs-atom-one-light .hljs-class .hljs-title{color:#c18401}.hljs-atom-one-light .hljs-attr,.hljs-atom-one-light .hljs-variable,.hljs-atom-one-light .hljs-template-variable,.hljs-atom-one-light .hljs-type,.hljs-atom-one-light .hljs-selector-class,.hljs-atom-one-light .hljs-selector-attr,.hljs-atom-one-light .hljs-selector-pseudo,.hljs-atom-one-light .hljs-number{color:#986801}.hljs-atom-one-light .hljs-symbol,.hljs-atom-one-light .hljs-bullet,.hljs-atom-one-light .hljs-link,.hljs-atom-one-light .hljs-meta,.hljs-atom-one-light .hljs-selector-id,.hljs-atom-one-light .hljs-title{color:#4078f2}.hljs-atom-one-light .hljs-emphasis{font-style:italic}.hljs-atom-one-light .hljs-strong{font-weight:bold}.hljs-atom-one-light .hljs-link{text-decoration:underline}","brown-paper":".hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:.5em;background:#b7a68e url(./brown-papersq.png)}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold}.hljs-brown-paper .hljs-emphasis{font-style:italic}","codepen-embed":".hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:.5em;background:#222;color:#fff}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c}.hljs-codepen-embed .hljs-emphasis{font-style:italic}.hljs-codepen-embed .hljs-strong{font-weight:bold}","color-brewer":".hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd}.hljs-color-brewer .hljs-emphasis{font-style:italic}.hljs-color-brewer .hljs-attribute{color:#e6550d}","darcula":".hljs-darcula .hljs{display:block;overflow-x:auto;padding:.5em;background:#2b2b2b}.hljs-darcula .hljs{color:#bababa}.hljs-darcula .hljs-strong,.hljs-darcula .hljs-emphasis{color:#a8a8a2}.hljs-darcula .hljs-bullet,.hljs-darcula .hljs-quote,.hljs-darcula .hljs-link,.hljs-darcula .hljs-number,.hljs-darcula .hljs-regexp,.hljs-darcula .hljs-literal{color:#6896ba}.hljs-darcula .hljs-code,.hljs-darcula .hljs-selector-class{color:#a6e22e}.hljs-darcula .hljs-emphasis{font-style:italic}.hljs-darcula .hljs-keyword,.hljs-darcula .hljs-selector-tag,.hljs-darcula .hljs-section,.hljs-darcula .hljs-attribute,.hljs-darcula .hljs-name,.hljs-darcula .hljs-variable{color:#cb7832}.hljs-darcula .hljs-params{color:#b9b9b9}.hljs-darcula .hljs-string{color:#6a8759}.hljs-darcula .hljs-subst,.hljs-darcula .hljs-type,.hljs-darcula .hljs-built_in,.hljs-darcula .hljs-builtin-name,.hljs-darcula .hljs-symbol,.hljs-darcula .hljs-selector-id,.hljs-darcula .hljs-selector-attr,.hljs-darcula .hljs-selector-pseudo,.hljs-darcula .hljs-template-tag,.hljs-darcula .hljs-template-variable,.hljs-darcula .hljs-addition{color:#e0c46c}.hljs-darcula .hljs-comment,.hljs-darcula .hljs-deletion,.hljs-darcula .hljs-meta{color:#7f7f7f}","dark":".hljs-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#444}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold}.hljs-dark .hljs-emphasis{font-style:italic}","darkula":".hljs-darkula{@import url('darcula.css');}","default":".hljs-default .hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444}.hljs-default .hljs-comment{color:#888888}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060}.hljs-default .hljs-literal{color:#78A960}.hljs-default .hljs-built_in,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#397300}.hljs-default .hljs-meta{color:#1f7199}.hljs-default .hljs-meta-string{color:#4d99bf}.hljs-default .hljs-emphasis{font-style:italic}.hljs-default .hljs-strong{font-weight:bold}","docco":".hljs-docco .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#f8f8ff}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121}.hljs-docco .hljs-number{color:#40a070}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d}.hljs-docco .hljs-params{color:#00f}.hljs-docco .hljs-title{color:#458;font-weight:bold}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3}.hljs-docco .hljs-meta{color:#999;font-weight:bold}.hljs-docco .hljs-deletion{background:#fdd}.hljs-docco .hljs-addition{background:#dfd}.hljs-docco .hljs-emphasis{font-style:italic}.hljs-docco .hljs-strong{font-weight:bold}","dracula":".hljs-dracula .hljs{display:block;overflow-x:auto;padding:.5em;background:#282a36}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-section,.hljs-dracula .hljs-link{color:#8be9fd}.hljs-dracula .hljs-function .hljs-keyword{color:#ff79c6}.hljs-dracula .hljs,.hljs-dracula .hljs-subst{color:#f8f8f2}.hljs-dracula .hljs-string,.hljs-dracula .hljs-title,.hljs-dracula .hljs-name,.hljs-dracula .hljs-type,.hljs-dracula .hljs-attribute,.hljs-dracula .hljs-symbol,.hljs-dracula .hljs-bullet,.hljs-dracula .hljs-addition,.hljs-dracula .hljs-variable,.hljs-dracula .hljs-template-tag,.hljs-dracula .hljs-template-variable{color:#f1fa8c}.hljs-dracula .hljs-comment,.hljs-dracula .hljs-quote,.hljs-dracula .hljs-deletion,.hljs-dracula .hljs-meta{color:#6272a4}.hljs-dracula .hljs-keyword,.hljs-dracula .hljs-selector-tag,.hljs-dracula .hljs-literal,.hljs-dracula .hljs-title,.hljs-dracula .hljs-section,.hljs-dracula .hljs-doctag,.hljs-dracula .hljs-type,.hljs-dracula .hljs-name,.hljs-dracula .hljs-strong{font-weight:bold}.hljs-dracula .hljs-emphasis{font-style:italic}","far":".hljs-far .hljs{display:block;overflow-x:auto;padding:.5em;background:#000080}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0}.hljs-far .hljs-meta{color:#008080}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold}.hljs-far .hljs-emphasis{font-style:italic}","foundation":".hljs-foundation .hljs{display:block;overflow-x:auto;padding:.5em;background:#eee;color:black}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070}.hljs-foundation .hljs-emphasis{font-style:italic}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14}.hljs-foundation .hljs-strong{font-weight:bold}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699}.hljs-foundation .hljs-bullet{color:#997700}.hljs-foundation .hljs-meta{color:#3344bb}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088}.hljs-foundation .hljs-symbol{color:#990073}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700}","github-gist":".hljs-github-gist .hljs{display:block;background:white;padding:.5em;color:#333333;overflow-x:auto}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896}.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#d73a49}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c}.hljs-github-gist .hljs-tag{color:#333333}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#6f42c1}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec}.hljs-github-gist .hljs-link{text-decoration:underline}.hljs-github-gist .hljs-number{color:#005cc5}.hljs-github-gist .hljs-string{color:#032f62}","github":".hljs-github .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold}.hljs-github .hljs-subst{font-weight:normal}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3}.hljs-github .hljs-meta{color:#999;font-weight:bold}.hljs-github .hljs-deletion{background:#fdd}.hljs-github .hljs-addition{background:#dfd}.hljs-github .hljs-emphasis{font-style:italic}.hljs-github .hljs-strong{font-weight:bold}","gml":".hljs-gml .hljs{display:block;overflow-x:auto;padding:.5em;background:#222222;color:#C0C0C0}.hljs-gml .hljs-keywords{color:#FFB871;font-weight:bold}.hljs-gml .hljs-built_in{color:#FFB871}.hljs-gml .hljs-literal{color:#FF8080}.hljs-gml .hljs-symbol{color:#58E55A}.hljs-gml .hljs-comment{color:#5B995B}.hljs-gml .hljs-string{color:#FFFF00}.hljs-gml .hljs-number{color:#FF8080}.hljs-gml .hljs-attribute,.hljs-gml .hljs-selector-tag,.hljs-gml .hljs-doctag,.hljs-gml .hljs-name,.hljs-gml .hljs-bullet,.hljs-gml .hljs-code,.hljs-gml .hljs-addition,.hljs-gml .hljs-regexp,.hljs-gml .hljs-variable,.hljs-gml .hljs-template-variable,.hljs-gml .hljs-link,.hljs-gml .hljs-selector-attr,.hljs-gml .hljs-selector-pseudo,.hljs-gml .hljs-type,.hljs-gml .hljs-selector-id,.hljs-gml .hljs-selector-class,.hljs-gml .hljs-quote,.hljs-gml .hljs-template-tag,.hljs-gml .hljs-deletion,.hljs-gml .hljs-title,.hljs-gml .hljs-section,.hljs-gml .hljs-function,.hljs-gml .hljs-meta-keyword,.hljs-gml .hljs-meta,.hljs-gml .hljs-subst{color:#C0C0C0}.hljs-gml .hljs-emphasis{font-style:italic}.hljs-gml .hljs-strong{font-weight:bold}","googlecode":".hljs-googlecode .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9B703F}.hljs-googlecode .hljs-addition{background-color:#baeeba}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold}.hljs-googlecode .hljs-emphasis{font-style:italic}","grayscale":".hljs-grayscale .hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#fff}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold}.hljs-grayscale .hljs-subst{font-weight:normal}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold}.hljs-grayscale .hljs-tag{color:#333}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat}.hljs-grayscale .hljs-emphasis{font-style:italic}.hljs-grayscale .hljs-strong{font-weight:bold}","gruvbox-dark":".hljs-gruvbox-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#282828}.hljs-gruvbox-dark .hljs,.hljs-gruvbox-dark .hljs-subst{color:#ebdbb2}.hljs-gruvbox-dark .hljs-deletion,.hljs-gruvbox-dark .hljs-formula,.hljs-gruvbox-dark .hljs-keyword,.hljs-gruvbox-dark .hljs-link,.hljs-gruvbox-dark .hljs-selector-tag{color:#fb4934}.hljs-gruvbox-dark .hljs-built_in,.hljs-gruvbox-dark .hljs-emphasis,.hljs-gruvbox-dark .hljs-name,.hljs-gruvbox-dark .hljs-quote,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-title,.hljs-gruvbox-dark .hljs-variable{color:#83a598}.hljs-gruvbox-dark .hljs-attr,.hljs-gruvbox-dark .hljs-params,.hljs-gruvbox-dark .hljs-template-tag,.hljs-gruvbox-dark .hljs-type{color:#fabd2f}.hljs-gruvbox-dark .hljs-builtin-name,.hljs-gruvbox-dark .hljs-doctag,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#8f3f71}.hljs-gruvbox-dark .hljs-code,.hljs-gruvbox-dark .hljs-meta,.hljs-gruvbox-dark .hljs-regexp,.hljs-gruvbox-dark .hljs-selector-id,.hljs-gruvbox-dark .hljs-template-variable{color:#fe8019}.hljs-gruvbox-dark .hljs-addition,.hljs-gruvbox-dark .hljs-meta-string,.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-selector-attr,.hljs-gruvbox-dark .hljs-selector-class,.hljs-gruvbox-dark .hljs-string,.hljs-gruvbox-dark .hljs-symbol{color:#b8bb26}.hljs-gruvbox-dark .hljs-attribute,.hljs-gruvbox-dark .hljs-bullet,.hljs-gruvbox-dark .hljs-class,.hljs-gruvbox-dark .hljs-function,.hljs-gruvbox-dark .hljs-function .hljs-keyword,.hljs-gruvbox-dark .hljs-meta-keyword,.hljs-gruvbox-dark .hljs-selector-pseudo,.hljs-gruvbox-dark .hljs-tag{color:#8ec07c}.hljs-gruvbox-dark .hljs-comment{color:#928374}.hljs-gruvbox-dark .hljs-link_label,.hljs-gruvbox-dark .hljs-literal,.hljs-gruvbox-dark .hljs-number{color:#d3869b}.hljs-gruvbox-dark .hljs-comment,.hljs-gruvbox-dark .hljs-emphasis{font-style:italic}.hljs-gruvbox-dark .hljs-section,.hljs-gruvbox-dark .hljs-strong,.hljs-gruvbox-dark .hljs-tag{font-weight:bold}","gruvbox-light":".hljs-gruvbox-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fbf1c7}.hljs-gruvbox-light .hljs,.hljs-gruvbox-light .hljs-subst{color:#3c3836}.hljs-gruvbox-light .hljs-deletion,.hljs-gruvbox-light .hljs-formula,.hljs-gruvbox-light .hljs-keyword,.hljs-gruvbox-light .hljs-link,.hljs-gruvbox-light .hljs-selector-tag{color:#9d0006}.hljs-gruvbox-light .hljs-built_in,.hljs-gruvbox-light .hljs-emphasis,.hljs-gruvbox-light .hljs-name,.hljs-gruvbox-light .hljs-quote,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-title,.hljs-gruvbox-light .hljs-variable{color:#076678}.hljs-gruvbox-light .hljs-attr,.hljs-gruvbox-light .hljs-params,.hljs-gruvbox-light .hljs-template-tag,.hljs-gruvbox-light .hljs-type{color:#b57614}.hljs-gruvbox-light .hljs-builtin-name,.hljs-gruvbox-light .hljs-doctag,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-code,.hljs-gruvbox-light .hljs-meta,.hljs-gruvbox-light .hljs-regexp,.hljs-gruvbox-light .hljs-selector-id,.hljs-gruvbox-light .hljs-template-variable{color:#af3a03}.hljs-gruvbox-light .hljs-addition,.hljs-gruvbox-light .hljs-meta-string,.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-selector-attr,.hljs-gruvbox-light .hljs-selector-class,.hljs-gruvbox-light .hljs-string,.hljs-gruvbox-light .hljs-symbol{color:#79740e}.hljs-gruvbox-light .hljs-attribute,.hljs-gruvbox-light .hljs-bullet,.hljs-gruvbox-light .hljs-class,.hljs-gruvbox-light .hljs-function,.hljs-gruvbox-light .hljs-function .hljs-keyword,.hljs-gruvbox-light .hljs-meta-keyword,.hljs-gruvbox-light .hljs-selector-pseudo,.hljs-gruvbox-light .hljs-tag{color:#427b58}.hljs-gruvbox-light .hljs-comment{color:#928374}.hljs-gruvbox-light .hljs-link_label,.hljs-gruvbox-light .hljs-literal,.hljs-gruvbox-light .hljs-number{color:#8f3f71}.hljs-gruvbox-light .hljs-comment,.hljs-gruvbox-light .hljs-emphasis{font-style:italic}.hljs-gruvbox-light .hljs-section,.hljs-gruvbox-light .hljs-strong,.hljs-gruvbox-light .hljs-tag{font-weight:bold}","hopscotch":".hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e}.hljs-hopscotch .hljs-meta{color:#149b93}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:.5em}.hljs-hopscotch .hljs-emphasis{font-style:italic}.hljs-hopscotch .hljs-strong{font-weight:bold}","hybrid":".hljs-hybrid .hljs{display:block;overflow-x:auto;padding:.5em;background:#1d1f21}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41}.hljs-hybrid .hljs{color:#c5c8c6}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f}.hljs-hybrid .hljs-emphasis{font-style:italic}.hljs-hybrid .hljs-strong{font-weight:bold}","idea":".hljs-idea .hljs{display:block;overflow-x:auto;padding:.5em;color:#000;background:#fff}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic}.hljs-idea .hljs-meta{color:#808000}.hljs-idea .hljs-tag{background:#efefef}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal}.hljs-idea .hljs-string{color:#008000;font-weight:bold}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic}.hljs-idea .hljs-doctag{text-decoration:underline}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a}.hljs-idea .hljs-addition{background:#baeeba}.hljs-idea .hljs-deletion{background:#ffc8bd}.hljs-idea .hljs-emphasis{font-style:italic}.hljs-idea .hljs-strong{font-weight:bold}","ir-black":".hljs-ir-black .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60}.hljs-ir-black .hljs-subst{color:#daefa3}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd}.hljs-ir-black .hljs-emphasis{font-style:italic}.hljs-ir-black .hljs-strong{font-weight:bold}","isbl-editor-dark":".hljs-isbl-editor-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#404040;color:#f0f0f0}.hljs-isbl-editor-dark .hljs,.hljs-isbl-editor-dark .hljs-subst{color:#f0f0f0}.hljs-isbl-editor-dark .hljs-comment{color:#b5b5b5;font-style:italic}.hljs-isbl-editor-dark .hljs-keyword,.hljs-isbl-editor-dark .hljs-attribute,.hljs-isbl-editor-dark .hljs-selector-tag,.hljs-isbl-editor-dark .hljs-meta-keyword,.hljs-isbl-editor-dark .hljs-doctag,.hljs-isbl-editor-dark .hljs-name{color:#f0f0f0;font-weight:bold}.hljs-isbl-editor-dark .hljs-string{color:#97bf0d}.hljs-isbl-editor-dark .hljs-type,.hljs-isbl-editor-dark .hljs-number,.hljs-isbl-editor-dark .hljs-selector-id,.hljs-isbl-editor-dark .hljs-selector-class,.hljs-isbl-editor-dark .hljs-quote,.hljs-isbl-editor-dark .hljs-template-tag,.hljs-isbl-editor-dark .hljs-deletion{color:#f0f0f0}.hljs-isbl-editor-dark .hljs-title,.hljs-isbl-editor-dark .hljs-section{color:#df471e}.hljs-isbl-editor-dark .hljs-title>.hljs-built_in{color:#81bce9;font-weight:normal}.hljs-isbl-editor-dark .hljs-regexp,.hljs-isbl-editor-dark .hljs-symbol,.hljs-isbl-editor-dark .hljs-variable,.hljs-isbl-editor-dark .hljs-template-variable,.hljs-isbl-editor-dark .hljs-link,.hljs-isbl-editor-dark .hljs-selector-attr,.hljs-isbl-editor-dark .hljs-selector-pseudo{color:#e2c696}.hljs-isbl-editor-dark .hljs-built_in,.hljs-isbl-editor-dark .hljs-literal{color:#97bf0d;font-weight:bold}.hljs-isbl-editor-dark .hljs-bullet,.hljs-isbl-editor-dark .hljs-code,.hljs-isbl-editor-dark .hljs-addition{color:#397300}.hljs-isbl-editor-dark .hljs-class{color:#ce9d4d;font-weight:bold}.hljs-isbl-editor-dark .hljs-meta{color:#1f7199}.hljs-isbl-editor-dark .hljs-meta-string{color:#4d99bf}.hljs-isbl-editor-dark .hljs-emphasis{font-style:italic}.hljs-isbl-editor-dark .hljs-strong{font-weight:bold}","isbl-editor-light":".hljs-isbl-editor-light .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-isbl-editor-light .hljs,.hljs-isbl-editor-light .hljs-subst{color:#000000}.hljs-isbl-editor-light .hljs-comment{color:#555555;font-style:italic}.hljs-isbl-editor-light .hljs-keyword,.hljs-isbl-editor-light .hljs-attribute,.hljs-isbl-editor-light .hljs-selector-tag,.hljs-isbl-editor-light .hljs-meta-keyword,.hljs-isbl-editor-light .hljs-doctag,.hljs-isbl-editor-light .hljs-name{color:#000000;font-weight:bold}.hljs-isbl-editor-light .hljs-string{color:#000080}.hljs-isbl-editor-light .hljs-type,.hljs-isbl-editor-light .hljs-number,.hljs-isbl-editor-light .hljs-selector-id,.hljs-isbl-editor-light .hljs-selector-class,.hljs-isbl-editor-light .hljs-quote,.hljs-isbl-editor-light .hljs-template-tag,.hljs-isbl-editor-light .hljs-deletion{color:#000000}.hljs-isbl-editor-light .hljs-title,.hljs-isbl-editor-light .hljs-section{color:#fb2c00}.hljs-isbl-editor-light .hljs-title>.hljs-built_in{color:#008080;font-weight:normal}.hljs-isbl-editor-light .hljs-regexp,.hljs-isbl-editor-light .hljs-symbol,.hljs-isbl-editor-light .hljs-variable,.hljs-isbl-editor-light .hljs-template-variable,.hljs-isbl-editor-light .hljs-link,.hljs-isbl-editor-light .hljs-selector-attr,.hljs-isbl-editor-light .hljs-selector-pseudo{color:#5e1700}.hljs-isbl-editor-light .hljs-built_in,.hljs-isbl-editor-light .hljs-literal{color:#000080;font-weight:bold}.hljs-isbl-editor-light .hljs-bullet,.hljs-isbl-editor-light .hljs-code,.hljs-isbl-editor-light .hljs-addition{color:#397300}.hljs-isbl-editor-light .hljs-class{color:#6f1C00;font-weight:bold}.hljs-isbl-editor-light .hljs-meta{color:#1f7199}.hljs-isbl-editor-light .hljs-meta-string{color:#4d99bf}.hljs-isbl-editor-light .hljs-emphasis{font-style:italic}.hljs-isbl-editor-light .hljs-strong{font-weight:bold}","kimbie.dark":".hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:.5em}.hljs-kimbie.dark .hljs-emphasis{font-style:italic}.hljs-kimbie.dark .hljs-strong{font-weight:bold}","kimbie.light":".hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:.5em}.hljs-kimbie.light .hljs-emphasis{font-style:italic}.hljs-kimbie.light .hljs-strong{font-weight:bold}","lightfair":".hljs-lightfair .hljs{display:block;overflow-x:auto;padding:.5em}.hljs-lightfair .hljs-name{color:#01a3a3}.hljs-lightfair .hljs-tag,.hljs-lightfair .hljs-meta{color:#778899}.hljs-lightfair .hljs,.hljs-lightfair .hljs-subst{color:#444}.hljs-lightfair .hljs-comment{color:#888888}.hljs-lightfair .hljs-keyword,.hljs-lightfair .hljs-attribute,.hljs-lightfair .hljs-selector-tag,.hljs-lightfair .hljs-meta-keyword,.hljs-lightfair .hljs-doctag,.hljs-lightfair .hljs-name{font-weight:bold}.hljs-lightfair .hljs-type,.hljs-lightfair .hljs-string,.hljs-lightfair .hljs-number,.hljs-lightfair .hljs-selector-id,.hljs-lightfair .hljs-selector-class,.hljs-lightfair .hljs-quote,.hljs-lightfair .hljs-template-tag,.hljs-lightfair .hljs-deletion{color:#4286f4}.hljs-lightfair .hljs-title,.hljs-lightfair .hljs-section{color:#4286f4;font-weight:bold}.hljs-lightfair .hljs-regexp,.hljs-lightfair .hljs-symbol,.hljs-lightfair .hljs-variable,.hljs-lightfair .hljs-template-variable,.hljs-lightfair .hljs-link,.hljs-lightfair .hljs-selector-attr,.hljs-lightfair .hljs-selector-pseudo{color:#BC6060}.hljs-lightfair .hljs-literal{color:#62bcbc}.hljs-lightfair .hljs-built_in,.hljs-lightfair .hljs-bullet,.hljs-lightfair .hljs-code,.hljs-lightfair .hljs-addition{color:#25c6c6}.hljs-lightfair .hljs-meta-string{color:#4d99bf}.hljs-lightfair .hljs-emphasis{font-style:italic}.hljs-lightfair .hljs-strong{font-weight:bold}","magula":".hljs-magula .hljs{display:block;overflow-x:auto;padding:.5em;background-color:#f4f4f4}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy}.hljs-magula .hljs-emphasis{font-style:italic}.hljs-magula .hljs-strong{font-weight:bold}","mono-blue":".hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:.5em;background:#eaeef3}.hljs-mono-blue .hljs{color:#00193a}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold}.hljs-mono-blue .hljs-comment{color:#738191}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9}.hljs-mono-blue .hljs-emphasis{font-style:italic}","monokai-sublime":".hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:.5em;background:#23241f}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e}.hljs-monokai-sublime .hljs-strong{font-weight:bold}.hljs-monokai-sublime .hljs-emphasis{font-style:italic}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e}","monokai":".hljs-monokai .hljs{display:block;overflow-x:auto;padding:.5em;background:#272822;color:#ddd}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672}.hljs-monokai .hljs-code{color:#66d9ef}.hljs-monokai .hljs-class .hljs-title{color:white}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold}","nord":".hljs-nord .hljs{display:block;overflow-x:auto;padding:.5em;background:#2E3440}.hljs-nord .hljs,.hljs-nord .hljs-subst{color:#D8DEE9}.hljs-nord .hljs-selector-tag{color:#81A1C1}.hljs-nord .hljs-selector-id{color:#8FBCBB;font-weight:bold}.hljs-nord .hljs-selector-class{color:#8FBCBB}.hljs-nord .hljs-selector-attr{color:#8FBCBB}.hljs-nord .hljs-selector-pseudo{color:#88C0D0}.hljs-nord .hljs-addition{background-color:rgba(163,190,140,0.5)}.hljs-nord .hljs-deletion{background-color:rgba(191,97,106,0.5)}.hljs-nord .hljs-built_in,.hljs-nord .hljs-type{color:#8FBCBB}.hljs-nord .hljs-class{color:#8FBCBB}.hljs-nord .hljs-function{color:#88C0D0}.hljs-nord .hljs-function>.hljs-title{color:#88C0D0}.hljs-nord .hljs-keyword,.hljs-nord .hljs-literal,.hljs-nord .hljs-symbol{color:#81A1C1}.hljs-nord .hljs-number{color:#B48EAD}.hljs-nord .hljs-regexp{color:#EBCB8B}.hljs-nord .hljs-string{color:#A3BE8C}.hljs-nord .hljs-title{color:#8FBCBB}.hljs-nord .hljs-params{color:#D8DEE9}.hljs-nord .hljs-bullet{color:#81A1C1}.hljs-nord .hljs-code{color:#8FBCBB}.hljs-nord .hljs-emphasis{font-style:italic}.hljs-nord .hljs-formula{color:#8FBCBB}.hljs-nord .hljs-strong{font-weight:bold}.hljs-nord .hljs-link:hover{text-decoration:underline}.hljs-nord .hljs-quote{color:#4C566A}.hljs-nord .hljs-comment{color:#4C566A}.hljs-nord .hljs-doctag{color:#8FBCBB}.hljs-nord .hljs-meta,.hljs-nord .hljs-meta-keyword{color:#5E81AC}.hljs-nord .hljs-meta-string{color:#A3BE8C}.hljs-nord .hljs-attr{color:#8FBCBB}.hljs-nord .hljs-attribute{color:#D8DEE9}.hljs-nord .hljs-builtin-name{color:#81A1C1}.hljs-nord .hljs-name{color:#81A1C1}.hljs-nord .hljs-section{color:#88C0D0}.hljs-nord .hljs-tag{color:#81A1C1}.hljs-nord .hljs-variable{color:#D8DEE9}.hljs-nord .hljs-template-variable{color:#D8DEE9}.hljs-nord .hljs-template-tag{color:#5E81AC}.hljs-nord .abnf .hljs-attribute{color:#88C0D0}.hljs-nord .abnf .hljs-symbol{color:#EBCB8B}.hljs-nord .apache .hljs-attribute{color:#88C0D0}.hljs-nord .apache .hljs-section{color:#81A1C1}.hljs-nord .arduino .hljs-built_in{color:#88C0D0}.hljs-nord .aspectj .hljs-meta{color:#D08770}.hljs-nord .aspectj>.hljs-title{color:#88C0D0}.hljs-nord .bnf .hljs-attribute{color:#8FBCBB}.hljs-nord .clojure .hljs-name{color:#88C0D0}.hljs-nord .clojure .hljs-symbol{color:#EBCB8B}.hljs-nord .coq .hljs-built_in{color:#88C0D0}.hljs-nord .cpp .hljs-meta-string{color:#8FBCBB}.hljs-nord .css .hljs-built_in{color:#88C0D0}.hljs-nord .css .hljs-keyword{color:#D08770}.hljs-nord .diff .hljs-meta{color:#8FBCBB}.hljs-nord .ebnf .hljs-attribute{color:#8FBCBB}.hljs-nord .glsl .hljs-built_in{color:#88C0D0}.hljs-nord .groovy .hljs-meta:not(:first-child){color:#D08770}.hljs-nord .haxe .hljs-meta{color:#D08770}.hljs-nord .java .hljs-meta{color:#D08770}.hljs-nord .ldif .hljs-attribute{color:#8FBCBB}.hljs-nord .lisp .hljs-name{color:#88C0D0}.hljs-nord .lua .hljs-built_in{color:#88C0D0}.hljs-nord .moonscript .hljs-built_in{color:#88C0D0}.hljs-nord .nginx .hljs-attribute{color:#88C0D0}.hljs-nord .nginx .hljs-section{color:#5E81AC}.hljs-nord .pf .hljs-built_in{color:#88C0D0}.hljs-nord .processing .hljs-built_in{color:#88C0D0}.hljs-nord .scss .hljs-keyword{color:#81A1C1}.hljs-nord .stylus .hljs-keyword{color:#81A1C1}.hljs-nord .swift .hljs-meta{color:#D08770}.hljs-nord .vim .hljs-built_in{color:#88C0D0;font-style:italic}.hljs-nord .yaml .hljs-meta{color:#D08770}","obsidian":".hljs-obsidian .hljs{display:block;overflow-x:auto;padding:.5em;background:#282b2e}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763}.hljs-obsidian .hljs-number{color:#ffcd22}.hljs-obsidian .hljs{color:#e0e2e4}.hljs-obsidian .hljs-attribute{color:#668bb0}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745}.hljs-obsidian .hljs-meta{color:#557182}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96}.hljs-obsidian .hljs-selector-class{color:#A082BD}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold}","ocean":".hljs-ocean .hljs-comment,.hljs-ocean .hljs-quote{color:#65737e}.hljs-ocean .hljs-variable,.hljs-ocean .hljs-template-variable,.hljs-ocean .hljs-tag,.hljs-ocean .hljs-name,.hljs-ocean .hljs-selector-id,.hljs-ocean .hljs-selector-class,.hljs-ocean .hljs-regexp,.hljs-ocean .hljs-deletion{color:#bf616a}.hljs-ocean .hljs-number,.hljs-ocean .hljs-built_in,.hljs-ocean .hljs-builtin-name,.hljs-ocean .hljs-literal,.hljs-ocean .hljs-type,.hljs-ocean .hljs-params,.hljs-ocean .hljs-meta,.hljs-ocean .hljs-link{color:#d08770}.hljs-ocean .hljs-attribute{color:#ebcb8b}.hljs-ocean .hljs-string,.hljs-ocean .hljs-symbol,.hljs-ocean .hljs-bullet,.hljs-ocean .hljs-addition{color:#a3be8c}.hljs-ocean .hljs-title,.hljs-ocean .hljs-section{color:#8fa1b3}.hljs-ocean .hljs-keyword,.hljs-ocean .hljs-selector-tag{color:#b48ead}.hljs-ocean .hljs{display:block;overflow-x:auto;background:#2b303b;color:#c0c5ce;padding:.5em}.hljs-ocean .hljs-emphasis{font-style:italic}.hljs-ocean .hljs-strong{font-weight:bold}","paraiso-dark":".hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:.5em}.hljs-paraiso-dark .hljs-emphasis{font-style:italic}.hljs-paraiso-dark .hljs-strong{font-weight:bold}","paraiso-light":".hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:.5em}.hljs-paraiso-light .hljs-emphasis{font-style:italic}.hljs-paraiso-light .hljs-strong{font-weight:bold}","purebasic":".hljs-purebasic .hljs{display:block;overflow-x:auto;padding:.5em;background:#FFFFDF}.hljs-purebasic .hljs,.hljs-purebasic .hljs-type,.hljs-purebasic .hljs-function,.hljs-purebasic .hljs-name,.hljs-purebasic .hljs-number,.hljs-purebasic .hljs-attr,.hljs-purebasic .hljs-params,.hljs-purebasic .hljs-subst{color:#000000}.hljs-purebasic .hljs-comment,.hljs-purebasic .hljs-regexp,.hljs-purebasic .hljs-section,.hljs-purebasic .hljs-selector-pseudo,.hljs-purebasic .hljs-addition{color:#00AAAA}.hljs-purebasic .hljs-title,.hljs-purebasic .hljs-tag,.hljs-purebasic .hljs-variable,.hljs-purebasic .hljs-code{color:#006666}.hljs-purebasic .hljs-keyword,.hljs-purebasic .hljs-class,.hljs-purebasic .hljs-meta-keyword,.hljs-purebasic .hljs-selector-class,.hljs-purebasic .hljs-built_in,.hljs-purebasic .hljs-builtin-name{color:#006666;font-weight:bold}.hljs-purebasic .hljs-string,.hljs-purebasic .hljs-selector-attr{color:#0080FF}.hljs-purebasic .hljs-symbol,.hljs-purebasic .hljs-link,.hljs-purebasic .hljs-deletion,.hljs-purebasic .hljs-attribute{color:#924B72}.hljs-purebasic .hljs-meta,.hljs-purebasic .hljs-literal,.hljs-purebasic .hljs-selector-id{color:#924B72;font-weight:bold}.hljs-purebasic .hljs-strong,.hljs-purebasic .hljs-name{font-weight:bold}.hljs-purebasic .hljs-emphasis{font-style:italic}","qtcreator_dark":".hljs-qtcreator_dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#000000}.hljs-qtcreator_dark .hljs,.hljs-qtcreator_dark .hljs-subst,.hljs-qtcreator_dark .hljs-tag,.hljs-qtcreator_dark .hljs-title{color:#aaaaaa}.hljs-qtcreator_dark .hljs-strong,.hljs-qtcreator_dark .hljs-emphasis{color:#a8a8a2}.hljs-qtcreator_dark .hljs-bullet,.hljs-qtcreator_dark .hljs-quote,.hljs-qtcreator_dark .hljs-number,.hljs-qtcreator_dark .hljs-regexp,.hljs-qtcreator_dark .hljs-literal{color:#ff55ff}.hljs-qtcreator_dark .hljs-code .hljs-selector-class{color:#aaaaff}.hljs-qtcreator_dark .hljs-emphasis,.hljs-qtcreator_dark .hljs-stronge,.hljs-qtcreator_dark .hljs-type{font-style:italic}.hljs-qtcreator_dark .hljs-keyword,.hljs-qtcreator_dark .hljs-selector-tag,.hljs-qtcreator_dark .hljs-function,.hljs-qtcreator_dark .hljs-section,.hljs-qtcreator_dark .hljs-symbol,.hljs-qtcreator_dark .hljs-name{color:#ffff55}.hljs-qtcreator_dark .hljs-attribute{color:#ff5555}.hljs-qtcreator_dark .hljs-variable,.hljs-qtcreator_dark .hljs-params,.hljs-qtcreator_dark .hljs-class .hljs-title{color:#8888ff}.hljs-qtcreator_dark .hljs-string,.hljs-qtcreator_dark .hljs-selector-id,.hljs-qtcreator_dark .hljs-selector-attr,.hljs-qtcreator_dark .hljs-selector-pseudo,.hljs-qtcreator_dark .hljs-type,.hljs-qtcreator_dark .hljs-built_in,.hljs-qtcreator_dark .hljs-builtin-name,.hljs-qtcreator_dark .hljs-template-tag,.hljs-qtcreator_dark .hljs-template-variable,.hljs-qtcreator_dark .hljs-addition,.hljs-qtcreator_dark .hljs-link{color:#ff55ff}.hljs-qtcreator_dark .hljs-comment,.hljs-qtcreator_dark .hljs-meta,.hljs-qtcreator_dark .hljs-deletion{color:#55ffff}","qtcreator_light":".hljs-qtcreator_light .hljs{display:block;overflow-x:auto;padding:.5em;background:#ffffff}.hljs-qtcreator_light .hljs,.hljs-qtcreator_light .hljs-subst,.hljs-qtcreator_light .hljs-tag,.hljs-qtcreator_light .hljs-title{color:#000000}.hljs-qtcreator_light .hljs-strong,.hljs-qtcreator_light .hljs-emphasis{color:#000000}.hljs-qtcreator_light .hljs-bullet,.hljs-qtcreator_light .hljs-quote,.hljs-qtcreator_light .hljs-number,.hljs-qtcreator_light .hljs-regexp,.hljs-qtcreator_light .hljs-literal{color:#000080}.hljs-qtcreator_light .hljs-code .hljs-selector-class{color:#800080}.hljs-qtcreator_light .hljs-emphasis,.hljs-qtcreator_light .hljs-stronge,.hljs-qtcreator_light .hljs-type{font-style:italic}.hljs-qtcreator_light .hljs-keyword,.hljs-qtcreator_light .hljs-selector-tag,.hljs-qtcreator_light .hljs-function,.hljs-qtcreator_light .hljs-section,.hljs-qtcreator_light .hljs-symbol,.hljs-qtcreator_light .hljs-name{color:#808000}.hljs-qtcreator_light .hljs-attribute{color:#800000}.hljs-qtcreator_light .hljs-variable,.hljs-qtcreator_light .hljs-params,.hljs-qtcreator_light .hljs-class .hljs-title{color:#0055AF}.hljs-qtcreator_light .hljs-string,.hljs-qtcreator_light .hljs-selector-id,.hljs-qtcreator_light .hljs-selector-attr,.hljs-qtcreator_light .hljs-selector-pseudo,.hljs-qtcreator_light .hljs-type,.hljs-qtcreator_light .hljs-built_in,.hljs-qtcreator_light .hljs-builtin-name,.hljs-qtcreator_light .hljs-template-tag,.hljs-qtcreator_light .hljs-template-variable,.hljs-qtcreator_light .hljs-addition,.hljs-qtcreator_light .hljs-link{color:#008000}.hljs-qtcreator_light .hljs-comment,.hljs-qtcreator_light .hljs-meta,.hljs-qtcreator_light .hljs-deletion{color:#008000}","railscasts":".hljs-railscasts .hljs{display:block;overflow-x:auto;padding:.5em;background:#232323;color:#e6e1dc}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261}.hljs-railscasts .hljs-subst{color:#519f50}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a}.hljs-railscasts .hljs-type{color:#da4939}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe}.hljs-railscasts .hljs-params{color:#d0d0ff}.hljs-railscasts .hljs-attribute{color:#cda869}.hljs-railscasts .hljs-meta{color:#9b859d}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%}.hljs-railscasts .hljs-selector-class{color:#9b703f}.hljs-railscasts .hljs-selector-id{color:#8b98ab}.hljs-railscasts .hljs-emphasis{font-style:italic}.hljs-railscasts .hljs-strong{font-weight:bold}.hljs-railscasts .hljs-link{text-decoration:underline}","rainbow":".hljs-rainbow .hljs{display:block;overflow-x:auto;padding:.5em;background:#474949;color:#d1d9e1}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157}.hljs-rainbow .hljs-deletion{color:#dc322f}.hljs-rainbow .hljs-formula{background:#eee8d5}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be}.hljs-rainbow .hljs-emphasis{font-style:italic}","routeros":".hljs-routeros .hljs{display:block;overflow-x:auto;padding:.5em;background:#F0F0F0}.hljs-routeros .hljs,.hljs-routeros .hljs-subst{color:#444}.hljs-routeros .hljs-comment{color:#888888}.hljs-routeros .hljs-keyword,.hljs-routeros .hljs-selector-tag,.hljs-routeros .hljs-meta-keyword,.hljs-routeros .hljs-doctag,.hljs-routeros .hljs-name{font-weight:bold}.hljs-routeros .hljs-attribute{color:#0E9A00}.hljs-routeros .hljs-function{color:#99069A}.hljs-routeros .hljs-builtin-name{color:#99069A}.hljs-routeros .hljs-type,.hljs-routeros .hljs-string,.hljs-routeros .hljs-number,.hljs-routeros .hljs-selector-id,.hljs-routeros .hljs-selector-class,.hljs-routeros .hljs-quote,.hljs-routeros .hljs-template-tag,.hljs-routeros .hljs-deletion{color:#880000}.hljs-routeros .hljs-title,.hljs-routeros .hljs-section{color:#880000;font-weight:bold}.hljs-routeros .hljs-regexp,.hljs-routeros .hljs-symbol,.hljs-routeros .hljs-variable,.hljs-routeros .hljs-template-variable,.hljs-routeros .hljs-link,.hljs-routeros .hljs-selector-attr,.hljs-routeros .hljs-selector-pseudo{color:#BC6060}.hljs-routeros .hljs-literal{color:#78A960}.hljs-routeros .hljs-built_in,.hljs-routeros .hljs-bullet,.hljs-routeros .hljs-code,.hljs-routeros .hljs-addition{color:#0C9A9A}.hljs-routeros .hljs-meta{color:#1f7199}.hljs-routeros .hljs-meta-string{color:#4d99bf}.hljs-routeros .hljs-emphasis{font-style:italic}.hljs-routeros .hljs-strong{font-weight:bold}","school-book":".hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px .5em .5em 30px;font-size:11px;line-height:16px;background:#f6f6ae url(./school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold}.hljs-school-book .hljs-emphasis{font-style:italic}","shades-of-purple":".hljs-shades-of-purple .hljs{display:block;overflow-x:auto;line-height:1.45;padding:2rem;background:#2d2b57;font-weight:normal}.hljs-shades-of-purple .hljs-title{color:#fad000;font-weight:normal}.hljs-shades-of-purple .hljs-name{color:#a1feff}.hljs-shades-of-purple .hljs-tag{color:#ffffff}.hljs-shades-of-purple .hljs-attr{color:#f8d000;font-style:italic}.hljs-shades-of-purple .hljs-built_in,.hljs-shades-of-purple .hljs-selector-tag,.hljs-shades-of-purple .hljs-section{color:#fb9e00}.hljs-shades-of-purple .hljs-keyword{color:#fb9e00}.hljs-shades-of-purple .hljs,.hljs-shades-of-purple .hljs-subst{color:#e3dfff}.hljs-shades-of-purple .hljs-string,.hljs-shades-of-purple .hljs-attribute,.hljs-shades-of-purple .hljs-symbol,.hljs-shades-of-purple .hljs-bullet,.hljs-shades-of-purple .hljs-addition,.hljs-shades-of-purple .hljs-code,.hljs-shades-of-purple .hljs-regexp,.hljs-shades-of-purple .hljs-selector-class,.hljs-shades-of-purple .hljs-selector-attr,.hljs-shades-of-purple .hljs-selector-pseudo,.hljs-shades-of-purple .hljs-template-tag,.hljs-shades-of-purple .hljs-quote,.hljs-shades-of-purple .hljs-deletion{color:#4cd213}.hljs-shades-of-purple .hljs-meta,.hljs-shades-of-purple .hljs-meta-string{color:#fb9e00}.hljs-shades-of-purple .hljs-comment{color:#ac65ff}.hljs-shades-of-purple .hljs-keyword,.hljs-shades-of-purple .hljs-selector-tag,.hljs-shades-of-purple .hljs-literal,.hljs-shades-of-purple .hljs-name,.hljs-shades-of-purple .hljs-strong{font-weight:normal}.hljs-shades-of-purple .hljs-literal,.hljs-shades-of-purple .hljs-number{color:#fa658d}.hljs-shades-of-purple .hljs-emphasis{font-style:italic}.hljs-shades-of-purple .hljs-strong{font-weight:bold}","solarized-dark":".hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f}.hljs-solarized-dark .hljs-formula{background:#073642}.hljs-solarized-dark .hljs-emphasis{font-style:italic}.hljs-solarized-dark .hljs-strong{font-weight:bold}","solarized-light":".hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f}.hljs-solarized-light .hljs-formula{background:#eee8d5}.hljs-solarized-light .hljs-emphasis{font-style:italic}.hljs-solarized-light .hljs-strong{font-weight:bold}","sunburst":".hljs-sunburst .hljs{display:block;overflow-x:auto;padding:.5em;background:#000;color:#f8f8f8}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964}.hljs-sunburst .hljs-string{color:#65b042}.hljs-sunburst .hljs-subst{color:#daefa3}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3}.hljs-sunburst .hljs-attribute{color:#cda869}.hljs-sunburst .hljs-meta{color:#8996a8}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8}.hljs-sunburst .hljs-selector-class{color:#9b703f}.hljs-sunburst .hljs-selector-id{color:#8b98ab}.hljs-sunburst .hljs-emphasis{font-style:italic}.hljs-sunburst .hljs-strong{font-weight:bold}","tomorrow-night-blue":".hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:.5em}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold}","tomorrow-night-bright":".hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:.5em}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:.5em}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold}","tomorrow-night":".hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f}.hljs-tomorrow-night .hljs-attribute{color:#f0c674}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:.5em}.hljs-tomorrow-night .hljs-emphasis{font-style:italic}.hljs-tomorrow-night .hljs-strong{font-weight:bold}","tomorrow":".hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f}.hljs-tomorrow .hljs-attribute{color:#eab700}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:.5em}.hljs-tomorrow .hljs-emphasis{font-style:italic}.hljs-tomorrow .hljs-strong{font-weight:bold}","vs":".hljs-vs .hljs{display:block;overflow-x:auto;padding:.5em;background:white;color:black}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af}.hljs-vs .hljs-doctag{color:#808080}.hljs-vs .hljs-attr{color:#f00}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8}.hljs-vs .hljs-emphasis{font-style:italic}.hljs-vs .hljs-strong{font-weight:bold}","vs2015":".hljs-vs2015 .hljs{display:block;overflow-x:auto;padding:.5em;background:#1E1E1E;color:#DCDCDC}.hljs-vs2015 .hljs-keyword,.hljs-vs2015 .hljs-literal,.hljs-vs2015 .hljs-symbol,.hljs-vs2015 .hljs-name{color:#569CD6}.hljs-vs2015 .hljs-link{color:#569CD6;text-decoration:underline}.hljs-vs2015 .hljs-built_in,.hljs-vs2015 .hljs-type{color:#4EC9B0}.hljs-vs2015 .hljs-number,.hljs-vs2015 .hljs-class{color:#B8D7A3}.hljs-vs2015 .hljs-string,.hljs-vs2015 .hljs-meta-string{color:#D69D85}.hljs-vs2015 .hljs-regexp,.hljs-vs2015 .hljs-template-tag{color:#9A5334}.hljs-vs2015 .hljs-subst,.hljs-vs2015 .hljs-function,.hljs-vs2015 .hljs-title,.hljs-vs2015 .hljs-params,.hljs-vs2015 .hljs-formula{color:#DCDCDC}.hljs-vs2015 .hljs-comment,.hljs-vs2015 .hljs-quote{color:#57A64A;font-style:italic}.hljs-vs2015 .hljs-doctag{color:#608B4E}.hljs-vs2015 .hljs-meta,.hljs-vs2015 .hljs-meta-keyword,.hljs-vs2015 .hljs-tag{color:#9B9B9B}.hljs-vs2015 .hljs-variable,.hljs-vs2015 .hljs-template-variable{color:#BD63C5}.hljs-vs2015 .hljs-attr,.hljs-vs2015 .hljs-attribute,.hljs-vs2015 .hljs-builtin-name{color:#9CDCFE}.hljs-vs2015 .hljs-section{color:gold}.hljs-vs2015 .hljs-emphasis{font-style:italic}.hljs-vs2015 .hljs-strong{font-weight:bold}.hljs-vs2015 .hljs-bullet,.hljs-vs2015 .hljs-selector-tag,.hljs-vs2015 .hljs-selector-id,.hljs-vs2015 .hljs-selector-class,.hljs-vs2015 .hljs-selector-attr,.hljs-vs2015 .hljs-selector-pseudo{color:#D7BA7D}.hljs-vs2015 .hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-vs2015 .hljs-deletion{background-color:#600;display:inline-block;width:100%}","xcode":".hljs-xcode .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:black}.hljs-xcode .xml .hljs-meta{color:#c0c0c0}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#007400}.hljs-xcode .hljs-tag,.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal,.hljs-xcode .hljs-name{color:#aa0d91}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#3F6E74}.hljs-xcode .hljs-code,.hljs-xcode .hljs-string,.hljs-xcode .hljs-meta-string{color:#c41a16}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#0E0EFF}.hljs-xcode .hljs-title,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number{color:#1c00cf}.hljs-xcode .hljs-section,.hljs-xcode .hljs-meta{color:#643820}.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699}.hljs-xcode .hljs-attr{color:#836C28}.hljs-xcode .hljs-subst{color:#000}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic}.hljs-xcode .hljs-addition{background-color:#baeeba}.hljs-xcode .hljs-deletion{background-color:#ffc8bd}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold}.hljs-xcode .hljs-emphasis{font-style:italic}","xt256":".hljs-xt256 .hljs{display:block;overflow-x:auto;color:#eaeaea;background:#000;padding:.5em}.hljs-xt256 .hljs-subst{color:#eaeaea}.hljs-xt256 .hljs-emphasis{font-style:italic}.hljs-xt256 .hljs-strong{font-weight:bold}.hljs-xt256 .hljs-builtin-name,.hljs-xt256 .hljs-type{color:#eaeaea}.hljs-xt256 .hljs-params{color:#da0000}.hljs-xt256 .hljs-literal,.hljs-xt256 .hljs-number,.hljs-xt256 .hljs-name{color:#ff0000;font-weight:bolder}.hljs-xt256 .hljs-comment{color:#969896}.hljs-xt256 .hljs-selector-id,.hljs-xt256 .hljs-quote{color:#00ffff}.hljs-xt256 .hljs-template-variable,.hljs-xt256 .hljs-variable,.hljs-xt256 .hljs-title{color:#00ffff;font-weight:bold}.hljs-xt256 .hljs-selector-class,.hljs-xt256 .hljs-keyword,.hljs-xt256 .hljs-symbol{color:#fff000}.hljs-xt256 .hljs-string,.hljs-xt256 .hljs-bullet{color:#00ff00}.hljs-xt256 .hljs-tag,.hljs-xt256 .hljs-section{color:#000fff}.hljs-xt256 .hljs-selector-tag{color:#000fff;font-weight:bold}.hljs-xt256 .hljs-attribute,.hljs-xt256 .hljs-built_in,.hljs-xt256 .hljs-regexp,.hljs-xt256 .hljs-link{color:#ff00ff}.hljs-xt256 .hljs-meta{color:#fff;font-weight:bolder}","zenburn":".hljs-zenburn .hljs{display:block;overflow-x:auto;padding:.5em;background:#3f3f3f;color:#dcdcdc}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab}.hljs-zenburn .hljs-template-tag{color:#dcdcdc}.hljs-zenburn .hljs-number{color:#8cd0d3}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc}.hljs-zenburn .hljs-literal{color:#efefaf}.hljs-zenburn .hljs-subst{color:#8f8f8f}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f}.hljs-zenburn .hljs-emphasis{font-style:italic}.hljs-zenburn .hljs-strong{font-weight:bold}"},
  26044   engine: hljs
  26045 };
  26046 
  26047 },{}],16:[function(require,module,exports){
  26048 module.exports = Lexer;
  26049 
  26050 var CODE = 1,
  26051     INLINE_CODE = 2,
  26052     CONTENT = 3,
  26053     FENCES = 4,
  26054     DEF = 5,
  26055     DEF_HREF = 6,
  26056     DEF_TITLE = 7,
  26057     MACRO = 8,
  26058     MACRO_ARGS = 9,
  26059     MACRO_OBJ = 10,
  26060     SLIDE_SEPARATOR = 11,
  26061     FRAGMENT_SEPARATOR = 12,
  26062     NOTES_SEPARATOR = 13;
  26063 
  26064 var regexByName = {
  26065     CODE: /(?:^|\n\n)( {4}[^\n]+\n*)+/,
  26066     INLINE_CODE: /\`([^\`].*?)\`/,
  26067     CONTENT: /(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,
  26068     FENCES: /(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,
  26069     DEF: /(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
  26070     MACRO: /!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,
  26071     SLIDE_SEPARATOR: /(?:^|\n)(---)(?:\n|$)/,
  26072     FRAGMENT_SEPARATOR: /(?:^|\n)(--)(?![^\n])/,
  26073     NOTES_SEPARATOR: /(?:^|\n)(\?{3})(?:\n|$)/
  26074   };
  26075 
  26076 var block = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SLIDE_SEPARATOR|FRAGMENT_SEPARATOR|NOTES_SEPARATOR/, regexByName),
  26077     inline = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/, regexByName);
  26078 
  26079 function Lexer () { }
  26080 
  26081 Lexer.prototype.lex = function (src) {
  26082   var tokens = lex(src.replace('\r', ''), block),
  26083       i;
  26084 
  26085   for (i = tokens.length - 2; i >= 0; i--) {
  26086     if (tokens[i].type === 'text' && tokens[i+1].type === 'text') {
  26087       tokens[i].text += tokens[i+1].text;
  26088       tokens.splice(i+1, 1);
  26089     }
  26090   }
  26091 
  26092   return tokens;
  26093 };
  26094 
  26095 function lex (src, regex, tokens) {
  26096   var cap, text;
  26097 
  26098   tokens = tokens || [];
  26099 
  26100   while ((cap = regex.exec(src)) !== null) {
  26101     if (cap.index > 0) {
  26102       tokens.push({
  26103         type: 'text',
  26104         text: src.substring(0, cap.index)
  26105       });
  26106     }
  26107 
  26108     if (cap[CODE]) {
  26109       tokens.push({
  26110         type: 'code',
  26111         text: cap[0]
  26112       });
  26113     }
  26114     else if (cap[INLINE_CODE]) {
  26115       tokens.push({
  26116         type: 'text',
  26117         text: cap[0]
  26118       });
  26119     }
  26120     else if (cap[FENCES]) {
  26121       tokens.push({
  26122         type: 'fences',
  26123         text: cap[0]
  26124       });
  26125     }
  26126     else if (cap[DEF]) {
  26127       tokens.push({
  26128         type: 'def',
  26129         id: cap[DEF].toLowerCase(),
  26130         href: cap[DEF_HREF],
  26131         title: cap[DEF_TITLE]
  26132       });
  26133     }
  26134     else if (cap[MACRO]) {
  26135       tokens.push({
  26136         type: 'macro',
  26137         name: cap[MACRO],
  26138         args: (cap[MACRO_ARGS] || '').split(',').map(trim),
  26139         obj: cap[MACRO_OBJ]
  26140       });
  26141     }
  26142     else if (cap[SLIDE_SEPARATOR] || cap[FRAGMENT_SEPARATOR]) {
  26143       tokens.push({
  26144         type: 'separator',
  26145         text: cap[SLIDE_SEPARATOR] || cap[FRAGMENT_SEPARATOR]
  26146       });
  26147     }
  26148     else if (cap[NOTES_SEPARATOR]) {
  26149       tokens.push({
  26150         type: 'notes_separator',
  26151         text: cap[NOTES_SEPARATOR]
  26152       });
  26153     }
  26154     else if (cap[CONTENT]) {
  26155       text = getTextInBrackets(src, cap.index + cap[0].length);
  26156       if (text !== undefined) {
  26157         src = src.substring(text.length + 1);
  26158 
  26159         if (cap[0][0] !== '\\') {
  26160           tokens.push({
  26161             type: 'content_start',
  26162             classes: cap[CONTENT].substring(1).split('.'),
  26163             block: text.indexOf('\n') !== -1
  26164           });
  26165           lex(text, inline, tokens);
  26166           tokens.push({
  26167             type: 'content_end',
  26168             block: text.indexOf('\n') !== -1
  26169           });
  26170         }
  26171         else {
  26172           tokens.push({
  26173             type: 'text',
  26174             text: cap[0].substring(1) + text + ']'
  26175           });
  26176         }
  26177       }
  26178       else {
  26179         tokens.push({
  26180           type: 'text',
  26181           text: cap[0]
  26182         });
  26183       }
  26184     }
  26185 
  26186     src = src.substring(cap.index + cap[0].length);
  26187   }
  26188 
  26189   if (src || (!src && tokens.length === 0)) {
  26190     tokens.push({
  26191       type: 'text',
  26192       text: src
  26193     });
  26194   }
  26195 
  26196   return tokens;
  26197 }
  26198 
  26199 function replace (regex, replacements) {
  26200   return new RegExp(regex.source.replace(/\w{2,}/g, function (key) {
  26201     return replacements[key].source;
  26202   }));
  26203 }
  26204 
  26205 function trim (text) {
  26206   if (typeof text === 'string') {
  26207     return text.trim();
  26208   }
  26209 
  26210   return text;
  26211 }
  26212 
  26213 function getTextInBrackets (src, offset) {
  26214   var depth = 1,
  26215       pos = offset,
  26216       chr;
  26217 
  26218   while (depth > 0 && pos < src.length) {
  26219     chr = src[pos++];
  26220     depth += (chr === '[' && 1) || (chr === ']' && -1) || 0;
  26221   }
  26222 
  26223   if (depth === 0) {
  26224     src = src.substr(offset, pos - offset - 1);
  26225     return src;
  26226   }
  26227 }
  26228 
  26229 },{}],17:[function(require,module,exports){
  26230 var macros = module.exports = {};
  26231 
  26232 macros.hello = function () {
  26233   return 'hello!';
  26234 };
  26235 
  26236 },{}],18:[function(require,module,exports){
  26237 var converter = require('../converter');
  26238 
  26239 module.exports = Slide;
  26240 
  26241 function Slide (slideIndex, slideNumber, slide, template) {
  26242   var self = this;
  26243 
  26244   self.properties = slide.properties || {};
  26245   self.links = slide.links || {};
  26246   self.content = slide.content || [];
  26247   self.notes = slide.notes || '';
  26248 
  26249   self.getSlideIndex = function () { return slideIndex; };
  26250   self.getSlideNumber = function () { return slideNumber; };
  26251 
  26252   if (template) {
  26253     inherit(self, template);
  26254   }
  26255 }
  26256 
  26257 function inherit (slide, template) {
  26258   inheritProperties(slide, template);
  26259   inheritContent(slide, template);
  26260   inheritNotes(slide, template);
  26261 }
  26262 
  26263 function inheritProperties (slide, template) {
  26264   var property
  26265     , value
  26266     ;
  26267 
  26268   for (property in template.properties) {
  26269     if (!template.properties.hasOwnProperty(property) ||
  26270         ignoreProperty(property)) {
  26271       continue;
  26272     }
  26273 
  26274     value = [template.properties[property]];
  26275 
  26276     if (property === 'class' && slide.properties[property]) {
  26277       value.push(slide.properties[property]);
  26278     }
  26279 
  26280     if (property === 'class' || slide.properties[property] === undefined) {
  26281       slide.properties[property] = value.join(', ');
  26282     }
  26283   }
  26284 }
  26285 
  26286 function ignoreProperty (property) {
  26287   return property === 'name' ||
  26288     property === 'layout' ||
  26289     property === 'count';
  26290 }
  26291 
  26292 function inheritContent (slide, template) {
  26293   var expandedVariables;
  26294 
  26295   slide.properties.content = slide.content.slice();
  26296   deepCopyContent(slide, template.content);
  26297 
  26298   expandedVariables = slide.expandVariables(/* contentOnly: */ true);
  26299 
  26300   if (expandedVariables.content === undefined) {
  26301     slide.content = slide.content.concat(slide.properties.content);
  26302   }
  26303 
  26304   delete slide.properties.content;
  26305 }
  26306 
  26307 function deepCopyContent(target, content) {
  26308   var i;
  26309 
  26310   target.content = [];
  26311   for (i = 0; i < content.length; ++i) {
  26312     if (typeof content[i] === 'string') {
  26313       target.content.push(content[i]);
  26314     }
  26315     else {
  26316       target.content.push({
  26317         block: content[i].block,
  26318         class: content[i].class,
  26319       });
  26320       deepCopyContent(target.content[target.content.length-1], content[i].content);
  26321     }
  26322   }
  26323 }
  26324 
  26325 function inheritNotes (slide, template) {
  26326   if (template.notes) {
  26327     slide.notes = template.notes + '\n\n' + slide.notes;
  26328   }
  26329 }
  26330 
  26331 Slide.prototype.expandVariables = function (contentOnly, content, expandResult) {
  26332   var properties = this.properties
  26333     , i
  26334     ;
  26335 
  26336   content = content !== undefined ? content : this.content;
  26337   expandResult = expandResult || {};
  26338 
  26339   for (i = 0; i < content.length; ++i) {
  26340     if (typeof content[i] === 'string') {
  26341       content[i] = content[i].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g, expand);
  26342     }
  26343     else {
  26344       this.expandVariables(contentOnly, content[i].content, expandResult);
  26345     }
  26346   }
  26347 
  26348   function expand (match, escaped, unescapedMatch, property) {
  26349     var propertyName = property.trim()
  26350       , propertyValue
  26351       ;
  26352 
  26353     if (escaped) {
  26354       return contentOnly ? match[0] : unescapedMatch;
  26355     }
  26356 
  26357     if (contentOnly && propertyName !== 'content') {
  26358       return match;
  26359     }
  26360 
  26361     propertyValue = properties[propertyName];
  26362 
  26363     if (propertyValue !== undefined) {
  26364       expandResult[propertyName] = propertyValue;
  26365       return propertyValue;
  26366     }
  26367 
  26368     return propertyName === 'content' ? '' : unescapedMatch;
  26369   }
  26370 
  26371   return expandResult;
  26372 };
  26373 
  26374 },{"../converter":13}],19:[function(require,module,exports){
  26375 var Navigation = require('./slideshow/navigation')
  26376   , Events = require('./slideshow/events')
  26377   , utils = require('../utils')
  26378   , Slide = require('./slide')
  26379   , Parser = require('../parser')
  26380   , macros = require('../macros')
  26381   ;
  26382 
  26383 module.exports = Slideshow;
  26384 
  26385 function Slideshow (events, dom, options, callback) {
  26386   var self = this
  26387     , slides = []
  26388     , links = {}
  26389     ;
  26390 
  26391   slides.byName = {};
  26392   options = options || {};
  26393 
  26394   // Extend slideshow functionality
  26395   Events.call(self, events);
  26396   Navigation.call(self, events);
  26397 
  26398   self.loadFromString = loadFromString;
  26399   self.loadFromUrl = loadFromUrl;
  26400   self.update = update;
  26401   self.getLinks = getLinks;
  26402   self.getSlides = getSlides;
  26403   self.getSlideCount = getSlideCount;
  26404   self.getSlideByName = getSlideByName;
  26405   self.getSlidesByNumber = getSlidesByNumber;
  26406 
  26407   self.togglePresenterMode = togglePresenterMode;
  26408   self.toggleHelp = toggleHelp;
  26409   self.toggleBlackout = toggleBlackout;
  26410   self.toggleMirrored = toggleMirrored;
  26411   self.toggleFullscreen = toggleFullscreen;
  26412   self.createClone = createClone;
  26413 
  26414   self.resetTimer = resetTimer;
  26415 
  26416   self.getRatio = getOrDefault('ratio', '4:3');
  26417   self.getHighlightStyle = getOrDefault('highlightStyle', 'default');
  26418   self.getHighlightLines = getOrDefault('highlightLines', false);
  26419   self.getHighlightSpans = getOrDefault('highlightSpans', false);
  26420   self.getHighlightInlineCode = getOrDefault('highlightInlineCode', false);
  26421   self.getHighlightLanguage = getOrDefault('highlightLanguage', '');
  26422   self.getSlideNumberFormat = getOrDefault('slideNumberFormat', '%current% / %total%');
  26423   self.getCloneTarget = getOrDefault('cloneTarget', '_blank');
  26424 
  26425   events.on('toggleBlackout', function (opts) {
  26426     if (opts && opts.propagate === false) return;
  26427 
  26428     if (self.clone && !self.clone.closed) {
  26429       self.clone.postMessage('toggleBlackout', '*');
  26430     }
  26431 
  26432     if (window.opener) {
  26433       window.opener.postMessage('toggleBlackout', '*');
  26434     }
  26435   });
  26436 
  26437   if (options.sourceUrl) {
  26438     loadFromUrl(options.sourceUrl, callback);
  26439   }
  26440   else {
  26441     loadFromString(options.source);
  26442     if (typeof callback === 'function') {
  26443       callback(self);
  26444     }
  26445   }
  26446 
  26447   function loadFromString (source) {
  26448     source = source || '';
  26449 
  26450     slides = createSlides(source, options);
  26451     expandVariables(slides);
  26452 
  26453     links = {};
  26454     slides.forEach(function (slide) {
  26455       for (var id in slide.links) {
  26456         if (slide.links.hasOwnProperty(id)) {
  26457           links[id] = slide.links[id];
  26458         }
  26459       }
  26460     });
  26461 
  26462     events.emit('slidesChanged');
  26463   }
  26464 
  26465   function loadFromUrl (url, callback) {
  26466     var xhr = new dom.XMLHttpRequest();
  26467     xhr.open('GET', options.sourceUrl, true);
  26468     xhr.onload = function (e) {
  26469       if (xhr.readyState === 4) {
  26470         if (xhr.status === 200) {
  26471           options.source = xhr.responseText.replace(/\r\n/g, '\n');
  26472           loadFromString(options.source);
  26473           if (typeof callback === 'function') {
  26474             callback(self);
  26475           }
  26476         } else {
  26477           throw Error(xhr.statusText);
  26478         }
  26479       }
  26480     };
  26481     xhr.onerror = function (e) {
  26482       throw Error(xhr.statusText);
  26483     };
  26484     xhr.send(null);
  26485     return xhr;
  26486   }
  26487 
  26488   function update () {
  26489     events.emit('resize');
  26490   }
  26491 
  26492   function getLinks () {
  26493     return links;
  26494   }
  26495 
  26496   function getSlides () {
  26497     return slides.map(function (slide) { return slide; });
  26498   }
  26499 
  26500   function getSlideCount () {
  26501     return slides.length;
  26502   }
  26503 
  26504   function getSlideByName (name) {
  26505     return slides.byName[name];
  26506   }
  26507 
  26508   function getSlidesByNumber (number) {
  26509     return slides.byNumber[number];
  26510   }
  26511 
  26512   function togglePresenterMode () {
  26513     events.emit('togglePresenterMode');
  26514   }
  26515 
  26516   function toggleHelp () {
  26517     events.emit('toggleHelp');
  26518   }
  26519 
  26520   function toggleBlackout () {
  26521     events.emit('toggleBlackout');
  26522   }
  26523 
  26524   function toggleMirrored() {
  26525     events.emit('toggleMirrored');
  26526   }
  26527 
  26528   function toggleFullscreen () {
  26529     events.emit('toggleFullscreen');
  26530   }
  26531 
  26532   function createClone () {
  26533     events.emit('createClone');
  26534   }
  26535 
  26536   function resetTimer () {
  26537     events.emit('resetTimer');
  26538   }
  26539 
  26540   function getOrDefault (key, defaultValue) {
  26541     return function () {
  26542       if (options[key] === undefined) {
  26543         return defaultValue;
  26544       }
  26545 
  26546       return options[key];
  26547     };
  26548   }
  26549 }
  26550 
  26551 function createSlides (slideshowSource, options) {
  26552   var parser = new Parser()
  26553    ,  parsedSlides = parser.parse(slideshowSource, macros, options)
  26554     , slides = []
  26555     , byName = {}
  26556     , layoutSlide
  26557     ;
  26558 
  26559   slides.byName = {};
  26560   slides.byNumber = {};
  26561 
  26562   var slideNumber = 0;
  26563   parsedSlides.forEach(function (slide, i) {
  26564     var template, slideViewModel;
  26565 
  26566     if (slide.properties.continued === 'true' && i > 0) {
  26567       template = slides[slides.length - 1];
  26568     }
  26569     else if (byName[slide.properties.template]) {
  26570       template = byName[slide.properties.template];
  26571     }
  26572     else if (slide.properties.layout === 'false') {
  26573       layoutSlide = undefined;
  26574     }
  26575     else if (layoutSlide && slide.properties.layout !== 'true') {
  26576       template = layoutSlide;
  26577     }
  26578 
  26579     if (slide.properties.continued === 'true' &&
  26580         options.countIncrementalSlides === false &&
  26581         slide.properties.count === undefined) {
  26582       slide.properties.count = 'false';
  26583     }
  26584 
  26585     var slideClasses = (slide.properties['class'] || '').split(/,| /)
  26586       , excludedClasses = options.excludedClasses || []
  26587       , slideIsIncluded = slideClasses.filter(function (c) {
  26588           return excludedClasses.indexOf(c) !== -1;
  26589         }).length === 0;
  26590 
  26591     if (slideIsIncluded && slide.properties.layout !== 'true' && slide.properties.count !== 'false') {
  26592       slideNumber++;
  26593       slides.byNumber[slideNumber] = [];
  26594     }
  26595 
  26596     if (options.includePresenterNotes !== undefined && !options.includePresenterNotes) {
  26597       slide.notes = '';
  26598     }
  26599 
  26600     slideViewModel = new Slide(slides.length, slideNumber, slide, template);
  26601 
  26602     if (slide.properties.name) {
  26603       byName[slide.properties.name] = slideViewModel;
  26604     }
  26605 
  26606     if (slide.properties.layout === 'true') {
  26607       layoutSlide = slideViewModel;
  26608     } else {
  26609       if (slideIsIncluded) {
  26610         slides.push(slideViewModel);
  26611         slides.byNumber[slideNumber].push(slideViewModel);
  26612       }
  26613       if (slide.properties.name) {
  26614         slides.byName[slide.properties.name] = slideViewModel;
  26615       }
  26616     }
  26617 
  26618   });
  26619 
  26620   return slides;
  26621 }
  26622 
  26623 function expandVariables (slides) {
  26624   slides.forEach(function (slide) {
  26625     slide.expandVariables();
  26626   });
  26627 }
  26628 
  26629 },{"../macros":17,"../parser":22,"../utils":25,"./slide":18,"./slideshow/events":20,"./slideshow/navigation":21}],20:[function(require,module,exports){
  26630 var EventEmitter = require('events').EventEmitter;
  26631 
  26632 module.exports = Events;
  26633 
  26634 function Events (events) {
  26635   var self = this
  26636     , externalEvents = new EventEmitter()
  26637     ;
  26638 
  26639   externalEvents.setMaxListeners(0);
  26640 
  26641   self.on = function () {
  26642     externalEvents.on.apply(externalEvents, arguments);
  26643     return self;
  26644   };
  26645 
  26646   ['showSlide', 'hideSlide', 'beforeShowSlide', 'afterShowSlide', 'beforeHideSlide', 'afterHideSlide', 'toggledPresenter'].map(function (eventName) {
  26647     events.on(eventName, function (slideIndex) {
  26648       var slide = self.getSlides()[slideIndex];
  26649       externalEvents.emit(eventName, slide);
  26650     });
  26651   });
  26652 }
  26653 
  26654 },{"events":1}],21:[function(require,module,exports){
  26655 module.exports = Navigation;
  26656 
  26657 function Navigation (events) {
  26658   var self = this
  26659     , currentSlideIndex = -1
  26660     , started = null
  26661     ;
  26662 
  26663   self.getCurrentSlideIndex = getCurrentSlideIndex;
  26664   self.gotoSlide = gotoSlide;
  26665   self.gotoSlideNumber = gotoSlideNumber;
  26666   self.gotoPreviousSlide = gotoPreviousSlide;
  26667   self.gotoNextSlide = gotoNextSlide;
  26668   self.gotoFirstSlide = gotoFirstSlide;
  26669   self.gotoLastSlide = gotoLastSlide;
  26670   self.pause = pause;
  26671   self.resume = resume;
  26672 
  26673   events.on('gotoSlide', gotoSlide);
  26674   events.on('gotoSlideNumber', gotoSlideNumber);
  26675   events.on('gotoPreviousSlide', gotoPreviousSlide);
  26676   events.on('gotoNextSlide', gotoNextSlide);
  26677   events.on('gotoFirstSlide', gotoFirstSlide);
  26678   events.on('gotoLastSlide', gotoLastSlide);
  26679 
  26680   events.on('slidesChanged', function () {
  26681     if (currentSlideIndex > self.getSlideCount()) {
  26682       currentSlideIndex = self.getSlideCount();
  26683     }
  26684   });
  26685 
  26686   events.on('createClone', function () {
  26687     if (!self.clone || self.clone.closed) {
  26688       self.clone = window.open(location.href, self.getCloneTarget(), 'location=no');
  26689     }
  26690     else {
  26691       self.clone.focus();
  26692     }
  26693   });
  26694 
  26695   events.on('resetTimer', function() {
  26696     started = false;
  26697   });
  26698 
  26699   function pause () {
  26700     events.emit('pause');
  26701   }
  26702 
  26703   function resume () {
  26704     events.emit('resume');
  26705   }
  26706 
  26707   function getCurrentSlideIndex () {
  26708     return currentSlideIndex;
  26709   }
  26710 
  26711   function gotoSlideByIndex(slideIndex, noMessage) {
  26712     var alreadyOnSlide = slideIndex === currentSlideIndex
  26713       , slideOutOfRange = slideIndex < 0 || slideIndex > self.getSlideCount()-1
  26714       ;
  26715 
  26716     if (noMessage === undefined) noMessage = false;
  26717 
  26718     if (alreadyOnSlide || slideOutOfRange) {
  26719       return;
  26720     }
  26721 
  26722     if (currentSlideIndex !== -1) {
  26723       events.emit('hideSlide', currentSlideIndex, false);
  26724     }
  26725 
  26726     // Use some tri-state logic here.
  26727     // null = We haven't shown the first slide yet.
  26728     // false = We've shown the initial slide, but we haven't progressed beyond that.
  26729     // true = We've issued the first slide change command.
  26730     if (started === null) {
  26731       started = false;
  26732     } else if (started === false) {
  26733       // We've shown the initial slide previously - that means this is a
  26734       // genuine move to a new slide.
  26735       events.emit('start');
  26736       started = true;
  26737     }
  26738 
  26739     events.emit('showSlide', slideIndex);
  26740 
  26741     currentSlideIndex = slideIndex;
  26742 
  26743     events.emit('slideChanged', slideIndex + 1);
  26744 
  26745     if (!noMessage) {
  26746       if (self.clone && !self.clone.closed) {
  26747         self.clone.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
  26748       }
  26749 
  26750       if (window.opener) {
  26751         window.opener.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
  26752       }
  26753     }
  26754   }
  26755 
  26756   function gotoSlide (slideNoOrName, noMessage) {
  26757     var slideIndex = getSlideIndex(slideNoOrName);
  26758 
  26759     gotoSlideByIndex(slideIndex, noMessage);
  26760   }
  26761 
  26762   function gotoSlideNumber (slideNumber, noMessage) {
  26763     var slides = self.getSlidesByNumber(parseInt(slideNumber, 10));
  26764     if (slides && slides.length) {
  26765       gotoSlideByIndex(slides[0].getSlideIndex(), noMessage);
  26766     }
  26767   }
  26768 
  26769   function gotoPreviousSlide() {
  26770     gotoSlideByIndex(currentSlideIndex - 1);
  26771   }
  26772 
  26773   function gotoNextSlide() {
  26774     gotoSlideByIndex(currentSlideIndex + 1);
  26775   }
  26776 
  26777   function gotoFirstSlide () {
  26778     gotoSlideByIndex(0);
  26779   }
  26780 
  26781   function gotoLastSlide () {
  26782     gotoSlideByIndex(self.getSlideCount() - 1);
  26783   }
  26784 
  26785   function getSlideIndex (slideNoOrName) {
  26786     var slideNo
  26787       , slide
  26788       ;
  26789 
  26790     if (typeof slideNoOrName === 'number') {
  26791       return slideNoOrName - 1;
  26792     }
  26793 
  26794     slideNo = parseInt(slideNoOrName, 10);
  26795     if (slideNo.toString() === slideNoOrName) {
  26796       return slideNo - 1;
  26797     }
  26798 
  26799     if(slideNoOrName.match(/^p\d+$/)){
  26800       events.emit('forcePresenterMode');
  26801       return parseInt(slideNoOrName.substr(1), 10)-1;
  26802     }
  26803 
  26804     slide = self.getSlideByName(slideNoOrName);
  26805     if (slide) {
  26806       return slide.getSlideIndex();
  26807     }
  26808 
  26809     return 0;
  26810   }
  26811 }
  26812 
  26813 },{}],22:[function(require,module,exports){
  26814 var Lexer = require('./lexer');
  26815 
  26816 module.exports = Parser;
  26817 
  26818 function Parser () { }
  26819 
  26820 /*
  26821  *  Parses source string into list of slides.
  26822  *
  26823  *  Output format:
  26824  *
  26825  *  [
  26826  *    // Per slide
  26827  *    {
  26828  *      // Properties
  26829  *      properties: {
  26830  *        name: 'value'
  26831  *      },
  26832  *      // Notes (optional, same format as content list)
  26833  *      notes: [...],
  26834  *      // Link definitions
  26835  *      links: {
  26836  *        id: { href: 'url', title: 'optional title' },
  26837  *        ...
  26838  *      ],
  26839  *      content: [
  26840  *        // Any content except for content classes are represented as strings
  26841  *        'plain text ',
  26842  *        // Content classes are represented as objects
  26843  *        { block: false, class: 'the-class', content: [...] },
  26844  *        { block: true, class: 'the-class', content: [...] },
  26845  *        ...
  26846  *      ]
  26847  *    },
  26848  *    ...
  26849  *  ]
  26850  */
  26851 Parser.prototype.parse = function (src, macros, options) {
  26852   var self = this,
  26853       lexer = new Lexer(),
  26854       tokens = lexer.lex(cleanInput(src)),
  26855       slides = [],
  26856 
  26857       // The last item on the stack contains the current slide or
  26858       // content class we're currently appending content to.
  26859       stack = [createSlide()];
  26860 
  26861   macros = macros || {};
  26862   options = options || {};
  26863 
  26864   tokens.forEach(function (token) {
  26865     switch (token.type) {
  26866       case 'text':
  26867       case 'code':
  26868       case 'fences':
  26869         // Text, code and fenced code tokens are appended to their
  26870         // respective parents as string literals, and are only included
  26871         // in the parse process in order to reason about structure
  26872         // (like ignoring a slide separator inside fenced code).
  26873         appendTo(stack[stack.length - 1], token.text);
  26874         break;
  26875       case 'def':
  26876         // Link definition
  26877         stack[0].links[token.id] = {
  26878           href: token.href,
  26879           title: token.title
  26880         };
  26881         break;
  26882       case 'macro':
  26883         // Macro
  26884         var macro = macros[token.name];
  26885         if (typeof macro !== 'function') {
  26886           throw new Error('Macro "' + token.name + '" not found. ' +
  26887               'You need to define macro using remark.macros[\'' +
  26888               token.name + '\'] = function () { ... };');
  26889         }
  26890         var value = macro.apply(token.obj, token.args);
  26891         if (typeof value === 'string') {
  26892           value = self.parse(value, macros);
  26893           appendTo(stack[stack.length - 1], value[0].content[0]);
  26894         }
  26895         else {
  26896           appendTo(stack[stack.length - 1], value === undefined ?
  26897               '' : value.toString());
  26898         }
  26899         break;
  26900       case 'content_start':
  26901         // Entering content class, so create stack entry for appending
  26902         // upcoming content to.
  26903         //
  26904         // Lexer handles open/close bracket balance, so there's no need
  26905         // to worry about there being a matching closing bracket.
  26906         stack.push(createContentClass(token));
  26907         break;
  26908       case 'content_end':
  26909         // Exiting content class, so remove entry from stack and
  26910         // append to previous item (outer content class or slide).
  26911         appendTo(stack[stack.length - 2], stack[stack.length - 1]);
  26912         stack.pop();
  26913         break;
  26914       case 'separator':
  26915         // Just continue on the same slide if incremental slides are disabled
  26916         if (token.text === '--' && options.disableIncrementalSlides === true) {
  26917           // If it happens that there was a note section right before, just get
  26918           // rid of it
  26919           if (stack[0].notes !== undefined)
  26920             delete(stack[0].notes);
  26921           break;
  26922         }
  26923         // Slide separator (--- or --), so add current slide to list of
  26924         // slides and re-initialize stack with new, blank slide.
  26925         slides.push(stack[0]);
  26926         stack = [createSlide()];
  26927         // Tag the new slide as a continued slide if the separator
  26928         // used was -- instead of --- (2 vs. 3 dashes).
  26929         stack[0].properties.continued = (token.text === '--').toString();
  26930         break;
  26931       case 'notes_separator':
  26932         // Notes separator (???), so create empty content list on slide
  26933         // in which all remaining slide content will be put.
  26934         stack[0].notes = [];
  26935         break;
  26936     }
  26937   });
  26938 
  26939   // Push current slide to list of slides.
  26940   slides.push(stack[0]);
  26941 
  26942   slides.forEach(function (slide) {
  26943     slide.content[0] = extractProperties(slide.content[0] || '', slide.properties);
  26944   });
  26945 
  26946   return slides.filter(function (slide) {
  26947     var exclude = (slide.properties.exclude || '').toLowerCase();
  26948 
  26949     if (exclude === 'true') {
  26950       return false;
  26951     }
  26952 
  26953     return true;
  26954   });
  26955 };
  26956 
  26957 function createSlide () {
  26958   return {
  26959     content: [],
  26960     properties: {
  26961       continued: 'false'
  26962     },
  26963     links: {}
  26964   };
  26965 }
  26966 
  26967 function createContentClass (token) {
  26968   return {
  26969     class: token.classes.join(' '),
  26970     block: token.block,
  26971     content: []
  26972   };
  26973 }
  26974 
  26975 function appendTo (element, content) {
  26976   var target = element.content;
  26977 
  26978   if (element.notes !== undefined) {
  26979     target = element.notes;
  26980   }
  26981 
  26982   // If two string are added after one another, we can just as well
  26983   // go ahead and concatenate them into a single string.
  26984   var lastIdx = target.length - 1;
  26985   if (typeof target[lastIdx] === 'string' && typeof content === 'string') {
  26986     target[lastIdx] += content;
  26987   }
  26988   else {
  26989     target.push(content);
  26990   }
  26991 }
  26992 
  26993 function extractProperties (source, properties) {
  26994   var propertyFinder = /^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i
  26995     , match
  26996     ;
  26997 
  26998   while ((match = propertyFinder.exec(source)) !== null) {
  26999     source = source.substr(0, match.index) +
  27000       source.substr(match.index + match[0].length);
  27001 
  27002     if (match[1] !== undefined) {
  27003       properties[match[1].trim()] = match[2].trim();
  27004     }
  27005     else {
  27006       properties[match[3].trim()] = match[4].trim();
  27007     }
  27008 
  27009     propertyFinder.lastIndex = match.index;
  27010   }
  27011 
  27012   return source;
  27013 }
  27014 
  27015 function cleanInput(source) {
  27016   // If all lines are indented, we should trim them all to the same point so that code doesn't
  27017   // need to start at column 0 in the source (see GitHub Issue #105)
  27018 
  27019   // Helper to extract captures from the regex
  27020   var getMatchCaptures = function (source, pattern) {
  27021     var results = [], match;
  27022     while ((match = pattern.exec(source)) !== null)
  27023       results.push(match[1]);
  27024     return results;
  27025   };
  27026 
  27027   // Calculate the minimum leading whitespace
  27028   // Ensure there's at least one char that's not newline nor whitespace to ignore empty and blank lines
  27029   var leadingWhitespacePattern = /^([ \t]*)[^ \t\n]/gm;
  27030   var whitespace = getMatchCaptures(source, leadingWhitespacePattern).map(function (s) { return s.length; });
  27031   var minWhitespace = Math.min.apply(Math, whitespace);
  27032 
  27033   // Trim off the exact amount of whitespace, or less for blank lines (non-empty)
  27034   var trimWhitespacePattern = new RegExp('^[ \\t]{0,' + minWhitespace + '}', 'gm');
  27035   return source.replace(trimWhitespacePattern, '');
  27036 }
  27037 
  27038 },{"./lexer":16}],23:[function(require,module,exports){
  27039 /* Automatically generated */
  27040 
  27041 module.exports = {
  27042   version: "0.15.0",
  27043   documentStyles: "html{font-size:20px}html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact}.remark-container{background:#d7d8d2;margin:0;overflow:hidden}.remark-container:focus{outline-style:solid;outline-width:1px}.remark-container:-webkit-full-screen{width:100%;height:100%}body:-webkit-full-screen{background:#000000}body:-moz-full-screen{background:#000000}body:fullscreen{background:#000000}.remark-slides-area{position:relative;height:100%;width:100%}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always}.remark-slide-scaler{background-color:transparent;overflow:auto;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed;position:relative}.remark-slide>.left{text-align:left}.remark-slide>.center{text-align:center}.remark-slide>.right{text-align:right}.remark-slide>.top{vertical-align:top}.remark-slide>.middle{vertical-align:middle}.remark-slide>.bottom{vertical-align:bottom}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;padding:1em 4em 1em 4em}.remark-slide-content .left{display:block;text-align:left}.remark-slide-content .center{display:block;text-align:center}.remark-slide-content .right{display:block;text-align:right}.remark-slide-number{bottom:12px;opacity:.5;position:absolute;right:20px}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none}.remark-code{font-size:smaller}.remark-code-line{min-height:1em}.remark-code-line-highlighted{background-color:rgba(255,255,0,0.5)}.remark-code-span-highlighted{background-color:rgba(255,255,0,0.5);padding:1px 2px 2px 2px}.remark-visible{display:block;z-index:2}.remark-fading{display:block;z-index:1}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:.5}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%}.remark-help .remark-help-content h1{font-size:36px}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px}.remark-help .remark-help-content td:first-child{padding-left:0}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px}.remark-help .dismiss{top:85%}.remark-container.remark-help-mode .remark-help{display:block}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:.95}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:.5;position:absolute;height:47.25%;width:48%}.remark-preview-area .remark-slide-container{display:block}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:.75em;text-transform:uppercase;color:#ccc}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;margin-bottom:20px;padding-top:10px}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0}.remark-toolbar{color:#979892;vertical-align:middle}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%}.remark-container.remark-presenter-mode .remark-preview-area{display:block}.remark-container.remark-presenter-mode .remark-notes-area{display:block}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:.99}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1)}@media print{.remark-container{overflow:visible;background-color:#fff}.remark-container.remark-presenter-mode .remark-slides-area{top:0px;left:0px;height:100%;width:681px}.remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none}.remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px}.remark-slide-container{display:block;position:relative}.remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none}}@page{margin:0}",
  27044   containerLayout: "<div class=\"remark-notes-area\">\n  <div class=\"remark-top-area\">\n    <div class=\"remark-toolbar\">\n      <a class=\"remark-toolbar-link\" href=\"#increase\">+</a>\n      <a class=\"remark-toolbar-link\" href=\"#decrease\">-</a>\n      <span class=\"remark-toolbar-timer\"></span>\n    </div>\n  </div>\n  <div class=\"remark-bottom-area\">\n    <div class=\"remark-notes-current-area\">\n      <div class=\"remark-toggle\">Notes for current slide</div>\n      <div class=\"remark-notes\"></div>\n    </div>\n    <div class=\"remark-notes-preview-area\">\n      <div class=\"remark-toggle\">Notes for next slide</div>\n      <div class=\"remark-notes-preview\"></div>\n    </div>\n  </div>\n</div>\n<div class=\"remark-slides-area\"></div>\n<div class=\"remark-preview-area\"></div>\n<div class=\"remark-backdrop\"></div>\n<div class=\"remark-pause\">\n  <div class=\"remark-pause-lozenge\">\n    <span>Paused</span>\n  </div>\n</div>\n<div class=\"remark-help\">\n  <div class=\"remark-help-content\">\n    <h1>Help</h1>\n    <p><b>Keyboard shortcuts</b></p>\n    <table class=\"light-keys\">\n      <tr>\n        <td>\n          <span class=\"key\"><b>&uarr;</b></span>,\n          <span class=\"key\"><b>&larr;</b></span>,\n          <span class=\"key\">Pg Up</span>,\n          <span class=\"key\">k</span>\n        </td>\n        <td>Go to previous slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\"><b>&darr;</b></span>,\n          <span class=\"key\"><b>&rarr;</b></span>,\n          <span class=\"key\">Pg Dn</span>,\n          <span class=\"key\">Space</span>,\n          <span class=\"key\">j</span>\n        </td>\n        <td>Go to next slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">Home</span>\n        </td>\n        <td>Go to first slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">End</span>\n        </td>\n        <td>Go to last slide</td>\n      </tr>\n      <tr>\n        <td>\n          Number + <span class=\"key\">Return</span>\n        </td>\n        <td>Go to specific slide</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">b</span>&nbsp;/\n          <span class=\"key\">m</span>&nbsp;/\n          <span class=\"key\">f</span>\n        </td>\n        <td>Toggle blackout / mirrored / fullscreen mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">c</span>\n        </td>\n        <td>Clone slideshow</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">p</span>\n        </td>\n        <td>Toggle presenter mode</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">s</span>\n        </td>\n        <td>Start & Stop the presentation timer</td>\n      </tr>\n       <tr>\n        <td>\n          <span class=\"key\">t</span>\n        </td>\n        <td>Reset the presentation timer</td>\n      </tr>\n      <tr>\n        <td>\n          <span class=\"key\">?</span>,\n          <span class=\"key\">h</span>\n        </td>\n        <td>Toggle this help</td>\n      </tr>\n    </table>\n  </div>\n  <div class=\"content dismiss\">\n    <table class=\"light-keys\">\n      <tr>\n        <td>\n          <span class=\"key\">Esc</span>\n        </td>\n        <td>Back to slideshow</td>\n      </tr>\n    </table>\n  </div>\n</div>\n"
  27045 };
  27046 
  27047 },{}],24:[function(require,module,exports){
  27048 var referenceWidth = 908
  27049   , referenceHeight = 681
  27050   , referenceRatio = referenceWidth / referenceHeight
  27051   ;
  27052 
  27053 module.exports = Scaler;
  27054 
  27055 function Scaler (events, slideshow) {
  27056   var self = this;
  27057 
  27058   self.events = events;
  27059   self.slideshow = slideshow;
  27060   self.ratio = getRatio(slideshow);
  27061   self.dimensions = getDimensions(self.ratio);
  27062 
  27063   self.events.on('propertiesChanged', function (changes) {
  27064     if (changes.hasOwnProperty('ratio')) {
  27065       self.ratio = getRatio(slideshow);
  27066       self.dimensions = getDimensions(self.ratio);
  27067     }
  27068   });
  27069 }
  27070 
  27071 Scaler.prototype.scaleToFit = function (element, container) {
  27072   var self = this
  27073     , containerHeight = container.clientHeight
  27074     , containerWidth = container.clientWidth
  27075     , scale
  27076     , scaledWidth
  27077     , scaledHeight
  27078     , ratio = self.ratio
  27079     , dimensions = self.dimensions
  27080     , direction
  27081     , left
  27082     , top
  27083     ;
  27084 
  27085   if (containerWidth / ratio.width > containerHeight / ratio.height) {
  27086     scale = containerHeight / dimensions.height;
  27087   }
  27088   else {
  27089     scale = containerWidth / dimensions.width;
  27090   }
  27091 
  27092   scaledWidth = dimensions.width * scale;
  27093   scaledHeight = dimensions.height * scale;
  27094 
  27095   left = (containerWidth - scaledWidth) / 2;
  27096   top = (containerHeight - scaledHeight) / 2;
  27097 
  27098   element.style['-webkit-transform'] = 'scale(' + scale + ')';
  27099   element.style.MozTransform = 'scale(' + scale + ')';
  27100   element.style.left = Math.max(left, 0) + 'px';
  27101   element.style.top = Math.max(top, 0) + 'px';
  27102 };
  27103 
  27104 function getRatio (slideshow) {
  27105   var ratioComponents = slideshow.getRatio().split(':')
  27106     , ratio
  27107     ;
  27108 
  27109   ratio = {
  27110     width: parseInt(ratioComponents[0], 10)
  27111   , height: parseInt(ratioComponents[1], 10)
  27112   };
  27113 
  27114   ratio.ratio = ratio.width / ratio.height;
  27115 
  27116   return ratio;
  27117 }
  27118 
  27119 function getDimensions (ratio) {
  27120   return {
  27121     width: Math.floor(referenceWidth / referenceRatio * ratio.ratio)
  27122   , height: referenceHeight
  27123   };
  27124 }
  27125 
  27126 },{}],25:[function(require,module,exports){
  27127 exports.addClass = function (element, className) {
  27128   element.className = exports.getClasses(element)
  27129     .concat([className])
  27130     .join(' ');
  27131 };
  27132 
  27133 exports.removeClass = function (element, className) {
  27134   element.className = exports.getClasses(element)
  27135     .filter(function (klass) { return klass !== className; })
  27136     .join(' ');
  27137 };
  27138 
  27139 exports.toggleClass = function (element, className) {
  27140   var classes = exports.getClasses(element),
  27141       index = classes.indexOf(className);
  27142 
  27143   if (index !== -1) {
  27144     classes.splice(index, 1);
  27145   }
  27146   else {
  27147     classes.push(className);
  27148   }
  27149 
  27150   element.className = classes.join(' ');
  27151 };
  27152 
  27153 exports.getClasses = function (element) {
  27154   return element.className
  27155     .split(' ')
  27156     .filter(function (s) { return s !== ''; });
  27157 };
  27158 
  27159 exports.hasClass = function (element, className) {
  27160   return exports.getClasses(element).indexOf(className) !== -1;
  27161 };
  27162 
  27163 exports.getPrefixedProperty = function (element, propertyName) {
  27164   var capitalizedPropertName = propertyName[0].toUpperCase() +
  27165     propertyName.slice(1);
  27166 
  27167   return element[propertyName] || element['moz' + capitalizedPropertName] ||
  27168     element['webkit' + capitalizedPropertName];
  27169 };
  27170 
  27171 },{}],26:[function(require,module,exports){
  27172 var converter = require('../converter');
  27173 
  27174 module.exports = NotesView;
  27175 
  27176 function NotesView (events, element, slideViewsAccessor) {
  27177   var self = this;
  27178 
  27179   self.events = events;
  27180   self.element = element;
  27181   self.slideViewsAccessor = slideViewsAccessor;
  27182 
  27183   self.configureElements();
  27184 
  27185   events.on('showSlide', function (slideIndex) {
  27186     self.showSlide(slideIndex);
  27187   });
  27188 }
  27189 
  27190 NotesView.prototype.showSlide = function (slideIndex) {
  27191   var self = this
  27192     , slideViews = self.slideViewsAccessor()
  27193     , slideView = slideViews[slideIndex]
  27194     , nextSlideView = slideViews[slideIndex + 1]
  27195     ;
  27196 
  27197   self.notesElement.innerHTML = slideView.notesElement.innerHTML;
  27198 
  27199   if (nextSlideView) {
  27200     self.notesPreviewElement.innerHTML = nextSlideView.notesElement.innerHTML;
  27201   }
  27202   else {
  27203     self.notesPreviewElement.innerHTML = '';
  27204   }
  27205 };
  27206 
  27207 NotesView.prototype.configureElements = function () {
  27208   var self = this;
  27209 
  27210   self.notesElement = self.element.getElementsByClassName('remark-notes')[0];
  27211   self.notesPreviewElement = self.element.getElementsByClassName('remark-notes-preview')[0];
  27212 
  27213   self.notesElement.addEventListener('mousewheel', function (event) {
  27214     event.stopPropagation();
  27215   });
  27216 
  27217   self.notesPreviewElement.addEventListener('mousewheel', function (event) {
  27218     event.stopPropagation();
  27219   });
  27220 
  27221   self.toolbarElement = self.element.getElementsByClassName('remark-toolbar')[0];
  27222 
  27223   var commands = {
  27224     increase: function () {
  27225       self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) + 0.1 + 'em';
  27226       self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
  27227     },
  27228     decrease: function () {
  27229       self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) - 0.1 + 'em';
  27230       self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
  27231     }
  27232   };
  27233 
  27234   self.toolbarElement.getElementsByTagName('a').forEach(function (link) {
  27235     link.addEventListener('click', function (e) {
  27236       var command = e.target.hash.substr(1);
  27237       commands[command]();
  27238       e.preventDefault();
  27239     });
  27240   });
  27241 };
  27242 
  27243 },{"../converter":13}],27:[function(require,module,exports){
  27244 var SlideNumber = require('../components/slide-number/slide-number')
  27245   , converter = require('../converter')
  27246   , highlighter = require('../highlighter')
  27247   , utils = require('../utils')
  27248   ;
  27249 
  27250 module.exports = SlideView;
  27251 
  27252 function SlideView (events, slideshow, scaler, slide) {
  27253   var self = this;
  27254 
  27255   self.events = events;
  27256   self.slideshow = slideshow;
  27257   self.scaler = scaler;
  27258   self.slide = slide;
  27259 
  27260   self.slideNumber = new SlideNumber(slide, slideshow);
  27261 
  27262   self.configureElements();
  27263   self.updateDimensions();
  27264 
  27265   self.events.on('propertiesChanged', function (changes) {
  27266     if (changes.hasOwnProperty('ratio')) {
  27267       self.updateDimensions();
  27268     }
  27269   });
  27270 }
  27271 
  27272 SlideView.prototype.updateDimensions = function () {
  27273   var self = this
  27274     , dimensions = self.scaler.dimensions
  27275     ;
  27276 
  27277   self.scalingElement.style.width = dimensions.width + 'px';
  27278   self.scalingElement.style.height = dimensions.height + 'px';
  27279 };
  27280 
  27281 SlideView.prototype.scale = function (containerElement) {
  27282   var self = this;
  27283 
  27284   self.scaler.scaleToFit(self.scalingElement, containerElement);
  27285 };
  27286 
  27287 SlideView.prototype.show = function () {
  27288   utils.addClass(this.containerElement, 'remark-visible');
  27289   utils.removeClass(this.containerElement, 'remark-fading');
  27290 };
  27291 
  27292 SlideView.prototype.hide = function () {
  27293   var self = this;
  27294   utils.removeClass(this.containerElement, 'remark-visible');
  27295   // Don't just disappear the slide. Mark it as fading, which
  27296   // keeps it on the screen, but at a reduced z-index.
  27297   // Then set a timer to remove the fading state in 1s.
  27298   utils.addClass(this.containerElement, 'remark-fading');
  27299   setTimeout(function(){
  27300       utils.removeClass(self.containerElement, 'remark-fading');
  27301   }, 1000);
  27302 };
  27303 
  27304 SlideView.prototype.configureElements = function () {
  27305   var self = this;
  27306 
  27307   self.containerElement = document.createElement('div');
  27308   self.containerElement.className = 'remark-slide-container';
  27309 
  27310   self.scalingElement = document.createElement('div');
  27311   self.scalingElement.className = 'remark-slide-scaler';
  27312 
  27313   self.element = createSlideElement(self.slide);
  27314 
  27315   self.contentElement = createContentElement(self.events, self.slideshow, self.slide);
  27316   self.notesElement = createNotesElement(self.slideshow, self.slide.notes);
  27317 
  27318   self.contentElement.appendChild(self.slideNumber.element);
  27319   self.element.appendChild(self.contentElement);
  27320   self.scalingElement.appendChild(self.element);
  27321   self.containerElement.appendChild(self.scalingElement);
  27322   self.containerElement.appendChild(self.notesElement);
  27323 };
  27324 
  27325 SlideView.prototype.scaleBackgroundImage = function (dimensions) {
  27326   var self = this
  27327     , styles = window.getComputedStyle(this.contentElement)
  27328     , backgroundImage = styles.backgroundImage
  27329     , backgroundSize = styles.backgroundSize
  27330     , backgroundPosition = styles.backgroundPosition
  27331     , match
  27332     , image
  27333     , scale
  27334     ;
  27335 
  27336   // If the user explicitly sets the backgroundSize or backgroundPosition, let
  27337   // that win and early return here.
  27338   if ((backgroundSize || backgroundPosition) && !self.backgroundSizeSet) {
  27339     return;
  27340   }
  27341 
  27342   if ((match = /^url\(("?)([^\)]+?)\1\)/.exec(backgroundImage)) !== null) {
  27343     image = new Image();
  27344     image.onload = function () {
  27345       if (image.width > dimensions.width ||
  27346           image.height > dimensions.height) {
  27347         // Background image is larger than slide
  27348         if (!self.originalBackgroundSize) {
  27349           // No custom background size has been set
  27350           self.originalBackgroundSize = self.contentElement.style.backgroundSize;
  27351           self.originalBackgroundPosition = self.contentElement.style.backgroundPosition;
  27352           self.backgroundSizeSet = true;
  27353 
  27354           if (dimensions.width / image.width < dimensions.height / image.height) {
  27355             scale = dimensions.width / image.width;
  27356           }
  27357           else {
  27358             scale = dimensions.height / image.height;
  27359           }
  27360 
  27361           self.contentElement.style.backgroundSize = image.width * scale +
  27362             'px ' + image.height * scale + 'px';
  27363           self.contentElement.style.backgroundPosition = '50% ' +
  27364             ((dimensions.height - (image.height * scale)) / 2) + 'px';
  27365         }
  27366       }
  27367       else {
  27368         // Revert to previous background size setting
  27369         if (self.backgroundSizeSet) {
  27370           self.contentElement.style.backgroundSize = self.originalBackgroundSize;
  27371           self.contentElement.style.backgroundPosition = self.originalBackgroundPosition;
  27372           self.backgroundSizeSet = false;
  27373         }
  27374       }
  27375     };
  27376     image.src = match[2];
  27377   }
  27378 };
  27379 
  27380 function createSlideElement(slide) {
  27381   var element = document.createElement('div');
  27382   element.className = 'remark-slide';
  27383   
  27384   if (slide.properties.continued === 'true') {
  27385     utils.addClass(element, 'remark-slide-incremental');
  27386   }
  27387   
  27388   return element;
  27389 }
  27390 
  27391 function createContentElement (events, slideshow, slide) {
  27392   var element = document.createElement('div');
  27393 
  27394   if (slide.properties.name) {
  27395     element.id = 'slide-' + slide.properties.name;
  27396   }
  27397 
  27398   styleContentElement(slideshow, element, slide.properties);
  27399 
  27400   element.innerHTML = converter.convertMarkdown(slide.content, slideshow.getLinks());
  27401 
  27402   highlightCodeBlocks(element, slideshow);
  27403 
  27404   return element;
  27405 }
  27406 
  27407 function styleContentElement (slideshow, element, properties) {
  27408   element.className = '';
  27409 
  27410   setClassFromProperties(element, properties);
  27411   setHighlightStyleFromProperties(element, properties, slideshow);
  27412   setBackgroundFromProperties(element, properties);
  27413 }
  27414 
  27415 function createNotesElement (slideshow, notes) {
  27416   var element = document.createElement('div');
  27417 
  27418   element.className = 'remark-slide-notes';
  27419 
  27420   element.innerHTML = converter.convertMarkdown(notes, slideshow.getLinks());
  27421 
  27422   highlightCodeBlocks(element, slideshow);
  27423 
  27424   return element;
  27425 }
  27426 
  27427 function setBackgroundFromProperties (element, properties) {
  27428   var backgroundImage = properties['background-image'];
  27429   var backgroundColor = properties['background-color'];
  27430   var backgroundSize = properties['background-size'];
  27431   var backgroundPosition = properties['background-position'];
  27432 
  27433   if (backgroundImage) {
  27434     element.style.backgroundImage = backgroundImage;
  27435   }
  27436   if (backgroundColor) {
  27437     element.style.backgroundColor = backgroundColor;
  27438   }
  27439   if (backgroundSize) {
  27440     element.style.backgroundSize = backgroundSize;
  27441   }
  27442   if (backgroundPosition) {
  27443     element.style.backgroundPosition = backgroundPosition;
  27444   }
  27445 }
  27446 
  27447 function setHighlightStyleFromProperties (element, properties, slideshow) {
  27448   var highlightStyle = properties['highlight-style'] ||
  27449       slideshow.getHighlightStyle();
  27450 
  27451   if (highlightStyle) {
  27452     utils.addClass(element, 'hljs-' + highlightStyle);
  27453   }
  27454 }
  27455 
  27456 function setClassFromProperties (element, properties) {
  27457   utils.addClass(element, 'remark-slide-content');
  27458 
  27459   (properties['class'] || '').split(/,| /)
  27460     .filter(function (s) { return s !== ''; })
  27461     .forEach(function (c) { utils.addClass(element, c); });
  27462 }
  27463 
  27464 function highlightCodeBlocks (content, slideshow) {
  27465   var codeBlocks = content.getElementsByTagName('code'),
  27466       highlightLines = slideshow.getHighlightLines(),
  27467       highlightSpans = slideshow.getHighlightSpans(),
  27468       highlightInline = slideshow.getHighlightInlineCode(),
  27469       meta;
  27470 
  27471   codeBlocks.forEach(function (block) {
  27472     if (block.className === '') {
  27473       block.className = slideshow.getHighlightLanguage();
  27474     }
  27475 
  27476     if (block.parentElement.tagName !== 'PRE') {
  27477       utils.addClass(block, 'remark-inline-code');
  27478       if (highlightInline) {
  27479         highlighter.engine.highlightBlock(block, '');
  27480       }
  27481       return;
  27482     }
  27483 
  27484     if (highlightLines) {
  27485       meta = extractMetadata(block);
  27486     }
  27487 
  27488     if (block.className !== '') {
  27489       highlighter.engine.highlightBlock(block, '  ');
  27490     }
  27491 
  27492     wrapLines(block);
  27493 
  27494     if (highlightLines) {
  27495       highlightBlockLines(block, meta.highlightedLines);
  27496     }
  27497 
  27498     if (highlightSpans) {
  27499       // highlightSpans is either true or a RegExp
  27500       highlightBlockSpans(block, highlightSpans);
  27501     }
  27502 
  27503     utils.addClass(block, 'remark-code');
  27504   });
  27505 }
  27506 
  27507 function extractMetadata (block) {
  27508   var highlightedLines = [];
  27509 
  27510   block.innerHTML = block.innerHTML.split(/\r?\n/).map(function (line, i) {
  27511     if (line.indexOf('*') === 0) {
  27512       highlightedLines.push(i);
  27513       return line.replace(/^\*( )?/, '$1$1');
  27514     }
  27515 
  27516     return line;
  27517   }).join('\n');
  27518 
  27519   return {
  27520     highlightedLines: highlightedLines
  27521   };
  27522 }
  27523 
  27524 function wrapLines (block) {
  27525   var lines = block.innerHTML.split(/\r?\n/).map(function (line) {
  27526     return '<div class="remark-code-line">' + line + '</div>';
  27527   });
  27528 
  27529   // Remove empty last line (due to last \n)
  27530   if (lines.length && lines[lines.length - 1].indexOf('><') !== -1) {
  27531     lines.pop();
  27532   }
  27533 
  27534   block.innerHTML = lines.join('');
  27535 }
  27536 
  27537 function highlightBlockLines (block, lines) {
  27538   lines.forEach(function (i) {
  27539     utils.addClass(block.childNodes[i], 'remark-code-line-highlighted');
  27540   });
  27541 }
  27542 
  27543 /**
  27544  * @param highlightSpans `true` or a RegExp
  27545  */
  27546 function highlightBlockSpans (block, highlightSpans) {
  27547   var pattern;
  27548   if (highlightSpans === true) {
  27549     pattern = /([^`])`([^`]+?)`/g;
  27550   } else if (highlightSpans instanceof RegExp) {
  27551     if (! highlightSpans.global) {
  27552       throw new Error('The regular expression in `highlightSpans` must have flag /g');
  27553     }
  27554     // Use [^] instead of dot (.) so that even newlines match
  27555     // We prefix the escape group, so users can provide nicer regular expressions
  27556     var flags = highlightSpans.flags || 'g'; // ES6 feature; use if it’s available
  27557     pattern = new RegExp('([^])' + highlightSpans.source, flags);
  27558   } else {
  27559     throw new Error('Illegal value for `highlightSpans`');
  27560   }
  27561 
  27562   block.childNodes.forEach(function (element) {
  27563     element.innerHTML = element.innerHTML.replace(pattern,
  27564       function (m,e,c) {
  27565         if (e === '\\') {
  27566           return m.substr(1);
  27567         }
  27568         return e + '<span class="remark-code-span-highlighted">' +
  27569           c + '</span>';
  27570       });
  27571   });
  27572 }
  27573 },{"../components/slide-number/slide-number":"components/slide-number","../converter":13,"../highlighter":15,"../utils":25}],28:[function(require,module,exports){
  27574 var SlideView = require('./slideView')
  27575   , Timer = require('../components/timer/timer')
  27576   , NotesView = require('./notesView')
  27577   , Scaler = require('../scaler')
  27578   , resources = require('../resources')
  27579   , utils = require('../utils')
  27580   , printing = require('../components/printing/printing')
  27581   ;
  27582 
  27583 module.exports = SlideshowView;
  27584 
  27585 function SlideshowView (events, dom, options, slideshow) {
  27586   var self = this;
  27587   var containerElement = options.container;
  27588 
  27589   self.events = events;
  27590   self.dom = dom;
  27591   self.slideshow = slideshow;
  27592   self.scaler = new Scaler(events, slideshow);
  27593   self.slideViews = [];
  27594 
  27595   self.configureContainerElement(containerElement);
  27596   self.configureChildElements();
  27597 
  27598   self.updateDimensions();
  27599   self.scaleElements();
  27600   self.updateSlideViews();
  27601 
  27602   self.timer = new Timer(events, self.timerElement, options.timer);
  27603 
  27604   events.on('slidesChanged', function () {
  27605     self.updateSlideViews();
  27606   });
  27607 
  27608   events.on('hideSlide', function (slideIndex) {
  27609     // To make sure that there is only one element fading at a time,
  27610     // remove the fading class from all slides before hiding
  27611     // the new slide.
  27612     self.elementArea.getElementsByClassName('remark-fading').forEach(function (slide) {
  27613       utils.removeClass(slide, 'remark-fading');
  27614     });
  27615     self.hideSlide(slideIndex);
  27616   });
  27617 
  27618   events.on('showSlide', function (slideIndex) {
  27619     self.showSlide(slideIndex);
  27620   });
  27621 
  27622   events.on('forcePresenterMode', function () {
  27623 
  27624     if (!utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
  27625       utils.toggleClass(self.containerElement, 'remark-presenter-mode');
  27626       self.scaleElements();
  27627       printing.setPageOrientation('landscape');
  27628     }
  27629   });
  27630 
  27631   events.on('togglePresenterMode', function () {
  27632     utils.toggleClass(self.containerElement, 'remark-presenter-mode');
  27633     self.scaleElements();
  27634     events.emit('toggledPresenter', self.slideshow.getCurrentSlideIndex() + 1);
  27635 
  27636     if (utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
  27637       printing.setPageOrientation('portrait');
  27638     }
  27639     else {
  27640       printing.setPageOrientation('landscape');
  27641     }
  27642   });
  27643 
  27644   events.on('toggleHelp', function () {
  27645     utils.toggleClass(self.containerElement, 'remark-help-mode');
  27646   });
  27647 
  27648   events.on('toggleBlackout', function () {
  27649     utils.toggleClass(self.containerElement, 'remark-blackout-mode');
  27650   });
  27651 
  27652   events.on('toggleMirrored', function () {
  27653     utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
  27654   });
  27655 
  27656   events.on('hideOverlay', function () {
  27657     utils.removeClass(self.containerElement, 'remark-blackout-mode');
  27658     utils.removeClass(self.containerElement, 'remark-help-mode');
  27659   });
  27660 
  27661   events.on('pause', function () {
  27662     utils.toggleClass(self.containerElement, 'remark-pause-mode');
  27663   });
  27664 
  27665   events.on('resume', function () {
  27666     utils.toggleClass(self.containerElement, 'remark-pause-mode');
  27667   });
  27668 
  27669   handleFullscreen(self);
  27670 }
  27671 
  27672 function handleFullscreen(self) {
  27673   var requestFullscreen = utils.getPrefixedProperty(self.containerElement, 'requestFullScreen')
  27674     , cancelFullscreen = utils.getPrefixedProperty(document, 'cancelFullScreen')
  27675     ;
  27676 
  27677   self.events.on('toggleFullscreen', function () {
  27678     var fullscreenElement = utils.getPrefixedProperty(document, 'fullscreenElement') ||
  27679       utils.getPrefixedProperty(document, 'fullScreenElement');
  27680 
  27681     if (!fullscreenElement && requestFullscreen) {
  27682       requestFullscreen.call(self.containerElement, Element.ALLOW_KEYBOARD_INPUT);
  27683     }
  27684     else if (cancelFullscreen) {
  27685       cancelFullscreen.call(document);
  27686     }
  27687     self.scaleElements();
  27688   });
  27689 }
  27690 
  27691 SlideshowView.prototype.isEmbedded = function () {
  27692   return this.containerElement !== this.dom.getBodyElement();
  27693 };
  27694 
  27695 SlideshowView.prototype.configureContainerElement = function (element) {
  27696   var self = this;
  27697 
  27698   self.containerElement = element;
  27699 
  27700   utils.addClass(element, 'remark-container');
  27701 
  27702   if (element === self.dom.getBodyElement()) {
  27703     utils.addClass(self.dom.getHTMLElement(), 'remark-container');
  27704 
  27705     forwardEvents(self.events, window, [
  27706       'hashchange', 'resize', 'keydown', 'keypress', 'mousewheel',
  27707       'message', 'DOMMouseScroll'
  27708     ]);
  27709     forwardEvents(self.events, self.containerElement, [
  27710       'touchstart', 'touchmove', 'touchend', 'click', 'contextmenu'
  27711     ]);
  27712   }
  27713   else {
  27714     element.style.position = 'absolute';
  27715     element.tabIndex = -1;
  27716 
  27717     forwardEvents(self.events, window, ['resize']);
  27718     forwardEvents(self.events, element, [
  27719       'keydown', 'keypress', 'mousewheel',
  27720       'touchstart', 'touchmove', 'touchend'
  27721     ]);
  27722   }
  27723 
  27724   // Tap event is handled in slideshow view
  27725   // rather than controller as knowledge of
  27726   // container width is needed to determine
  27727   // whether to move backwards or forwards
  27728   self.events.on('tap', function (endX) {
  27729     if (endX < self.containerElement.clientWidth / 2) {
  27730       self.slideshow.gotoPreviousSlide();
  27731     }
  27732     else {
  27733       self.slideshow.gotoNextSlide();
  27734     }
  27735   });
  27736 };
  27737 
  27738 function forwardEvents (target, source, events) {
  27739   events.forEach(function (eventName) {
  27740     source.addEventListener(eventName, function () {
  27741       var args = Array.prototype.slice.call(arguments);
  27742       target.emit.apply(target, [eventName].concat(args));
  27743     });
  27744   });
  27745 }
  27746 
  27747 SlideshowView.prototype.configureChildElements = function () {
  27748   var self = this;
  27749 
  27750   self.containerElement.innerHTML += resources.containerLayout;
  27751 
  27752   self.elementArea = self.containerElement.getElementsByClassName('remark-slides-area')[0];
  27753   self.previewArea = self.containerElement.getElementsByClassName('remark-preview-area')[0];
  27754   self.notesArea = self.containerElement.getElementsByClassName('remark-notes-area')[0];
  27755 
  27756   self.notesView = new NotesView (self.events, self.notesArea, function () {
  27757     return self.slideViews;
  27758   });
  27759 
  27760   self.backdropElement = self.containerElement.getElementsByClassName('remark-backdrop')[0];
  27761   self.helpElement = self.containerElement.getElementsByClassName('remark-help')[0];
  27762 
  27763   self.timerElement = self.notesArea.getElementsByClassName('remark-toolbar-timer')[0];
  27764   self.pauseElement = self.containerElement.getElementsByClassName('remark-pause')[0];
  27765 
  27766   self.events.on('propertiesChanged', function (changes) {
  27767     if (changes.hasOwnProperty('ratio')) {
  27768       self.updateDimensions();
  27769     }
  27770   });
  27771 
  27772   self.events.on('resize', onResize);
  27773 
  27774   printing.init();
  27775   printing.on('print', onPrint);
  27776 
  27777   function onResize () {
  27778     self.scaleElements();
  27779   }
  27780 
  27781   function onPrint (e) {
  27782     var slideHeight;
  27783 
  27784     if (e.isPortrait) {
  27785       slideHeight = e.pageHeight * 0.4;
  27786     }
  27787     else {
  27788       slideHeight = e.pageHeight;
  27789     }
  27790 
  27791     self.slideViews.forEach(function (slideView) {
  27792       slideView.scale({
  27793         clientWidth: e.pageWidth,
  27794         clientHeight: slideHeight
  27795       });
  27796 
  27797       if (e.isPortrait) {
  27798         slideView.scalingElement.style.top = '20px';
  27799         slideView.notesElement.style.top = slideHeight + 40 + 'px';
  27800       }
  27801     });
  27802   }
  27803 };
  27804 
  27805 SlideshowView.prototype.updateSlideViews = function () {
  27806   var self = this;
  27807 
  27808   self.slideViews.forEach(function (slideView) {
  27809     self.elementArea.removeChild(slideView.containerElement);
  27810   });
  27811 
  27812   self.slideViews = self.slideshow.getSlides().map(function (slide) {
  27813     return new SlideView(self.events, self.slideshow, self.scaler, slide);
  27814   });
  27815 
  27816   self.slideViews.forEach(function (slideView) {
  27817     self.elementArea.appendChild(slideView.containerElement);
  27818   });
  27819 
  27820   self.updateDimensions();
  27821 
  27822   if (self.slideshow.getCurrentSlideIndex() > -1) {
  27823     self.showSlide(self.slideshow.getCurrentSlideIndex());
  27824   }
  27825 };
  27826 
  27827 SlideshowView.prototype.scaleSlideBackgroundImages = function (dimensions) {
  27828   var self = this;
  27829 
  27830   self.slideViews.forEach(function (slideView) {
  27831     slideView.scaleBackgroundImage(dimensions);
  27832   });
  27833 };
  27834 
  27835 SlideshowView.prototype.showSlide =  function (slideIndex) {
  27836   var self = this
  27837     , slideView = self.slideViews[slideIndex]
  27838     , nextSlideView = self.slideViews[slideIndex + 1]
  27839     ;
  27840 
  27841   self.events.emit("beforeShowSlide", slideIndex);
  27842 
  27843   slideView.show();
  27844 
  27845   if (nextSlideView) {
  27846     self.previewArea.innerHTML = nextSlideView.containerElement.outerHTML;
  27847   }
  27848   else {
  27849     self.previewArea.innerHTML = '';
  27850   }
  27851 
  27852   self.events.emit("afterShowSlide", slideIndex);
  27853 };
  27854 
  27855 SlideshowView.prototype.hideSlide = function (slideIndex) {
  27856   var self = this
  27857     , slideView = self.slideViews[slideIndex]
  27858     ;
  27859 
  27860   self.events.emit("beforeHideSlide", slideIndex);
  27861   slideView.hide();
  27862   self.events.emit("afterHideSlide", slideIndex);
  27863 
  27864 };
  27865 
  27866 SlideshowView.prototype.updateDimensions = function () {
  27867   var self = this
  27868     , dimensions = self.scaler.dimensions
  27869     ;
  27870 
  27871   self.helpElement.style.width = dimensions.width + 'px';
  27872   self.helpElement.style.height = dimensions.height + 'px';
  27873 
  27874   self.scaleSlideBackgroundImages(dimensions);
  27875   self.scaleElements();
  27876 };
  27877 
  27878 SlideshowView.prototype.scaleElements = function () {
  27879   var self = this;
  27880 
  27881   self.slideViews.forEach(function (slideView) {
  27882     slideView.scale(self.elementArea);
  27883   });
  27884 
  27885   if (self.previewArea.children.length) {
  27886     self.scaler.scaleToFit(self.previewArea.children[0].children[0], self.previewArea);
  27887   }
  27888   self.scaler.scaleToFit(self.helpElement, self.containerElement);
  27889   self.scaler.scaleToFit(self.pauseElement, self.containerElement);
  27890 };
  27891 
  27892 },{"../components/printing/printing":"components/printing","../components/timer/timer":"components/timer","../resources":23,"../scaler":24,"../utils":25,"./notesView":26,"./slideView":27}],"components/printing":[function(require,module,exports){
  27893 var EventEmitter = require('events').EventEmitter
  27894   , styler = require('../styler/styler')
  27895   ;
  27896 
  27897 var LANDSCAPE = 'landscape'
  27898   , PORTRAIT = 'portrait'
  27899   , PAGE_HEIGHT = 681
  27900   , PAGE_WIDTH = 908
  27901   ;
  27902 
  27903 function PrintComponent () {}
  27904 
  27905 // Add eventing
  27906 PrintComponent.prototype = new EventEmitter();
  27907 
  27908 // Sets up listener for printing
  27909 PrintComponent.prototype.init = function () {
  27910   var self = this;
  27911 
  27912   this.setPageOrientation(LANDSCAPE);
  27913 
  27914   if (!window.matchMedia) {
  27915     return false;
  27916   }
  27917 
  27918   window.matchMedia('print').addListener(function (e) {
  27919     self.onPrint(e);
  27920   });
  27921 };
  27922 
  27923 // Handles printing event
  27924 PrintComponent.prototype.onPrint = function (e) {
  27925   var slideHeight;
  27926 
  27927   if (!e.matches) {
  27928     return;
  27929   }
  27930 
  27931   this.emit('print', {
  27932     isPortrait: this._orientation === 'portrait'
  27933   , pageHeight: this._pageHeight
  27934   , pageWidth: this._pageWidth
  27935   });
  27936 };
  27937 
  27938 PrintComponent.prototype.setPageOrientation = function (orientation) {
  27939   if (orientation === PORTRAIT) {
  27940     // Flip dimensions for portrait orientation
  27941     this._pageHeight = PAGE_WIDTH;
  27942     this._pageWidth = PAGE_HEIGHT;
  27943   }
  27944   else if (orientation === LANDSCAPE) {
  27945     this._pageHeight = PAGE_HEIGHT;
  27946     this._pageWidth = PAGE_WIDTH;
  27947   }
  27948   else {
  27949     throw new Error('Unknown print orientation: ' + orientation);
  27950   }
  27951 
  27952   this._orientation = orientation;
  27953 
  27954   styler.setPageSize(this._pageWidth + 'px ' + this._pageHeight + 'px');
  27955 };
  27956 
  27957 // Export singleton instance
  27958 module.exports = new PrintComponent();
  27959 
  27960 },{"../styler/styler":"components/styler","events":1}],"components/slide-number":[function(require,module,exports){
  27961 module.exports = SlideNumberViewModel;
  27962 
  27963 function SlideNumberViewModel (slide, slideshow) {
  27964   var self = this;
  27965 
  27966   self.slide = slide;
  27967   self.slideshow = slideshow;
  27968 
  27969   self.element = document.createElement('div');
  27970   self.element.className = 'remark-slide-number';
  27971   self.element.innerHTML = formatSlideNumber(self.slide, self.slideshow);
  27972 }
  27973 
  27974 function formatSlideNumber (slide, slideshow) {
  27975   var format = slideshow.getSlideNumberFormat()
  27976     , slides = slideshow.getSlides()
  27977     , current = getSlideNo(slide, slideshow)
  27978     , total = getSlideNo(slides[slides.length - 1], slideshow)
  27979     ;
  27980 
  27981   if (typeof format === 'function') {
  27982     return format.call(slideshow, current, total);
  27983   }
  27984 
  27985   return format
  27986       .replace('%current%', current)
  27987       .replace('%total%', total);
  27988 }
  27989 
  27990 function getSlideNo (slide, slideshow) {
  27991   return slide.getSlideNumber();
  27992 }
  27993 
  27994 },{}],"components/styler":[function(require,module,exports){
  27995 var resources = require('../../resources')
  27996   , highlighter = require('../../highlighter')
  27997   ;
  27998 
  27999 module.exports = {
  28000   styleDocument: styleDocument
  28001 , setPageSize: setPageSize
  28002 };
  28003 
  28004 // Applies bundled styles to document
  28005 function styleDocument () {
  28006   var headElement, styleElement, style;
  28007 
  28008   // Bail out if document has already been styled
  28009   if (getRemarkStylesheet()) {
  28010     return;
  28011   }
  28012 
  28013   headElement = document.getElementsByTagName('head')[0];
  28014   styleElement = document.createElement('style');
  28015   styleElement.type = 'text/css';
  28016 
  28017   // Set title in order to enable lookup
  28018   styleElement.title = 'remark';
  28019 
  28020   // Set document styles
  28021   styleElement.innerHTML = resources.documentStyles;
  28022 
  28023   // Append highlighting styles
  28024   for (style in highlighter.styles) {
  28025     if (highlighter.styles.hasOwnProperty(style)) {
  28026       styleElement.innerHTML = styleElement.innerHTML +
  28027         highlighter.styles[style];
  28028     }
  28029   }
  28030 
  28031   // Put element first to prevent overriding user styles
  28032   headElement.insertBefore(styleElement, headElement.firstChild);
  28033 }
  28034 
  28035 function setPageSize (size) {
  28036   var stylesheet = getRemarkStylesheet()
  28037     , pageRule = getPageRule(stylesheet)
  28038     ;
  28039 
  28040   pageRule.style.size = size;
  28041 }
  28042 
  28043 // Locates the embedded remark stylesheet
  28044 function getRemarkStylesheet () {
  28045   var i, l = document.styleSheets.length;
  28046 
  28047   for (i = 0; i < l; ++i) {
  28048     if (document.styleSheets[i].title === 'remark') {
  28049       return document.styleSheets[i];
  28050     }
  28051   }
  28052 }
  28053 
  28054 // Locates the CSS @page rule
  28055 function getPageRule (stylesheet) {
  28056   var i, l = stylesheet.cssRules.length;
  28057 
  28058   for (i = 0; i < l; ++i) {
  28059     if (stylesheet.cssRules[i] instanceof window.CSSPageRule) {
  28060       return stylesheet.cssRules[i];
  28061     }
  28062   }
  28063 }
  28064 
  28065 },{"../../highlighter":15,"../../resources":23}],"components/timer":[function(require,module,exports){
  28066 var utils = require('../../utils');
  28067 var extend = require('extend');
  28068 
  28069 module.exports = TimerViewModel;
  28070 
  28071 function TimerViewModel(events, element, options) {
  28072   var self = this;
  28073 
  28074   self.options = extend({}, { enabled: true, resetable: true, startOnChange: true, formatter: defaultFormatter }, options || {});
  28075   self.element = element;
  28076   self.reset();
  28077 
  28078   events.on('start', function () {
  28079     if (self.options.startOnChange) {
  28080       events.emit('startTimer');
  28081     }
  28082   });
  28083 
  28084   events.on('startTimer', function () {
  28085     self.start();
  28086   });
  28087 
  28088   events.on('pauseTimer', function () {
  28089     self.pause();
  28090   });
  28091 
  28092   events.on('toggleTimer', function () {
  28093     self.toggle();
  28094   });
  28095 
  28096   events.on('resetTimer', function () {
  28097     if (self.options.resetable) {
  28098       self.reset();
  28099     }
  28100   });
  28101 
  28102 
  28103   setInterval(function () {
  28104     self.tick();
  28105   }, 100);
  28106 }
  28107 TimerViewModel.prototype.tick = function () {
  28108   var self = this;
  28109 
  28110   self.chronos.tick();
  28111   self.state.update(self.chronos);
  28112   self.view.update(self.chronos.elapsedTime);
  28113 };
  28114 TimerViewModel.prototype.start = function () {
  28115   var self = this;
  28116 
  28117   self.state = self.RUNNING;
  28118 };
  28119 TimerViewModel.prototype.pause = function () {
  28120   var self = this;
  28121 
  28122   self.state = self.PAUSED;
  28123 };
  28124 TimerViewModel.prototype.toggle = function () {
  28125   var self = this;
  28126 
  28127   if (self.state === self.RUNNING) {
  28128     self.state = self.PAUSED;
  28129   } else { // state === PAUSED || state == INITIAL
  28130     self.state = self.RUNNING;
  28131   }
  28132 };
  28133 TimerViewModel.prototype.reset = function () {
  28134   var self = this;
  28135 
  28136   self.chronos = new Chronos();
  28137   self.state = self.INITIAL;
  28138   self.view = new TimerView(self.element, self.options);
  28139 };
  28140 
  28141 TimerViewModel.prototype.INITIAL = new State('INITIAL', function (chronos) { /* do nothing */ });
  28142 TimerViewModel.prototype.RUNNING = new State('RUNNING', function (chronos) { chronos.addDelta(); });
  28143 TimerViewModel.prototype.PAUSED = new State('PAUSED', function (chronos) { /* do nothing */ });
  28144 
  28145 function Chronos() {
  28146   var self = this;
  28147 
  28148   var now = new Date().getTime();
  28149   self.currentTick = now;
  28150   self.lastTick = now;
  28151   self.elapsedTime = 0;
  28152 }
  28153 Chronos.prototype.tick = function () {
  28154   var self = this;
  28155 
  28156   var now = new Date().getTime();
  28157   self.lastTick = self.currentTick;
  28158   self.currentTick = now;
  28159 };
  28160 Chronos.prototype.addDelta = function () {
  28161   var self = this;
  28162 
  28163   var delta = self.currentTick - self.lastTick;
  28164   self.elapsedTime += delta;
  28165 };
  28166 
  28167 function State(identifier, updater) {
  28168   var self = this;
  28169 
  28170   self.identifier = identifier;
  28171   self.updater = updater;
  28172 }
  28173 State.prototype.update = function (chronos) {
  28174   this.updater(chronos);
  28175 };
  28176 
  28177 function TimerView(element, options) {
  28178   var self = this;
  28179 
  28180   self.element = element;
  28181   self.enabled = options.enabled;
  28182   self.formatter = options.formatter;
  28183 
  28184   if (!self.enabled) {
  28185     self.element.style = 'display: none';
  28186   }
  28187 }
  28188 TimerView.prototype.update = function (elapsedTime) {
  28189   var self = this;
  28190 
  28191   var content = self.enabled ? self.formatter(elapsedTime) : '';
  28192   self.element.innerHTML = content;
  28193 };
  28194 
  28195 function defaultFormatter(elapsedTime) {
  28196   var left = elapsedTime;
  28197   var millis = left % 1000; left = idiv(left, 1000);
  28198   var seconds = left % 60; left = idiv(left, 60);
  28199   var minutes = left % 60; left = idiv(left, 60);
  28200   var hours = left;
  28201 
  28202   return '' + hours + ':' + ([minutes, seconds]
  28203     .map(function (d) { return '' + d; })
  28204     .map(function (s) { return padStart(s, 2, '0'); })
  28205     .join(':'));
  28206 }
  28207 
  28208 function idiv(n, d) {
  28209   return Math.floor(n / d);
  28210 }
  28211 
  28212 function padStart(s, length, pad) {
  28213   var result = s;
  28214   while (result.length < length) {
  28215     result = pad + result;
  28216   }
  28217   return result;
  28218 }
  28219 },{"../../utils":25,"extend":2}]},{},[5]);