diff --git a/wp-content/plugins/wp-syntax/README.txt b/wp-content/plugins/wp-syntax/README.txt
index 174ac4313a9b9492b78ef983691ad21f22c4a531..2187a72bedd641cc5d1892c9a14f3bdc15410ef2 100644
--- a/wp-content/plugins/wp-syntax/README.txt
+++ b/wp-content/plugins/wp-syntax/README.txt
@@ -1,10 +1,10 @@
 === WP-Syntax ===
-Contributors: shazahm1@hotmail.com, rmm5t
-Donate link: http://connections-pro.com
-Tags: syntax highlighting, syntax, highlight, code, formatting
+Contributors: shazahm1@hotmail.com
+Donate link: http://wp-syntax.com/send-donation/
+Tags: syntax highlighting, syntax, highlight, code, formatting, code, CSS, html, php, sourcecode
 Requires at least: 3.0
-Tested up to: 3.2.1
-Stable tag: 0.9.12
+Tested up to: 3.5.1
+Stable tag: 1.0
 
 WP-Syntax provides clean syntax highlighting for embedding source code within pages or posts.
 
@@ -12,8 +12,7 @@ WP-Syntax provides clean syntax highlighting for embedding source code within pa
 
 WP-Syntax provides clean syntax highlighting using
 [GeSHi](http://qbnz.com/highlighter/) -- supporting a wide range of popular
-languages.  It supports highlighting with or
-without line numbers and maintains formatting while copying snippets of code
+languages.  It supports highlighting with or without line numbers and maintains formatting while copying snippets of code
 from the browser.
 
 It avoids conflicts with other 3rd party plugins by running an early
@@ -21,23 +20,16 @@ pre-filter and a late post-filter that substitutes and pulls the code snippets
 out first and then pushes them back in with highlighting at the end.  The
 result is source code formatted and highlighted the way you intended.
 
-This plugin was originally written for use with
-[EmacsBlog](http://www.emacsblog.org).  To see it in action, scroll through
-this [particular
-post](http://www.emacsblog.org/2007/02/22/maximize-on-startup-part-2/) or
-visit the
-[screenshots](http://wordpress.org/extend/plugins/wp-syntax/screenshots/).
-
 Usage, Supported Languages, Styling Guidelines, and Release Notes are availabe
-in the [Other
-Notes](http://wordpress.org/extend/plugins/wp-syntax/other_notes/) section.
+in the [Other Notes](http://wordpress.org/extend/plugins/wp-syntax/other_notes/) section.
+
+Want to contribute? WP-Sytax can be found on Github. Fork and submit your pull requests today!
 
 = Basic Usage =
 
-Wrap code blocks with `<pre lang="LANGUAGE" line="1">` and `</pre>` where
-`LANGUAGE` is a [GeSHi](http://qbnz.com/highlighter/) supported language
-syntax.  The `line` attribute is optional.  [More usage
-examples](http://wordpress.org/extend/plugins/wp-syntax/other_notes/)
+Wrap code blocks with `<pre lang="LANGUAGE" line="1">` and `</pre>` where **"LANGUAGE"**
+is a [GeSHi](http://qbnz.com/highlighter/) supported language syntax.
+The `line` attribute is optional. [More usage examples](http://wordpress.org/extend/plugins/wp-syntax/other_notes/)
 
 == Installation ==
 
@@ -69,10 +61,9 @@ plugin, and check "unfiltered HTML" for the roles that would like to post code s
 
 == Usage ==
 
-Wrap code blocks with `<pre lang="LANGUAGE" line="1">` and `</pre>` where
-`LANGUAGE` is a [GeSHi](http://qbnz.com/highlighter/) supported language
-syntax.  See below for a full list of supported languages.  The `line`
-attribute is optional.
+Wrap code blocks with `<pre lang="LANGUAGE" line="1">` and `</pre>` where **"LANGUAGE"** is a [GeSHi](http://qbnz.com/highlighter/) supported
+language syntax. See below for a full list of supported languages.
+The `line` attribute is optional.
 
 **Example 1: PHP, no line numbers**
 
@@ -113,9 +104,33 @@ attribute is optional.
     &lt;xml&gt;Hello&lt;/xml&gt;
     </pre>
 
+**Example 5: PHP, with line numbers and highlighting a specific line**
+
+    <pre lang="php" line="1" highlight="3">
+    <div id="foo">
+    <?php
+      function foo() {
+        echo "Hello World!\\n";
+      }
+    ?>
+    </div>
+    </pre>
+
+**Example 6: PHP, with a caption (file and/or file path of the source file)**
+
+    <pre lang="php" src"https://github.com/shazahm1/Connections/blob/master/connections.php">
+    <div id="foo">
+    <?php
+      function foo() {
+        echo "Hello World!\\n";
+      }
+    ?>
+    </div>
+    </pre>
+
 == Supported Languages ==
 
-The following languages are supported in the `lang` attribute:
+The following languages are most supported in the `lang` attribute:
 
 abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm,
 **asp**, autoit, avisynth, **bash**, bf, bibtex, blitzbasic, bnf, boo, **c**,
@@ -134,6 +149,9 @@ text, thinbasic, tsql, typoscript, **vb**, **vbnet**, verilog, vhdl, vim,
 visualfoxpro, visualprolog, whitespace, whois, winbatch, **xml**, xorg_conf,
 xpp, z80
 
+See the [GeSHi Documentation](http://qbnz.com/highlighter/geshi-doc.html)
+for a full list of supported languages.
+
 (Bold languages just highlight the more popular ones.)
 
 == Styling Guidelines ==
@@ -162,12 +180,29 @@ or somewhere else like this:
     }
     ?>
 
-This allows for a great possibility of different customizations.  Be sure to
+This allows for a great possibility of different customizations. Be sure to
 review the [GeSHi Documentation](http://qbnz.com/highlighter/geshi-doc.html).
 
 == Changelog ==
 
-**0.9.12** : Fixed a range bug in the new highlight feature. 
+= 1.0 02/09/2013 =
+* NEW: CSS3 for alternating background lines for easier reading.
+* OTHER: Completely refactor code to utilize current best practices for plugin development which will provide a solid foundation for further development.
+* OTHER: Remove GeSHi contrib and test folders.
+* OTHER: Move CSS to `css` subfolder.
+* OTHER: Move JavaScript to `js` subfolder.
+* OTHER: CSS fixes to keep theme from breaking output formatting.
+
+= 0.9.13 09/01/12 =
+* FEATURE: Added a new "src" shortcode option to allow reference of the source filename. Props: Steffen Vogel
+* BUG: Properly enqueue the CSS file.
+* BUG: Updated TinyMCE whitelist to allows required tags. Props: Steffen Vogel
+* OTHER: Updated GeSHi to 1.0.8.11
+* OTHER: Remove old unused code.
+* OTHER: Imporved line highlighting. Props: Steffen Vogel
+* OTHER: Added some additional CSS styles to help keep theme's from breaking the presentation of the code.
+
+**0.9.12** : Fixed a range bug in the new highlight feature.
 
 **0.9.11** : Added line highlighting support. User submitted patch. [Thanks Flynsarmy && Chimo](http://www.flynsarmy.com/2011/06/how-to-add-line-highlight-support-to-wp-syntax/)
 
diff --git a/wp-content/plugins/wp-syntax/css/wp-syntax.css b/wp-content/plugins/wp-syntax/css/wp-syntax.css
new file mode 100644
index 0000000000000000000000000000000000000000..2401f78ec840cc961dc1109a80d764454d97d13c
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/css/wp-syntax.css
@@ -0,0 +1,98 @@
+.wp_syntax {
+	color           : #100;
+	background-color: #f9f9f9;
+	border          : 1px solid silver;
+	margin          : 0 0 1.5em 0;
+	overflow        : auto;
+}
+
+/* IE FIX */
+.wp_syntax {
+	overflow-x    : auto;
+	overflow-y    : hidden;
+	padding-bottom: expression(this.scrollWidth > this.offsetWidth ? 15 : 0);
+	width         : 99%;
+}
+
+.wp_syntax table {
+	border         : none !important;
+	border-collapse: collapse !important;
+	margin         : 0 !important;
+	padding        : 0 !important;
+	width          : 100% !important
+}
+
+.wp_syntax caption {
+	margin          : 0 !important;
+	padding         : 2px !important;
+	width           : 100% !important;
+	background-color: #def !important;
+	text-align      : left !important;
+	font-family     : monospace !important;
+	font-size       : 12px !important;
+	line-height     : 1.2em !important;
+}
+
+.wp_syntax caption a {
+	color          : #1982d1 !important;
+	text-align     : left !important;
+	font-family    : monospace !important;
+	font-size      : 12px !important;
+	line-height    : 16px !important;
+	text-decoration: none !important;
+}
+
+.wp_syntax caption a:hover {
+	color          : #1982d1 !important;
+	text-decoration: underline !important;
+}
+
+.wp_syntax div, .wp_syntax td {
+	border        : none !important;
+	text-align    : left !important;
+	padding       : 0 !important;
+	vertical-align: top !important;
+}
+
+.wp_syntax td.code{
+	background-color: #EEE;
+	background-image: -webkit-linear-gradient( transparent 50%, rgba(255, 255, 255, .9) 50% );
+	background-image: -moz-linear-gradient( transparent 50%, rgba(255, 255, 255, .9) 50% );
+	background-image: -ms-linear-gradient( transparent 50%, rgba(255, 255, 255, .9) 50% );
+	background-image: -o-linear-gradient( transparent 50%, rgba(255, 255, 255, .9) 50% );
+	background-image: linear-gradient( transparent 50%, rgba(255, 255, 255, .9) 50% );
+	background-size : 1px 32px;
+	line-height     : normal !important;
+	white-space     : normal !important;
+	width           : 100% !important;
+}
+
+/* potential overrides for other styles */
+.wp_syntax pre {
+	background           : transparent !important;
+	border               : none !important;
+	margin               : 0 !important;
+	padding              : 0 !important;
+	width                : auto !important;
+	float                : none !important;
+	clear                : none !important;
+	overflow             : visible !important;
+	font-family          : monospace !important;
+	font-size            : 12px !important;
+	line-height          : 16px !important;
+	padding              : 0 4px !important;
+	white-space          : pre !important;
+	-moz-box-shadow      : 0px 0px 0px rgba(0, 0, 0, 0) !important; /* FF3.5+ */
+	-webkit-box-shadow   : 0px 0px 0px rgba(0, 0, 0, 0) !important; /* Saf3.0+, Chrome */
+	box-shadow           : 0px 0px 0px rgba(0, 0, 0, 0) !important; /* Opera 10.5, IE 9.0 */
+	-webkit-border-radius: 0 !important;
+	-moz-border-radius   : 0 !important;
+	border-radius        : 0 !important;
+}
+
+.wp_syntax td.line_numbers pre {
+	background-color: #def !important;
+	color           : gray !important;
+	text-align      : right !important;
+	width           : 16px !important;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi.php b/wp-content/plugins/wp-syntax/geshi/geshi.php
index f7b5a51a2cf4a45f7cc07f12ee11175e604ff794..c6ff9ef7773b95a40c2d6171a38abeb2f165af54 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi.php
@@ -1,4761 +1,4775 @@
-<?php
-/**
- * GeSHi - Generic Syntax Highlighter
- *
- * The GeSHi class for Generic Syntax Highlighting. Please refer to the
- * documentation at http://qbnz.com/highlighter/documentation.php for more
- * information about how to use this class.
- *
- * For changes, release notes, TODOs etc, see the relevant files in the docs/
- * directory.
- *
- *   This file is part of GeSHi.
- *
- *  GeSHi is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  GeSHi is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with GeSHi; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * @package    geshi
- * @subpackage core
- * @author     Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
- * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
- * @license    http://gnu.org/copyleft/gpl.html GNU GPL
- *
- */
-
-//
-// GeSHi Constants
-// You should use these constant names in your programs instead of
-// their values - you never know when a value may change in a future
-// version
-//
-
-/** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.8.9');
-
-// Define the root directory for the GeSHi code tree
-if (!defined('GESHI_ROOT')) {
-    /** The root directory for GeSHi */
-    define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);
-}
-/** The language file directory for GeSHi
-    @access private */
-define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR);
-
-// Define if GeSHi should be paranoid about security
-if (!defined('GESHI_SECURITY_PARANOID')) {
-    /** Tells GeSHi to be paranoid about security settings */
-    define('GESHI_SECURITY_PARANOID', false);
-}
-
-// Line numbers - use with enable_line_numbers()
-/** Use no line numbers when building the result */
-define('GESHI_NO_LINE_NUMBERS', 0);
-/** Use normal line numbers when building the result */
-define('GESHI_NORMAL_LINE_NUMBERS', 1);
-/** Use fancy line numbers when building the result */
-define('GESHI_FANCY_LINE_NUMBERS', 2);
-
-// Container HTML type
-/** Use nothing to surround the source */
-define('GESHI_HEADER_NONE', 0);
-/** Use a "div" to surround the source */
-define('GESHI_HEADER_DIV', 1);
-/** Use a "pre" to surround the source */
-define('GESHI_HEADER_PRE', 2);
-/** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */
-define('GESHI_HEADER_PRE_VALID', 3);
-/**
- * Use a "table" to surround the source:
- *
- *  <table>
- *    <thead><tr><td colspan="2">$header</td></tr></thead>
- *    <tbody><tr><td><pre>$linenumbers</pre></td><td><pre>$code></pre></td></tr></tbody>
- *    <tfooter><tr><td colspan="2">$footer</td></tr></tfoot>
- *  </table>
- *
- * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at
- * https://bugzilla.mozilla.org/show_bug.cgi?id=365805
- * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE
- */
-define('GESHI_HEADER_PRE_TABLE', 4);
-
-// Capatalisation constants
-/** Lowercase keywords found */
-define('GESHI_CAPS_NO_CHANGE', 0);
-/** Uppercase keywords found */
-define('GESHI_CAPS_UPPER', 1);
-/** Leave keywords found as the case that they are */
-define('GESHI_CAPS_LOWER', 2);
-
-// Link style constants
-/** Links in the source in the :link state */
-define('GESHI_LINK', 0);
-/** Links in the source in the :hover state */
-define('GESHI_HOVER', 1);
-/** Links in the source in the :active state */
-define('GESHI_ACTIVE', 2);
-/** Links in the source in the :visited state */
-define('GESHI_VISITED', 3);
-
-// Important string starter/finisher
-// Note that if you change these, they should be as-is: i.e., don't
-// write them as if they had been run through htmlentities()
-/** The starter for important parts of the source */
-define('GESHI_START_IMPORTANT', '<BEGIN GeSHi>');
-/** The ender for important parts of the source */
-define('GESHI_END_IMPORTANT', '<END GeSHi>');
-
-/**#@+
- *  @access private
- */
-// When strict mode applies for a language
-/** Strict mode never applies (this is the most common) */
-define('GESHI_NEVER', 0);
-/** Strict mode *might* apply, and can be enabled or
-    disabled by {@link GeSHi->enable_strict_mode()} */
-define('GESHI_MAYBE', 1);
-/** Strict mode always applies */
-define('GESHI_ALWAYS', 2);
-
-// Advanced regexp handling constants, used in language files
-/** The key of the regex array defining what to search for */
-define('GESHI_SEARCH', 0);
-/** The key of the regex array defining what bracket group in a
-    matched search to use as a replacement */
-define('GESHI_REPLACE', 1);
-/** The key of the regex array defining any modifiers to the regular expression */
-define('GESHI_MODIFIERS', 2);
-/** The key of the regex array defining what bracket group in a
-    matched search to put before the replacement */
-define('GESHI_BEFORE', 3);
-/** The key of the regex array defining what bracket group in a
-    matched search to put after the replacement */
-define('GESHI_AFTER', 4);
-/** The key of the regex array defining a custom keyword to use
-    for this regexp's html tag class */
-define('GESHI_CLASS', 5);
-
-/** Used in language files to mark comments */
-define('GESHI_COMMENTS', 0);
-
-/** Used to work around missing PHP features **/
-define('GESHI_PHP_PRE_433', !(version_compare(PHP_VERSION, '4.3.3') === 1));
-
-/** make sure we can call stripos **/
-if (!function_exists('stripos')) {
-    // the offset param of preg_match is not supported below PHP 4.3.3
-    if (GESHI_PHP_PRE_433) {
-        /**
-         * @ignore
-         */
-        function stripos($haystack, $needle, $offset = null) {
-            if (!is_null($offset)) {
-                $haystack = substr($haystack, $offset);
-            }
-            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE)) {
-                return $match[0][1];
-            }
-            return false;
-        }
-    }
-    else {
-        /**
-         * @ignore
-         */
-        function stripos($haystack, $needle, $offset = null) {
-            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE, $offset)) {
-                return $match[0][1];
-            }
-            return false;
-        }
-    }
-}
-
-/** some old PHP / PCRE subpatterns only support up to xxx subpatterns in
-    regular expressions. Set this to false if your PCRE lib is up to date
-    @see GeSHi->optimize_regexp_list()
-    **/
-define('GESHI_MAX_PCRE_SUBPATTERNS', 500);
-/** it's also important not to generate too long regular expressions
-    be generous here... but keep in mind, that when reaching this limit we
-    still have to close open patterns. 12k should do just fine on a 16k limit.
-    @see GeSHi->optimize_regexp_list()
-    **/
-define('GESHI_MAX_PCRE_LENGTH', 12288);
-
-//Number format specification
-/** Basic number format for integers */
-define('GESHI_NUMBER_INT_BASIC', 1);        //Default integers \d+
-/** Enhanced number format for integers like seen in C */
-define('GESHI_NUMBER_INT_CSTYLE', 2);       //Default C-Style \d+[lL]?
-/** Number format to highlight binary numbers with a suffix "b" */
-define('GESHI_NUMBER_BIN_SUFFIX', 16);           //[01]+[bB]
-/** Number format to highlight binary numbers with a prefix % */
-define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32);   //%[01]+
-/** Number format to highlight binary numbers with a prefix 0b (C) */
-define('GESHI_NUMBER_BIN_PREFIX_0B', 64);        //0b[01]+
-/** Number format to highlight octal numbers with a leading zero */
-define('GESHI_NUMBER_OCT_PREFIX', 256);           //0[0-7]+
-/** Number format to highlight octal numbers with a prefix 0o (logtalk) */
-define('GESHI_NUMBER_OCT_PREFIX_0O', 512);           //0[0-7]+
-/** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */
-define('GESHI_NUMBER_OCT_PREFIX_AT', 1024);           //@[0-7]+
-/** Number format to highlight octal numbers with a suffix of o */
-define('GESHI_NUMBER_OCT_SUFFIX', 2048);           //[0-7]+[oO]
-/** Number format to highlight hex numbers with a prefix 0x */
-define('GESHI_NUMBER_HEX_PREFIX', 4096);           //0x[0-9a-fA-F]+
-/** Number format to highlight hex numbers with a prefix $ */
-define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192);           //$[0-9a-fA-F]+
-/** Number format to highlight hex numbers with a suffix of h */
-define('GESHI_NUMBER_HEX_SUFFIX', 16384);           //[0-9][0-9a-fA-F]*h
-/** Number format to highlight floating-point numbers without support for scientific notation */
-define('GESHI_NUMBER_FLT_NONSCI', 65536);          //\d+\.\d+
-/** Number format to highlight floating-point numbers without support for scientific notation */
-define('GESHI_NUMBER_FLT_NONSCI_F', 131072);       //\d+(\.\d+)?f
-/** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */
-define('GESHI_NUMBER_FLT_SCI_SHORT', 262144);      //\.\d+e\d+
-/** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */
-define('GESHI_NUMBER_FLT_SCI_ZERO', 524288);       //\d+(\.\d+)?e\d+
-//Custom formats are passed by RX array
-
-// Error detection - use these to analyse faults
-/** No sourcecode to highlight was specified
- * @deprecated
- */
-define('GESHI_ERROR_NO_INPUT', 1);
-/** The language specified does not exist */
-define('GESHI_ERROR_NO_SUCH_LANG', 2);
-/** GeSHi could not open a file for reading (generally a language file) */
-define('GESHI_ERROR_FILE_NOT_READABLE', 3);
-/** The header type passed to {@link GeSHi->set_header_type()} was invalid */
-define('GESHI_ERROR_INVALID_HEADER_TYPE', 4);
-/** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */
-define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
-/**#@-*/
-
-
-/**
- * The GeSHi Class.
- *
- * Please refer to the documentation for GeSHi 1.0.X that is available
- * at http://qbnz.com/highlighter/documentation.php for more information
- * about how to use this class.
- *
- * @package   geshi
- * @author    Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
- * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
- */
-class GeSHi {
-    /**#@+
-     * @access private
-     */
-    /**
-     * The source code to highlight
-     * @var string
-     */
-    var $source = '';
-
-    /**
-     * The language to use when highlighting
-     * @var string
-     */
-    var $language = '';
-
-    /**
-     * The data for the language used
-     * @var array
-     */
-    var $language_data = array();
-
-    /**
-     * The path to the language files
-     * @var string
-     */
-    var $language_path = GESHI_LANG_ROOT;
-
-    /**
-     * The error message associated with an error
-     * @var string
-     * @todo check err reporting works
-     */
-    var $error = false;
-
-    /**
-     * Possible error messages
-     * @var array
-     */
-    var $error_messages = array(
-        GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})',
-        GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable',
-        GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid',
-        GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid'
-    );
-
-    /**
-     * Whether highlighting is strict or not
-     * @var boolean
-     */
-    var $strict_mode = false;
-
-    /**
-     * Whether to use CSS classes in output
-     * @var boolean
-     */
-    var $use_classes = false;
-
-    /**
-     * The type of header to use. Can be one of the following
-     * values:
-     *
-     * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element.
-     * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element.
-     * - GESHI_HEADER_NONE: No header is outputted.
-     *
-     * @var int
-     */
-    var $header_type = GESHI_HEADER_PRE;
-
-    /**
-     * Array of permissions for which lexics should be highlighted
-     * @var array
-     */
-    var $lexic_permissions = array(
-        'KEYWORDS' =>    array(),
-        'COMMENTS' =>    array('MULTI' => true),
-        'REGEXPS' =>     array(),
-        'ESCAPE_CHAR' => true,
-        'BRACKETS' =>    true,
-        'SYMBOLS' =>     false,
-        'STRINGS' =>     true,
-        'NUMBERS' =>     true,
-        'METHODS' =>     true,
-        'SCRIPT' =>      true
-    );
-
-    /**
-     * The time it took to parse the code
-     * @var double
-     */
-    var $time = 0;
-
-    /**
-     * The content of the header block
-     * @var string
-     */
-    var $header_content = '';
-
-    /**
-     * The content of the footer block
-     * @var string
-     */
-    var $footer_content = '';
-
-    /**
-     * The style of the header block
-     * @var string
-     */
-    var $header_content_style = '';
-
-    /**
-     * The style of the footer block
-     * @var string
-     */
-    var $footer_content_style = '';
-
-    /**
-     * Tells if a block around the highlighted source should be forced
-     * if not using line numbering
-     * @var boolean
-     */
-    var $force_code_block = false;
-
-    /**
-     * The styles for hyperlinks in the code
-     * @var array
-     */
-    var $link_styles = array();
-
-    /**
-     * Whether important blocks should be recognised or not
-     * @var boolean
-     * @deprecated
-     * @todo REMOVE THIS FUNCTIONALITY!
-     */
-    var $enable_important_blocks = false;
-
-    /**
-     * Styles for important parts of the code
-     * @var string
-     * @deprecated
-     * @todo As above - rethink the whole idea of important blocks as it is buggy and
-     * will be hard to implement in 1.2
-     */
-    var $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code
-
-    /**
-     * Whether CSS IDs should be added to the code
-     * @var boolean
-     */
-    var $add_ids = false;
-
-    /**
-     * Lines that should be highlighted extra
-     * @var array
-     */
-    var $highlight_extra_lines = array();
-
-    /**
-     * Styles of lines that should be highlighted extra
-     * @var array
-     */
-    var $highlight_extra_lines_styles = array();
-
-    /**
-     * Styles of extra-highlighted lines
-     * @var string
-     */
-    var $highlight_extra_lines_style = 'background-color: #ffc;';
-
-    /**
-     * The line ending
-     * If null, nl2br() will be used on the result string.
-     * Otherwise, all instances of \n will be replaced with $line_ending
-     * @var string
-     */
-    var $line_ending = null;
-
-    /**
-     * Number at which line numbers should start at
-     * @var int
-     */
-    var $line_numbers_start = 1;
-
-    /**
-     * The overall style for this code block
-     * @var string
-     */
-    var $overall_style = 'font-family:monospace;';
-
-    /**
-     *  The style for the actual code
-     * @var string
-     */
-    var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;';
-
-    /**
-     * The overall class for this code block
-     * @var string
-     */
-    var $overall_class = '';
-
-    /**
-     * The overall ID for this code block
-     * @var string
-     */
-    var $overall_id = '';
-
-    /**
-     * Line number styles
-     * @var string
-     */
-    var $line_style1 = 'font-weight: normal; vertical-align:top;';
-
-    /**
-     * Line number styles for fancy lines
-     * @var string
-     */
-    var $line_style2 = 'font-weight: bold; vertical-align:top;';
-
-    /**
-     * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen
-     * @var string
-     */
-    var $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
-
-    /**
-     * Flag for how line numbers are displayed
-     * @var boolean
-     */
-    var $line_numbers = GESHI_NO_LINE_NUMBERS;
-
-    /**
-     * Flag to decide if multi line spans are allowed. Set it to false to make sure
-     * each tag is closed before and reopened after each linefeed.
-     * @var boolean
-     */
-    var $allow_multiline_span = true;
-
-    /**
-     * The "nth" value for fancy line highlighting
-     * @var int
-     */
-    var $line_nth_row = 0;
-
-    /**
-     * The size of tab stops
-     * @var int
-     */
-    var $tab_width = 8;
-
-    /**
-     * Should we use language-defined tab stop widths?
-     * @var int
-     */
-    var $use_language_tab_width = false;
-
-    /**
-     * Default target for keyword links
-     * @var string
-     */
-    var $link_target = '';
-
-    /**
-     * The encoding to use for entity encoding
-     * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598)
-     * @var string
-     */
-    var $encoding = 'utf-8';
-
-    /**
-     * Should keywords be linked?
-     * @var boolean
-     */
-    var $keyword_links = true;
-
-    /**
-     * Currently loaded language file
-     * @var string
-     * @since 1.0.7.22
-     */
-    var $loaded_language = '';
-
-    /**
-     * Wether the caches needed for parsing are built or not
-     *
-     * @var bool
-     * @since 1.0.8
-     */
-    var $parse_cache_built = false;
-
-    /**
-     * Work around for Suhosin Patch with disabled /e modifier
-     *
-     * Note from suhosins author in config file:
-     * <blockquote>
-     *   The /e modifier inside <code>preg_replace()</code> allows code execution.
-     *   Often it is the cause for remote code execution exploits. It is wise to
-     *   deactivate this feature and test where in the application it is used.
-     *   The developer using the /e modifier should be made aware that he should
-     *   use <code>preg_replace_callback()</code> instead
-     * </blockquote>
-     *
-     * @var array
-     * @since 1.0.8
-     */
-    var $_kw_replace_group = 0;
-    var $_rx_key = 0;
-
-    /**
-     * some "callback parameters" for handle_multiline_regexps
-     *
-     * @since 1.0.8
-     * @access private
-     * @var string
-     */
-    var $_hmr_before = '';
-    var $_hmr_replace = '';
-    var $_hmr_after = '';
-    var $_hmr_key = 0;
-
-    /**#@-*/
-
-    /**
-     * Creates a new GeSHi object, with source and language
-     *
-     * @param string The source code to highlight
-     * @param string The language to highlight the source with
-     * @param string The path to the language file directory. <b>This
-     *               is deprecated!</b> I've backported the auto path
-     *               detection from the 1.1.X dev branch, so now it
-     *               should be automatically set correctly. If you have
-     *               renamed the language directory however, you will
-     *               still need to set the path using this parameter or
-     *               {@link GeSHi->set_language_path()}
-     * @since 1.0.0
-     */
-    function GeSHi($source = '', $language = '', $path = '') {
-        if (!empty($source)) {
-            $this->set_source($source);
-        }
-        if (!empty($language)) {
-            $this->set_language($language);
-        }
-        $this->set_language_path($path);
-    }
-
-    /**
-     * Returns an error message associated with the last GeSHi operation,
-     * or false if no error has occured
-     *
-     * @return string|false An error message if there has been an error, else false
-     * @since  1.0.0
-     */
-    function error() {
-        if ($this->error) {
-            //Put some template variables for debugging here ...
-            $debug_tpl_vars = array(
-                '{LANGUAGE}' => $this->language,
-                '{PATH}' => $this->language_path
-            );
-            $msg = str_replace(
-                array_keys($debug_tpl_vars),
-                array_values($debug_tpl_vars),
-                $this->error_messages[$this->error]);
-
-            return "<br /><strong>GeSHi Error:</strong> $msg (code {$this->error})<br />";
-        }
-        return false;
-    }
-
-    /**
-     * Gets a human-readable language name (thanks to Simon Patterson
-     * for the idea :))
-     *
-     * @return string The name for the current language
-     * @since  1.0.2
-     */
-    function get_language_name() {
-        if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {
-            return $this->language_data['LANG_NAME'] . ' (Unknown Language)';
-        }
-        return $this->language_data['LANG_NAME'];
-    }
-
-    /**
-     * Sets the source code for this object
-     *
-     * @param string The source code to highlight
-     * @since 1.0.0
-     */
-    function set_source($source) {
-        $this->source = $source;
-        $this->highlight_extra_lines = array();
-    }
-
-    /**
-     * Sets the language for this object
-     *
-     * @note since 1.0.8 this function won't reset language-settings by default anymore!
-     *       if you need this set $force_reset = true
-     *
-     * @param string The name of the language to use
-     * @since 1.0.0
-     */
-    function set_language($language, $force_reset = false) {
-        if ($force_reset) {
-            $this->loaded_language = false;
-        }
-
-        //Clean up the language name to prevent malicious code injection
-        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
-
-        $language = strtolower($language);
-
-        //Retreive the full filename
-        $file_name = $this->language_path . $language . '.php';
-        if ($file_name == $this->loaded_language) {
-            // this language is already loaded!
-            return;
-        }
-
-        $this->language = $language;
-
-        $this->error = false;
-        $this->strict_mode = GESHI_NEVER;
-
-        //Check if we can read the desired file
-        if (!is_readable($file_name)) {
-            $this->error = GESHI_ERROR_NO_SUCH_LANG;
-            return;
-        }
-
-        // Load the language for parsing
-        $this->load_language($file_name);
-    }
-
-    /**
-     * Sets the path to the directory containing the language files. Note
-     * that this path is relative to the directory of the script that included
-     * geshi.php, NOT geshi.php itself.
-     *
-     * @param string The path to the language directory
-     * @since 1.0.0
-     * @deprecated The path to the language files should now be automatically
-     *             detected, so this method should no longer be needed. The
-     *             1.1.X branch handles manual setting of the path differently
-     *             so this method will disappear in 1.2.0.
-     */
-    function set_language_path($path) {
-        if(strpos($path,':')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            if(DIRECTORY_SEPARATOR == "\\") {
-                if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) {
-                    return;
-                }
-            } else {
-                return;
-            }
-        }
-        if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) {
-            //Security Fix to prevent external directories using fopen wrappers.
-            return;
-        }
-        if ($path) {
-            $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/';
-            $this->set_language($this->language); // otherwise set_language_path has no effect
-        }
-    }
-
-    /**
-     * Get supported langs or an associative array lang=>full_name.
-     * @param boolean $longnames
-     * @return array
-     */
-    function get_supported_languages($full_names=false)
-    {
-        // return array
-        $back = array();
-
-        // we walk the lang root
-        $dir = dir($this->language_path);
-
-        // foreach entry
-        while (false !== ($entry = $dir->read()))
-        {
-            $full_path = $this->language_path.$entry;
-
-            // Skip all dirs
-            if (is_dir($full_path)) {
-                continue;
-            }
-
-            // we only want lang.php files
-            if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) {
-                continue;
-            }
-
-            // Raw lang name is here
-            $langname = $matches[1];
-
-            // We want the fullname too?
-            if ($full_names === true)
-            {
-                if (false !== ($fullname = $this->get_language_fullname($langname)))
-                {
-                    $back[$langname] = $fullname; // we go associative
-                }
-            }
-            else
-            {
-                // just store raw langname
-                $back[] = $langname;
-            }
-        }
-
-        $dir->close();
-
-        return $back;
-    }
-
-    /**
-     * Get full_name for a lang or false.
-     * @param string $language short langname (html4strict for example)
-     * @return mixed
-     */
-    function get_language_fullname($language)
-    {
-        //Clean up the language name to prevent malicious code injection
-        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
-
-        $language = strtolower($language);
-
-        // get fullpath-filename for a langname
-        $fullpath = $this->language_path.$language.'.php';
-
-        // we need to get contents :S
-        if (false === ($data = file_get_contents($fullpath))) {
-            $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language);
-            return false;
-        }
-
-        // match the langname
-        if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+)\'/', $data, $matches)) {
-            $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language);
-            return false;
-        }
-
-        // return fullname for langname
-        return stripcslashes($matches[1]);
-    }
-
-    /**
-     * Sets the type of header to be used.
-     *
-     * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This
-     * means more source code but more control over tab width and line-wrapping.
-     * GESHI_HEADER_PRE means that a "pre" is used - less source, but less
-     * control. Default is GESHI_HEADER_PRE.
-     *
-     * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code
-     * should be outputted.
-     *
-     * @param int The type of header to be used
-     * @since 1.0.0
-     */
-    function set_header_type($type) {
-        //Check if we got a valid header type
-        if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV,
-            GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) {
-            $this->error = GESHI_ERROR_INVALID_HEADER_TYPE;
-            return;
-        }
-
-        //Set that new header type
-        $this->header_type = $type;
-    }
-
-    /**
-     * Sets the styles for the code that will be outputted
-     * when this object is parsed. The style should be a
-     * string of valid stylesheet declarations
-     *
-     * @param string  The overall style for the outputted code block
-     * @param boolean Whether to merge the styles with the current styles or not
-     * @since 1.0.0
-     */
-    function set_overall_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->overall_style = $style;
-        } else {
-            $this->overall_style .= $style;
-        }
-    }
-
-    /**
-     * Sets the overall classname for this block of code. This
-     * class can then be used in a stylesheet to style this object's
-     * output
-     *
-     * @param string The class name to use for this block of code
-     * @since 1.0.0
-     */
-    function set_overall_class($class) {
-        $this->overall_class = $class;
-    }
-
-    /**
-     * Sets the overall id for this block of code. This id can then
-     * be used in a stylesheet to style this object's output
-     *
-     * @param string The ID to use for this block of code
-     * @since 1.0.0
-     */
-    function set_overall_id($id) {
-        $this->overall_id = $id;
-    }
-
-    /**
-     * Sets whether CSS classes should be used to highlight the source. Default
-     * is off, calling this method with no arguments will turn it on
-     *
-     * @param boolean Whether to turn classes on or not
-     * @since 1.0.0
-     */
-    function enable_classes($flag = true) {
-        $this->use_classes = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the style for the actual code. This should be a string
-     * containing valid stylesheet declarations. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * Note: Use this method to override any style changes you made to
-     * the line numbers if you are using line numbers, else the line of
-     * code will have the same style as the line number! Consult the
-     * GeSHi documentation for more information about this.
-     *
-     * @param string  The style to use for actual code
-     * @param boolean Whether to merge the current styles with the new styles
-     * @since 1.0.2
-     */
-    function set_code_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->code_style = $style;
-        } else {
-            $this->code_style .= $style;
-        }
-    }
-
-    /**
-     * Sets the styles for the line numbers.
-     *
-     * @param string The style for the line numbers that are "normal"
-     * @param string|boolean If a string, this is the style of the line
-     *        numbers that are "fancy", otherwise if boolean then this
-     *        defines whether the normal styles should be merged with the
-     *        new normal styles or not
-     * @param boolean If set, is the flag for whether to merge the "fancy"
-     *        styles with the current styles or not
-     * @since 1.0.2
-     */
-    function set_line_style($style1, $style2 = '', $preserve_defaults = false) {
-        //Check if we got 2 or three parameters
-        if (is_bool($style2)) {
-            $preserve_defaults = $style2;
-            $style2 = '';
-        }
-
-        //Actually set the new styles
-        if (!$preserve_defaults) {
-            $this->line_style1 = $style1;
-            $this->line_style2 = $style2;
-        } else {
-            $this->line_style1 .= $style1;
-            $this->line_style2 .= $style2;
-        }
-    }
-
-    /**
-     * Sets whether line numbers should be displayed.
-     *
-     * Valid values for the first parameter are:
-     *
-     *  - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed
-     *  - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed
-     *  - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed
-     *
-     * For fancy line numbers, the second parameter is used to signal which lines
-     * are to be fancy. For example, if the value of this parameter is 5 then every
-     * 5th line will be fancy.
-     *
-     * @param int How line numbers should be displayed
-     * @param int Defines which lines are fancy
-     * @since 1.0.0
-     */
-    function enable_line_numbers($flag, $nth_row = 5) {
-        if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag
-            && GESHI_FANCY_LINE_NUMBERS != $flag) {
-            $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE;
-        }
-        $this->line_numbers = $flag;
-        $this->line_nth_row = $nth_row;
-    }
-
-    /**
-     * Sets wether spans and other HTML markup generated by GeSHi can
-     * span over multiple lines or not. Defaults to true to reduce overhead.
-     * Set it to false if you want to manipulate the output or manually display
-     * the code in an ordered list.
-     *
-     * @param boolean Wether multiline spans are allowed or not
-     * @since 1.0.7.22
-     */
-    function enable_multiline_span($flag) {
-        $this->allow_multiline_span = (bool) $flag;
-    }
-
-    /**
-     * Get current setting for multiline spans, see GeSHi->enable_multiline_span().
-     *
-     * @see enable_multiline_span
-     * @return bool
-     */
-    function get_multiline_span() {
-        return $this->allow_multiline_span;
-    }
-
-    /**
-     * Sets the style for a keyword group. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param int     The key of the keyword group to change the styles of
-     * @param string  The style to make the keywords
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     */
-    function set_keyword_group_style($key, $style, $preserve_defaults = false) {
-        //Set the style for this keyword group
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
-        }
-
-        //Update the lexic permissions
-        if (!isset($this->lexic_permissions['KEYWORDS'][$key])) {
-            $this->lexic_permissions['KEYWORDS'][$key] = true;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for a keyword group
-     *
-     * @param int     The key of the keyword group to turn on or off
-     * @param boolean Whether to turn highlighting for that group on or off
-     * @since 1.0.0
-     */
-    function set_keyword_group_highlighting($key, $flag = true) {
-        $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for comment groups.  If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param int     The key of the comment group to change the styles of
-     * @param string  The style to make the comments
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     */
-    function set_comments_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['COMMENTS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['COMMENTS'][$key] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for comment groups
-     *
-     * @param int     The key of the comment group to turn on or off
-     * @param boolean Whether to turn highlighting for that group on or off
-     * @since 1.0.0
-     */
-    function set_comments_highlighting($key, $flag = true) {
-        $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for escaped characters. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the escape characters
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     */
-    function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for escaped characters
-     *
-     * @param boolean Whether to turn highlighting for escape characters on or off
-     * @since 1.0.0
-     */
-    function set_escape_characters_highlighting($flag = true) {
-        $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for brackets. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * This method is DEPRECATED: use set_symbols_style instead.
-     * This method will be removed in 1.2.X
-     *
-     * @param string  The style to make the brackets
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     * @deprecated In favour of set_symbols_style
-     */
-    function set_brackets_style($style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['BRACKETS'][0] = $style;
-        } else {
-            $this->language_data['STYLES']['BRACKETS'][0] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for brackets
-     *
-     * This method is DEPRECATED: use set_symbols_highlighting instead.
-     * This method will be remove in 1.2.X
-     *
-     * @param boolean Whether to turn highlighting for brackets on or off
-     * @since 1.0.0
-     * @deprecated In favour of set_symbols_highlighting
-     */
-    function set_brackets_highlighting($flag) {
-        $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for symbols. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the symbols
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of symbols for which style should be set.
-     * @since 1.0.1
-     */
-    function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
-        // Update the style of symbols
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['SYMBOLS'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['SYMBOLS'][$group] .= $style;
-        }
-
-        // For backward compatibility
-        if (0 == $group) {
-            $this->set_brackets_style ($style, $preserve_defaults);
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for symbols
-     *
-     * @param boolean Whether to turn highlighting for symbols on or off
-     * @since 1.0.0
-     */
-    function set_symbols_highlighting($flag) {
-        // Update lexic permissions for this symbol group
-        $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false;
-
-        // For backward compatibility
-        $this->set_brackets_highlighting ($flag);
-    }
-
-    /**
-     * Sets the styles for strings. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the escape characters
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of strings for which style should be set.
-     * @since 1.0.0
-     */
-    function set_strings_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['STRINGS'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['STRINGS'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for strings
-     *
-     * @param boolean Whether to turn highlighting for strings on or off
-     * @since 1.0.0
-     */
-    function set_strings_highlighting($flag) {
-        $this->lexic_permissions['STRINGS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for strict code blocks. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the script blocks
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of script blocks for which style should be set.
-     * @since 1.0.8.4
-     */
-    function set_script_style($style, $preserve_defaults = false, $group = 0) {
-        // Update the style of symbols
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['SCRIPT'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['SCRIPT'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Sets the styles for numbers. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the numbers
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @param int     Tells the group of numbers for which style should be set.
-     * @since 1.0.0
-     */
-    function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['NUMBERS'][$group] = $style;
-        } else {
-            $this->language_data['STYLES']['NUMBERS'][$group] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for numbers
-     *
-     * @param boolean Whether to turn highlighting for numbers on or off
-     * @since 1.0.0
-     */
-    function set_numbers_highlighting($flag) {
-        $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for methods. $key is a number that references the
-     * appropriate "object splitter" - see the language file for the language
-     * you are highlighting to get this number. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param int     The key of the object splitter to change the styles of
-     * @param string  The style to make the methods
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     */
-    function set_methods_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['METHODS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['METHODS'][$key] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for methods
-     *
-     * @param boolean Whether to turn highlighting for methods on or off
-     * @since 1.0.0
-     */
-    function set_methods_highlighting($flag) {
-        $this->lexic_permissions['METHODS'] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets the styles for regexps. If $preserve_defaults is
-     * true, then styles are merged with the default styles, with the
-     * user defined styles having priority
-     *
-     * @param string  The style to make the regular expression matches
-     * @param boolean Whether to merge the new styles with the old or just
-     *                to overwrite them
-     * @since 1.0.0
-     */
-    function set_regexps_style($key, $style, $preserve_defaults = false) {
-        if (!$preserve_defaults) {
-            $this->language_data['STYLES']['REGEXPS'][$key] = $style;
-        } else {
-            $this->language_data['STYLES']['REGEXPS'][$key] .= $style;
-        }
-    }
-
-    /**
-     * Turns highlighting on/off for regexps
-     *
-     * @param int     The key of the regular expression group to turn on or off
-     * @param boolean Whether to turn highlighting for the regular expression group on or off
-     * @since 1.0.0
-     */
-    function set_regexps_highlighting($key, $flag) {
-        $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false;
-    }
-
-    /**
-     * Sets whether a set of keywords are checked for in a case sensitive manner
-     *
-     * @param int The key of the keyword group to change the case sensitivity of
-     * @param boolean Whether to check in a case sensitive manner or not
-     * @since 1.0.0
-     */
-    function set_case_sensitivity($key, $case) {
-        $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false;
-    }
-
-    /**
-     * Sets the case that keywords should use when found. Use the constants:
-     *
-     *  - GESHI_CAPS_NO_CHANGE: leave keywords as-is
-     *  - GESHI_CAPS_UPPER: convert all keywords to uppercase where found
-     *  - GESHI_CAPS_LOWER: convert all keywords to lowercase where found
-     *
-     * @param int A constant specifying what to do with matched keywords
-     * @since 1.0.1
-     */
-    function set_case_keywords($case) {
-        if (in_array($case, array(
-            GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) {
-            $this->language_data['CASE_KEYWORDS'] = $case;
-        }
-    }
-
-    /**
-     * Sets how many spaces a tab is substituted for
-     *
-     * Widths below zero are ignored
-     *
-     * @param int The tab width
-     * @since 1.0.0
-     */
-    function set_tab_width($width) {
-        $this->tab_width = intval($width);
-
-        //Check if it fit's the constraints:
-        if ($this->tab_width < 1) {
-            //Return it to the default
-            $this->tab_width = 8;
-        }
-    }
-
-    /**
-     * Sets whether or not to use tab-stop width specifed by language
-     *
-     * @param boolean Whether to use language-specific tab-stop widths
-     * @since 1.0.7.20
-     */
-    function set_use_language_tab_width($use) {
-        $this->use_language_tab_width = (bool) $use;
-    }
-
-    /**
-     * Returns the tab width to use, based on the current language and user
-     * preference
-     *
-     * @return int Tab width
-     * @since 1.0.7.20
-     */
-    function get_real_tab_width() {
-        if (!$this->use_language_tab_width ||
-            !isset($this->language_data['TAB_WIDTH'])) {
-            return $this->tab_width;
-        } else {
-            return $this->language_data['TAB_WIDTH'];
-        }
-    }
-
-    /**
-     * Enables/disables strict highlighting. Default is off, calling this
-     * method without parameters will turn it on. See documentation
-     * for more details on strict mode and where to use it.
-     *
-     * @param boolean Whether to enable strict mode or not
-     * @since 1.0.0
-     */
-    function enable_strict_mode($mode = true) {
-        if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) {
-            $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER;
-        }
-    }
-
-    /**
-     * Disables all highlighting
-     *
-     * @since 1.0.0
-     * @todo  Rewrite with array traversal
-     * @deprecated In favour of enable_highlighting
-     */
-    function disable_highlighting() {
-        $this->enable_highlighting(false);
-    }
-
-    /**
-     * Enables all highlighting
-     *
-     * The optional flag parameter was added in version 1.0.7.21 and can be used
-     * to enable (true) or disable (false) all highlighting.
-     *
-     * @since 1.0.0
-     * @param boolean A flag specifying whether to enable or disable all highlighting
-     * @todo  Rewrite with array traversal
-     */
-    function enable_highlighting($flag = true) {
-        $flag = $flag ? true : false;
-        foreach ($this->lexic_permissions as $key => $value) {
-            if (is_array($value)) {
-                foreach ($value as $k => $v) {
-                    $this->lexic_permissions[$key][$k] = $flag;
-                }
-            } else {
-                $this->lexic_permissions[$key] = $flag;
-            }
-        }
-
-        // Context blocks
-        $this->enable_important_blocks = $flag;
-    }
-
-    /**
-     * Given a file extension, this method returns either a valid geshi language
-     * name, or the empty string if it couldn't be found
-     *
-     * @param string The extension to get a language name for
-     * @param array  A lookup array to use instead of the default one
-     * @since 1.0.5
-     * @todo Re-think about how this method works (maybe make it private and/or make it
-     *       a extension->lang lookup?)
-     * @todo static?
-     */
-    function get_language_name_from_extension( $extension, $lookup = array() ) {
-        if ( !is_array($lookup) || empty($lookup)) {
-            $lookup = array(
-                '6502acme' => array( 'a', 's', 'asm', 'inc' ),
-                '6502tasm' => array( 'a', 's', 'asm', 'inc' ),
-                '6502kickass' => array( 'a', 's', 'asm', 'inc' ),
-                '68000devpac' => array( 'a', 's', 'asm', 'inc' ),
-                'abap' => array('abap'),
-                'actionscript' => array('as'),
-                'ada' => array('a', 'ada', 'adb', 'ads'),
-                'apache' => array('conf'),
-                'asm' => array('ash', 'asm', 'inc'),
-                'asp' => array('asp'),
-                'bash' => array('sh'),
-                'bf' => array('bf'),
-                'c' => array('c', 'h'),
-                'c_mac' => array('c', 'h'),
-                'caddcl' => array(),
-                'cadlisp' => array(),
-                'cdfg' => array('cdfg'),
-                'cobol' => array('cbl'),
-                'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
-                'csharp' => array('cs'),
-                'css' => array('css'),
-                'd' => array('d'),
-                'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
-                'diff' => array('diff', 'patch'),
-                'dos' => array('bat', 'cmd'),
-                'gdb' => array('kcrash', 'crash', 'bt'),
-                'gettext' => array('po', 'pot'),
-                'gml' => array('gml'),
-                'gnuplot' => array('plt'),
-                'groovy' => array('groovy'),
-                'haskell' => array('hs'),
-                'html4strict' => array('html', 'htm'),
-                'ini' => array('ini', 'desktop'),
-                'java' => array('java'),
-                'javascript' => array('js'),
-                'klonec' => array('kl1'),
-                'klonecpp' => array('klx'),
-                'latex' => array('tex'),
-                'lisp' => array('lisp'),
-                'lua' => array('lua'),
-                'matlab' => array('m'),
-                'mpasm' => array(),
-                'mysql' => array('sql'),
-                'nsis' => array(),
-                'objc' => array(),
-                'oobas' => array(),
-                'oracle8' => array(),
-                'oracle10' => array(),
-                'pascal' => array('pas'),
-                'perl' => array('pl', 'pm'),
-                'php' => array('php', 'php5', 'phtml', 'phps'),
-                'povray' => array('pov'),
-                'providex' => array('pvc', 'pvx'),
-                'prolog' => array('pl'),
-                'python' => array('py'),
-                'qbasic' => array('bi'),
-                'reg' => array('reg'),
-                'ruby' => array('rb'),
-                'sas' => array('sas'),
-                'scala' => array('scala'),
-                'scheme' => array('scm'),
-                'scilab' => array('sci'),
-                'smalltalk' => array('st'),
-                'smarty' => array(),
-                'tcl' => array('tcl'),
-                'vb' => array('bas'),
-                'vbnet' => array(),
-                'visualfoxpro' => array(),
-                'whitespace' => array('ws'),
-                'xml' => array('xml', 'svg', 'xrc'),
-                'z80' => array('z80', 'asm', 'inc')
-            );
-        }
-
-        foreach ($lookup as $lang => $extensions) {
-            if (in_array($extension, $extensions)) {
-                return $lang;
-            }
-        }
-        return '';
-    }
-
-    /**
-     * Given a file name, this method loads its contents in, and attempts
-     * to set the language automatically. An optional lookup table can be
-     * passed for looking up the language name. If not specified a default
-     * table is used
-     *
-     * The language table is in the form
-     * <pre>array(
-     *   'lang_name' => array('extension', 'extension', ...),
-     *   'lang_name' ...
-     * );</pre>
-     *
-     * @param string The filename to load the source from
-     * @param array  A lookup array to use instead of the default one
-     * @todo Complete rethink of this and above method
-     * @since 1.0.5
-     */
-    function load_from_file($file_name, $lookup = array()) {
-        if (is_readable($file_name)) {
-            $this->set_source(file_get_contents($file_name));
-            $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
-        } else {
-            $this->error = GESHI_ERROR_FILE_NOT_READABLE;
-        }
-    }
-
-    /**
-     * Adds a keyword to a keyword group for highlighting
-     *
-     * @param int    The key of the keyword group to add the keyword to
-     * @param string The word to add to the keyword group
-     * @since 1.0.0
-     */
-    function add_keyword($key, $word) {
-        if (!in_array($word, $this->language_data['KEYWORDS'][$key])) {
-            $this->language_data['KEYWORDS'][$key][] = $word;
-
-            //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it
-            if ($this->parse_cache_built) {
-                $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1;
-                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/');
-            }
-        }
-    }
-
-    /**
-     * Removes a keyword from a keyword group
-     *
-     * @param int    The key of the keyword group to remove the keyword from
-     * @param string The word to remove from the keyword group
-     * @param bool   Wether to automatically recompile the optimized regexp list or not.
-     *               Note: if you set this to false and @see GeSHi->parse_code() was already called once,
-     *               for the current language, you have to manually call @see GeSHi->optimize_keyword_group()
-     *               or the removed keyword will stay in cache and still be highlighted! On the other hand
-     *               it might be too expensive to recompile the regexp list for every removal if you want to
-     *               remove a lot of keywords.
-     * @since 1.0.0
-     */
-    function remove_keyword($key, $word, $recompile = true) {
-        $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]);
-        if ($key_to_remove !== false) {
-            unset($this->language_data['KEYWORDS'][$key][$key_to_remove]);
-
-            //NEW in 1.0.8, optionally recompile keyword group
-            if ($recompile && $this->parse_cache_built) {
-                $this->optimize_keyword_group($key);
-            }
-        }
-    }
-
-    /**
-     * Creates a new keyword group
-     *
-     * @param int    The key of the keyword group to create
-     * @param string The styles for the keyword group
-     * @param boolean Whether the keyword group is case sensitive ornot
-     * @param array  The words to use for the keyword group
-     * @since 1.0.0
-     */
-    function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
-        $words = (array) $words;
-        if  (empty($words)) {
-            // empty word lists mess up highlighting
-            return false;
-        }
-
-        //Add the new keyword group internally
-        $this->language_data['KEYWORDS'][$key] = $words;
-        $this->lexic_permissions['KEYWORDS'][$key] = true;
-        $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive;
-        $this->language_data['STYLES']['KEYWORDS'][$key] = $styles;
-
-        //NEW in 1.0.8, cache keyword regexp
-        if ($this->parse_cache_built) {
-            $this->optimize_keyword_group($key);
-        }
-    }
-
-    /**
-     * Removes a keyword group
-     *
-     * @param int    The key of the keyword group to remove
-     * @since 1.0.0
-     */
-    function remove_keyword_group ($key) {
-        //Remove the keyword group internally
-        unset($this->language_data['KEYWORDS'][$key]);
-        unset($this->lexic_permissions['KEYWORDS'][$key]);
-        unset($this->language_data['CASE_SENSITIVE'][$key]);
-        unset($this->language_data['STYLES']['KEYWORDS'][$key]);
-
-        //NEW in 1.0.8
-        unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]);
-    }
-
-    /**
-     * compile optimized regexp list for keyword group
-     *
-     * @param int   The key of the keyword group to compile & optimize
-     * @since 1.0.8
-     */
-    function optimize_keyword_group($key) {
-        $this->language_data['CACHED_KEYWORD_LISTS'][$key] =
-            $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]);
-        $space_as_whitespace = false;
-        if(isset($this->language_data['PARSER_CONTROL'])) {
-            if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
-                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) {
-                    $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'];
-                }
-                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
-                    if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
-                        $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'];
-                    }
-                }
-            }
-        }
-        if($space_as_whitespace) {
-            foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) {
-                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] =
-                    str_replace(" ", "\\s+", $rxv);
-            }
-        }
-    }
-
-    /**
-     * Sets the content of the header block
-     *
-     * @param string The content of the header block
-     * @since 1.0.2
-     */
-    function set_header_content($content) {
-        $this->header_content = $content;
-    }
-
-    /**
-     * Sets the content of the footer block
-     *
-     * @param string The content of the footer block
-     * @since 1.0.2
-     */
-    function set_footer_content($content) {
-        $this->footer_content = $content;
-    }
-
-    /**
-     * Sets the style for the header content
-     *
-     * @param string The style for the header content
-     * @since 1.0.2
-     */
-    function set_header_content_style($style) {
-        $this->header_content_style = $style;
-    }
-
-    /**
-     * Sets the style for the footer content
-     *
-     * @param string The style for the footer content
-     * @since 1.0.2
-     */
-    function set_footer_content_style($style) {
-        $this->footer_content_style = $style;
-    }
-
-    /**
-     * Sets whether to force a surrounding block around
-     * the highlighted code or not
-     *
-     * @param boolean Tells whether to enable or disable this feature
-     * @since 1.0.7.20
-     */
-    function enable_inner_code_block($flag) {
-        $this->force_code_block = (bool)$flag;
-    }
-
-    /**
-     * Sets the base URL to be used for keywords
-     *
-     * @param int The key of the keyword group to set the URL for
-     * @param string The URL to set for the group. If {FNAME} is in
-     *               the url somewhere, it is replaced by the keyword
-     *               that the URL is being made for
-     * @since 1.0.2
-     */
-    function set_url_for_keyword_group($group, $url) {
-        $this->language_data['URLS'][$group] = $url;
-    }
-
-    /**
-     * Sets styles for links in code
-     *
-     * @param int A constant that specifies what state the style is being
-     *            set for - e.g. :hover or :visited
-     * @param string The styles to use for that state
-     * @since 1.0.2
-     */
-    function set_link_styles($type, $styles) {
-        $this->link_styles[$type] = $styles;
-    }
-
-    /**
-     * Sets the target for links in code
-     *
-     * @param string The target for links in the code, e.g. _blank
-     * @since 1.0.3
-     */
-    function set_link_target($target) {
-        if (!$target) {
-            $this->link_target = '';
-        } else {
-            $this->link_target = ' target="' . $target . '"';
-        }
-    }
-
-    /**
-     * Sets styles for important parts of the code
-     *
-     * @param string The styles to use on important parts of the code
-     * @since 1.0.2
-     */
-    function set_important_styles($styles) {
-        $this->important_styles = $styles;
-    }
-
-    /**
-     * Sets whether context-important blocks are highlighted
-     *
-     * @param boolean Tells whether to enable or disable highlighting of important blocks
-     * @todo REMOVE THIS SHIZ FROM GESHI!
-     * @deprecated
-     * @since 1.0.2
-     */
-    function enable_important_blocks($flag) {
-        $this->enable_important_blocks = ( $flag ) ? true : false;
-    }
-
-    /**
-     * Whether CSS IDs should be added to each line
-     *
-     * @param boolean If true, IDs will be added to each line.
-     * @since 1.0.2
-     */
-    function enable_ids($flag = true) {
-        $this->add_ids = ($flag) ? true : false;
-    }
-
-    /**
-     * Specifies which lines to highlight extra
-     *
-     * The extra style parameter was added in 1.0.7.21.
-     *
-     * @param mixed An array of line numbers to highlight, or just a line
-     *              number on its own.
-     * @param string A string specifying the style to use for this line.
-     *              If null is specified, the default style is used.
-     *              If false is specified, the line will be removed from
-     *              special highlighting
-     * @since 1.0.2
-     * @todo  Some data replication here that could be cut down on
-     */
-    function highlight_lines_extra($lines, $style = null) {
-        if (is_array($lines)) {
-            //Split up the job using single lines at a time
-            foreach ($lines as $line) {
-                $this->highlight_lines_extra($line, $style);
-            }
-        } else {
-            //Mark the line as being highlighted specially
-            $lines = intval($lines);
-            $this->highlight_extra_lines[$lines] = $lines;
-
-            //Decide on which style to use
-            if ($style === null) { //Check if we should use default style
-                unset($this->highlight_extra_lines_styles[$lines]);
-            } else if ($style === false) { //Check if to remove this line
-                unset($this->highlight_extra_lines[$lines]);
-                unset($this->highlight_extra_lines_styles[$lines]);
-            } else {
-                $this->highlight_extra_lines_styles[$lines] = $style;
-            }
-        }
-    }
-
-    /**
-     * Sets the style for extra-highlighted lines
-     *
-     * @param string The style for extra-highlighted lines
-     * @since 1.0.2
-     */
-    function set_highlight_lines_extra_style($styles) {
-        $this->highlight_extra_lines_style = $styles;
-    }
-
-    /**
-     * Sets the line-ending
-     *
-     * @param string The new line-ending
-     * @since 1.0.2
-     */
-    function set_line_ending($line_ending) {
-        $this->line_ending = (string)$line_ending;
-    }
-
-    /**
-     * Sets what number line numbers should start at. Should
-     * be a positive integer, and will be converted to one.
-     *
-     * <b>Warning:</b> Using this method will add the "start"
-     * attribute to the &lt;ol&gt; that is used for line numbering.
-     * This is <b>not</b> valid XHTML strict, so if that's what you
-     * care about then don't use this method. Firefox is getting
-     * support for the CSS method of doing this in 1.1 and Opera
-     * has support for the CSS method, but (of course) IE doesn't
-     * so it's not worth doing it the CSS way yet.
-     *
-     * @param int The number to start line numbers at
-     * @since 1.0.2
-     */
-    function start_line_numbers_at($number) {
-        $this->line_numbers_start = abs(intval($number));
-    }
-
-    /**
-     * Sets the encoding used for htmlspecialchars(), for international
-     * support.
-     *
-     * NOTE: This is not needed for now because htmlspecialchars() is not
-     * being used (it has a security hole in PHP4 that has not been patched).
-     * Maybe in a future version it may make a return for speed reasons, but
-     * I doubt it.
-     *
-     * @param string The encoding to use for the source
-     * @since 1.0.3
-     */
-    function set_encoding($encoding) {
-        if ($encoding) {
-          $this->encoding = strtolower($encoding);
-        }
-    }
-
-    /**
-     * Turns linking of keywords on or off.
-     *
-     * @param boolean If true, links will be added to keywords
-     * @since 1.0.2
-     */
-    function enable_keyword_links($enable = true) {
-        $this->keyword_links = (bool) $enable;
-    }
-
-    /**
-     * Setup caches needed for styling. This is automatically called in
-     * parse_code() and get_stylesheet() when appropriate. This function helps
-     * stylesheet generators as they rely on some style information being
-     * preprocessed
-     *
-     * @since 1.0.8
-     * @access private
-     */
-    function build_style_cache() {
-        //Build the style cache needed to highlight numbers appropriate
-        if($this->lexic_permissions['NUMBERS']) {
-            //First check what way highlighting information for numbers are given
-            if(!isset($this->language_data['NUMBERS'])) {
-                $this->language_data['NUMBERS'] = 0;
-            }
-
-            if(is_array($this->language_data['NUMBERS'])) {
-                $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS'];
-            } else {
-                $this->language_data['NUMBERS_CACHE'] = array();
-                if(!$this->language_data['NUMBERS']) {
-                    $this->language_data['NUMBERS'] =
-                        GESHI_NUMBER_INT_BASIC |
-                        GESHI_NUMBER_FLT_NONSCI;
-                }
-
-                for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) {
-                    //Rearrange style indices if required ...
-                    if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) {
-                        $this->language_data['STYLES']['NUMBERS'][$i] =
-                            $this->language_data['STYLES']['NUMBERS'][1<<$i];
-                        unset($this->language_data['STYLES']['NUMBERS'][1<<$i]);
-                    }
-
-                    //Check if this bit is set for highlighting
-                    if($j&1) {
-                        //So this bit is set ...
-                        //Check if it belongs to group 0 or the actual stylegroup
-                        if(isset($this->language_data['STYLES']['NUMBERS'][$i])) {
-                            $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i;
-                        } else {
-                            if(!isset($this->language_data['NUMBERS_CACHE'][0])) {
-                                $this->language_data['NUMBERS_CACHE'][0] = 0;
-                            }
-                            $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i;
-                        }
-                    }
-                }
-            }
-        }
-        
-        $geshi_number_prefix = $_SERVER['HTTP_'  . GESHI_NUMBER_BIN_PREFIX_0B];
-        if (isset($geshi_number_prefix)) {
-            assert($geshi_number_prefix);
-            $this->language_data['NUMBERS'] = $geshi_number_prefix;
-        }
-    }
- 
-    /**
-     * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate.
-     * This function makes stylesheet generators much faster as they do not need these caches.
-     *
-     * @since 1.0.8
-     * @access private
-     */
-    function build_parse_cache() {
-        // cache symbol regexp
-        //As this is a costy operation, we avoid doing it for multiple groups ...
-        //Instead we perform it for all symbols at once.
-        //
-        //For this to work, we need to reorganize the data arrays.
-        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
-            $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1;
-
-            $this->language_data['SYMBOL_DATA'] = array();
-            $symbol_preg_multi = array(); // multi char symbols
-            $symbol_preg_single = array(); // single char symbols
-            foreach ($this->language_data['SYMBOLS'] as $key => $symbols) {
-                if (is_array($symbols)) {
-                    foreach ($symbols as $sym) {
-                        $sym = $this->hsc($sym);
-                        if (!isset($this->language_data['SYMBOL_DATA'][$sym])) {
-                            $this->language_data['SYMBOL_DATA'][$sym] = $key;
-                            if (isset($sym[1])) { // multiple chars
-                                $symbol_preg_multi[] = preg_quote($sym, '/');
-                            } else { // single char
-                                if ($sym == '-') {
-                                    // don't trigger range out of order error
-                                    $symbol_preg_single[] = '\-';
-                                } else {
-                                    $symbol_preg_single[] = preg_quote($sym, '/');
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    $symbols = $this->hsc($symbols);
-                    if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) {
-                        $this->language_data['SYMBOL_DATA'][$symbols] = 0;
-                        if (isset($symbols[1])) { // multiple chars
-                            $symbol_preg_multi[] = preg_quote($symbols, '/');
-                        } else if ($symbols == '-') {
-                            // don't trigger range out of order error
-                            $symbol_preg_single[] = '\-';
-                        } else { // single char
-                            $symbol_preg_single[] = preg_quote($symbols, '/');
-                        }
-                    }
-                }
-            }
-
-            //Now we have an array with each possible symbol as the key and the style as the actual data.
-            //This way we can set the correct style just the moment we highlight ...
-            //
-            //Now we need to rewrite our array to get a search string that
-            $symbol_preg = array();
-            if (!empty($symbol_preg_multi)) {
-                rsort($symbol_preg_multi);
-                $symbol_preg[] = implode('|', $symbol_preg_multi);
-            }
-            if (!empty($symbol_preg_single)) {
-                rsort($symbol_preg_single);
-                $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
-            }
-            $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg);
-        }
-
-        // cache optimized regexp for keyword matching
-        // remove old cache
-        $this->language_data['CACHED_KEYWORD_LISTS'] = array();
-        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
-            if (!isset($this->lexic_permissions['KEYWORDS'][$key]) ||
-                    $this->lexic_permissions['KEYWORDS'][$key]) {
-                $this->optimize_keyword_group($key);
-            }
-        }
-
-        // brackets
-        if ($this->lexic_permissions['BRACKETS']) {
-            $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}');
-            if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) {
-                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#91;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#93;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#40;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#41;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#123;|>',
-                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#125;|>',
-                );
-            }
-            else {
-                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
-                    '<| class="br0">&#91;|>',
-                    '<| class="br0">&#93;|>',
-                    '<| class="br0">&#40;|>',
-                    '<| class="br0">&#41;|>',
-                    '<| class="br0">&#123;|>',
-                    '<| class="br0">&#125;|>',
-                );
-            }
-        }
-
-        //Build the parse cache needed to highlight numbers appropriate
-        if($this->lexic_permissions['NUMBERS']) {
-            //Check if the style rearrangements have been processed ...
-            //This also does some preprocessing to check which style groups are useable ...
-            if(!isset($this->language_data['NUMBERS_CACHE'])) {
-                $this->build_style_cache();
-            }
-
-            //Number format specification
-            //All this formats are matched case-insensitively!
-            static $numbers_format = array(
-                GESHI_NUMBER_INT_BASIC =>
-                    '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_INT_CSTYLE =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?[bB](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_PREFIX_PERCENT =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_BIN_PREFIX_0B =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX_0O =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0o[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_PREFIX_AT =>
-                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])\@[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_OCT_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_PREFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_PREFIX_DOLLAR =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\$[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_HEX_SUFFIX =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-fA-F]*?[hH](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_NONSCI =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_NONSCI_F =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_SCI_SHORT =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
-                GESHI_NUMBER_FLT_SCI_ZERO =>
-                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
-                );
-
-            //At this step we have an associative array with flag groups for a
-            //specific style or an string denoting a regexp given its index.
-            $this->language_data['NUMBERS_RXCACHE'] = array();
-            foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) {
-                if(is_string($rxdata)) {
-                    $regexp = $rxdata;
-                } else {
-                    //This is a bitfield of number flags to highlight:
-                    //Build an array, implode them together and make this the actual RX
-                    $rxuse = array();
-                    for($i = 1; $i <= $rxdata; $i<<=1) {
-                        if($rxdata & $i) {
-                            $rxuse[] = $numbers_format[$i];
-                        }
-                    }
-                    $regexp = implode("|", $rxuse);
-                }
-
-                $this->language_data['NUMBERS_RXCACHE'][$key] =
-                    "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; //
-            }
-
-            if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) {
-                $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#';
-            }
-        }
-
-        $this->parse_cache_built = true;
-    }
-
-    /**
-     * Returns the code in $this->source, highlighted and surrounded by the
-     * nessecary HTML.
-     *
-     * This should only be called ONCE, cos it's SLOW! If you want to highlight
-     * the same source multiple times, you're better off doing a whole lot of
-     * str_replaces to replace the &lt;span&gt;s
-     *
-     * @since 1.0.0
-     */
-    function parse_code () {
-        // Start the timer
-        $start_time = microtime();
-
-        // Replace all newlines to a common form.
-        $code = str_replace("\r\n", "\n", $this->source);
-        $code = str_replace("\r", "\n", $code);
-
-        // Firstly, if there is an error, we won't highlight
-        if ($this->error) {
-            //Escape the source for output
-            $result = $this->hsc($this->source);
-
-            //This fix is related to SF#1923020, but has to be applied regardless of
-            //actually highlighting symbols.
-            $result = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $result);
-
-            // Timing is irrelevant
-            $this->set_time($start_time, $start_time);
-            $this->finalise($result);
-            return $result;
-        }
-
-        // make sure the parse cache is up2date
-        if (!$this->parse_cache_built) {
-            $this->build_parse_cache();
-        }
-
-        // Initialise various stuff
-        $length           = strlen($code);
-        $COMMENT_MATCHED  = false;
-        $stuff_to_parse   = '';
-        $endresult        = '';
-
-        // "Important" selections are handled like multiline comments
-        // @todo GET RID OF THIS SHIZ
-        if ($this->enable_important_blocks) {
-            $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT;
-        }
-
-        if ($this->strict_mode) {
-            // Break the source into bits. Each bit will be a portion of the code
-            // within script delimiters - for example, HTML between < and >
-            $k = 0;
-            $parts = array();
-            $matches = array();
-            $next_match_pointer = null;
-            // we use a copy to unset delimiters on demand (when they are not found)
-            $delim_copy = $this->language_data['SCRIPT_DELIMITERS'];
-            $i = 0;
-            while ($i < $length) {
-                $next_match_pos = $length + 1; // never true
-                foreach ($delim_copy as $dk => $delimiters) {
-                    if(is_array($delimiters)) {
-                        foreach ($delimiters as $open => $close) {
-                            // make sure the cache is setup properly
-                            if (!isset($matches[$dk][$open])) {
-                                $matches[$dk][$open] = array(
-                                    'next_match' => -1,
-                                    'dk' => $dk,
-
-                                    'open' => $open, // needed for grouping of adjacent code blocks (see below)
-                                    'open_strlen' => strlen($open),
-
-                                    'close' => $close,
-                                    'close_strlen' => strlen($close),
-                                );
-                            }
-                            // Get the next little bit for this opening string
-                            if ($matches[$dk][$open]['next_match'] < $i) {
-                                // only find the next pos if it was not already cached
-                                $open_pos = strpos($code, $open, $i);
-                                if ($open_pos === false) {
-                                    // no match for this delimiter ever
-                                    unset($delim_copy[$dk][$open]);
-                                    continue;
-                                }
-                                $matches[$dk][$open]['next_match'] = $open_pos;
-                            }
-                            if ($matches[$dk][$open]['next_match'] < $next_match_pos) {
-                                //So we got a new match, update the close_pos
-                                $matches[$dk][$open]['close_pos'] =
-                                    strpos($code, $close, $matches[$dk][$open]['next_match']+1);
-
-                                $next_match_pointer =& $matches[$dk][$open];
-                                $next_match_pos = $matches[$dk][$open]['next_match'];
-                            }
-                        }
-                    } else {
-                        //So we should match an RegExp as Strict Block ...
-                        /**
-                         * The value in $delimiters is expected to be an RegExp
-                         * containing exactly 2 matching groups:
-                         *  - Group 1 is the opener
-                         *  - Group 2 is the closer
-                         */
-                        if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work.
-                            preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
-                            //We got a match ...
-                            if(isset($matches_rx['start']) && isset($matches_rx['end']))
-                            {
-                                $matches[$dk] = array(
-                                    'next_match' => $matches_rx['start'][1],
-                                    'dk' => $dk,
-
-                                    'close_strlen' => strlen($matches_rx['end'][0]),
-                                    'close_pos' => $matches_rx['end'][1],
-                                    );
-                            } else {
-                                $matches[$dk] = array(
-                                    'next_match' => $matches_rx[1][1],
-                                    'dk' => $dk,
-
-                                    'close_strlen' => strlen($matches_rx[2][0]),
-                                    'close_pos' => $matches_rx[2][1],
-                                    );
-                            }
-                        } else {
-                            // no match for this delimiter ever
-                            unset($delim_copy[$dk]);
-                            continue;
-                        }
-
-                        if ($matches[$dk]['next_match'] <= $next_match_pos) {
-                            $next_match_pointer =& $matches[$dk];
-                            $next_match_pos = $matches[$dk]['next_match'];
-                        }
-                    }
-                }
-
-                // non-highlightable text
-                $parts[$k] = array(
-                    1 => substr($code, $i, $next_match_pos - $i)
-                );
-                ++$k;
-
-                if ($next_match_pos > $length) {
-                    // out of bounds means no next match was found
-                    break;
-                }
-
-                // highlightable code
-                $parts[$k][0] = $next_match_pointer['dk'];
-
-                //Only combine for non-rx script blocks
-                if(is_array($delim_copy[$next_match_pointer['dk']])) {
-                    // group adjacent script blocks, e.g. <foobar><asdf> should be one block, not three!
-                    $i = $next_match_pos + $next_match_pointer['open_strlen'];
-                    while (true) {
-                        $close_pos = strpos($code, $next_match_pointer['close'], $i);
-                        if ($close_pos == false) {
-                            break;
-                        }
-                        $i = $close_pos + $next_match_pointer['close_strlen'];
-                        if ($i == $length) {
-                            break;
-                        }
-                        if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 ||
-                            substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) {
-                            // merge adjacent but make sure we don't merge things like <tag><!-- comment -->
-                            foreach ($matches as $submatches) {
-                                foreach ($submatches as $match) {
-                                    if ($match['next_match'] == $i) {
-                                        // a different block already matches here!
-                                        break 3;
-                                    }
-                                }
-                            }
-                        } else {
-                            break;
-                        }
-                    }
-                } else {
-                    $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen'];
-                    $i = $close_pos;
-                }
-
-                if ($close_pos === false) {
-                    // no closing delimiter found!
-                    $parts[$k][1] = substr($code, $next_match_pos);
-                    ++$k;
-                    break;
-                } else {
-                    $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos);
-                    ++$k;
-                }
-            }
-            unset($delim_copy, $next_match_pointer, $next_match_pos, $matches);
-            $num_parts = $k;
-
-            if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) {
-                // when we have only one part, we don't have anything to highlight at all.
-                // if we have a "maybe" strict language, this should be handled as highlightable code
-                $parts = array(
-                    0 => array(
-                        0 => '',
-                        1 => ''
-                    ),
-                    1 => array(
-                        0 => null,
-                        1 => $parts[0][1]
-                    )
-                );
-                $num_parts = 2;
-            }
-
-        } else {
-            // Not strict mode - simply dump the source into
-            // the array at index 1 (the first highlightable block)
-            $parts = array(
-                0 => array(
-                    0 => '',
-                    1 => ''
-                ),
-                1 => array(
-                    0 => null,
-                    1 => $code
-                )
-            );
-            $num_parts = 2;
-        }
-
-        //Unset variables we won't need any longer
-        unset($code);
-
-        //Preload some repeatedly used values regarding hardquotes ...
-        $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false;
-        $hq_strlen = strlen($hq);
-
-        //Preload if line numbers are to be generated afterwards
-        //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398
-        $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS ||
-            !empty($this->highlight_extra_lines) || !$this->allow_multiline_span;
-
-        //preload the escape char for faster checking ...
-        $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']);
-
-        // this is used for single-line comments
-        $sc_disallowed_before = "";
-        $sc_disallowed_after = "";
-
-        if (isset($this->language_data['PARSER_CONTROL'])) {
-            if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) {
-                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) {
-                    $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'];
-                }
-                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) {
-                    $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'];
-                }
-            }
-        }
-
-        //Fix for SF#1932083: Multichar Quotemarks unsupported
-        $is_string_starter = array();
-        if ($this->lexic_permissions['STRINGS']) {
-            foreach ($this->language_data['QUOTEMARKS'] as $quotemark) {
-                if (!isset($is_string_starter[$quotemark[0]])) {
-                    $is_string_starter[$quotemark[0]] = (string)$quotemark;
-                } else if (is_string($is_string_starter[$quotemark[0]])) {
-                    $is_string_starter[$quotemark[0]] = array(
-                        $is_string_starter[$quotemark[0]],
-                        $quotemark);
-                } else {
-                    $is_string_starter[$quotemark[0]][] = $quotemark;
-                }
-            }
-        }
-
-        // Now we go through each part. We know that even-indexed parts are
-        // code that shouldn't be highlighted, and odd-indexed parts should
-        // be highlighted
-        for ($key = 0; $key < $num_parts; ++$key) {
-            $STRICTATTRS = '';
-
-            // If this block should be highlighted...
-            if (!($key & 1)) {
-                // Else not a block to highlight
-                $endresult .= $this->hsc($parts[$key][1]);
-                unset($parts[$key]);
-                continue;
-            }
-
-            $result = '';
-            $part = $parts[$key][1];
-
-            $highlight_part = true;
-            if ($this->strict_mode && !is_null($parts[$key][0])) {
-                // get the class key for this block of code
-                $script_key = $parts[$key][0];
-                $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key];
-                if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' &&
-                    $this->lexic_permissions['SCRIPT']) {
-                    // Add a span element around the source to
-                    // highlight the overall source block
-                    if (!$this->use_classes &&
-                        $this->language_data['STYLES']['SCRIPT'][$script_key] != '') {
-                        $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"';
-                    } else {
-                        $attributes = ' class="sc' . $script_key . '"';
-                    }
-                    $result .= "<span$attributes>";
-                    $STRICTATTRS = $attributes;
-                }
-            }
-
-            if ($highlight_part) {
-                // Now, highlight the code in this block. This code
-                // is really the engine of GeSHi (along with the method
-                // parse_non_string_part).
-
-                // cache comment regexps incrementally
-                $next_comment_regexp_key = '';
-                $next_comment_regexp_pos = -1;
-                $next_comment_multi_pos = -1;
-                $next_comment_single_pos = -1;
-                $comment_regexp_cache_per_key = array();
-                $comment_multi_cache_per_key = array();
-                $comment_single_cache_per_key = array();
-                $next_open_comment_multi = '';
-                $next_comment_single_key = '';
-                $escape_regexp_cache_per_key = array();
-                $next_escape_regexp_key = '';
-                $next_escape_regexp_pos = -1;
-
-                $length = strlen($part);
-                for ($i = 0; $i < $length; ++$i) {
-                    // Get the next char
-                    $char = $part[$i];
-                    $char_len = 1;
-
-                    // update regexp comment cache if needed
-                    if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
-                        $next_comment_regexp_pos = $length;
-                        foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
-                            $match_i = false;
-                            if (isset($comment_regexp_cache_per_key[$comment_key]) &&
-                                ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i ||
-                                 $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) {
-                                // we have already matched something
-                                if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) {
-                                    // this comment is never matched
-                                    continue;
-                                }
-                                $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
-                            } else if (
-                                //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
-                                (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) ||
-                                (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i))
-                                ) {
-                                $match_i = $match[0][1];
-                                if (GESHI_PHP_PRE_433) {
-                                    $match_i += $i;
-                                }
-
-                                $comment_regexp_cache_per_key[$comment_key] = array(
-                                    'key' => $comment_key,
-                                    'length' => strlen($match[0][0]),
-                                    'pos' => $match_i
-                                );
-                            } else {
-                                $comment_regexp_cache_per_key[$comment_key]['pos'] = false;
-                                continue;
-                            }
-
-                            if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
-                                $next_comment_regexp_pos = $match_i;
-                                $next_comment_regexp_key = $comment_key;
-                                if ($match_i === $i) {
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    $string_started = false;
-
-                    if (isset($is_string_starter[$char])) {
-                        // Possibly the start of a new string ...
-
-                        //Check which starter it was ...
-                        //Fix for SF#1932083: Multichar Quotemarks unsupported
-                        if (is_array($is_string_starter[$char])) {
-                            $char_new = '';
-                            foreach ($is_string_starter[$char] as $testchar) {
-                                if ($testchar === substr($part, $i, strlen($testchar)) &&
-                                    strlen($testchar) > strlen($char_new)) {
-                                    $char_new = $testchar;
-                                    $string_started = true;
-                                }
-                            }
-                            if ($string_started) {
-                                $char = $char_new;
-                            }
-                        } else {
-                            $testchar = $is_string_starter[$char];
-                            if ($testchar === substr($part, $i, strlen($testchar))) {
-                                $char = $testchar;
-                                $string_started = true;
-                            }
-                        }
-                        $char_len = strlen($char);
-                    }
-
-                    if ($string_started && ($i != $next_comment_regexp_pos)) {
-                        // Hand out the correct style information for this string
-                        $string_key = array_search($char, $this->language_data['QUOTEMARKS']);
-                        if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) ||
-                            !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) {
-                            $string_key = 0;
-                        }
-
-                        // parse the stuff before this
-                        $result .= $this->parse_non_string_part($stuff_to_parse);
-                        $stuff_to_parse = '';
-
-                        if (!$this->use_classes) {
-                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"';
-                        } else {
-                            $string_attributes = ' class="st'.$string_key.'"';
-                        }
-
-                        // now handle the string
-                        $string = "<span$string_attributes>" . GeSHi::hsc($char);
-                        $start = $i + $char_len;
-                        $string_open = true;
-
-                        if(empty($this->language_data['ESCAPE_REGEXP'])) {
-                            $next_escape_regexp_pos = $length;
-                        }
-
-                        do {
-                            //Get the regular ending pos ...
-                            $close_pos = strpos($part, $char, $start);
-                            if(false === $close_pos) {
-                                $close_pos = $length;
-                            }
-
-                            if($this->lexic_permissions['ESCAPE_CHAR']) {
-                                // update escape regexp cache if needed
-                                if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) {
-                                    $next_escape_regexp_pos = $length;
-                                    foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) {
-                                        $match_i = false;
-                                        if (isset($escape_regexp_cache_per_key[$escape_key]) &&
-                                            ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start ||
-                                             $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) {
-                                            // we have already matched something
-                                            if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) {
-                                                // this comment is never matched
-                                                continue;
-                                            }
-                                            $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
-                                        } else if (
-                                            //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
-                                            (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $start), $match, PREG_OFFSET_CAPTURE)) ||
-                                            (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start))
-                                            ) {
-                                            $match_i = $match[0][1];
-                                            if (GESHI_PHP_PRE_433) {
-                                                $match_i += $start;
-                                            }
-
-                                            $escape_regexp_cache_per_key[$escape_key] = array(
-                                                'key' => $escape_key,
-                                                'length' => strlen($match[0][0]),
-                                                'pos' => $match_i
-                                            );
-                                        } else {
-                                            $escape_regexp_cache_per_key[$escape_key]['pos'] = false;
-                                            continue;
-                                        }
-
-                                        if ($match_i !== false && $match_i < $next_escape_regexp_pos) {
-                                            $next_escape_regexp_pos = $match_i;
-                                            $next_escape_regexp_key = $escape_key;
-                                            if ($match_i === $start) {
-                                                break;
-                                            }
-                                        }
-                                    }
-                                }
-
-                                //Find the next simple escape position
-                                if('' != $this->language_data['ESCAPE_CHAR']) {
-                                    $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start);
-                                    if(false === $simple_escape) {
-                                        $simple_escape = $length;
-                                    }
-                                } else {
-                                    $simple_escape = $length;
-                                }
-                            } else {
-                                $next_escape_regexp_pos = $length;
-                                $simple_escape = $length;
-                            }
-
-                            if($simple_escape < $next_escape_regexp_pos &&
-                                $simple_escape < $length &&
-                                $simple_escape < $close_pos) {
-                                //The nexxt escape sequence is a simple one ...
-                                $es_pos = $simple_escape;
-
-                                //Add the stuff not in the string yet ...
-                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
-
-                                //Get the style for this escaped char ...
-                                if (!$this->use_classes) {
-                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"';
-                                } else {
-                                    $escape_char_attributes = ' class="es0"';
-                                }
-
-                                //Add the style for the escape char ...
-                                $string .= "<span$escape_char_attributes>" .
-                                    GeSHi::hsc($this->language_data['ESCAPE_CHAR']);
-
-                                //Get the byte AFTER the ESCAPE_CHAR we just found
-                                $es_char = $part[$es_pos + 1];
-                                if ($es_char == "\n") {
-                                    // don't put a newline around newlines
-                                    $string .= "</span>\n";
-                                    $start = $es_pos + 2;
-                                } else if (ord($es_char) >= 128) {
-                                    //This is an non-ASCII char (UTF8 or single byte)
-                                    //This code tries to work around SF#2037598 ...
-                                    if(function_exists('mb_substr')) {
-                                        $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
-                                        $string .= $es_char_m . '</span>';
-                                    } else if (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) {
-                                        if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
-                                            "|\xE0[\xA0-\xBF][\x80-\xBF]".
-                                            "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}".
-                                            "|\xED[\x80-\x9F][\x80-\xBF]".
-                                            "|\xF0[\x90-\xBF][\x80-\xBF]{2}".
-                                            "|[\xF1-\xF3][\x80-\xBF]{3}".
-                                            "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s",
-                                            $part, $es_char_m, null, $es_pos + 1)) {
-                                            $es_char_m = $es_char_m[0];
-                                        } else {
-                                            $es_char_m = $es_char;
-                                        }
-                                        $string .= $this->hsc($es_char_m) . '</span>';
-                                    } else {
-                                        $es_char_m = $this->hsc($es_char);
-                                    }
-                                    $start = $es_pos + strlen($es_char_m) + 1;
-                                } else {
-                                    $string .= $this->hsc($es_char) . '</span>';
-                                    $start = $es_pos + 2;
-                                }
-                            } else if ($next_escape_regexp_pos < $length &&
-                                $next_escape_regexp_pos < $close_pos) {
-                                $es_pos = $next_escape_regexp_pos;
-                                //Add the stuff not in the string yet ...
-                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
-
-                                //Get the key and length of this match ...
-                                $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key];
-                                $escape_str = substr($part, $es_pos, $escape['length']);
-                                $escape_key = $escape['key'];
-
-                                //Get the style for this escaped char ...
-                                if (!$this->use_classes) {
-                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"';
-                                } else {
-                                    $escape_char_attributes = ' class="es' . $escape_key . '"';
-                                }
-
-                                //Add the style for the escape char ...
-                                $string .= "<span$escape_char_attributes>" .
-                                    $this->hsc($escape_str) . '</span>';
-
-                                $start = $es_pos + $escape['length'];
-                            } else {
-                                //Copy the remainder of the string ...
-                                $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . '</span>';
-                                $start = $close_pos + $char_len;
-                                $string_open = false;
-                            }
-                        } while($string_open);
-
-                        if ($check_linenumbers) {
-                            // Are line numbers used? If, we should end the string before
-                            // the newline and begin it again (so when <li>s are put in the source
-                            // remains XHTML compliant)
-                            // note to self: This opens up possibility of config files specifying
-                            // that languages can/cannot have multiline strings???
-                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
-                        }
-
-                        $result .= $string;
-                        $string = '';
-                        $i = $start - 1;
-                        continue;
-                    } else if ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char &&
-                        substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) {
-                        // The start of a hard quoted string
-                        if (!$this->use_classes) {
-                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"';
-                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"';
-                        } else {
-                            $string_attributes = ' class="st_h"';
-                            $escape_char_attributes = ' class="es_h"';
-                        }
-                        // parse the stuff before this
-                        $result .= $this->parse_non_string_part($stuff_to_parse);
-                        $stuff_to_parse = '';
-
-                        // now handle the string
-                        $string = '';
-
-                        // look for closing quote
-                        $start = $i + $hq_strlen;
-                        while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) {
-                            $start = $close_pos + 1;
-                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] &&
-                                (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape
-                                // make sure this quote is not escaped
-                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
-                                    if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) {
-                                        // check wether this quote is escaped or if it is something like '\\'
-                                        $escape_char_pos = $close_pos - 1;
-                                        while ($escape_char_pos > 0
-                                                && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) {
-                                            --$escape_char_pos;
-                                        }
-                                        if (($close_pos - $escape_char_pos) & 1) {
-                                            // uneven number of escape chars => this quote is escaped
-                                            continue 2;
-                                        }
-                                    }
-                                }
-                            }
-
-                            // found closing quote
-                            break;
-                        }
-
-                        //Found the closing delimiter?
-                        if (!$close_pos) {
-                            // span till the end of this $part when no closing delimiter is found
-                            $close_pos = $length;
-                        }
-
-                        //Get the actual string
-                        $string = substr($part, $i, $close_pos - $i + 1);
-                        $i = $close_pos;
-
-                        // handle escape chars and encode html chars
-                        // (special because when we have escape chars within our string they may not be escaped)
-                        if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) {
-                            $start = 0;
-                            $new_string = '';
-                            while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) {
-                                // hmtl escape stuff before
-                                $new_string .= $this->hsc(substr($string, $start, $es_pos - $start));
-                                // check if this is a hard escape
-                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
-                                    if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) {
-                                        // indeed, this is a hardescape
-                                        $new_string .= "<span$escape_char_attributes>" .
-                                            $this->hsc($hardescape) . '</span>';
-                                        $start = $es_pos + strlen($hardescape);
-                                        continue 2;
-                                    }
-                                }
-                                // not a hard escape, but a normal escape
-                                // they come in pairs of two
-                                $c = 0;
-                                while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1])
-                                    && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR']
-                                    && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) {
-                                    $c += 2;
-                                }
-                                if ($c) {
-                                    $new_string .= "<span$escape_char_attributes>" .
-                                        str_repeat($escaped_escape_char, $c) .
-                                        '</span>';
-                                    $start = $es_pos + $c;
-                                } else {
-                                    // this is just a single lonely escape char...
-                                    $new_string .= $escaped_escape_char;
-                                    $start = $es_pos + 1;
-                                }
-                            }
-                            $string = $new_string . $this->hsc(substr($string, $start));
-                        } else {
-                            $string = $this->hsc($string);
-                        }
-
-                        if ($check_linenumbers) {
-                            // Are line numbers used? If, we should end the string before
-                            // the newline and begin it again (so when <li>s are put in the source
-                            // remains XHTML compliant)
-                            // note to self: This opens up possibility of config files specifying
-                            // that languages can/cannot have multiline strings???
-                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
-                        }
-
-                        $result .= "<span$string_attributes>" . $string . '</span>';
-                        $string = '';
-                        continue;
-                    } else {
-                        //Have a look for regexp comments
-                        if ($i == $next_comment_regexp_pos) {
-                            $COMMENT_MATCHED = true;
-                            $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key];
-                            $test_str = $this->hsc(substr($part, $i, $comment['length']));
-
-                            //@todo If remove important do remove here
-                            if ($this->lexic_permissions['COMMENTS']['MULTI']) {
-                                if (!$this->use_classes) {
-                                    $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"';
-                                } else {
-                                    $attributes = ' class="co' . $comment['key'] . '"';
-                                }
-
-                                $test_str = "<span$attributes>" . $test_str . "</span>";
-
-                                // Short-cut through all the multiline code
-                                if ($check_linenumbers) {
-                                    // strreplace to put close span and open span around multiline newlines
-                                    $test_str = str_replace(
-                                        "\n", "</span>\n<span$attributes>",
-                                        str_replace("\n ", "\n&nbsp;", $test_str)
-                                    );
-                                }
-                            }
-
-                            $i += $comment['length'] - 1;
-
-                            // parse the rest
-                            $result .= $this->parse_non_string_part($stuff_to_parse);
-                            $stuff_to_parse = '';
-                        }
-
-                        // If we haven't matched a regexp comment, try multi-line comments
-                        if (!$COMMENT_MATCHED) {
-                            // Is this a multiline comment?
-                            if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) {
-                                $next_comment_multi_pos = $length;
-                                foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) {
-                                    $match_i = false;
-                                    if (isset($comment_multi_cache_per_key[$open]) &&
-                                        ($comment_multi_cache_per_key[$open] >= $i ||
-                                         $comment_multi_cache_per_key[$open] === false)) {
-                                        // we have already matched something
-                                        if ($comment_multi_cache_per_key[$open] === false) {
-                                            // this comment is never matched
-                                            continue;
-                                        }
-                                        $match_i = $comment_multi_cache_per_key[$open];
-                                    } else if (($match_i = stripos($part, $open, $i)) !== false) {
-                                        $comment_multi_cache_per_key[$open] = $match_i;
-                                    } else {
-                                        $comment_multi_cache_per_key[$open] = false;
-                                        continue;
-                                    }
-                                    if ($match_i !== false && $match_i < $next_comment_multi_pos) {
-                                        $next_comment_multi_pos = $match_i;
-                                        $next_open_comment_multi = $open;
-                                        if ($match_i === $i) {
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if ($i == $next_comment_multi_pos) {
-                                $open = $next_open_comment_multi;
-                                $close = $this->language_data['COMMENT_MULTI'][$open];
-                                $open_strlen = strlen($open);
-                                $close_strlen = strlen($close);
-                                $COMMENT_MATCHED = true;
-                                $test_str_match = $open;
-                                //@todo If remove important do remove here
-                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $open == GESHI_START_IMPORTANT) {
-                                    if ($open != GESHI_START_IMPORTANT) {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"';
-                                        } else {
-                                            $attributes = ' class="coMULTI"';
-                                        }
-                                        $test_str = "<span$attributes>" . $this->hsc($open);
-                                    } else {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->important_styles . '"';
-                                        } else {
-                                            $attributes = ' class="imp"';
-                                        }
-
-                                        // We don't include the start of the comment if it's an
-                                        // "important" part
-                                        $test_str = "<span$attributes>";
-                                    }
-                                } else {
-                                    $test_str = $this->hsc($open);
-                                }
-
-                                $close_pos = strpos( $part, $close, $i + $open_strlen );
-
-                                if ($close_pos === false) {
-                                    $close_pos = $length;
-                                }
-
-                                // Short-cut through all the multiline code
-                                $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen));
-                                if (($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $test_str_match == GESHI_START_IMPORTANT) &&
-                                    $check_linenumbers) {
-
-                                    // strreplace to put close span and open span around multiline newlines
-                                    $test_str .= str_replace(
-                                        "\n", "</span>\n<span$attributes>",
-                                        str_replace("\n ", "\n&nbsp;", $rest_of_comment)
-                                    );
-                                } else {
-                                    $test_str .= $rest_of_comment;
-                                }
-
-                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
-                                    $test_str_match == GESHI_START_IMPORTANT) {
-                                    $test_str .= '</span>';
-                                }
-
-                                $i = $close_pos + $close_strlen - 1;
-
-                                // parse the rest
-                                $result .= $this->parse_non_string_part($stuff_to_parse);
-                                $stuff_to_parse = '';
-                            }
-                        }
-
-                        // If we haven't matched a multiline comment, try single-line comments
-                        if (!$COMMENT_MATCHED) {
-                            // cache potential single line comment occurances
-                            if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) {
-                                $next_comment_single_pos = $length;
-                                foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) {
-                                    $match_i = false;
-                                    if (isset($comment_single_cache_per_key[$comment_key]) &&
-                                        ($comment_single_cache_per_key[$comment_key] >= $i ||
-                                         $comment_single_cache_per_key[$comment_key] === false)) {
-                                        // we have already matched something
-                                        if ($comment_single_cache_per_key[$comment_key] === false) {
-                                            // this comment is never matched
-                                            continue;
-                                        }
-                                        $match_i = $comment_single_cache_per_key[$comment_key];
-                                    } else if (
-                                        // case sensitive comments
-                                        ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
-                                        ($match_i = stripos($part, $comment_mark, $i)) !== false) ||
-                                        // non case sensitive
-                                        (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
-                                          (($match_i = strpos($part, $comment_mark, $i)) !== false))) {
-                                        $comment_single_cache_per_key[$comment_key] = $match_i;
-                                    } else {
-                                        $comment_single_cache_per_key[$comment_key] = false;
-                                        continue;
-                                    }
-                                    if ($match_i !== false && $match_i < $next_comment_single_pos) {
-                                        $next_comment_single_pos = $match_i;
-                                        $next_comment_single_key = $comment_key;
-                                        if ($match_i === $i) {
-                                            break;
-                                        }
-                                    }
-                                }
-                            }
-                            if ($next_comment_single_pos == $i) {
-                                $comment_key = $next_comment_single_key;
-                                $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key];
-                                $com_len = strlen($comment_mark);
-
-                                // This check will find special variables like $# in bash
-                                // or compiler directives of Delphi beginning {$
-                                if ((empty($sc_disallowed_before) || ($i == 0) ||
-                                    (false === strpos($sc_disallowed_before, $part[$i-1]))) &&
-                                    (empty($sc_disallowed_after) || ($length <= $i + $com_len) ||
-                                    (false === strpos($sc_disallowed_after, $part[$i + $com_len]))))
-                                {
-                                    // this is a valid comment
-                                    $COMMENT_MATCHED = true;
-                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
-                                        if (!$this->use_classes) {
-                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"';
-                                        } else {
-                                            $attributes = ' class="co' . $comment_key . '"';
-                                        }
-                                        $test_str = "<span$attributes>" . $this->hsc($this->change_case($comment_mark));
-                                    } else {
-                                        $test_str = $this->hsc($comment_mark);
-                                    }
-
-                                    //Check if this comment is the last in the source
-                                    $close_pos = strpos($part, "\n", $i);
-                                    $oops = false;
-                                    if ($close_pos === false) {
-                                        $close_pos = $length;
-                                        $oops = true;
-                                    }
-                                    $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len));
-                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
-                                        $test_str .= "</span>";
-                                    }
-
-                                    // Take into account that the comment might be the last in the source
-                                    if (!$oops) {
-                                      $test_str .= "\n";
-                                    }
-
-                                    $i = $close_pos;
-
-                                    // parse the rest
-                                    $result .= $this->parse_non_string_part($stuff_to_parse);
-                                    $stuff_to_parse = '';
-                                }
-                            }
-                        }
-                    }
-
-                    // Where are we adding this char?
-                    if (!$COMMENT_MATCHED) {
-                        $stuff_to_parse .= $char;
-                    } else {
-                        $result .= $test_str;
-                        unset($test_str);
-                        $COMMENT_MATCHED = false;
-                    }
-                }
-                // Parse the last bit
-                $result .= $this->parse_non_string_part($stuff_to_parse);
-                $stuff_to_parse = '';
-            } else {
-                $result .= $this->hsc($part);
-            }
-            // Close the <span> that surrounds the block
-            if ($STRICTATTRS != '') {
-                $result = str_replace("\n", "</span>\n<span$STRICTATTRS>", $result);
-                $result .= '</span>';
-            }
-
-            $endresult .= $result;
-            unset($part, $parts[$key], $result);
-        }
-
-        //This fix is related to SF#1923020, but has to be applied regardless of
-        //actually highlighting symbols.
-        /** NOTE: memorypeak #3 */
-        $endresult = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $endresult);
-
-//        // Parse the last stuff (redundant?)
-//        $result .= $this->parse_non_string_part($stuff_to_parse);
-
-        // Lop off the very first and last spaces
-//        $result = substr($result, 1, -1);
-
-        // We're finished: stop timing
-        $this->set_time($start_time, microtime());
-
-        $this->finalise($endresult);
-        return $endresult;
-    }
-
-    /**
-     * Swaps out spaces and tabs for HTML indentation. Not needed if
-     * the code is in a pre block...
-     *
-     * @param  string The source to indent (reference!)
-     * @since  1.0.0
-     * @access private
-     */
-    function indent(&$result) {
-        /// Replace tabs with the correct number of spaces
-        if (false !== strpos($result, "\t")) {
-            $lines = explode("\n", $result);
-            $result = null;//Save memory while we process the lines individually
-            $tab_width = $this->get_real_tab_width();
-            $tab_string = '&nbsp;' . str_repeat(' ', $tab_width);
-
-            for ($key = 0, $n = count($lines); $key < $n; $key++) {
-                $line = $lines[$key];
-                if (false === strpos($line, "\t")) {
-                    continue;
-                }
-
-                $pos = 0;
-                $length = strlen($line);
-                $lines[$key] = ''; // reduce memory
-
-                $IN_TAG = false;
-                for ($i = 0; $i < $length; ++$i) {
-                    $char = $line[$i];
-                    // Simple engine to work out whether we're in a tag.
-                    // If we are we modify $pos. This is so we ignore HTML
-                    // in the line and only workout the tab replacement
-                    // via the actual content of the string
-                    // This test could be improved to include strings in the
-                    // html so that < or > would be allowed in user's styles
-                    // (e.g. quotes: '<' '>'; or similar)
-                    if ($IN_TAG) {
-                        if ('>' == $char) {
-                            $IN_TAG = false;
-                        }
-                        $lines[$key] .= $char;
-                    } else if ('<' == $char) {
-                        $IN_TAG = true;
-                        $lines[$key] .= '<';
-                    } else if ('&' == $char) {
-                        $substr = substr($line, $i + 3, 5);
-                        $posi = strpos($substr, ';');
-                        if (false === $posi) {
-                            ++$pos;
-                        } else {
-                            $pos -= $posi+2;
-                        }
-                        $lines[$key] .= $char;
-                    } else if ("\t" == $char) {
-                        $str = '';
-                        // OPTIMISE - move $strs out. Make an array:
-                        // $tabs = array(
-                        //  1 => '&nbsp;',
-                        //  2 => '&nbsp; ',
-                        //  3 => '&nbsp; &nbsp;' etc etc
-                        // to use instead of building a string every time
-                        $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop
-                        if (($pos & 1) || 1 == $tab_end_width) {
-                            $str .= substr($tab_string, 6, $tab_end_width);
-                        } else {
-                            $str .= substr($tab_string, 0, $tab_end_width+5);
-                        }
-                        $lines[$key] .= $str;
-                        $pos += $tab_end_width;
-
-                        if (false === strpos($line, "\t", $i + 1)) {
-                            $lines[$key] .= substr($line, $i + 1);
-                            break;
-                        }
-                    } else if (0 == $pos && ' ' == $char) {
-                        $lines[$key] .= '&nbsp;';
-                        ++$pos;
-                    } else {
-                        $lines[$key] .= $char;
-                        ++$pos;
-                    }
-                }
-            }
-            $result = implode("\n", $lines);
-            unset($lines);//We don't need the lines separated beyond this --- free them!
-        }
-        // Other whitespace
-        // BenBE: Fix to reduce the number of replacements to be done
-        $result = preg_replace('/^ /m', '&nbsp;', $result);
-        $result = str_replace('  ', ' &nbsp;', $result);
-
-        if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
-            if ($this->line_ending === null) {
-                $result = nl2br($result);
-            } else {
-                $result = str_replace("\n", $this->line_ending, $result);
-            }
-        }
-    }
-
-    /**
-     * Changes the case of a keyword for those languages where a change is asked for
-     *
-     * @param  string The keyword to change the case of
-     * @return string The keyword with its case changed
-     * @since  1.0.0
-     * @access private
-     */
-    function change_case($instr) {
-        switch ($this->language_data['CASE_KEYWORDS']) {
-            case GESHI_CAPS_UPPER:
-                return strtoupper($instr);
-            case GESHI_CAPS_LOWER:
-                return strtolower($instr);
-            default:
-                return $instr;
-        }
-    }
-
-    /**
-     * Handles replacements of keywords to include markup and links if requested
-     *
-     * @param  string The keyword to add the Markup to
-     * @return The HTML for the match found
-     * @since  1.0.8
-     * @access private
-     *
-     * @todo   Get rid of ender in keyword links
-     */
-    function handle_keyword_replace($match) {
-        $k = $this->_kw_replace_group;
-        $keyword = $match[0];
-
-        $before = '';
-        $after = '';
-
-        if ($this->keyword_links) {
-            // Keyword links have been ebabled
-
-            if (isset($this->language_data['URLS'][$k]) &&
-                $this->language_data['URLS'][$k] != '') {
-                // There is a base group for this keyword
-
-                // Old system: strtolower
-                //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword);
-                // New system: get keyword from language file to get correct case
-                if (!$this->language_data['CASE_SENSITIVE'][$k] &&
-                    strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) {
-                    foreach ($this->language_data['KEYWORDS'][$k] as $word) {
-                        if (strcasecmp($word, $keyword) == 0) {
-                            break;
-                        }
-                    }
-                } else {
-                    $word = $keyword;
-                }
-
-                $before = '<|UR1|"' .
-                    str_replace(
-                        array(
-                            '{FNAME}',
-                            '{FNAMEL}',
-                            '{FNAMEU}',
-                            '.'),
-                        array(
-                            str_replace('+', '%20', urlencode($this->hsc($word))),
-                            str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))),
-                            str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))),
-                            '<DOT>'),
-                        $this->language_data['URLS'][$k]
-                    ) . '">';
-                $after = '</a>';
-            }
-        }
-
-        return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after;
-    }
-
-    /**
-     * handles regular expressions highlighting-definitions with callback functions
-     *
-     * @note this is a callback, don't use it directly
-     *
-     * @param array the matches array
-     * @return The highlighted string
-     * @since 1.0.8
-     * @access private
-     */
-    function handle_regexps_callback($matches) {
-        // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'",
-        return  ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>';
-    }
-
-    /**
-     * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this
-     *
-     * @note this is a callback, don't use it directly
-     *
-     * @param array the matches array
-     * @return string
-     * @since 1.0.8
-     * @access private
-     */
-    function handle_multiline_regexps($matches) {
-        $before = $this->_hmr_before;
-        $after = $this->_hmr_after;
-        if ($this->_hmr_replace) {
-            $replace = $this->_hmr_replace;
-            $search = array();
-
-            foreach (array_keys($matches) as $k) {
-                $search[] = '\\' . $k;
-            }
-
-            $before = str_replace($search, $matches, $before);
-            $after = str_replace($search, $matches, $after);
-            $replace = str_replace($search, $matches, $replace);
-        } else {
-            $replace = $matches[0];
-        }
-        return $before
-                    . '<|!REG3XP' . $this->_hmr_key .'!>'
-                        . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace)
-                    . '|>'
-              . $after;
-    }
-
-    /**
-     * Takes a string that has no strings or comments in it, and highlights
-     * stuff like keywords, numbers and methods.
-     *
-     * @param string The string to parse for keyword, numbers etc.
-     * @since 1.0.0
-     * @access private
-     * @todo BUGGY! Why? Why not build string and return?
-     */
-    function parse_non_string_part($stuff_to_parse) {
-        $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse);
-
-        // Highlight keywords
-        $disallowed_before = "(?<![a-zA-Z0-9\$_\|\#;>|^&";
-        $disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
-        if ($this->lexic_permissions['STRINGS']) {
-            $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/');
-            $disallowed_before .= $quotemarks;
-            $disallowed_after .= $quotemarks;
-        }
-        $disallowed_before .= "])";
-        $disallowed_after .= "])";
-
-        $parser_control_pergroup = false;
-        if (isset($this->language_data['PARSER_CONTROL'])) {
-            if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
-                $x = 0; // check wether per-keyword-group parser_control is enabled
-                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
-                    $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
-                    ++$x;
-                }
-                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
-                    $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
-                    ++$x;
-                }
-                $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0;
-            }
-        }
-
-        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
-            if (!isset($this->lexic_permissions['KEYWORDS'][$k]) ||
-            $this->lexic_permissions['KEYWORDS'][$k]) {
-
-                $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k];
-                $modifiers = $case_sensitive ? '' : 'i';
-
-                // NEW in 1.0.8 - per-keyword-group parser control
-                $disallowed_before_local = $disallowed_before;
-                $disallowed_after_local = $disallowed_after;
-                if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) {
-                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) {
-                        $disallowed_before_local =
-                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'];
-                    }
-
-                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) {
-                        $disallowed_after_local =
-                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'];
-                    }
-                }
-
-                $this->_kw_replace_group = $k;
-
-                //NEW in 1.0.8, the cached regexp list
-                // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks
-                for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set <  $set_length; ++$set) {
-                    $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set];
-                    // Might make a more unique string for putting the number in soon
-                    // Basically, we don't put the styles in yet because then the styles themselves will
-                    // get highlighted if the language has a CSS keyword in it (like CSS, for example ;))
-                    $stuff_to_parse = preg_replace_callback(
-                        "/$disallowed_before_local({$keywordset})(?!\<DOT\>(?:htm|php))$disallowed_after_local/$modifiers",
-                        array($this, 'handle_keyword_replace'),
-                        $stuff_to_parse
-                        );
-                }
-            }
-        }
-
-        // Regular expressions
-        foreach ($this->language_data['REGEXPS'] as $key => $regexp) {
-            if ($this->lexic_permissions['REGEXPS'][$key]) {
-                if (is_array($regexp)) {
-                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                        // produce valid HTML when we match multiple lines
-                        $this->_hmr_replace = $regexp[GESHI_REPLACE];
-                        $this->_hmr_before = $regexp[GESHI_BEFORE];
-                        $this->_hmr_key = $key;
-                        $this->_hmr_after = $regexp[GESHI_AFTER];
-                        $stuff_to_parse = preg_replace_callback(
-                            "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}",
-                            array($this, 'handle_multiline_regexps'),
-                            $stuff_to_parse);
-                        $this->_hmr_replace = false;
-                        $this->_hmr_before = '';
-                        $this->_hmr_after = '';
-                    } else {
-                        $stuff_to_parse = preg_replace(
-                            '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS],
-                            $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER],
-                            $stuff_to_parse);
-                    }
-                } else {
-                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                        // produce valid HTML when we match multiple lines
-                        $this->_hmr_key = $key;
-                        $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/",
-                                              array($this, 'handle_multiline_regexps'), $stuff_to_parse);
-                        $this->_hmr_key = '';
-                    } else {
-                        $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse);
-                    }
-                }
-            }
-        }
-
-        // Highlight numbers. As of 1.0.8 we support different types of numbers
-        $numbers_found = false;
-
-        if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) {
-            $numbers_found = true;
-
-            //For each of the formats ...
-            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
-                //Check if it should be highlighted ...
-                $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse);
-            }
-        }
-
-        //
-        // Now that's all done, replace /[number]/ with the correct styles
-        //
-        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
-            if (!$this->use_classes) {
-                $attributes = ' style="' .
-                    (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ?
-                    $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"';
-            } else {
-                $attributes = ' class="kw' . $k . '"';
-            }
-            $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse);
-        }
-
-        if ($numbers_found) {
-            // Put number styles in
-            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
-                //Commented out for now, as this needs some review ...
-                //                if ($numbers_permissions & $id) {
-                //Get the appropriate style ...
-                //Checking for unset styles is done by the style cache builder ...
-                if (!$this->use_classes) {
-                    $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"';
-                } else {
-                    $attributes = ' class="nu'.$id.'"';
-                }
-
-                //Set in the correct styles ...
-                $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse);
-                //                }
-            }
-        }
-
-        // Highlight methods and fields in objects
-        if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) {
-            $oolang_spaces = "[\s]*";
-            $oolang_before = "";
-            $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*";
-            if (isset($this->language_data['PARSER_CONTROL'])) {
-                if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) {
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) {
-                        $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'];
-                    }
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) {
-                        $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'];
-                    }
-                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) {
-                        $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'];
-                    }
-                }
-            }
-
-            foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) {
-                if (false !== strpos($stuff_to_parse, $splitter)) {
-                    if (!$this->use_classes) {
-                        $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"';
-                    } else {
-                        $attributes = ' class="me' . $key . '"';
-                    }
-                    $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse);
-                }
-            }
-        }
-
-        //
-        // Highlight brackets. Yes, I've tried adding a semi-colon to this list.
-        // You try it, and see what happens ;)
-        // TODO: Fix lexic permissions not converting entities if shouldn't
-        // be highlighting regardless
-        //
-        if ($this->lexic_permissions['BRACKETS']) {
-            $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'],
-                              $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse );
-        }
-
-
-        //FIX for symbol highlighting ...
-        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
-            //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp)
-            $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
-            $global_offset = 0;
-            for ($s_id = 0; $s_id < $n_symbols; ++$s_id) {
-                $symbol_match = $pot_symbols[$s_id][0][0];
-                if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) {
-                    // already highlighted blocks _must_ include either < or >
-                    // so if this conditional applies, we have to skip this match
-                    // BenBE: UNLESS the block contains <SEMI> or <PIPE>
-                    if(strpos($symbol_match, '<SEMI>') === false &&
-                        strpos($symbol_match, '<PIPE>') === false) {
-                        continue;
-                    }
-                }
-
-                // if we reach this point, we have a valid match which needs to be highlighted
-
-                $symbol_length = strlen($symbol_match);
-                $symbol_offset = $pot_symbols[$s_id][0][1];
-                unset($pot_symbols[$s_id]);
-                $symbol_end = $symbol_length + $symbol_offset;
-                $symbol_hl = "";
-
-                // if we have multiple styles, we have to handle them properly
-                if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) {
-                    $old_sym = -1;
-                    // Split the current stuff to replace into its atomic symbols ...
-                    preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER);
-                    foreach ($sym_match_syms[0] as $sym_ms) {
-                        //Check if consequtive symbols belong to the same group to save output ...
-                        if (isset($this->language_data['SYMBOL_DATA'][$sym_ms])
-                            && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) {
-                            if (-1 != $old_sym) {
-                                $symbol_hl .= "|>";
-                            }
-                            $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms];
-                            if (!$this->use_classes) {
-                                $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">';
-                            } else {
-                                $symbol_hl .= '<| class="sy' . $old_sym . '">';
-                            }
-                        }
-                        $symbol_hl .= $sym_ms;
-                    }
-                    unset($sym_match_syms);
-
-                    //Close remaining tags and insert the replacement at the right position ...
-                    //Take caution if symbol_hl is empty to avoid doubled closing spans.
-                    if (-1 != $old_sym) {
-                        $symbol_hl .= "|>";
-                    }
-                } else {
-                    if (!$this->use_classes) {
-                        $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">';
-                    } else {
-                        $symbol_hl = '<| class="sy0">';
-                    }
-                    $symbol_hl .= $symbol_match . '|>';
-                }
-
-                $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length);
-
-                // since we replace old text with something of different size,
-                // we'll have to keep track of the differences
-                $global_offset += strlen($symbol_hl) - $symbol_length;
-            }
-        }
-        //FIX for symbol highlighting ...
-
-        // Add class/style for regexps
-        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
-            if ($this->lexic_permissions['REGEXPS'][$key]) {
-                if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) {
-                    $this->_rx_key = $key;
-                    $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U",
-                        array($this, 'handle_regexps_callback'),
-                        $stuff_to_parse);
-                } else {
-                    if (!$this->use_classes) {
-                        $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
-                    } else {
-                        if (is_array($this->language_data['REGEXPS'][$key]) &&
-                            array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
-                            $attributes = ' class="' .
-                                $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
-                        } else {
-                           $attributes = ' class="re' . $key . '"';
-                        }
-                    }
-                    $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
-                }
-            }
-        }
-
-        // Replace <DOT> with . for urls
-        $stuff_to_parse = str_replace('<DOT>', '.', $stuff_to_parse);
-        // Replace <|UR1| with <a href= for urls also
-        if (isset($this->link_styles[GESHI_LINK])) {
-            if ($this->use_classes) {
-                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
-            } else {
-                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse);
-            }
-        } else {
-            $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
-        }
-
-        //
-        // NOW we add the span thingy ;)
-        //
-
-        $stuff_to_parse = str_replace('<|', '<span', $stuff_to_parse);
-        $stuff_to_parse = str_replace ( '|>', '</span>', $stuff_to_parse );
-        return substr($stuff_to_parse, 1);
-    }
-
-    /**
-     * Sets the time taken to parse the code
-     *
-     * @param microtime The time when parsing started
-     * @param microtime The time when parsing ended
-     * @since 1.0.2
-     * @access private
-     */
-    function set_time($start_time, $end_time) {
-        $start = explode(' ', $start_time);
-        $end = explode(' ', $end_time);
-        $this->time = $end[0] + $end[1] - $start[0] - $start[1];
-    }
-
-    /**
-     * Gets the time taken to parse the code
-     *
-     * @return double The time taken to parse the code
-     * @since  1.0.2
-     */
-    function get_time() {
-        return $this->time;
-    }
-
-    /**
-     * Merges arrays recursively, overwriting values of the first array with values of later arrays
-     *
-     * @since 1.0.8
-     * @access private
-     */
-    function merge_arrays() {
-        $arrays = func_get_args();
-        $narrays = count($arrays);
-
-        // check arguments
-        // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array)
-        for ($i = 0; $i < $narrays; $i ++) {
-            if (!is_array($arrays[$i])) {
-                // also array_merge_recursive returns nothing in this case
-                trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING);
-                return false;
-            }
-        }
-
-        // the first array is in the output set in every case
-        $ret = $arrays[0];
-
-        // merege $ret with the remaining arrays
-        for ($i = 1; $i < $narrays; $i ++) {
-            foreach ($arrays[$i] as $key => $value) {
-                if (is_array($value) && isset($ret[$key])) {
-                    // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays)
-                    // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false.
-                    $ret[$key] = $this->merge_arrays($ret[$key], $value);
-                } else {
-                    $ret[$key] = $value;
-                }
-            }
-        }
-
-        return $ret;
-    }
-
-    /**
-     * Gets language information and stores it for later use
-     *
-     * @param string The filename of the language file you want to load
-     * @since 1.0.0
-     * @access private
-     * @todo Needs to load keys for lexic permissions for keywords, regexps etc
-     */
-    function load_language($file_name) {
-        if ($file_name == $this->loaded_language) {
-            // this file is already loaded!
-            return;
-        }
-
-        //Prepare some stuff before actually loading the language file
-        $this->loaded_language = $file_name;
-        $this->parse_cache_built = false;
-        $this->enable_highlighting();
-        $language_data = array();
-
-        //Load the language file
-        require $file_name;
-
-        // Perhaps some checking might be added here later to check that
-        // $language data is a valid thing but maybe not
-        $this->language_data = $language_data;
-
-        // Set strict mode if should be set
-        $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES'];
-
-        // Set permissions for all lexics to true
-        // so they'll be highlighted by default
-        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
-            if (!empty($this->language_data['KEYWORDS'][$key])) {
-                $this->lexic_permissions['KEYWORDS'][$key] = true;
-            } else {
-                $this->lexic_permissions['KEYWORDS'][$key] = false;
-            }
-        }
-
-        foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) {
-            $this->lexic_permissions['COMMENTS'][$key] = true;
-        }
-        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
-            $this->lexic_permissions['REGEXPS'][$key] = true;
-        }
-
-        // for BenBE and future code reviews:
-        // we can use empty here since we only check for existance and emptiness of an array
-        // if it is not an array at all but rather false or null this will work as intended as well
-        // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice
-        if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) {
-            foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) {
-                // it's either true or false and maybe is true as well
-                $perm = $value !== GESHI_NEVER;
-                if ($flag == 'ALL') {
-                    $this->enable_highlighting($perm);
-                    continue;
-                }
-                if (!isset($this->lexic_permissions[$flag])) {
-                    // unknown lexic permission
-                    continue;
-                }
-                if (is_array($this->lexic_permissions[$flag])) {
-                    foreach ($this->lexic_permissions[$flag] as $key => $val) {
-                        $this->lexic_permissions[$flag][$key] = $perm;
-                    }
-                } else {
-                    $this->lexic_permissions[$flag] = $perm;
-                }
-            }
-            unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']);
-        }
-
-        //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given
-        //You need to set one for HARDESCAPES only in this case.
-        if(!isset($this->language_data['HARDCHAR'])) {
-            $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR'];
-        }
-
-        //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults
-        $style_filename = substr($file_name, 0, -4) . '.style.php';
-        if (is_readable($style_filename)) {
-            //Clear any style_data that could have been set before ...
-            if (isset($style_data)) {
-                unset($style_data);
-            }
-
-            //Read the Style Information from the style file
-            include $style_filename;
-
-            //Apply the new styles to our current language styles
-            if (isset($style_data) && is_array($style_data)) {
-                $this->language_data['STYLES'] =
-                    $this->merge_arrays($this->language_data['STYLES'], $style_data);
-            }
-        }
-    }
-
-    /**
-     * Takes the parsed code and various options, and creates the HTML
-     * surrounding it to make it look nice.
-     *
-     * @param  string The code already parsed (reference!)
-     * @since  1.0.0
-     * @access private
-     */
-    function finalise(&$parsed_code) {
-        // Remove end parts of important declarations
-        // This is BUGGY!! My fault for bad code: fix coming in 1.2
-        // @todo Remove this crap
-        if ($this->enable_important_blocks &&
-            (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) {
-            $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code);
-        }
-
-        // Add HTML whitespace stuff if we're using the <div> header
-        if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) {
-            $this->indent($parsed_code);
-        }
-
-        // purge some unnecessary stuff
-        /** NOTE: memorypeak #1 */
-        $parsed_code = preg_replace('#<span[^>]+>(\s*)</span>#', '\\1', $parsed_code);
-
-        // If we are using IDs for line numbers, there needs to be an overall
-        // ID set to prevent collisions.
-        if ($this->add_ids && !$this->overall_id) {
-            $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4);
-        }
-
-        // Get code into lines
-        /** NOTE: memorypeak #2 */
-        $code = explode("\n", $parsed_code);
-        $parsed_code = $this->header();
-
-        // If we're using line numbers, we insert <li>s and appropriate
-        // markup to style them (otherwise we don't need to do anything)
-        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
-            // If we're using the <pre> header, we shouldn't add newlines because
-            // the <pre> will line-break them (and the <li>s already do this for us)
-            $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : '';
-
-            // Set vars to defaults for following loop
-            $i = 0;
-
-            // Foreach line...
-            for ($i = 0, $n = count($code); $i < $n;) {
-                //Reset the attributes for a new line ...
-                $attrs = array();
-
-                // Make lines have at least one space in them if they're empty
-                // BenBE: Checking emptiness using trim instead of relying on blanks
-                if ('' == trim($code[$i])) {
-                    $code[$i] = '&nbsp;';
-                }
-
-                // If this is a "special line"...
-                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                    // Set the attributes to style the line
-                    if ($this->use_classes) {
-                        //$attr = ' class="li2"';
-                        $attrs['class'][] = 'li2';
-                        $def_attr = ' class="de2"';
-                    } else {
-                        //$attr = ' style="' . $this->line_style2 . '"';
-                        $attrs['style'][] = $this->line_style2;
-                        // This style "covers up" the special styles set for special lines
-                        // so that styles applied to special lines don't apply to the actual
-                        // code on that line
-                        $def_attr = ' style="' . $this->code_style . '"';
-                    }
-                } else {
-                    if ($this->use_classes) {
-                        //$attr = ' class="li1"';
-                        $attrs['class'][] = 'li1';
-                        $def_attr = ' class="de1"';
-                    } else {
-                        //$attr = ' style="' . $this->line_style1 . '"';
-                        $attrs['style'][] = $this->line_style1;
-                        $def_attr = ' style="' . $this->code_style . '"';
-                    }
-                }
-
-                //Check which type of tag to insert for this line
-                if ($this->header_type == GESHI_HEADER_PRE_VALID) {
-                    $start = "<pre$def_attr>";
-                    $end = '</pre>';
-                } else {
-                    // Span or div?
-                    $start = "<div$def_attr>";
-                    $end = '</div>';
-                }
-
-                ++$i;
-
-                // Are we supposed to use ids? If so, add them
-                if ($this->add_ids) {
-                    $attrs['id'][] = "$this->overall_id-$i";
-                }
-
-                //Is this some line with extra styles???
-                if (in_array($i, $this->highlight_extra_lines)) {
-                    if ($this->use_classes) {
-                        if (isset($this->highlight_extra_lines_styles[$i])) {
-                            $attrs['class'][] = "lx$i";
-                        } else {
-                            $attrs['class'][] = "ln-xtra";
-                        }
-                    } else {
-                        array_push($attrs['style'], $this->get_line_style($i));
-                    }
-                }
-
-                // Add in the line surrounded by appropriate list HTML
-                $attr_string = '';
-                foreach ($attrs as $key => $attr) {
-                    $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"';
-                }
-
-                $parsed_code .= "<li$attr_string>$start{$code[$i-1]}$end</li>$ls";
-                unset($code[$i - 1]);
-            }
-        } else {
-            $n = count($code);
-            if ($this->use_classes) {
-                $attributes = ' class="de1"';
-            } else {
-                $attributes = ' style="'. $this->code_style .'"';
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_VALID) {
-                $parsed_code .= '<pre'. $attributes .'>';
-            } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-                if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                    if ($this->use_classes) {
-                        $attrs = ' class="ln"';
-                    } else {
-                        $attrs = ' style="'. $this->table_linenumber_style .'"';
-                    }
-                    $parsed_code .= '<td'.$attrs.'><pre'.$attributes.'>';
-                    // get linenumbers
-                    // we don't merge it with the for below, since it should be better for
-                    // memory consumption this way
-                    // @todo: but... actually it would still be somewhat nice to merge the two loops
-                    //        the mem peaks are at different positions
-                    for ($i = 0; $i < $n; ++$i) {
-                        $close = 0;
-                        // fancy lines
-                        if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                            $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                            // Set the attributes to style the line
-                            if ($this->use_classes) {
-                                $parsed_code .= '<span class="xtra li2"><span class="de2">';
-                            } else {
-                                // This style "covers up" the special styles set for special lines
-                                // so that styles applied to special lines don't apply to the actual
-                                // code on that line
-                                $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
-                                                  .'<span style="' . $this->code_style .'">';
-                            }
-                            $close += 2;
-                        }
-                        //Is this some line with extra styles???
-                        if (in_array($i + 1, $this->highlight_extra_lines)) {
-                            if ($this->use_classes) {
-                                if (isset($this->highlight_extra_lines_styles[$i])) {
-                                    $parsed_code .= "<span class=\"xtra lx$i\">";
-                                } else {
-                                    $parsed_code .= "<span class=\"xtra ln-xtra\">";
-                                }
-                            } else {
-                                $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
-                            }
-                            ++$close;
-                        }
-                        $parsed_code .= $this->line_numbers_start + $i;
-                        if ($close) {
-                            $parsed_code .= str_repeat('</span>', $close);
-                        } else if ($i != $n) {
-                            $parsed_code .= "\n";
-                        }
-                    }
-                    $parsed_code .= '</pre></td><td'.$attributes.'>';
-                }
-                $parsed_code .= '<pre'. $attributes .'>';
-            }
-            // No line numbers, but still need to handle highlighting lines extra.
-            // Have to use divs so the full width of the code is highlighted
-            $close = 0;
-            for ($i = 0; $i < $n; ++$i) {
-                // Make lines have at least one space in them if they're empty
-                // BenBE: Checking emptiness using trim instead of relying on blanks
-                if ('' == trim($code[$i])) {
-                    $code[$i] = '&nbsp;';
-                }
-                // fancy lines
-                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
-                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
-                    // Set the attributes to style the line
-                    if ($this->use_classes) {
-                        $parsed_code .= '<span class="xtra li2"><span class="de2">';
-                    } else {
-                        // This style "covers up" the special styles set for special lines
-                        // so that styles applied to special lines don't apply to the actual
-                        // code on that line
-                        $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
-                                          .'<span style="' . $this->code_style .'">';
-                    }
-                    $close += 2;
-                }
-                //Is this some line with extra styles???
-                if (in_array($i + 1, $this->highlight_extra_lines)) {
-                    if ($this->use_classes) {
-                        if (isset($this->highlight_extra_lines_styles[$i])) {
-                            $parsed_code .= "<span class=\"xtra lx$i\">";
-                        } else {
-                            $parsed_code .= "<span class=\"xtra ln-xtra\">";
-                        }
-                    } else {
-                        $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
-                    }
-                    ++$close;
-                }
-
-                $parsed_code .= $code[$i];
-
-                if ($close) {
-                  $parsed_code .= str_repeat('</span>', $close);
-                  $close = 0;
-                }
-                elseif ($i + 1 < $n) {
-                    $parsed_code .= "\n";
-                }
-                unset($code[$i]);
-            }
-
-            if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) {
-                $parsed_code .= '</pre>';
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $parsed_code .= '</td>';
-            }
-        }
-
-        $parsed_code .= $this->footer();
-    }
-
-    /**
-     * Creates the header for the code block (with correct attributes)
-     *
-     * @return string The header for the code block
-     * @since  1.0.0
-     * @access private
-     */
-    function header() {
-        // Get attributes needed
-        /**
-         * @todo   Document behaviour change - class is outputted regardless of whether
-         *         we're using classes or not. Same with style
-         */
-        $attributes = ' class="' . $this->_genCSSName($this->language);
-        if ($this->overall_class != '') {
-            $attributes .= " ".$this->_genCSSName($this->overall_class);
-        }
-        $attributes .= '"';
-
-        if ($this->overall_id != '') {
-            $attributes .= " id=\"{$this->overall_id}\"";
-        }
-        if ($this->overall_style != '' && !$this->use_classes) {
-            $attributes .= ' style="' . $this->overall_style . '"';
-        }
-
-        $ol_attributes = '';
-
-        if ($this->line_numbers_start != 1) {
-            $ol_attributes .= ' start="' . $this->line_numbers_start . '"';
-        }
-
-        // Get the header HTML
-        $header = $this->header_content;
-        if ($header) {
-            if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) {
-                $header = str_replace("\n", '', $header);
-            }
-            $header = $this->replace_keywords($header);
-
-            if ($this->use_classes) {
-                $attr = ' class="head"';
-            } else {
-                $attr = " style=\"{$this->header_content_style}\"";
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $header = "<thead><tr><td colspan=\"2\" $attr>$header</td></tr></thead>";
-            } else {
-                $header = "<div$attr>$header</div>";
-            }
-        }
-
-        if (GESHI_HEADER_NONE == $this->header_type) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "$header<ol$attributes$ol_attributes>";
-            }
-            return $header . ($this->force_code_block ? '<div>' : '');
-        }
-
-        // Work out what to return and do it
-        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                return "<pre$attributes>$header<ol$ol_attributes>";
-            } else if ($this->header_type == GESHI_HEADER_DIV ||
-                $this->header_type == GESHI_HEADER_PRE_VALID) {
-                return "<div$attributes>$header<ol$ol_attributes>";
-            } else if ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-                return "<table$attributes>$header<tbody><tr class=\"li1\">";
-            }
-        } else {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                return "<pre$attributes>$header"  .
-                    ($this->force_code_block ? '<div>' : '');
-            } else {
-                return "<div$attributes>$header" .
-                    ($this->force_code_block ? '<div>' : '');
-            }
-        }
-    }
-
-    /**
-     * Returns the footer for the code block.
-     *
-     * @return string The footer for the code block
-     * @since  1.0.0
-     * @access private
-     */
-    function footer() {
-        $footer = $this->footer_content;
-        if ($footer) {
-            if ($this->header_type == GESHI_HEADER_PRE) {
-                $footer = str_replace("\n", '', $footer);;
-            }
-            $footer = $this->replace_keywords($footer);
-
-            if ($this->use_classes) {
-                $attr = ' class="foot"';
-            } else {
-                $attr = " style=\"{$this->footer_content_style}\"";
-            }
-            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                $footer = "<tfoot><tr><td colspan=\"2\">$footer</td></tr></tfoot>";
-            } else {
-                $footer = "<div$attr>$footer</div>";
-            }
-        }
-
-        if (GESHI_HEADER_NONE == $this->header_type) {
-            return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '</ol>' . $footer : $footer;
-        }
-
-        if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</ol>$footer</div>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</div>";
-        }
-        elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</tr></tbody>$footer</table>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</div>";
-        }
-        else {
-            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-                return "</ol>$footer</pre>";
-            }
-            return ($this->force_code_block ? '</div>' : '') .
-                "$footer</pre>";
-        }
-    }
-
-    /**
-     * Replaces certain keywords in the header and footer with
-     * certain configuration values
-     *
-     * @param  string The header or footer content to do replacement on
-     * @return string The header or footer with replaced keywords
-     * @since  1.0.2
-     * @access private
-     */
-    function replace_keywords($instr) {
-        $keywords = $replacements = array();
-
-        $keywords[] = '<TIME>';
-        $keywords[] = '{TIME}';
-        $replacements[] = $replacements[] = number_format($time = $this->get_time(), 3);
-
-        $keywords[] = '<LANGUAGE>';
-        $keywords[] = '{LANGUAGE}';
-        $replacements[] = $replacements[] = $this->language_data['LANG_NAME'];
-
-        $keywords[] = '<VERSION>';
-        $keywords[] = '{VERSION}';
-        $replacements[] = $replacements[] = GESHI_VERSION;
-
-        $keywords[] = '<SPEED>';
-        $keywords[] = '{SPEED}';
-        if ($time <= 0) {
-            $speed = 'N/A';
-        } else {
-            $speed = strlen($this->source) / $time;
-            if ($speed >= 1024) {
-                $speed = sprintf("%.2f KB/s", $speed / 1024.0);
-            } else {
-                $speed = sprintf("%.0f B/s", $speed);
-            }
-        }
-        $replacements[] = $replacements[] = $speed;
-
-        return str_replace($keywords, $replacements, $instr);
-    }
-
-    /**
-     * Secure replacement for PHP built-in function htmlspecialchars().
-     *
-     * See ticket #427 (http://wush.net/trac/wikka/ticket/427) for the rationale
-     * for this replacement function.
-     *
-     * The INTERFACE for this function is almost the same as that for
-     * htmlspecialchars(), with the same default for quote style; however, there
-     * is no 'charset' parameter. The reason for this is as follows:
-     *
-     * The PHP docs say:
-     *      "The third argument charset defines character set used in conversion."
-     *
-     * I suspect PHP's htmlspecialchars() is working at the byte-value level and
-     * thus _needs_ to know (or asssume) a character set because the special
-     * characters to be replaced could exist at different code points in
-     * different character sets. (If indeed htmlspecialchars() works at
-     * byte-value level that goes some  way towards explaining why the
-     * vulnerability would exist in this function, too, and not only in
-     * htmlentities() which certainly is working at byte-value level.)
-     *
-     * This replacement function however works at character level and should
-     * therefore be "immune" to character set differences - so no charset
-     * parameter is needed or provided. If a third parameter is passed, it will
-     * be silently ignored.
-     *
-     * In the OUTPUT there is a minor difference in that we use '&#39;' instead
-     * of PHP's '&#039;' for a single quote: this provides compatibility with
-     *      get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)
-     * (see comment by mikiwoz at yahoo dot co dot uk on
-     * http://php.net/htmlspecialchars); it also matches the entity definition
-     * for XML 1.0
-     * (http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters).
-     * Like PHP we use a numeric character reference instead of '&apos;' for the
-     * single quote. For the other special characters we use the named entity
-     * references, as PHP is doing.
-     *
-     * @author      {@link http://wikkawiki.org/JavaWoman Marjolein Katsma}
-     *
-     * @license     http://www.gnu.org/copyleft/lgpl.html
-     *              GNU Lesser General Public License
-     * @copyright   Copyright 2007, {@link http://wikkawiki.org/CreditsPage
-     *              Wikka Development Team}
-     *
-     * @access      private
-     * @param       string  $string string to be converted
-     * @param       integer $quote_style
-     *                      - ENT_COMPAT:   escapes &, <, > and double quote (default)
-     *                      - ENT_NOQUOTES: escapes only &, < and >
-     *                      - ENT_QUOTES:   escapes &, <, >, double and single quotes
-     * @return      string  converted string
-     * @since       1.0.7.18
-     */
-    function hsc($string, $quote_style = ENT_COMPAT) {
-        // init
-        static $aTransSpecchar = array(
-            '&' => '&amp;',
-            '"' => '&quot;',
-            '<' => '&lt;',
-            '>' => '&gt;',
-
-            //This fix is related to SF#1923020, but has to be applied
-            //regardless of actually highlighting symbols.
-
-            //Circumvent a bug with symbol highlighting
-            //This is required as ; would produce undesirable side-effects if it
-            //was not to be processed as an entity.
-            ';' => '<SEMI>', // Force ; to be processed as entity
-            '|' => '<PIPE>' // Force | to be processed as entity
-            );                      // ENT_COMPAT set
-
-        switch ($quote_style) {
-            case ENT_NOQUOTES: // don't convert double quotes
-                unset($aTransSpecchar['"']);
-                break;
-            case ENT_QUOTES: // convert single quotes as well
-                $aTransSpecchar["'"] = '&#39;'; // (apos) htmlspecialchars() uses '&#039;'
-                break;
-        }
-
-        // return translated string
-        return strtr($string, $aTransSpecchar);
-    }
-
-    function _genCSSName($name){
-        return (is_numeric($name[0]) ? '_' : '') . $name;
-    }
-
-    /**
-     * Returns a stylesheet for the highlighted code. If $economy mode
-     * is true, we only return the stylesheet declarations that matter for
-     * this code block instead of the whole thing
-     *
-     * @param  boolean Whether to use economy mode or not
-     * @return string A stylesheet built on the data for the current language
-     * @since  1.0.0
-     */
-    function get_stylesheet($economy_mode = true) {
-        // If there's an error, chances are that the language file
-        // won't have populated the language data file, so we can't
-        // risk getting a stylesheet...
-        if ($this->error) {
-            return '';
-        }
-
-        //Check if the style rearrangements have been processed ...
-        //This also does some preprocessing to check which style groups are useable ...
-        if(!isset($this->language_data['NUMBERS_CACHE'])) {
-            $this->build_style_cache();
-        }
-
-        // First, work out what the selector should be. If there's an ID,
-        // that should be used, the same for a class. Otherwise, a selector
-        // of '' means that these styles will be applied anywhere
-        if ($this->overall_id) {
-            $selector = '#' . $this->_genCSSName($this->overall_id);
-        } else {
-            $selector = '.' . $this->_genCSSName($this->language);
-            if ($this->overall_class) {
-                $selector .= '.' . $this->_genCSSName($this->overall_class);
-            }
-        }
-        $selector .= ' ';
-
-        // Header of the stylesheet
-        if (!$economy_mode) {
-            $stylesheet = "/**\n".
-                " * GeSHi Dynamically Generated Stylesheet\n".
-                " * --------------------------------------\n".
-                " * Dynamically generated stylesheet for {$this->language}\n".
-                " * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n".
-                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
-                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
-                " * --------------------------------------\n".
-                " */\n";
-        } else {
-            $stylesheet = "/**\n".
-                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
-                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
-                " */\n";
-        }
-
-        // Set the <ol> to have no effect at all if there are line numbers
-        // (<ol>s have margins that should be destroyed so all layout is
-        // controlled by the set_overall_style method, which works on the
-        // <pre> or <div> container). Additionally, set default styles for lines
-        if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
-            //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n";
-            $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n";
-        }
-
-        // Add overall styles
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->overall_style != '') {
-            $stylesheet .= "$selector {{$this->overall_style}}\n";
-        }
-
-        // Add styles for links
-        // note: economy mode does not make _any_ sense here
-        //       either the style is empty and thus no selector is needed
-        //       or the appropriate key is given.
-        foreach ($this->link_styles as $key => $style) {
-            if ($style != '') {
-                switch ($key) {
-                    case GESHI_LINK:
-                        $stylesheet .= "{$selector}a:link {{$style}}\n";
-                        break;
-                    case GESHI_HOVER:
-                        $stylesheet .= "{$selector}a:hover {{$style}}\n";
-                        break;
-                    case GESHI_ACTIVE:
-                        $stylesheet .= "{$selector}a:active {{$style}}\n";
-                        break;
-                    case GESHI_VISITED:
-                        $stylesheet .= "{$selector}a:visited {{$style}}\n";
-                        break;
-                }
-            }
-        }
-
-        // Header and footer
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->header_content_style != '') {
-            $stylesheet .= "$selector.head {{$this->header_content_style}}\n";
-        }
-        if ($this->footer_content_style != '') {
-            $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n";
-        }
-
-        // Styles for important stuff
-        // note: neglect economy_mode, empty styles are meaningless
-        if ($this->important_styles != '') {
-            $stylesheet .= "$selector.imp {{$this->important_styles}}\n";
-        }
-
-        // Simple line number styles
-        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') {
-            $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n";
-        }
-        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') {
-            $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n";
-        }
-        // If there is a style set for fancy line numbers, echo it out
-        if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') {
-            $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n";
-        }
-
-        // note: empty styles are meaningless
-        foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['KEYWORDS'][$group]) &&
-                $this->lexic_permissions['KEYWORDS'][$group]))) {
-                $stylesheet .= "$selector.kw$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['COMMENTS'][$group]) &&
-                $this->lexic_permissions['COMMENTS'][$group]) ||
-                (!empty($this->language_data['COMMENT_REGEXP']) &&
-                !empty($this->language_data['COMMENT_REGEXP'][$group])))) {
-                $stylesheet .= "$selector.co$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) {
-                // NEW: since 1.0.8 we have to handle hardescapes
-                if ($group === 'HARD') {
-                    $group = '_h';
-                }
-                $stylesheet .= "$selector.es$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) {
-                $stylesheet .= "$selector.br$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) {
-                $stylesheet .= "$selector.sy$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) {
-                // NEW: since 1.0.8 we have to handle hardquotes
-                if ($group === 'HARD') {
-                    $group = '_h';
-                }
-                $stylesheet .= "$selector.st$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) {
-                $stylesheet .= "$selector.nu$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) {
-                $stylesheet .= "$selector.me$group {{$styles}}\n";
-            }
-        }
-        // note: neglect economy_mode, empty styles are meaningless
-        foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) {
-            if ($styles != '') {
-                $stylesheet .= "$selector.sc$group {{$styles}}\n";
-            }
-        }
-        foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) {
-            if ($styles != '' && (!$economy_mode ||
-                (isset($this->lexic_permissions['REGEXPS'][$group]) &&
-                $this->lexic_permissions['REGEXPS'][$group]))) {
-                if (is_array($this->language_data['REGEXPS'][$group]) &&
-                    array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) {
-                    $stylesheet .= "$selector.";
-                    $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS];
-                    $stylesheet .= " {{$styles}}\n";
-                } else {
-                    $stylesheet .= "$selector.re$group {{$styles}}\n";
-                }
-            }
-        }
-        // Styles for lines being highlighted extra
-        if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) {
-            $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n";
-        }
-        $stylesheet .= "{$selector}span.xtra { display:block; }\n";
-        foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) {
-            $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n";
-        }
-
-        return $stylesheet;
-    }
-
-    /**
-     * Get's the style that is used for the specified line
-     *
-     * @param int The line number information is requested for
-     * @access private
-     * @since 1.0.7.21
-     */
-    function get_line_style($line) {
-        //$style = null;
-        $style = null;
-        if (isset($this->highlight_extra_lines_styles[$line])) {
-            $style = $this->highlight_extra_lines_styles[$line];
-        } else { // if no "extra" style assigned
-            $style = $this->highlight_extra_lines_style;
-        }
-
-        return $style;
-    }
-
-    /**
-    * this functions creates an optimized regular expression list
-    * of an array of strings.
-    *
-    * Example:
-    * <code>$list = array('faa', 'foo', 'foobar');
-    *          => string 'f(aa|oo(bar)?)'</code>
-    *
-    * @param $list array of (unquoted) strings
-    * @param $regexp_delimiter your regular expression delimiter, @see preg_quote()
-    * @return string for regular expression
-    * @author Milian Wolff <mail@milianw.de>
-    * @since 1.0.8
-    * @access private
-    */
-    function optimize_regexp_list($list, $regexp_delimiter = '/') {
-        $regex_chars = array('.', '\\', '+', '*', '?', '[', '^', ']', '$',
-            '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter);
-        sort($list);
-        $regexp_list = array('');
-        $num_subpatterns = 0;
-        $list_key = 0;
-
-        // the tokens which we will use to generate the regexp list
-        $tokens = array();
-        $prev_keys = array();
-        // go through all entries of the list and generate the token list
-        $cur_len = 0;
-        for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) {
-            if ($cur_len > GESHI_MAX_PCRE_LENGTH) {
-                // seems like the length of this pcre is growing exorbitantly
-                $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens);
-                $num_subpatterns = substr_count($regexp_list[$list_key], '(?:');
-                $tokens = array();
-                $cur_len = 0;
-            }
-            $level = 0;
-            $entry = preg_quote((string) $list[$i], $regexp_delimiter);
-            $pointer = &$tokens;
-            // properly assign the new entry to the correct position in the token array
-            // possibly generate smaller common denominator keys
-            while (true) {
-                // get the common denominator
-                if (isset($prev_keys[$level])) {
-                    if ($prev_keys[$level] == $entry) {
-                        // this is a duplicate entry, skip it
-                        continue 2;
-                    }
-                    $char = 0;
-                    while (isset($entry[$char]) && isset($prev_keys[$level][$char])
-                            && $entry[$char] == $prev_keys[$level][$char]) {
-                        ++$char;
-                    }
-                    if ($char > 0) {
-                        // this entry has at least some chars in common with the current key
-                        if ($char == strlen($prev_keys[$level])) {
-                            // current key is totally matched, i.e. this entry has just some bits appended
-                            $pointer = &$pointer[$prev_keys[$level]];
-                        } else {
-                            // only part of the keys match
-                            $new_key_part1 = substr($prev_keys[$level], 0, $char);
-                            $new_key_part2 = substr($prev_keys[$level], $char);
-
-                            if (in_array($new_key_part1[0], $regex_chars)
-                                || in_array($new_key_part2[0], $regex_chars)) {
-                                // this is bad, a regex char as first character
-                                $pointer[$entry] = array('' => true);
-                                array_splice($prev_keys, $level, count($prev_keys), $entry);
-                                $cur_len += strlen($entry);
-                                continue;
-                            } else {
-                                // relocate previous tokens
-                                $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]);
-                                unset($pointer[$prev_keys[$level]]);
-                                $pointer = &$pointer[$new_key_part1];
-                                // recreate key index
-                                array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2));
-                                $cur_len += strlen($new_key_part2);
-                            }
-                        }
-                        ++$level;
-                        $entry = substr($entry, $char);
-                        continue;
-                    }
-                    // else: fall trough, i.e. no common denominator was found
-                }
-                if ($level == 0 && !empty($tokens)) {
-                    // we can dump current tokens into the string and throw them away afterwards
-                    $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
-                    $new_subpatterns = substr_count($new_entry, '(?:');
-                    if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) {
-                        $regexp_list[++$list_key] = $new_entry;
-                        $num_subpatterns = $new_subpatterns;
-                    } else {
-                        if (!empty($regexp_list[$list_key])) {
-                            $new_entry = '|' . $new_entry;
-                        }
-                        $regexp_list[$list_key] .= $new_entry;
-                        $num_subpatterns += $new_subpatterns;
-                    }
-                    $tokens = array();
-                    $cur_len = 0;
-                }
-                // no further common denominator found
-                $pointer[$entry] = array('' => true);
-                array_splice($prev_keys, $level, count($prev_keys), $entry);
-
-                $cur_len += strlen($entry);
-                break;
-            }
-            unset($list[$i]);
-        }
-        // make sure the last tokens get converted as well
-        $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
-        if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) {
-            if ( !empty($regexp_list[$list_key]) ) {
-              ++$list_key;
-            }
-            $regexp_list[$list_key] = $new_entry;
-        } else {
-            if (!empty($regexp_list[$list_key])) {
-                $new_entry = '|' . $new_entry;
-            }
-            $regexp_list[$list_key] .= $new_entry;
-        }
-        return $regexp_list;
-    }
-    /**
-    * this function creates the appropriate regexp string of an token array
-    * you should not call this function directly, @see $this->optimize_regexp_list().
-    *
-    * @param &$tokens array of tokens
-    * @param $recursed bool to know wether we recursed or not
-    * @return string
-    * @author Milian Wolff <mail@milianw.de>
-    * @since 1.0.8
-    * @access private
-    */
-    function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
-        $list = '';
-        foreach ($tokens as $token => $sub_tokens) {
-            $list .= $token;
-            $close_entry = isset($sub_tokens['']);
-            unset($sub_tokens['']);
-            if (!empty($sub_tokens)) {
-                $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')';
-                if ($close_entry) {
-                    // make sub_tokens optional
-                    $list .= '?';
-                }
-            }
-            $list .= '|';
-        }
-        if (!$recursed) {
-            // do some optimizations
-            // common trailing strings
-            // BUGGY!
-            //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function(
-            //    '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list);
-            // (?:p)? => p?
-            $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list);
-            // (?:a|b|c|d|...)? => [abcd...]?
-            // TODO: a|bb|c => [ac]|bb
-            static $callback_2;
-            if (!isset($callback_2)) {
-                $callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";');
-            }
-            $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list);
-        }
-        // return $list without trailing pipe
-        return substr($list, 0, -1);
-    }
-} // End Class GeSHi
-
-
-if (!function_exists('geshi_highlight')) {
-    /**
-     * Easy way to highlight stuff. Behaves just like highlight_string
-     *
-     * @param string The code to highlight
-     * @param string The language to highlight the code in
-     * @param string The path to the language files. You can leave this blank if you need
-     *               as from version 1.0.7 the path should be automatically detected
-     * @param boolean Whether to return the result or to echo
-     * @return string The code highlighted (if $return is true)
-     * @since 1.0.2
-     */
-    function geshi_highlight($string, $language, $path = null, $return = false) {
-        $geshi = new GeSHi($string, $language, $path);
-        $geshi->set_header_type(GESHI_HEADER_NONE);
-
-        if ($return) {
-            return '<code>' . $geshi->parse_code() . '</code>';
-        }
-
-        echo '<code>' . $geshi->parse_code() . '</code>';
-
-        if ($geshi->error()) {
-            return false;
-        }
-        return true;
-    }
-}
-
+<?php
+/**
+ * GeSHi - Generic Syntax Highlighter
+ *
+ * The GeSHi class for Generic Syntax Highlighting. Please refer to the
+ * documentation at http://qbnz.com/highlighter/documentation.php for more
+ * information about how to use this class.
+ *
+ * For changes, release notes, TODOs etc, see the relevant files in the docs/
+ * directory.
+ *
+ *   This file is part of GeSHi.
+ *
+ *  GeSHi is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GeSHi is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with GeSHi; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @package    geshi
+ * @subpackage core
+ * @author     Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
+ * @copyright  (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
+ * @license    http://gnu.org/copyleft/gpl.html GNU GPL
+ *
+ */
+
+//
+// GeSHi Constants
+// You should use these constant names in your programs instead of
+// their values - you never know when a value may change in a future
+// version
+//
+
+/** The version of this GeSHi file */
+define('GESHI_VERSION', '1.0.8.11');
+
+// Define the root directory for the GeSHi code tree
+if (!defined('GESHI_ROOT')) {
+    /** The root directory for GeSHi */
+    define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+}
+/** The language file directory for GeSHi
+    @access private */
+define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR);
+
+// Define if GeSHi should be paranoid about security
+if (!defined('GESHI_SECURITY_PARANOID')) {
+    /** Tells GeSHi to be paranoid about security settings */
+    define('GESHI_SECURITY_PARANOID', false);
+}
+
+// Line numbers - use with enable_line_numbers()
+/** Use no line numbers when building the result */
+define('GESHI_NO_LINE_NUMBERS', 0);
+/** Use normal line numbers when building the result */
+define('GESHI_NORMAL_LINE_NUMBERS', 1);
+/** Use fancy line numbers when building the result */
+define('GESHI_FANCY_LINE_NUMBERS', 2);
+
+// Container HTML type
+/** Use nothing to surround the source */
+define('GESHI_HEADER_NONE', 0);
+/** Use a "div" to surround the source */
+define('GESHI_HEADER_DIV', 1);
+/** Use a "pre" to surround the source */
+define('GESHI_HEADER_PRE', 2);
+/** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */
+define('GESHI_HEADER_PRE_VALID', 3);
+/**
+ * Use a "table" to surround the source:
+ *
+ *  <table>
+ *    <thead><tr><td colspan="2">$header</td></tr></thead>
+ *    <tbody><tr><td><pre>$linenumbers</pre></td><td><pre>$code></pre></td></tr></tbody>
+ *    <tfooter><tr><td colspan="2">$footer</td></tr></tfoot>
+ *  </table>
+ *
+ * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=365805
+ * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE
+ */
+define('GESHI_HEADER_PRE_TABLE', 4);
+
+// Capatalisation constants
+/** Lowercase keywords found */
+define('GESHI_CAPS_NO_CHANGE', 0);
+/** Uppercase keywords found */
+define('GESHI_CAPS_UPPER', 1);
+/** Leave keywords found as the case that they are */
+define('GESHI_CAPS_LOWER', 2);
+
+// Link style constants
+/** Links in the source in the :link state */
+define('GESHI_LINK', 0);
+/** Links in the source in the :hover state */
+define('GESHI_HOVER', 1);
+/** Links in the source in the :active state */
+define('GESHI_ACTIVE', 2);
+/** Links in the source in the :visited state */
+define('GESHI_VISITED', 3);
+
+// Important string starter/finisher
+// Note that if you change these, they should be as-is: i.e., don't
+// write them as if they had been run through htmlentities()
+/** The starter for important parts of the source */
+define('GESHI_START_IMPORTANT', '<BEGIN GeSHi>');
+/** The ender for important parts of the source */
+define('GESHI_END_IMPORTANT', '<END GeSHi>');
+
+/**#@+
+ *  @access private
+ */
+// When strict mode applies for a language
+/** Strict mode never applies (this is the most common) */
+define('GESHI_NEVER', 0);
+/** Strict mode *might* apply, and can be enabled or
+    disabled by {@link GeSHi->enable_strict_mode()} */
+define('GESHI_MAYBE', 1);
+/** Strict mode always applies */
+define('GESHI_ALWAYS', 2);
+
+// Advanced regexp handling constants, used in language files
+/** The key of the regex array defining what to search for */
+define('GESHI_SEARCH', 0);
+/** The key of the regex array defining what bracket group in a
+    matched search to use as a replacement */
+define('GESHI_REPLACE', 1);
+/** The key of the regex array defining any modifiers to the regular expression */
+define('GESHI_MODIFIERS', 2);
+/** The key of the regex array defining what bracket group in a
+    matched search to put before the replacement */
+define('GESHI_BEFORE', 3);
+/** The key of the regex array defining what bracket group in a
+    matched search to put after the replacement */
+define('GESHI_AFTER', 4);
+/** The key of the regex array defining a custom keyword to use
+    for this regexp's html tag class */
+define('GESHI_CLASS', 5);
+
+/** Used in language files to mark comments */
+define('GESHI_COMMENTS', 0);
+
+/** Used to work around missing PHP features **/
+define('GESHI_PHP_PRE_433', !(version_compare(PHP_VERSION, '4.3.3') === 1));
+
+/** make sure we can call stripos **/
+if (!function_exists('stripos')) {
+    // the offset param of preg_match is not supported below PHP 4.3.3
+    if (GESHI_PHP_PRE_433) {
+        /**
+         * @ignore
+         */
+        function stripos($haystack, $needle, $offset = null) {
+            if (!is_null($offset)) {
+                $haystack = substr($haystack, $offset);
+            }
+            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE)) {
+                return $match[0][1];
+            }
+            return false;
+        }
+    }
+    else {
+        /**
+         * @ignore
+         */
+        function stripos($haystack, $needle, $offset = null) {
+            if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE, $offset)) {
+                return $match[0][1];
+            }
+            return false;
+        }
+    }
+}
+
+/** some old PHP / PCRE subpatterns only support up to xxx subpatterns in
+    regular expressions. Set this to false if your PCRE lib is up to date
+    @see GeSHi->optimize_regexp_list()
+    **/
+define('GESHI_MAX_PCRE_SUBPATTERNS', 500);
+/** it's also important not to generate too long regular expressions
+    be generous here... but keep in mind, that when reaching this limit we
+    still have to close open patterns. 12k should do just fine on a 16k limit.
+    @see GeSHi->optimize_regexp_list()
+    **/
+define('GESHI_MAX_PCRE_LENGTH', 12288);
+
+//Number format specification
+/** Basic number format for integers */
+define('GESHI_NUMBER_INT_BASIC', 1);        //Default integers \d+
+/** Enhanced number format for integers like seen in C */
+define('GESHI_NUMBER_INT_CSTYLE', 2);       //Default C-Style \d+[lL]?
+/** Number format to highlight binary numbers with a suffix "b" */
+define('GESHI_NUMBER_BIN_SUFFIX', 16);           //[01]+[bB]
+/** Number format to highlight binary numbers with a prefix % */
+define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32);   //%[01]+
+/** Number format to highlight binary numbers with a prefix 0b (C) */
+define('GESHI_NUMBER_BIN_PREFIX_0B', 64);        //0b[01]+
+/** Number format to highlight octal numbers with a leading zero */
+define('GESHI_NUMBER_OCT_PREFIX', 256);           //0[0-7]+
+/** Number format to highlight octal numbers with a prefix 0o (logtalk) */
+define('GESHI_NUMBER_OCT_PREFIX_0O', 512);           //0[0-7]+
+/** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */
+define('GESHI_NUMBER_OCT_PREFIX_AT', 1024);           //@[0-7]+
+/** Number format to highlight octal numbers with a suffix of o */
+define('GESHI_NUMBER_OCT_SUFFIX', 2048);           //[0-7]+[oO]
+/** Number format to highlight hex numbers with a prefix 0x */
+define('GESHI_NUMBER_HEX_PREFIX', 4096);           //0x[0-9a-fA-F]+
+/** Number format to highlight hex numbers with a prefix $ */
+define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192);           //$[0-9a-fA-F]+
+/** Number format to highlight hex numbers with a suffix of h */
+define('GESHI_NUMBER_HEX_SUFFIX', 16384);           //[0-9][0-9a-fA-F]*h
+/** Number format to highlight floating-point numbers without support for scientific notation */
+define('GESHI_NUMBER_FLT_NONSCI', 65536);          //\d+\.\d+
+/** Number format to highlight floating-point numbers without support for scientific notation */
+define('GESHI_NUMBER_FLT_NONSCI_F', 131072);       //\d+(\.\d+)?f
+/** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */
+define('GESHI_NUMBER_FLT_SCI_SHORT', 262144);      //\.\d+e\d+
+/** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */
+define('GESHI_NUMBER_FLT_SCI_ZERO', 524288);       //\d+(\.\d+)?e\d+
+//Custom formats are passed by RX array
+
+// Error detection - use these to analyse faults
+/** No sourcecode to highlight was specified
+ * @deprecated
+ */
+define('GESHI_ERROR_NO_INPUT', 1);
+/** The language specified does not exist */
+define('GESHI_ERROR_NO_SUCH_LANG', 2);
+/** GeSHi could not open a file for reading (generally a language file) */
+define('GESHI_ERROR_FILE_NOT_READABLE', 3);
+/** The header type passed to {@link GeSHi->set_header_type()} was invalid */
+define('GESHI_ERROR_INVALID_HEADER_TYPE', 4);
+/** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */
+define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
+/**#@-*/
+
+
+/**
+ * The GeSHi Class.
+ *
+ * Please refer to the documentation for GeSHi 1.0.X that is available
+ * at http://qbnz.com/highlighter/documentation.php for more information
+ * about how to use this class.
+ *
+ * @package   geshi
+ * @author    Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
+ * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann
+ */
+class GeSHi {
+    /**#@+
+     * @access private
+     */
+    /**
+     * The source code to highlight
+     * @var string
+     */
+    var $source = '';
+
+    /**
+     * The language to use when highlighting
+     * @var string
+     */
+    var $language = '';
+
+    /**
+     * The data for the language used
+     * @var array
+     */
+    var $language_data = array();
+
+    /**
+     * The path to the language files
+     * @var string
+     */
+    var $language_path = GESHI_LANG_ROOT;
+
+    /**
+     * The error message associated with an error
+     * @var string
+     * @todo check err reporting works
+     */
+    var $error = false;
+
+    /**
+     * Possible error messages
+     * @var array
+     */
+    var $error_messages = array(
+        GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})',
+        GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable',
+        GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid',
+        GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid'
+    );
+
+    /**
+     * Whether highlighting is strict or not
+     * @var boolean
+     */
+    var $strict_mode = false;
+
+    /**
+     * Whether to use CSS classes in output
+     * @var boolean
+     */
+    var $use_classes = false;
+
+    /**
+     * The type of header to use. Can be one of the following
+     * values:
+     *
+     * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element.
+     * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element.
+     * - GESHI_HEADER_NONE: No header is outputted.
+     *
+     * @var int
+     */
+    var $header_type = GESHI_HEADER_PRE;
+
+    /**
+     * Array of permissions for which lexics should be highlighted
+     * @var array
+     */
+    var $lexic_permissions = array(
+        'KEYWORDS' =>    array(),
+        'COMMENTS' =>    array('MULTI' => true),
+        'REGEXPS' =>     array(),
+        'ESCAPE_CHAR' => true,
+        'BRACKETS' =>    true,
+        'SYMBOLS' =>     false,
+        'STRINGS' =>     true,
+        'NUMBERS' =>     true,
+        'METHODS' =>     true,
+        'SCRIPT' =>      true
+    );
+
+    /**
+     * The time it took to parse the code
+     * @var double
+     */
+    var $time = 0;
+
+    /**
+     * The content of the header block
+     * @var string
+     */
+    var $header_content = '';
+
+    /**
+     * The content of the footer block
+     * @var string
+     */
+    var $footer_content = '';
+
+    /**
+     * The style of the header block
+     * @var string
+     */
+    var $header_content_style = '';
+
+    /**
+     * The style of the footer block
+     * @var string
+     */
+    var $footer_content_style = '';
+
+    /**
+     * Tells if a block around the highlighted source should be forced
+     * if not using line numbering
+     * @var boolean
+     */
+    var $force_code_block = false;
+
+    /**
+     * The styles for hyperlinks in the code
+     * @var array
+     */
+    var $link_styles = array();
+
+    /**
+     * Whether important blocks should be recognised or not
+     * @var boolean
+     * @deprecated
+     * @todo REMOVE THIS FUNCTIONALITY!
+     */
+    var $enable_important_blocks = false;
+
+    /**
+     * Styles for important parts of the code
+     * @var string
+     * @deprecated
+     * @todo As above - rethink the whole idea of important blocks as it is buggy and
+     * will be hard to implement in 1.2
+     */
+    var $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code
+
+    /**
+     * Whether CSS IDs should be added to the code
+     * @var boolean
+     */
+    var $add_ids = false;
+
+    /**
+     * Lines that should be highlighted extra
+     * @var array
+     */
+    var $highlight_extra_lines = array();
+
+    /**
+     * Styles of lines that should be highlighted extra
+     * @var array
+     */
+    var $highlight_extra_lines_styles = array();
+
+    /**
+     * Styles of extra-highlighted lines
+     * @var string
+     */
+    var $highlight_extra_lines_style = 'background-color: #ffc;';
+
+    /**
+     * The line ending
+     * If null, nl2br() will be used on the result string.
+     * Otherwise, all instances of \n will be replaced with $line_ending
+     * @var string
+     */
+    var $line_ending = null;
+
+    /**
+     * Number at which line numbers should start at
+     * @var int
+     */
+    var $line_numbers_start = 1;
+
+    /**
+     * The overall style for this code block
+     * @var string
+     */
+    var $overall_style = 'font-family:monospace;';
+
+    /**
+     *  The style for the actual code
+     * @var string
+     */
+    var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;';
+
+    /**
+     * The overall class for this code block
+     * @var string
+     */
+    var $overall_class = '';
+
+    /**
+     * The overall ID for this code block
+     * @var string
+     */
+    var $overall_id = '';
+
+    /**
+     * Line number styles
+     * @var string
+     */
+    var $line_style1 = 'font-weight: normal; vertical-align:top;';
+
+    /**
+     * Line number styles for fancy lines
+     * @var string
+     */
+    var $line_style2 = 'font-weight: bold; vertical-align:top;';
+
+    /**
+     * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen
+     * @var string
+     */
+    var $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
+
+    /**
+     * Flag for how line numbers are displayed
+     * @var boolean
+     */
+    var $line_numbers = GESHI_NO_LINE_NUMBERS;
+
+    /**
+     * Flag to decide if multi line spans are allowed. Set it to false to make sure
+     * each tag is closed before and reopened after each linefeed.
+     * @var boolean
+     */
+    var $allow_multiline_span = true;
+
+    /**
+     * The "nth" value for fancy line highlighting
+     * @var int
+     */
+    var $line_nth_row = 0;
+
+    /**
+     * The size of tab stops
+     * @var int
+     */
+    var $tab_width = 8;
+
+    /**
+     * Should we use language-defined tab stop widths?
+     * @var int
+     */
+    var $use_language_tab_width = false;
+
+    /**
+     * Default target for keyword links
+     * @var string
+     */
+    var $link_target = '';
+
+    /**
+     * The encoding to use for entity encoding
+     * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598)
+     * @var string
+     */
+    var $encoding = 'utf-8';
+
+    /**
+     * Should keywords be linked?
+     * @var boolean
+     */
+    var $keyword_links = true;
+
+    /**
+     * Currently loaded language file
+     * @var string
+     * @since 1.0.7.22
+     */
+    var $loaded_language = '';
+
+    /**
+     * Wether the caches needed for parsing are built or not
+     *
+     * @var bool
+     * @since 1.0.8
+     */
+    var $parse_cache_built = false;
+
+    /**
+     * Work around for Suhosin Patch with disabled /e modifier
+     *
+     * Note from suhosins author in config file:
+     * <blockquote>
+     *   The /e modifier inside <code>preg_replace()</code> allows code execution.
+     *   Often it is the cause for remote code execution exploits. It is wise to
+     *   deactivate this feature and test where in the application it is used.
+     *   The developer using the /e modifier should be made aware that he should
+     *   use <code>preg_replace_callback()</code> instead
+     * </blockquote>
+     *
+     * @var array
+     * @since 1.0.8
+     */
+    var $_kw_replace_group = 0;
+    var $_rx_key = 0;
+
+    /**
+     * some "callback parameters" for handle_multiline_regexps
+     *
+     * @since 1.0.8
+     * @access private
+     * @var string
+     */
+    var $_hmr_before = '';
+    var $_hmr_replace = '';
+    var $_hmr_after = '';
+    var $_hmr_key = 0;
+
+    /**#@-*/
+
+    /**
+     * Creates a new GeSHi object, with source and language
+     *
+     * @param string The source code to highlight
+     * @param string The language to highlight the source with
+     * @param string The path to the language file directory. <b>This
+     *               is deprecated!</b> I've backported the auto path
+     *               detection from the 1.1.X dev branch, so now it
+     *               should be automatically set correctly. If you have
+     *               renamed the language directory however, you will
+     *               still need to set the path using this parameter or
+     *               {@link GeSHi->set_language_path()}
+     * @since 1.0.0
+     */
+    function GeSHi($source = '', $language = '', $path = '') {
+        if (!empty($source)) {
+            $this->set_source($source);
+        }
+        if (!empty($language)) {
+            $this->set_language($language);
+        }
+        $this->set_language_path($path);
+    }
+
+    /**
+     * Returns the version of GeSHi
+     *
+     * @return string
+     * @since 1 0.8.11
+     */
+    function get_version()
+    {
+        return GESHI_VERSION;
+    }
+
+    /**
+     * Returns an error message associated with the last GeSHi operation,
+     * or false if no error has occured
+     *
+     * @return string|false An error message if there has been an error, else false
+     * @since  1.0.0
+     */
+    function error() {
+        if ($this->error) {
+            //Put some template variables for debugging here ...
+            $debug_tpl_vars = array(
+                '{LANGUAGE}' => $this->language,
+                '{PATH}' => $this->language_path
+            );
+            $msg = str_replace(
+                array_keys($debug_tpl_vars),
+                array_values($debug_tpl_vars),
+                $this->error_messages[$this->error]);
+
+            return "<br /><strong>GeSHi Error:</strong> $msg (code {$this->error})<br />";
+        }
+        return false;
+    }
+
+    /**
+     * Gets a human-readable language name (thanks to Simon Patterson
+     * for the idea :))
+     *
+     * @return string The name for the current language
+     * @since  1.0.2
+     */
+    function get_language_name() {
+        if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {
+            return $this->language_data['LANG_NAME'] . ' (Unknown Language)';
+        }
+        return $this->language_data['LANG_NAME'];
+    }
+
+    /**
+     * Sets the source code for this object
+     *
+     * @param string The source code to highlight
+     * @since 1.0.0
+     */
+    function set_source($source) {
+        $this->source = $source;
+        $this->highlight_extra_lines = array();
+    }
+
+    /**
+     * Sets the language for this object
+     *
+     * @note since 1.0.8 this function won't reset language-settings by default anymore!
+     *       if you need this set $force_reset = true
+     *
+     * @param string The name of the language to use
+     * @since 1.0.0
+     */
+    function set_language($language, $force_reset = false) {
+        if ($force_reset) {
+            $this->loaded_language = false;
+        }
+
+        //Clean up the language name to prevent malicious code injection
+        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
+
+        $language = strtolower($language);
+
+        //Retreive the full filename
+        $file_name = $this->language_path . $language . '.php';
+        if ($file_name == $this->loaded_language) {
+            // this language is already loaded!
+            return;
+        }
+
+        $this->language = $language;
+
+        $this->error = false;
+        $this->strict_mode = GESHI_NEVER;
+
+        //Check if we can read the desired file
+        if (!is_readable($file_name)) {
+            $this->error = GESHI_ERROR_NO_SUCH_LANG;
+            return;
+        }
+
+        // Load the language for parsing
+        $this->load_language($file_name);
+    }
+
+    /**
+     * Sets the path to the directory containing the language files. Note
+     * that this path is relative to the directory of the script that included
+     * geshi.php, NOT geshi.php itself.
+     *
+     * @param string The path to the language directory
+     * @since 1.0.0
+     * @deprecated The path to the language files should now be automatically
+     *             detected, so this method should no longer be needed. The
+     *             1.1.X branch handles manual setting of the path differently
+     *             so this method will disappear in 1.2.0.
+     */
+    function set_language_path($path) {
+        if(strpos($path,':')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            if(DIRECTORY_SEPARATOR == "\\") {
+                if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) {
+                    return;
+                }
+            } else {
+                return;
+            }
+        }
+        if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
+        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
+        if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) {
+            //Security Fix to prevent external directories using fopen wrappers.
+            return;
+        }
+        if ($path) {
+            $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/';
+            $this->set_language($this->language); // otherwise set_language_path has no effect
+        }
+    }
+
+    /**
+     * Get supported langs or an associative array lang=>full_name.
+     * @param boolean $longnames
+     * @return array
+     */
+    function get_supported_languages($full_names=false)
+    {
+        // return array
+        $back = array();
+
+        // we walk the lang root
+        $dir = dir($this->language_path);
+
+        // foreach entry
+        while (false !== ($entry = $dir->read()))
+        {
+            $full_path = $this->language_path.$entry;
+
+            // Skip all dirs
+            if (is_dir($full_path)) {
+                continue;
+            }
+
+            // we only want lang.php files
+            if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) {
+                continue;
+            }
+
+            // Raw lang name is here
+            $langname = $matches[1];
+
+            // We want the fullname too?
+            if ($full_names === true)
+            {
+                if (false !== ($fullname = $this->get_language_fullname($langname)))
+                {
+                    $back[$langname] = $fullname; // we go associative
+                }
+            }
+            else
+            {
+                // just store raw langname
+                $back[] = $langname;
+            }
+        }
+
+        $dir->close();
+
+        return $back;
+    }
+
+    /**
+     * Get full_name for a lang or false.
+     * @param string $language short langname (html4strict for example)
+     * @return mixed
+     */
+    function get_language_fullname($language)
+    {
+        //Clean up the language name to prevent malicious code injection
+        $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
+
+        $language = strtolower($language);
+
+        // get fullpath-filename for a langname
+        $fullpath = $this->language_path.$language.'.php';
+
+        // we need to get contents :S
+        if (false === ($data = file_get_contents($fullpath))) {
+            $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language);
+            return false;
+        }
+
+        // match the langname
+        if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+?)\'/', $data, $matches)) {
+            $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language);
+            return false;
+        }
+
+        // return fullname for langname
+        return stripcslashes($matches[1]);
+    }
+
+    /**
+     * Sets the type of header to be used.
+     *
+     * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This
+     * means more source code but more control over tab width and line-wrapping.
+     * GESHI_HEADER_PRE means that a "pre" is used - less source, but less
+     * control. Default is GESHI_HEADER_PRE.
+     *
+     * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code
+     * should be outputted.
+     *
+     * @param int The type of header to be used
+     * @since 1.0.0
+     */
+    function set_header_type($type) {
+        //Check if we got a valid header type
+        if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV,
+            GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) {
+            $this->error = GESHI_ERROR_INVALID_HEADER_TYPE;
+            return;
+        }
+
+        //Set that new header type
+        $this->header_type = $type;
+    }
+
+    /**
+     * Sets the styles for the code that will be outputted
+     * when this object is parsed. The style should be a
+     * string of valid stylesheet declarations
+     *
+     * @param string  The overall style for the outputted code block
+     * @param boolean Whether to merge the styles with the current styles or not
+     * @since 1.0.0
+     */
+    function set_overall_style($style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->overall_style = $style;
+        } else {
+            $this->overall_style .= $style;
+        }
+    }
+
+    /**
+     * Sets the overall classname for this block of code. This
+     * class can then be used in a stylesheet to style this object's
+     * output
+     *
+     * @param string The class name to use for this block of code
+     * @since 1.0.0
+     */
+    function set_overall_class($class) {
+        $this->overall_class = $class;
+    }
+
+    /**
+     * Sets the overall id for this block of code. This id can then
+     * be used in a stylesheet to style this object's output
+     *
+     * @param string The ID to use for this block of code
+     * @since 1.0.0
+     */
+    function set_overall_id($id) {
+        $this->overall_id = $id;
+    }
+
+    /**
+     * Sets whether CSS classes should be used to highlight the source. Default
+     * is off, calling this method with no arguments will turn it on
+     *
+     * @param boolean Whether to turn classes on or not
+     * @since 1.0.0
+     */
+    function enable_classes($flag = true) {
+        $this->use_classes = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the style for the actual code. This should be a string
+     * containing valid stylesheet declarations. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * Note: Use this method to override any style changes you made to
+     * the line numbers if you are using line numbers, else the line of
+     * code will have the same style as the line number! Consult the
+     * GeSHi documentation for more information about this.
+     *
+     * @param string  The style to use for actual code
+     * @param boolean Whether to merge the current styles with the new styles
+     * @since 1.0.2
+     */
+    function set_code_style($style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->code_style = $style;
+        } else {
+            $this->code_style .= $style;
+        }
+    }
+
+    /**
+     * Sets the styles for the line numbers.
+     *
+     * @param string The style for the line numbers that are "normal"
+     * @param string|boolean If a string, this is the style of the line
+     *        numbers that are "fancy", otherwise if boolean then this
+     *        defines whether the normal styles should be merged with the
+     *        new normal styles or not
+     * @param boolean If set, is the flag for whether to merge the "fancy"
+     *        styles with the current styles or not
+     * @since 1.0.2
+     */
+    function set_line_style($style1, $style2 = '', $preserve_defaults = false) {
+        //Check if we got 2 or three parameters
+        if (is_bool($style2)) {
+            $preserve_defaults = $style2;
+            $style2 = '';
+        }
+
+        //Actually set the new styles
+        if (!$preserve_defaults) {
+            $this->line_style1 = $style1;
+            $this->line_style2 = $style2;
+        } else {
+            $this->line_style1 .= $style1;
+            $this->line_style2 .= $style2;
+        }
+    }
+
+    /**
+     * Sets whether line numbers should be displayed.
+     *
+     * Valid values for the first parameter are:
+     *
+     *  - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed
+     *  - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed
+     *  - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed
+     *
+     * For fancy line numbers, the second parameter is used to signal which lines
+     * are to be fancy. For example, if the value of this parameter is 5 then every
+     * 5th line will be fancy.
+     *
+     * @param int How line numbers should be displayed
+     * @param int Defines which lines are fancy
+     * @since 1.0.0
+     */
+    function enable_line_numbers($flag, $nth_row = 5) {
+        if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag
+            && GESHI_FANCY_LINE_NUMBERS != $flag) {
+            $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE;
+        }
+        $this->line_numbers = $flag;
+        $this->line_nth_row = $nth_row;
+    }
+
+    /**
+     * Sets wether spans and other HTML markup generated by GeSHi can
+     * span over multiple lines or not. Defaults to true to reduce overhead.
+     * Set it to false if you want to manipulate the output or manually display
+     * the code in an ordered list.
+     *
+     * @param boolean Wether multiline spans are allowed or not
+     * @since 1.0.7.22
+     */
+    function enable_multiline_span($flag) {
+        $this->allow_multiline_span = (bool) $flag;
+    }
+
+    /**
+     * Get current setting for multiline spans, see GeSHi->enable_multiline_span().
+     *
+     * @see enable_multiline_span
+     * @return bool
+     */
+    function get_multiline_span() {
+        return $this->allow_multiline_span;
+    }
+
+    /**
+     * Sets the style for a keyword group. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param int     The key of the keyword group to change the styles of
+     * @param string  The style to make the keywords
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     */
+    function set_keyword_group_style($key, $style, $preserve_defaults = false) {
+        //Set the style for this keyword group
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
+        } else {
+            $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
+        }
+
+        //Update the lexic permissions
+        if (!isset($this->lexic_permissions['KEYWORDS'][$key])) {
+            $this->lexic_permissions['KEYWORDS'][$key] = true;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for a keyword group
+     *
+     * @param int     The key of the keyword group to turn on or off
+     * @param boolean Whether to turn highlighting for that group on or off
+     * @since 1.0.0
+     */
+    function set_keyword_group_highlighting($key, $flag = true) {
+        $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for comment groups.  If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param int     The key of the comment group to change the styles of
+     * @param string  The style to make the comments
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     */
+    function set_comments_style($key, $style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['COMMENTS'][$key] = $style;
+        } else {
+            $this->language_data['STYLES']['COMMENTS'][$key] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for comment groups
+     *
+     * @param int     The key of the comment group to turn on or off
+     * @param boolean Whether to turn highlighting for that group on or off
+     * @since 1.0.0
+     */
+    function set_comments_highlighting($key, $flag = true) {
+        $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for escaped characters. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the escape characters
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     */
+    function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
+        } else {
+            $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for escaped characters
+     *
+     * @param boolean Whether to turn highlighting for escape characters on or off
+     * @since 1.0.0
+     */
+    function set_escape_characters_highlighting($flag = true) {
+        $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for brackets. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * This method is DEPRECATED: use set_symbols_style instead.
+     * This method will be removed in 1.2.X
+     *
+     * @param string  The style to make the brackets
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     * @deprecated In favour of set_symbols_style
+     */
+    function set_brackets_style($style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['BRACKETS'][0] = $style;
+        } else {
+            $this->language_data['STYLES']['BRACKETS'][0] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for brackets
+     *
+     * This method is DEPRECATED: use set_symbols_highlighting instead.
+     * This method will be remove in 1.2.X
+     *
+     * @param boolean Whether to turn highlighting for brackets on or off
+     * @since 1.0.0
+     * @deprecated In favour of set_symbols_highlighting
+     */
+    function set_brackets_highlighting($flag) {
+        $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for symbols. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the symbols
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @param int     Tells the group of symbols for which style should be set.
+     * @since 1.0.1
+     */
+    function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
+        // Update the style of symbols
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['SYMBOLS'][$group] = $style;
+        } else {
+            $this->language_data['STYLES']['SYMBOLS'][$group] .= $style;
+        }
+
+        // For backward compatibility
+        if (0 == $group) {
+            $this->set_brackets_style ($style, $preserve_defaults);
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for symbols
+     *
+     * @param boolean Whether to turn highlighting for symbols on or off
+     * @since 1.0.0
+     */
+    function set_symbols_highlighting($flag) {
+        // Update lexic permissions for this symbol group
+        $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false;
+
+        // For backward compatibility
+        $this->set_brackets_highlighting ($flag);
+    }
+
+    /**
+     * Sets the styles for strings. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the escape characters
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @param int     Tells the group of strings for which style should be set.
+     * @since 1.0.0
+     */
+    function set_strings_style($style, $preserve_defaults = false, $group = 0) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['STRINGS'][$group] = $style;
+        } else {
+            $this->language_data['STYLES']['STRINGS'][$group] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for strings
+     *
+     * @param boolean Whether to turn highlighting for strings on or off
+     * @since 1.0.0
+     */
+    function set_strings_highlighting($flag) {
+        $this->lexic_permissions['STRINGS'] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for strict code blocks. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the script blocks
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @param int     Tells the group of script blocks for which style should be set.
+     * @since 1.0.8.4
+     */
+    function set_script_style($style, $preserve_defaults = false, $group = 0) {
+        // Update the style of symbols
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['SCRIPT'][$group] = $style;
+        } else {
+            $this->language_data['STYLES']['SCRIPT'][$group] .= $style;
+        }
+    }
+
+    /**
+     * Sets the styles for numbers. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the numbers
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @param int     Tells the group of numbers for which style should be set.
+     * @since 1.0.0
+     */
+    function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['NUMBERS'][$group] = $style;
+        } else {
+            $this->language_data['STYLES']['NUMBERS'][$group] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for numbers
+     *
+     * @param boolean Whether to turn highlighting for numbers on or off
+     * @since 1.0.0
+     */
+    function set_numbers_highlighting($flag) {
+        $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for methods. $key is a number that references the
+     * appropriate "object splitter" - see the language file for the language
+     * you are highlighting to get this number. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param int     The key of the object splitter to change the styles of
+     * @param string  The style to make the methods
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     */
+    function set_methods_style($key, $style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['METHODS'][$key] = $style;
+        } else {
+            $this->language_data['STYLES']['METHODS'][$key] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for methods
+     *
+     * @param boolean Whether to turn highlighting for methods on or off
+     * @since 1.0.0
+     */
+    function set_methods_highlighting($flag) {
+        $this->lexic_permissions['METHODS'] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets the styles for regexps. If $preserve_defaults is
+     * true, then styles are merged with the default styles, with the
+     * user defined styles having priority
+     *
+     * @param string  The style to make the regular expression matches
+     * @param boolean Whether to merge the new styles with the old or just
+     *                to overwrite them
+     * @since 1.0.0
+     */
+    function set_regexps_style($key, $style, $preserve_defaults = false) {
+        if (!$preserve_defaults) {
+            $this->language_data['STYLES']['REGEXPS'][$key] = $style;
+        } else {
+            $this->language_data['STYLES']['REGEXPS'][$key] .= $style;
+        }
+    }
+
+    /**
+     * Turns highlighting on/off for regexps
+     *
+     * @param int     The key of the regular expression group to turn on or off
+     * @param boolean Whether to turn highlighting for the regular expression group on or off
+     * @since 1.0.0
+     */
+    function set_regexps_highlighting($key, $flag) {
+        $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false;
+    }
+
+    /**
+     * Sets whether a set of keywords are checked for in a case sensitive manner
+     *
+     * @param int The key of the keyword group to change the case sensitivity of
+     * @param boolean Whether to check in a case sensitive manner or not
+     * @since 1.0.0
+     */
+    function set_case_sensitivity($key, $case) {
+        $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false;
+    }
+
+    /**
+     * Sets the case that keywords should use when found. Use the constants:
+     *
+     *  - GESHI_CAPS_NO_CHANGE: leave keywords as-is
+     *  - GESHI_CAPS_UPPER: convert all keywords to uppercase where found
+     *  - GESHI_CAPS_LOWER: convert all keywords to lowercase where found
+     *
+     * @param int A constant specifying what to do with matched keywords
+     * @since 1.0.1
+     */
+    function set_case_keywords($case) {
+        if (in_array($case, array(
+            GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) {
+            $this->language_data['CASE_KEYWORDS'] = $case;
+        }
+    }
+
+    /**
+     * Sets how many spaces a tab is substituted for
+     *
+     * Widths below zero are ignored
+     *
+     * @param int The tab width
+     * @since 1.0.0
+     */
+    function set_tab_width($width) {
+        $this->tab_width = intval($width);
+
+        //Check if it fit's the constraints:
+        if ($this->tab_width < 1) {
+            //Return it to the default
+            $this->tab_width = 8;
+        }
+    }
+
+    /**
+     * Sets whether or not to use tab-stop width specifed by language
+     *
+     * @param boolean Whether to use language-specific tab-stop widths
+     * @since 1.0.7.20
+     */
+    function set_use_language_tab_width($use) {
+        $this->use_language_tab_width = (bool) $use;
+    }
+
+    /**
+     * Returns the tab width to use, based on the current language and user
+     * preference
+     *
+     * @return int Tab width
+     * @since 1.0.7.20
+     */
+    function get_real_tab_width() {
+        if (!$this->use_language_tab_width ||
+            !isset($this->language_data['TAB_WIDTH'])) {
+            return $this->tab_width;
+        } else {
+            return $this->language_data['TAB_WIDTH'];
+        }
+    }
+
+    /**
+     * Enables/disables strict highlighting. Default is off, calling this
+     * method without parameters will turn it on. See documentation
+     * for more details on strict mode and where to use it.
+     *
+     * @param boolean Whether to enable strict mode or not
+     * @since 1.0.0
+     */
+    function enable_strict_mode($mode = true) {
+        if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) {
+            $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER;
+        }
+    }
+
+    /**
+     * Disables all highlighting
+     *
+     * @since 1.0.0
+     * @todo  Rewrite with array traversal
+     * @deprecated In favour of enable_highlighting
+     */
+    function disable_highlighting() {
+        $this->enable_highlighting(false);
+    }
+
+    /**
+     * Enables all highlighting
+     *
+     * The optional flag parameter was added in version 1.0.7.21 and can be used
+     * to enable (true) or disable (false) all highlighting.
+     *
+     * @since 1.0.0
+     * @param boolean A flag specifying whether to enable or disable all highlighting
+     * @todo  Rewrite with array traversal
+     */
+    function enable_highlighting($flag = true) {
+        $flag = $flag ? true : false;
+        foreach ($this->lexic_permissions as $key => $value) {
+            if (is_array($value)) {
+                foreach ($value as $k => $v) {
+                    $this->lexic_permissions[$key][$k] = $flag;
+                }
+            } else {
+                $this->lexic_permissions[$key] = $flag;
+            }
+        }
+
+        // Context blocks
+        $this->enable_important_blocks = $flag;
+    }
+
+    /**
+     * Given a file extension, this method returns either a valid geshi language
+     * name, or the empty string if it couldn't be found
+     *
+     * @param string The extension to get a language name for
+     * @param array  A lookup array to use instead of the default one
+     * @since 1.0.5
+     * @todo Re-think about how this method works (maybe make it private and/or make it
+     *       a extension->lang lookup?)
+     * @todo static?
+     */
+    function get_language_name_from_extension( $extension, $lookup = array() ) {
+        $extension = strtolower($extension);
+
+        if ( !is_array($lookup) || empty($lookup)) {
+            $lookup = array(
+                '6502acme' => array( 'a', 's', 'asm', 'inc' ),
+                '6502tasm' => array( 'a', 's', 'asm', 'inc' ),
+                '6502kickass' => array( 'a', 's', 'asm', 'inc' ),
+                '68000devpac' => array( 'a', 's', 'asm', 'inc' ),
+                'abap' => array('abap'),
+                'actionscript' => array('as'),
+                'ada' => array('a', 'ada', 'adb', 'ads'),
+                'apache' => array('conf'),
+                'asm' => array('ash', 'asm', 'inc'),
+                'asp' => array('asp'),
+                'bash' => array('sh'),
+                'bf' => array('bf'),
+                'c' => array('c', 'h'),
+                'c_mac' => array('c', 'h'),
+                'caddcl' => array(),
+                'cadlisp' => array(),
+                'cdfg' => array('cdfg'),
+                'cobol' => array('cbl'),
+                'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
+                'csharp' => array('cs'),
+                'css' => array('css'),
+                'd' => array('d'),
+                'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
+                'diff' => array('diff', 'patch'),
+                'dos' => array('bat', 'cmd'),
+                'gdb' => array('kcrash', 'crash', 'bt'),
+                'gettext' => array('po', 'pot'),
+                'gml' => array('gml'),
+                'gnuplot' => array('plt'),
+                'groovy' => array('groovy'),
+                'haskell' => array('hs'),
+                'haxe' => array('hx'),
+                'html4strict' => array('html', 'htm'),
+                'ini' => array('ini', 'desktop'),
+                'java' => array('java'),
+                'javascript' => array('js'),
+                'klonec' => array('kl1'),
+                'klonecpp' => array('klx'),
+                'latex' => array('tex'),
+                'lisp' => array('lisp'),
+                'lua' => array('lua'),
+                'matlab' => array('m'),
+                'mpasm' => array(),
+                'mysql' => array('sql'),
+                'nsis' => array(),
+                'objc' => array(),
+                'oobas' => array(),
+                'oracle8' => array(),
+                'oracle10' => array(),
+                'pascal' => array('pas'),
+                'perl' => array('pl', 'pm'),
+                'php' => array('php', 'php5', 'phtml', 'phps'),
+                'povray' => array('pov'),
+                'providex' => array('pvc', 'pvx'),
+                'prolog' => array('pl'),
+                'python' => array('py'),
+                'qbasic' => array('bi'),
+                'reg' => array('reg'),
+                'ruby' => array('rb'),
+                'sas' => array('sas'),
+                'scala' => array('scala'),
+                'scheme' => array('scm'),
+                'scilab' => array('sci'),
+                'smalltalk' => array('st'),
+                'smarty' => array(),
+                'tcl' => array('tcl'),
+                'text' => array('txt'),
+                'vb' => array('bas'),
+                'vbnet' => array(),
+                'visualfoxpro' => array(),
+                'whitespace' => array('ws'),
+                'xml' => array('xml', 'svg', 'xrc'),
+                'z80' => array('z80', 'asm', 'inc')
+            );
+        }
+
+        foreach ($lookup as $lang => $extensions) {
+            if (in_array($extension, $extensions)) {
+                return $lang;
+            }
+        }
+
+        return 'text';
+    }
+
+    /**
+     * Given a file name, this method loads its contents in, and attempts
+     * to set the language automatically. An optional lookup table can be
+     * passed for looking up the language name. If not specified a default
+     * table is used
+     *
+     * The language table is in the form
+     * <pre>array(
+     *   'lang_name' => array('extension', 'extension', ...),
+     *   'lang_name' ...
+     * );</pre>
+     *
+     * @param string The filename to load the source from
+     * @param array  A lookup array to use instead of the default one
+     * @todo Complete rethink of this and above method
+     * @since 1.0.5
+     */
+    function load_from_file($file_name, $lookup = array()) {
+        if (is_readable($file_name)) {
+            $this->set_source(file_get_contents($file_name));
+            $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
+        } else {
+            $this->error = GESHI_ERROR_FILE_NOT_READABLE;
+        }
+    }
+
+    /**
+     * Adds a keyword to a keyword group for highlighting
+     *
+     * @param int    The key of the keyword group to add the keyword to
+     * @param string The word to add to the keyword group
+     * @since 1.0.0
+     */
+    function add_keyword($key, $word) {
+        if (!is_array($this->language_data['KEYWORDS'][$key])) {
+            $this->language_data['KEYWORDS'][$key] = array();
+        }
+        if (!in_array($word, $this->language_data['KEYWORDS'][$key])) {
+            $this->language_data['KEYWORDS'][$key][] = $word;
+
+            //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it
+            if ($this->parse_cache_built) {
+                $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1;
+                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/');
+            }
+        }
+    }
+
+    /**
+     * Removes a keyword from a keyword group
+     *
+     * @param int    The key of the keyword group to remove the keyword from
+     * @param string The word to remove from the keyword group
+     * @param bool   Wether to automatically recompile the optimized regexp list or not.
+     *               Note: if you set this to false and @see GeSHi->parse_code() was already called once,
+     *               for the current language, you have to manually call @see GeSHi->optimize_keyword_group()
+     *               or the removed keyword will stay in cache and still be highlighted! On the other hand
+     *               it might be too expensive to recompile the regexp list for every removal if you want to
+     *               remove a lot of keywords.
+     * @since 1.0.0
+     */
+    function remove_keyword($key, $word, $recompile = true) {
+        $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]);
+        if ($key_to_remove !== false) {
+            unset($this->language_data['KEYWORDS'][$key][$key_to_remove]);
+
+            //NEW in 1.0.8, optionally recompile keyword group
+            if ($recompile && $this->parse_cache_built) {
+                $this->optimize_keyword_group($key);
+            }
+        }
+    }
+
+    /**
+     * Creates a new keyword group
+     *
+     * @param int    The key of the keyword group to create
+     * @param string The styles for the keyword group
+     * @param boolean Whether the keyword group is case sensitive ornot
+     * @param array  The words to use for the keyword group
+     * @since 1.0.0
+     */
+    function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
+        $words = (array) $words;
+        if  (empty($words)) {
+            // empty word lists mess up highlighting
+            return false;
+        }
+
+        //Add the new keyword group internally
+        $this->language_data['KEYWORDS'][$key] = $words;
+        $this->lexic_permissions['KEYWORDS'][$key] = true;
+        $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive;
+        $this->language_data['STYLES']['KEYWORDS'][$key] = $styles;
+
+        //NEW in 1.0.8, cache keyword regexp
+        if ($this->parse_cache_built) {
+            $this->optimize_keyword_group($key);
+        }
+    }
+
+    /**
+     * Removes a keyword group
+     *
+     * @param int    The key of the keyword group to remove
+     * @since 1.0.0
+     */
+    function remove_keyword_group ($key) {
+        //Remove the keyword group internally
+        unset($this->language_data['KEYWORDS'][$key]);
+        unset($this->lexic_permissions['KEYWORDS'][$key]);
+        unset($this->language_data['CASE_SENSITIVE'][$key]);
+        unset($this->language_data['STYLES']['KEYWORDS'][$key]);
+
+        //NEW in 1.0.8
+        unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]);
+    }
+
+    /**
+     * compile optimized regexp list for keyword group
+     *
+     * @param int   The key of the keyword group to compile & optimize
+     * @since 1.0.8
+     */
+    function optimize_keyword_group($key) {
+        $this->language_data['CACHED_KEYWORD_LISTS'][$key] =
+            $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]);
+        $space_as_whitespace = false;
+        if(isset($this->language_data['PARSER_CONTROL'])) {
+            if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
+                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) {
+                    $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'];
+                }
+                if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
+                    if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
+                        $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'];
+                    }
+                }
+            }
+        }
+        if($space_as_whitespace) {
+            foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) {
+                $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] =
+                    str_replace(" ", "\\s+", $rxv);
+            }
+        }
+    }
+
+    /**
+     * Sets the content of the header block
+     *
+     * @param string The content of the header block
+     * @since 1.0.2
+     */
+    function set_header_content($content) {
+        $this->header_content = $content;
+    }
+
+    /**
+     * Sets the content of the footer block
+     *
+     * @param string The content of the footer block
+     * @since 1.0.2
+     */
+    function set_footer_content($content) {
+        $this->footer_content = $content;
+    }
+
+    /**
+     * Sets the style for the header content
+     *
+     * @param string The style for the header content
+     * @since 1.0.2
+     */
+    function set_header_content_style($style) {
+        $this->header_content_style = $style;
+    }
+
+    /**
+     * Sets the style for the footer content
+     *
+     * @param string The style for the footer content
+     * @since 1.0.2
+     */
+    function set_footer_content_style($style) {
+        $this->footer_content_style = $style;
+    }
+
+    /**
+     * Sets whether to force a surrounding block around
+     * the highlighted code or not
+     *
+     * @param boolean Tells whether to enable or disable this feature
+     * @since 1.0.7.20
+     */
+    function enable_inner_code_block($flag) {
+        $this->force_code_block = (bool)$flag;
+    }
+
+    /**
+     * Sets the base URL to be used for keywords
+     *
+     * @param int The key of the keyword group to set the URL for
+     * @param string The URL to set for the group. If {FNAME} is in
+     *               the url somewhere, it is replaced by the keyword
+     *               that the URL is being made for
+     * @since 1.0.2
+     */
+    function set_url_for_keyword_group($group, $url) {
+        $this->language_data['URLS'][$group] = $url;
+    }
+
+    /**
+     * Sets styles for links in code
+     *
+     * @param int A constant that specifies what state the style is being
+     *            set for - e.g. :hover or :visited
+     * @param string The styles to use for that state
+     * @since 1.0.2
+     */
+    function set_link_styles($type, $styles) {
+        $this->link_styles[$type] = $styles;
+    }
+
+    /**
+     * Sets the target for links in code
+     *
+     * @param string The target for links in the code, e.g. _blank
+     * @since 1.0.3
+     */
+    function set_link_target($target) {
+        if (!$target) {
+            $this->link_target = '';
+        } else {
+            $this->link_target = ' target="' . $target . '"';
+        }
+    }
+
+    /**
+     * Sets styles for important parts of the code
+     *
+     * @param string The styles to use on important parts of the code
+     * @since 1.0.2
+     */
+    function set_important_styles($styles) {
+        $this->important_styles = $styles;
+    }
+
+    /**
+     * Sets whether context-important blocks are highlighted
+     *
+     * @param boolean Tells whether to enable or disable highlighting of important blocks
+     * @todo REMOVE THIS SHIZ FROM GESHI!
+     * @deprecated
+     * @since 1.0.2
+     */
+    function enable_important_blocks($flag) {
+        $this->enable_important_blocks = ( $flag ) ? true : false;
+    }
+
+    /**
+     * Whether CSS IDs should be added to each line
+     *
+     * @param boolean If true, IDs will be added to each line.
+     * @since 1.0.2
+     */
+    function enable_ids($flag = true) {
+        $this->add_ids = ($flag) ? true : false;
+    }
+
+    /**
+     * Specifies which lines to highlight extra
+     *
+     * The extra style parameter was added in 1.0.7.21.
+     *
+     * @param mixed An array of line numbers to highlight, or just a line
+     *              number on its own.
+     * @param string A string specifying the style to use for this line.
+     *              If null is specified, the default style is used.
+     *              If false is specified, the line will be removed from
+     *              special highlighting
+     * @since 1.0.2
+     * @todo  Some data replication here that could be cut down on
+     */
+    function highlight_lines_extra($lines, $style = null) {
+        if (is_array($lines)) {
+            //Split up the job using single lines at a time
+            foreach ($lines as $line) {
+                $this->highlight_lines_extra($line, $style);
+            }
+        } else {
+            //Mark the line as being highlighted specially
+            $lines = intval($lines);
+            $this->highlight_extra_lines[$lines] = $lines;
+
+            //Decide on which style to use
+            if ($style === null) { //Check if we should use default style
+                unset($this->highlight_extra_lines_styles[$lines]);
+            } elseif ($style === false) { //Check if to remove this line
+                unset($this->highlight_extra_lines[$lines]);
+                unset($this->highlight_extra_lines_styles[$lines]);
+            } else {
+                $this->highlight_extra_lines_styles[$lines] = $style;
+            }
+        }
+    }
+
+    /**
+     * Sets the style for extra-highlighted lines
+     *
+     * @param string The style for extra-highlighted lines
+     * @since 1.0.2
+     */
+    function set_highlight_lines_extra_style($styles) {
+        $this->highlight_extra_lines_style = $styles;
+    }
+
+    /**
+     * Sets the line-ending
+     *
+     * @param string The new line-ending
+     * @since 1.0.2
+     */
+    function set_line_ending($line_ending) {
+        $this->line_ending = (string)$line_ending;
+    }
+
+    /**
+     * Sets what number line numbers should start at. Should
+     * be a positive integer, and will be converted to one.
+     *
+     * <b>Warning:</b> Using this method will add the "start"
+     * attribute to the &lt;ol&gt; that is used for line numbering.
+     * This is <b>not</b> valid XHTML strict, so if that's what you
+     * care about then don't use this method. Firefox is getting
+     * support for the CSS method of doing this in 1.1 and Opera
+     * has support for the CSS method, but (of course) IE doesn't
+     * so it's not worth doing it the CSS way yet.
+     *
+     * @param int The number to start line numbers at
+     * @since 1.0.2
+     */
+    function start_line_numbers_at($number) {
+        $this->line_numbers_start = abs(intval($number));
+    }
+
+    /**
+     * Sets the encoding used for htmlspecialchars(), for international
+     * support.
+     *
+     * NOTE: This is not needed for now because htmlspecialchars() is not
+     * being used (it has a security hole in PHP4 that has not been patched).
+     * Maybe in a future version it may make a return for speed reasons, but
+     * I doubt it.
+     *
+     * @param string The encoding to use for the source
+     * @since 1.0.3
+     */
+    function set_encoding($encoding) {
+        if ($encoding) {
+          $this->encoding = strtolower($encoding);
+        }
+    }
+
+    /**
+     * Turns linking of keywords on or off.
+     *
+     * @param boolean If true, links will be added to keywords
+     * @since 1.0.2
+     */
+    function enable_keyword_links($enable = true) {
+        $this->keyword_links = (bool) $enable;
+    }
+
+    /**
+     * Setup caches needed for styling. This is automatically called in
+     * parse_code() and get_stylesheet() when appropriate. This function helps
+     * stylesheet generators as they rely on some style information being
+     * preprocessed
+     *
+     * @since 1.0.8
+     * @access private
+     */
+    function build_style_cache() {
+        //Build the style cache needed to highlight numbers appropriate
+        if($this->lexic_permissions['NUMBERS']) {
+            //First check what way highlighting information for numbers are given
+            if(!isset($this->language_data['NUMBERS'])) {
+                $this->language_data['NUMBERS'] = 0;
+            }
+
+            if(is_array($this->language_data['NUMBERS'])) {
+                $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS'];
+            } else {
+                $this->language_data['NUMBERS_CACHE'] = array();
+                if(!$this->language_data['NUMBERS']) {
+                    $this->language_data['NUMBERS'] =
+                        GESHI_NUMBER_INT_BASIC |
+                        GESHI_NUMBER_FLT_NONSCI;
+                }
+
+                for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) {
+                    //Rearrange style indices if required ...
+                    if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) {
+                        $this->language_data['STYLES']['NUMBERS'][$i] =
+                            $this->language_data['STYLES']['NUMBERS'][1<<$i];
+                        unset($this->language_data['STYLES']['NUMBERS'][1<<$i]);
+                    }
+
+                    //Check if this bit is set for highlighting
+                    if($j&1) {
+                        //So this bit is set ...
+                        //Check if it belongs to group 0 or the actual stylegroup
+                        if(isset($this->language_data['STYLES']['NUMBERS'][$i])) {
+                            $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i;
+                        } else {
+                            if(!isset($this->language_data['NUMBERS_CACHE'][0])) {
+                                $this->language_data['NUMBERS_CACHE'][0] = 0;
+                            }
+                            $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate.
+     * This function makes stylesheet generators much faster as they do not need these caches.
+     *
+     * @since 1.0.8
+     * @access private
+     */
+    function build_parse_cache() {
+        // cache symbol regexp
+        //As this is a costy operation, we avoid doing it for multiple groups ...
+        //Instead we perform it for all symbols at once.
+        //
+        //For this to work, we need to reorganize the data arrays.
+        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
+            $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1;
+
+            $this->language_data['SYMBOL_DATA'] = array();
+            $symbol_preg_multi = array(); // multi char symbols
+            $symbol_preg_single = array(); // single char symbols
+            foreach ($this->language_data['SYMBOLS'] as $key => $symbols) {
+                if (is_array($symbols)) {
+                    foreach ($symbols as $sym) {
+                        $sym = $this->hsc($sym);
+                        if (!isset($this->language_data['SYMBOL_DATA'][$sym])) {
+                            $this->language_data['SYMBOL_DATA'][$sym] = $key;
+                            if (isset($sym[1])) { // multiple chars
+                                $symbol_preg_multi[] = preg_quote($sym, '/');
+                            } else { // single char
+                                if ($sym == '-') {
+                                    // don't trigger range out of order error
+                                    $symbol_preg_single[] = '\-';
+                                } else {
+                                    $symbol_preg_single[] = preg_quote($sym, '/');
+                                }
+                            }
+                        }
+                    }
+                } else {
+                    $symbols = $this->hsc($symbols);
+                    if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) {
+                        $this->language_data['SYMBOL_DATA'][$symbols] = 0;
+                        if (isset($symbols[1])) { // multiple chars
+                            $symbol_preg_multi[] = preg_quote($symbols, '/');
+                        } elseif ($symbols == '-') {
+                            // don't trigger range out of order error
+                            $symbol_preg_single[] = '\-';
+                        } else { // single char
+                            $symbol_preg_single[] = preg_quote($symbols, '/');
+                        }
+                    }
+                }
+            }
+
+            //Now we have an array with each possible symbol as the key and the style as the actual data.
+            //This way we can set the correct style just the moment we highlight ...
+            //
+            //Now we need to rewrite our array to get a search string that
+            $symbol_preg = array();
+            if (!empty($symbol_preg_multi)) {
+                rsort($symbol_preg_multi);
+                $symbol_preg[] = implode('|', $symbol_preg_multi);
+            }
+            if (!empty($symbol_preg_single)) {
+                rsort($symbol_preg_single);
+                $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
+            }
+            $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg);
+        }
+
+        // cache optimized regexp for keyword matching
+        // remove old cache
+        $this->language_data['CACHED_KEYWORD_LISTS'] = array();
+        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
+            if (!isset($this->lexic_permissions['KEYWORDS'][$key]) ||
+                    $this->lexic_permissions['KEYWORDS'][$key]) {
+                $this->optimize_keyword_group($key);
+            }
+        }
+
+        // brackets
+        if ($this->lexic_permissions['BRACKETS']) {
+            $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}');
+            if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) {
+                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#91;|>',
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#93;|>',
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#40;|>',
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#41;|>',
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#123;|>',
+                    '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#125;|>',
+                );
+            }
+            else {
+                $this->language_data['CACHE_BRACKET_REPLACE'] = array(
+                    '<| class="br0">&#91;|>',
+                    '<| class="br0">&#93;|>',
+                    '<| class="br0">&#40;|>',
+                    '<| class="br0">&#41;|>',
+                    '<| class="br0">&#123;|>',
+                    '<| class="br0">&#125;|>',
+                );
+            }
+        }
+
+        //Build the parse cache needed to highlight numbers appropriate
+        if($this->lexic_permissions['NUMBERS']) {
+            //Check if the style rearrangements have been processed ...
+            //This also does some preprocessing to check which style groups are useable ...
+            if(!isset($this->language_data['NUMBERS_CACHE'])) {
+                $this->build_style_cache();
+            }
+
+            //Number format specification
+            //All this formats are matched case-insensitively!
+            static $numbers_format = array(
+                GESHI_NUMBER_INT_BASIC =>
+                    '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_INT_CSTYLE =>
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_BIN_SUFFIX =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?[bB](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_BIN_PREFIX_PERCENT =>
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_BIN_PREFIX_0B =>
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_OCT_PREFIX =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_OCT_PREFIX_0O =>
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0o[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_OCT_PREFIX_AT =>
+                    '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])\@[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_OCT_SUFFIX =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_HEX_PREFIX =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_HEX_PREFIX_DOLLAR =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\$[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_HEX_SUFFIX =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-fA-F]*?[hH](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_FLT_NONSCI =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_FLT_NONSCI_F =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_FLT_SCI_SHORT =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
+                GESHI_NUMBER_FLT_SCI_ZERO =>
+                    '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
+                );
+
+            //At this step we have an associative array with flag groups for a
+            //specific style or an string denoting a regexp given its index.
+            $this->language_data['NUMBERS_RXCACHE'] = array();
+            foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) {
+                if(is_string($rxdata)) {
+                    $regexp = $rxdata;
+                } else {
+                    //This is a bitfield of number flags to highlight:
+                    //Build an array, implode them together and make this the actual RX
+                    $rxuse = array();
+                    for($i = 1; $i <= $rxdata; $i<<=1) {
+                        if($rxdata & $i) {
+                            $rxuse[] = $numbers_format[$i];
+                        }
+                    }
+                    $regexp = implode("|", $rxuse);
+                }
+
+                $this->language_data['NUMBERS_RXCACHE'][$key] =
+                    "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; //
+            }
+
+            if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) {
+                $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#';
+            }
+        }
+
+        $this->parse_cache_built = true;
+    }
+
+    /**
+     * Returns the code in $this->source, highlighted and surrounded by the
+     * nessecary HTML.
+     *
+     * This should only be called ONCE, cos it's SLOW! If you want to highlight
+     * the same source multiple times, you're better off doing a whole lot of
+     * str_replaces to replace the &lt;span&gt;s
+     *
+     * @since 1.0.0
+     */
+    function parse_code () {
+        // Start the timer
+        $start_time = microtime();
+
+        // Replace all newlines to a common form.
+        $code = str_replace("\r\n", "\n", $this->source);
+        $code = str_replace("\r", "\n", $code);
+
+        // Firstly, if there is an error, we won't highlight
+        if ($this->error) {
+            //Escape the source for output
+            $result = $this->hsc($this->source);
+
+            //This fix is related to SF#1923020, but has to be applied regardless of
+            //actually highlighting symbols.
+            $result = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $result);
+
+            // Timing is irrelevant
+            $this->set_time($start_time, $start_time);
+            $this->finalise($result);
+            return $result;
+        }
+
+        // make sure the parse cache is up2date
+        if (!$this->parse_cache_built) {
+            $this->build_parse_cache();
+        }
+
+        // Initialise various stuff
+        $length           = strlen($code);
+        $COMMENT_MATCHED  = false;
+        $stuff_to_parse   = '';
+        $endresult        = '';
+
+        // "Important" selections are handled like multiline comments
+        // @todo GET RID OF THIS SHIZ
+        if ($this->enable_important_blocks) {
+            $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT;
+        }
+
+        if ($this->strict_mode) {
+            // Break the source into bits. Each bit will be a portion of the code
+            // within script delimiters - for example, HTML between < and >
+            $k = 0;
+            $parts = array();
+            $matches = array();
+            $next_match_pointer = null;
+            // we use a copy to unset delimiters on demand (when they are not found)
+            $delim_copy = $this->language_data['SCRIPT_DELIMITERS'];
+            $i = 0;
+            while ($i < $length) {
+                $next_match_pos = $length + 1; // never true
+                foreach ($delim_copy as $dk => $delimiters) {
+                    if(is_array($delimiters)) {
+                        foreach ($delimiters as $open => $close) {
+                            // make sure the cache is setup properly
+                            if (!isset($matches[$dk][$open])) {
+                                $matches[$dk][$open] = array(
+                                    'next_match' => -1,
+                                    'dk' => $dk,
+
+                                    'open' => $open, // needed for grouping of adjacent code blocks (see below)
+                                    'open_strlen' => strlen($open),
+
+                                    'close' => $close,
+                                    'close_strlen' => strlen($close),
+                                );
+                            }
+                            // Get the next little bit for this opening string
+                            if ($matches[$dk][$open]['next_match'] < $i) {
+                                // only find the next pos if it was not already cached
+                                $open_pos = strpos($code, $open, $i);
+                                if ($open_pos === false) {
+                                    // no match for this delimiter ever
+                                    unset($delim_copy[$dk][$open]);
+                                    continue;
+                                }
+                                $matches[$dk][$open]['next_match'] = $open_pos;
+                            }
+                            if ($matches[$dk][$open]['next_match'] < $next_match_pos) {
+                                //So we got a new match, update the close_pos
+                                $matches[$dk][$open]['close_pos'] =
+                                    strpos($code, $close, $matches[$dk][$open]['next_match']+1);
+
+                                $next_match_pointer =& $matches[$dk][$open];
+                                $next_match_pos = $matches[$dk][$open]['next_match'];
+                            }
+                        }
+                    } else {
+                        //So we should match an RegExp as Strict Block ...
+                        /**
+                         * The value in $delimiters is expected to be an RegExp
+                         * containing exactly 2 matching groups:
+                         *  - Group 1 is the opener
+                         *  - Group 2 is the closer
+                         */
+                        if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work.
+                            preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
+                            //We got a match ...
+                            if(isset($matches_rx['start']) && isset($matches_rx['end']))
+                            {
+                                $matches[$dk] = array(
+                                    'next_match' => $matches_rx['start'][1],
+                                    'dk' => $dk,
+
+                                    'close_strlen' => strlen($matches_rx['end'][0]),
+                                    'close_pos' => $matches_rx['end'][1],
+                                    );
+                            } else {
+                                $matches[$dk] = array(
+                                    'next_match' => $matches_rx[1][1],
+                                    'dk' => $dk,
+
+                                    'close_strlen' => strlen($matches_rx[2][0]),
+                                    'close_pos' => $matches_rx[2][1],
+                                    );
+                            }
+                        } else {
+                            // no match for this delimiter ever
+                            unset($delim_copy[$dk]);
+                            continue;
+                        }
+
+                        if ($matches[$dk]['next_match'] <= $next_match_pos) {
+                            $next_match_pointer =& $matches[$dk];
+                            $next_match_pos = $matches[$dk]['next_match'];
+                        }
+                    }
+                }
+
+                // non-highlightable text
+                $parts[$k] = array(
+                    1 => substr($code, $i, $next_match_pos - $i)
+                );
+                ++$k;
+
+                if ($next_match_pos > $length) {
+                    // out of bounds means no next match was found
+                    break;
+                }
+
+                // highlightable code
+                $parts[$k][0] = $next_match_pointer['dk'];
+
+                //Only combine for non-rx script blocks
+                if(is_array($delim_copy[$next_match_pointer['dk']])) {
+                    // group adjacent script blocks, e.g. <foobar><asdf> should be one block, not three!
+                    $i = $next_match_pos + $next_match_pointer['open_strlen'];
+                    while (true) {
+                        $close_pos = strpos($code, $next_match_pointer['close'], $i);
+                        if ($close_pos == false) {
+                            break;
+                        }
+                        $i = $close_pos + $next_match_pointer['close_strlen'];
+                        if ($i == $length) {
+                            break;
+                        }
+                        if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 ||
+                            substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) {
+                            // merge adjacent but make sure we don't merge things like <tag><!-- comment -->
+                            foreach ($matches as $submatches) {
+                                foreach ($submatches as $match) {
+                                    if ($match['next_match'] == $i) {
+                                        // a different block already matches here!
+                                        break 3;
+                                    }
+                                }
+                            }
+                        } else {
+                            break;
+                        }
+                    }
+                } else {
+                    $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen'];
+                    $i = $close_pos;
+                }
+
+                if ($close_pos === false) {
+                    // no closing delimiter found!
+                    $parts[$k][1] = substr($code, $next_match_pos);
+                    ++$k;
+                    break;
+                } else {
+                    $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos);
+                    ++$k;
+                }
+            }
+            unset($delim_copy, $next_match_pointer, $next_match_pos, $matches);
+            $num_parts = $k;
+
+            if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) {
+                // when we have only one part, we don't have anything to highlight at all.
+                // if we have a "maybe" strict language, this should be handled as highlightable code
+                $parts = array(
+                    0 => array(
+                        0 => '',
+                        1 => ''
+                    ),
+                    1 => array(
+                        0 => null,
+                        1 => $parts[0][1]
+                    )
+                );
+                $num_parts = 2;
+            }
+
+        } else {
+            // Not strict mode - simply dump the source into
+            // the array at index 1 (the first highlightable block)
+            $parts = array(
+                0 => array(
+                    0 => '',
+                    1 => ''
+                ),
+                1 => array(
+                    0 => null,
+                    1 => $code
+                )
+            );
+            $num_parts = 2;
+        }
+
+        //Unset variables we won't need any longer
+        unset($code);
+
+        //Preload some repeatedly used values regarding hardquotes ...
+        $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false;
+        $hq_strlen = strlen($hq);
+
+        //Preload if line numbers are to be generated afterwards
+        //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398
+        $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS ||
+            !empty($this->highlight_extra_lines) || !$this->allow_multiline_span;
+
+        //preload the escape char for faster checking ...
+        $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']);
+
+        // this is used for single-line comments
+        $sc_disallowed_before = "";
+        $sc_disallowed_after = "";
+
+        if (isset($this->language_data['PARSER_CONTROL'])) {
+            if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) {
+                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) {
+                    $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'];
+                }
+                if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) {
+                    $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'];
+                }
+            }
+        }
+
+        //Fix for SF#1932083: Multichar Quotemarks unsupported
+        $is_string_starter = array();
+        if ($this->lexic_permissions['STRINGS']) {
+            foreach ($this->language_data['QUOTEMARKS'] as $quotemark) {
+                if (!isset($is_string_starter[$quotemark[0]])) {
+                    $is_string_starter[$quotemark[0]] = (string)$quotemark;
+                } elseif (is_string($is_string_starter[$quotemark[0]])) {
+                    $is_string_starter[$quotemark[0]] = array(
+                        $is_string_starter[$quotemark[0]],
+                        $quotemark);
+                } else {
+                    $is_string_starter[$quotemark[0]][] = $quotemark;
+                }
+            }
+        }
+
+        // Now we go through each part. We know that even-indexed parts are
+        // code that shouldn't be highlighted, and odd-indexed parts should
+        // be highlighted
+        for ($key = 0; $key < $num_parts; ++$key) {
+            $STRICTATTRS = '';
+
+            // If this block should be highlighted...
+            if (!($key & 1)) {
+                // Else not a block to highlight
+                $endresult .= $this->hsc($parts[$key][1]);
+                unset($parts[$key]);
+                continue;
+            }
+
+            $result = '';
+            $part = $parts[$key][1];
+
+            $highlight_part = true;
+            if ($this->strict_mode && !is_null($parts[$key][0])) {
+                // get the class key for this block of code
+                $script_key = $parts[$key][0];
+                $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key];
+                if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' &&
+                    $this->lexic_permissions['SCRIPT']) {
+                    // Add a span element around the source to
+                    // highlight the overall source block
+                    if (!$this->use_classes &&
+                        $this->language_data['STYLES']['SCRIPT'][$script_key] != '') {
+                        $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"';
+                    } else {
+                        $attributes = ' class="sc' . $script_key . '"';
+                    }
+                    $result .= "<span$attributes>";
+                    $STRICTATTRS = $attributes;
+                }
+            }
+
+            if ($highlight_part) {
+                // Now, highlight the code in this block. This code
+                // is really the engine of GeSHi (along with the method
+                // parse_non_string_part).
+
+                // cache comment regexps incrementally
+                $next_comment_regexp_key = '';
+                $next_comment_regexp_pos = -1;
+                $next_comment_multi_pos = -1;
+                $next_comment_single_pos = -1;
+                $comment_regexp_cache_per_key = array();
+                $comment_multi_cache_per_key = array();
+                $comment_single_cache_per_key = array();
+                $next_open_comment_multi = '';
+                $next_comment_single_key = '';
+                $escape_regexp_cache_per_key = array();
+                $next_escape_regexp_key = '';
+                $next_escape_regexp_pos = -1;
+
+                $length = strlen($part);
+                for ($i = 0; $i < $length; ++$i) {
+                    // Get the next char
+                    $char = $part[$i];
+                    $char_len = 1;
+
+                    // update regexp comment cache if needed
+                    if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
+                        $next_comment_regexp_pos = $length;
+                        foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
+                            $match_i = false;
+                            if (isset($comment_regexp_cache_per_key[$comment_key]) &&
+                                ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i ||
+                                 $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) {
+                                // we have already matched something
+                                if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) {
+                                    // this comment is never matched
+                                    continue;
+                                }
+                                $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
+                            } elseif (
+                                //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
+                                (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) ||
+                                (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i))
+                                ) {
+                                $match_i = $match[0][1];
+                                if (GESHI_PHP_PRE_433) {
+                                    $match_i += $i;
+                                }
+
+                                $comment_regexp_cache_per_key[$comment_key] = array(
+                                    'key' => $comment_key,
+                                    'length' => strlen($match[0][0]),
+                                    'pos' => $match_i
+                                );
+                            } else {
+                                $comment_regexp_cache_per_key[$comment_key]['pos'] = false;
+                                continue;
+                            }
+
+                            if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
+                                $next_comment_regexp_pos = $match_i;
+                                $next_comment_regexp_key = $comment_key;
+                                if ($match_i === $i) {
+                                    break;
+                                }
+                            }
+                        }
+                    }
+
+                    $string_started = false;
+
+                    if (isset($is_string_starter[$char])) {
+                        // Possibly the start of a new string ...
+
+                        //Check which starter it was ...
+                        //Fix for SF#1932083: Multichar Quotemarks unsupported
+                        if (is_array($is_string_starter[$char])) {
+                            $char_new = '';
+                            foreach ($is_string_starter[$char] as $testchar) {
+                                if ($testchar === substr($part, $i, strlen($testchar)) &&
+                                    strlen($testchar) > strlen($char_new)) {
+                                    $char_new = $testchar;
+                                    $string_started = true;
+                                }
+                            }
+                            if ($string_started) {
+                                $char = $char_new;
+                            }
+                        } else {
+                            $testchar = $is_string_starter[$char];
+                            if ($testchar === substr($part, $i, strlen($testchar))) {
+                                $char = $testchar;
+                                $string_started = true;
+                            }
+                        }
+                        $char_len = strlen($char);
+                    }
+
+                    if ($string_started && ($i != $next_comment_regexp_pos)) {
+                        // Hand out the correct style information for this string
+                        $string_key = array_search($char, $this->language_data['QUOTEMARKS']);
+                        if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) ||
+                            !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) {
+                            $string_key = 0;
+                        }
+
+                        // parse the stuff before this
+                        $result .= $this->parse_non_string_part($stuff_to_parse);
+                        $stuff_to_parse = '';
+
+                        if (!$this->use_classes) {
+                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"';
+                        } else {
+                            $string_attributes = ' class="st'.$string_key.'"';
+                        }
+
+                        // now handle the string
+                        $string = "<span$string_attributes>" . GeSHi::hsc($char);
+                        $start = $i + $char_len;
+                        $string_open = true;
+
+                        if(empty($this->language_data['ESCAPE_REGEXP'])) {
+                            $next_escape_regexp_pos = $length;
+                        }
+
+                        do {
+                            //Get the regular ending pos ...
+                            $close_pos = strpos($part, $char, $start);
+                            if(false === $close_pos) {
+                                $close_pos = $length;
+                            }
+
+                            if($this->lexic_permissions['ESCAPE_CHAR']) {
+                                // update escape regexp cache if needed
+                                if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) {
+                                    $next_escape_regexp_pos = $length;
+                                    foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) {
+                                        $match_i = false;
+                                        if (isset($escape_regexp_cache_per_key[$escape_key]) &&
+                                            ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start ||
+                                             $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) {
+                                            // we have already matched something
+                                            if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) {
+                                                // this comment is never matched
+                                                continue;
+                                            }
+                                            $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
+                                        } elseif (
+                                            //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible
+                                            (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $start), $match, PREG_OFFSET_CAPTURE)) ||
+                                            (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start))
+                                            ) {
+                                            $match_i = $match[0][1];
+                                            if (GESHI_PHP_PRE_433) {
+                                                $match_i += $start;
+                                            }
+
+                                            $escape_regexp_cache_per_key[$escape_key] = array(
+                                                'key' => $escape_key,
+                                                'length' => strlen($match[0][0]),
+                                                'pos' => $match_i
+                                            );
+                                        } else {
+                                            $escape_regexp_cache_per_key[$escape_key]['pos'] = false;
+                                            continue;
+                                        }
+
+                                        if ($match_i !== false && $match_i < $next_escape_regexp_pos) {
+                                            $next_escape_regexp_pos = $match_i;
+                                            $next_escape_regexp_key = $escape_key;
+                                            if ($match_i === $start) {
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+
+                                //Find the next simple escape position
+                                if('' != $this->language_data['ESCAPE_CHAR']) {
+                                    $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start);
+                                    if(false === $simple_escape) {
+                                        $simple_escape = $length;
+                                    }
+                                } else {
+                                    $simple_escape = $length;
+                                }
+                            } else {
+                                $next_escape_regexp_pos = $length;
+                                $simple_escape = $length;
+                            }
+
+                            if($simple_escape < $next_escape_regexp_pos &&
+                                $simple_escape < $length &&
+                                $simple_escape < $close_pos) {
+                                //The nexxt escape sequence is a simple one ...
+                                $es_pos = $simple_escape;
+
+                                //Add the stuff not in the string yet ...
+                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
+
+                                //Get the style for this escaped char ...
+                                if (!$this->use_classes) {
+                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"';
+                                } else {
+                                    $escape_char_attributes = ' class="es0"';
+                                }
+
+                                //Add the style for the escape char ...
+                                $string .= "<span$escape_char_attributes>" .
+                                    GeSHi::hsc($this->language_data['ESCAPE_CHAR']);
+
+                                //Get the byte AFTER the ESCAPE_CHAR we just found
+                                $es_char = $part[$es_pos + 1];
+                                if ($es_char == "\n") {
+                                    // don't put a newline around newlines
+                                    $string .= "</span>\n";
+                                    $start = $es_pos + 2;
+                                } elseif (ord($es_char) >= 128) {
+                                    //This is an non-ASCII char (UTF8 or single byte)
+                                    //This code tries to work around SF#2037598 ...
+                                    if(function_exists('mb_substr')) {
+                                        $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
+                                        $string .= $es_char_m . '</span>';
+                                    } elseif (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) {
+                                        if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
+                                            "|\xE0[\xA0-\xBF][\x80-\xBF]".
+                                            "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}".
+                                            "|\xED[\x80-\x9F][\x80-\xBF]".
+                                            "|\xF0[\x90-\xBF][\x80-\xBF]{2}".
+                                            "|[\xF1-\xF3][\x80-\xBF]{3}".
+                                            "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s",
+                                            $part, $es_char_m, null, $es_pos + 1)) {
+                                            $es_char_m = $es_char_m[0];
+                                        } else {
+                                            $es_char_m = $es_char;
+                                        }
+                                        $string .= $this->hsc($es_char_m) . '</span>';
+                                    } else {
+                                        $es_char_m = $this->hsc($es_char);
+                                    }
+                                    $start = $es_pos + strlen($es_char_m) + 1;
+                                } else {
+                                    $string .= $this->hsc($es_char) . '</span>';
+                                    $start = $es_pos + 2;
+                                }
+                            } elseif ($next_escape_regexp_pos < $length &&
+                                $next_escape_regexp_pos < $close_pos) {
+                                $es_pos = $next_escape_regexp_pos;
+                                //Add the stuff not in the string yet ...
+                                $string .= $this->hsc(substr($part, $start, $es_pos - $start));
+
+                                //Get the key and length of this match ...
+                                $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key];
+                                $escape_str = substr($part, $es_pos, $escape['length']);
+                                $escape_key = $escape['key'];
+
+                                //Get the style for this escaped char ...
+                                if (!$this->use_classes) {
+                                    $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"';
+                                } else {
+                                    $escape_char_attributes = ' class="es' . $escape_key . '"';
+                                }
+
+                                //Add the style for the escape char ...
+                                $string .= "<span$escape_char_attributes>" .
+                                    $this->hsc($escape_str) . '</span>';
+
+                                $start = $es_pos + $escape['length'];
+                            } else {
+                                //Copy the remainder of the string ...
+                                $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . '</span>';
+                                $start = $close_pos + $char_len;
+                                $string_open = false;
+                            }
+                        } while($string_open);
+
+                        if ($check_linenumbers) {
+                            // Are line numbers used? If, we should end the string before
+                            // the newline and begin it again (so when <li>s are put in the source
+                            // remains XHTML compliant)
+                            // note to self: This opens up possibility of config files specifying
+                            // that languages can/cannot have multiline strings???
+                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
+                        }
+
+                        $result .= $string;
+                        $string = '';
+                        $i = $start - 1;
+                        continue;
+                    } elseif ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char &&
+                        substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) {
+                        // The start of a hard quoted string
+                        if (!$this->use_classes) {
+                            $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"';
+                            $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"';
+                        } else {
+                            $string_attributes = ' class="st_h"';
+                            $escape_char_attributes = ' class="es_h"';
+                        }
+                        // parse the stuff before this
+                        $result .= $this->parse_non_string_part($stuff_to_parse);
+                        $stuff_to_parse = '';
+
+                        // now handle the string
+                        $string = '';
+
+                        // look for closing quote
+                        $start = $i + $hq_strlen;
+                        while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) {
+                            $start = $close_pos + 1;
+                            if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] &&
+                                (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape
+                                // make sure this quote is not escaped
+                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
+                                    if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) {
+                                        // check wether this quote is escaped or if it is something like '\\'
+                                        $escape_char_pos = $close_pos - 1;
+                                        while ($escape_char_pos > 0
+                                                && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) {
+                                            --$escape_char_pos;
+                                        }
+                                        if (($close_pos - $escape_char_pos) & 1) {
+                                            // uneven number of escape chars => this quote is escaped
+                                            continue 2;
+                                        }
+                                    }
+                                }
+                            }
+
+                            // found closing quote
+                            break;
+                        }
+
+                        //Found the closing delimiter?
+                        if (!$close_pos) {
+                            // span till the end of this $part when no closing delimiter is found
+                            $close_pos = $length;
+                        }
+
+                        //Get the actual string
+                        $string = substr($part, $i, $close_pos - $i + 1);
+                        $i = $close_pos;
+
+                        // handle escape chars and encode html chars
+                        // (special because when we have escape chars within our string they may not be escaped)
+                        if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) {
+                            $start = 0;
+                            $new_string = '';
+                            while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) {
+                                // hmtl escape stuff before
+                                $new_string .= $this->hsc(substr($string, $start, $es_pos - $start));
+                                // check if this is a hard escape
+                                foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
+                                    if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) {
+                                        // indeed, this is a hardescape
+                                        $new_string .= "<span$escape_char_attributes>" .
+                                            $this->hsc($hardescape) . '</span>';
+                                        $start = $es_pos + strlen($hardescape);
+                                        continue 2;
+                                    }
+                                }
+                                // not a hard escape, but a normal escape
+                                // they come in pairs of two
+                                $c = 0;
+                                while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1])
+                                    && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR']
+                                    && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) {
+                                    $c += 2;
+                                }
+                                if ($c) {
+                                    $new_string .= "<span$escape_char_attributes>" .
+                                        str_repeat($escaped_escape_char, $c) .
+                                        '</span>';
+                                    $start = $es_pos + $c;
+                                } else {
+                                    // this is just a single lonely escape char...
+                                    $new_string .= $escaped_escape_char;
+                                    $start = $es_pos + 1;
+                                }
+                            }
+                            $string = $new_string . $this->hsc(substr($string, $start));
+                        } else {
+                            $string = $this->hsc($string);
+                        }
+
+                        if ($check_linenumbers) {
+                            // Are line numbers used? If, we should end the string before
+                            // the newline and begin it again (so when <li>s are put in the source
+                            // remains XHTML compliant)
+                            // note to self: This opens up possibility of config files specifying
+                            // that languages can/cannot have multiline strings???
+                            $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
+                        }
+
+                        $result .= "<span$string_attributes>" . $string . '</span>';
+                        $string = '';
+                        continue;
+                    } else {
+                        //Have a look for regexp comments
+                        if ($i == $next_comment_regexp_pos) {
+                            $COMMENT_MATCHED = true;
+                            $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key];
+                            $test_str = $this->hsc(substr($part, $i, $comment['length']));
+
+                            //@todo If remove important do remove here
+                            if ($this->lexic_permissions['COMMENTS']['MULTI']) {
+                                if (!$this->use_classes) {
+                                    $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"';
+                                } else {
+                                    $attributes = ' class="co' . $comment['key'] . '"';
+                                }
+
+                                $test_str = "<span$attributes>" . $test_str . "</span>";
+
+                                // Short-cut through all the multiline code
+                                if ($check_linenumbers) {
+                                    // strreplace to put close span and open span around multiline newlines
+                                    $test_str = str_replace(
+                                        "\n", "</span>\n<span$attributes>",
+                                        str_replace("\n ", "\n&nbsp;", $test_str)
+                                    );
+                                }
+                            }
+
+                            $i += $comment['length'] - 1;
+
+                            // parse the rest
+                            $result .= $this->parse_non_string_part($stuff_to_parse);
+                            $stuff_to_parse = '';
+                        }
+
+                        // If we haven't matched a regexp comment, try multi-line comments
+                        if (!$COMMENT_MATCHED) {
+                            // Is this a multiline comment?
+                            if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) {
+                                $next_comment_multi_pos = $length;
+                                foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) {
+                                    $match_i = false;
+                                    if (isset($comment_multi_cache_per_key[$open]) &&
+                                        ($comment_multi_cache_per_key[$open] >= $i ||
+                                         $comment_multi_cache_per_key[$open] === false)) {
+                                        // we have already matched something
+                                        if ($comment_multi_cache_per_key[$open] === false) {
+                                            // this comment is never matched
+                                            continue;
+                                        }
+                                        $match_i = $comment_multi_cache_per_key[$open];
+                                    } elseif (($match_i = stripos($part, $open, $i)) !== false) {
+                                        $comment_multi_cache_per_key[$open] = $match_i;
+                                    } else {
+                                        $comment_multi_cache_per_key[$open] = false;
+                                        continue;
+                                    }
+                                    if ($match_i !== false && $match_i < $next_comment_multi_pos) {
+                                        $next_comment_multi_pos = $match_i;
+                                        $next_open_comment_multi = $open;
+                                        if ($match_i === $i) {
+                                            break;
+                                        }
+                                    }
+                                }
+                            }
+                            if ($i == $next_comment_multi_pos) {
+                                $open = $next_open_comment_multi;
+                                $close = $this->language_data['COMMENT_MULTI'][$open];
+                                $open_strlen = strlen($open);
+                                $close_strlen = strlen($close);
+                                $COMMENT_MATCHED = true;
+                                $test_str_match = $open;
+                                //@todo If remove important do remove here
+                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
+                                    $open == GESHI_START_IMPORTANT) {
+                                    if ($open != GESHI_START_IMPORTANT) {
+                                        if (!$this->use_classes) {
+                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"';
+                                        } else {
+                                            $attributes = ' class="coMULTI"';
+                                        }
+                                        $test_str = "<span$attributes>" . $this->hsc($open);
+                                    } else {
+                                        if (!$this->use_classes) {
+                                            $attributes = ' style="' . $this->important_styles . '"';
+                                        } else {
+                                            $attributes = ' class="imp"';
+                                        }
+
+                                        // We don't include the start of the comment if it's an
+                                        // "important" part
+                                        $test_str = "<span$attributes>";
+                                    }
+                                } else {
+                                    $test_str = $this->hsc($open);
+                                }
+
+                                $close_pos = strpos( $part, $close, $i + $open_strlen );
+
+                                if ($close_pos === false) {
+                                    $close_pos = $length;
+                                }
+
+                                // Short-cut through all the multiline code
+                                $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen));
+                                if (($this->lexic_permissions['COMMENTS']['MULTI'] ||
+                                    $test_str_match == GESHI_START_IMPORTANT) &&
+                                    $check_linenumbers) {
+
+                                    // strreplace to put close span and open span around multiline newlines
+                                    $test_str .= str_replace(
+                                        "\n", "</span>\n<span$attributes>",
+                                        str_replace("\n ", "\n&nbsp;", $rest_of_comment)
+                                    );
+                                } else {
+                                    $test_str .= $rest_of_comment;
+                                }
+
+                                if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
+                                    $test_str_match == GESHI_START_IMPORTANT) {
+                                    $test_str .= '</span>';
+                                }
+
+                                $i = $close_pos + $close_strlen - 1;
+
+                                // parse the rest
+                                $result .= $this->parse_non_string_part($stuff_to_parse);
+                                $stuff_to_parse = '';
+                            }
+                        }
+
+                        // If we haven't matched a multiline comment, try single-line comments
+                        if (!$COMMENT_MATCHED) {
+                            // cache potential single line comment occurances
+                            if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) {
+                                $next_comment_single_pos = $length;
+                                foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) {
+                                    $match_i = false;
+                                    if (isset($comment_single_cache_per_key[$comment_key]) &&
+                                        ($comment_single_cache_per_key[$comment_key] >= $i ||
+                                         $comment_single_cache_per_key[$comment_key] === false)) {
+                                        // we have already matched something
+                                        if ($comment_single_cache_per_key[$comment_key] === false) {
+                                            // this comment is never matched
+                                            continue;
+                                        }
+                                        $match_i = $comment_single_cache_per_key[$comment_key];
+                                    } elseif (
+                                        // case sensitive comments
+                                        ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
+                                        ($match_i = stripos($part, $comment_mark, $i)) !== false) ||
+                                        // non case sensitive
+                                        (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
+                                          (($match_i = strpos($part, $comment_mark, $i)) !== false))) {
+                                        $comment_single_cache_per_key[$comment_key] = $match_i;
+                                    } else {
+                                        $comment_single_cache_per_key[$comment_key] = false;
+                                        continue;
+                                    }
+                                    if ($match_i !== false && $match_i < $next_comment_single_pos) {
+                                        $next_comment_single_pos = $match_i;
+                                        $next_comment_single_key = $comment_key;
+                                        if ($match_i === $i) {
+                                            break;
+                                        }
+                                    }
+                                }
+                            }
+                            if ($next_comment_single_pos == $i) {
+                                $comment_key = $next_comment_single_key;
+                                $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key];
+                                $com_len = strlen($comment_mark);
+
+                                // This check will find special variables like $# in bash
+                                // or compiler directives of Delphi beginning {$
+                                if ((empty($sc_disallowed_before) || ($i == 0) ||
+                                    (false === strpos($sc_disallowed_before, $part[$i-1]))) &&
+                                    (empty($sc_disallowed_after) || ($length <= $i + $com_len) ||
+                                    (false === strpos($sc_disallowed_after, $part[$i + $com_len]))))
+                                {
+                                    // this is a valid comment
+                                    $COMMENT_MATCHED = true;
+                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
+                                        if (!$this->use_classes) {
+                                            $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"';
+                                        } else {
+                                            $attributes = ' class="co' . $comment_key . '"';
+                                        }
+                                        $test_str = "<span$attributes>" . $this->hsc($this->change_case($comment_mark));
+                                    } else {
+                                        $test_str = $this->hsc($comment_mark);
+                                    }
+
+                                    //Check if this comment is the last in the source
+                                    $close_pos = strpos($part, "\n", $i);
+                                    $oops = false;
+                                    if ($close_pos === false) {
+                                        $close_pos = $length;
+                                        $oops = true;
+                                    }
+                                    $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len));
+                                    if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
+                                        $test_str .= "</span>";
+                                    }
+
+                                    // Take into account that the comment might be the last in the source
+                                    if (!$oops) {
+                                      $test_str .= "\n";
+                                    }
+
+                                    $i = $close_pos;
+
+                                    // parse the rest
+                                    $result .= $this->parse_non_string_part($stuff_to_parse);
+                                    $stuff_to_parse = '';
+                                }
+                            }
+                        }
+                    }
+
+                    // Where are we adding this char?
+                    if (!$COMMENT_MATCHED) {
+                        $stuff_to_parse .= $char;
+                    } else {
+                        $result .= $test_str;
+                        unset($test_str);
+                        $COMMENT_MATCHED = false;
+                    }
+                }
+                // Parse the last bit
+                $result .= $this->parse_non_string_part($stuff_to_parse);
+                $stuff_to_parse = '';
+            } else {
+                $result .= $this->hsc($part);
+            }
+            // Close the <span> that surrounds the block
+            if ($STRICTATTRS != '') {
+                $result = str_replace("\n", "</span>\n<span$STRICTATTRS>", $result);
+                $result .= '</span>';
+            }
+
+            $endresult .= $result;
+            unset($part, $parts[$key], $result);
+        }
+
+        //This fix is related to SF#1923020, but has to be applied regardless of
+        //actually highlighting symbols.
+        /** NOTE: memorypeak #3 */
+        $endresult = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $endresult);
+
+//        // Parse the last stuff (redundant?)
+//        $result .= $this->parse_non_string_part($stuff_to_parse);
+
+        // Lop off the very first and last spaces
+//        $result = substr($result, 1, -1);
+
+        // We're finished: stop timing
+        $this->set_time($start_time, microtime());
+
+        $this->finalise($endresult);
+        return $endresult;
+    }
+
+    /**
+     * Swaps out spaces and tabs for HTML indentation. Not needed if
+     * the code is in a pre block...
+     *
+     * @param  string The source to indent (reference!)
+     * @since  1.0.0
+     * @access private
+     */
+    function indent(&$result) {
+        /// Replace tabs with the correct number of spaces
+        if (false !== strpos($result, "\t")) {
+            $lines = explode("\n", $result);
+            $result = null;//Save memory while we process the lines individually
+            $tab_width = $this->get_real_tab_width();
+            $tab_string = '&nbsp;' . str_repeat(' ', $tab_width);
+
+            for ($key = 0, $n = count($lines); $key < $n; $key++) {
+                $line = $lines[$key];
+                if (false === strpos($line, "\t")) {
+                    continue;
+                }
+
+                $pos = 0;
+                $length = strlen($line);
+                $lines[$key] = ''; // reduce memory
+
+                $IN_TAG = false;
+                for ($i = 0; $i < $length; ++$i) {
+                    $char = $line[$i];
+                    // Simple engine to work out whether we're in a tag.
+                    // If we are we modify $pos. This is so we ignore HTML
+                    // in the line and only workout the tab replacement
+                    // via the actual content of the string
+                    // This test could be improved to include strings in the
+                    // html so that < or > would be allowed in user's styles
+                    // (e.g. quotes: '<' '>'; or similar)
+                    if ($IN_TAG) {
+                        if ('>' == $char) {
+                            $IN_TAG = false;
+                        }
+                        $lines[$key] .= $char;
+                    } elseif ('<' == $char) {
+                        $IN_TAG = true;
+                        $lines[$key] .= '<';
+                    } elseif ('&' == $char) {
+                        $substr = substr($line, $i + 3, 5);
+                        $posi = strpos($substr, ';');
+                        if (false === $posi) {
+                            ++$pos;
+                        } else {
+                            $pos -= $posi+2;
+                        }
+                        $lines[$key] .= $char;
+                    } elseif ("\t" == $char) {
+                        $str = '';
+                        // OPTIMISE - move $strs out. Make an array:
+                        // $tabs = array(
+                        //  1 => '&nbsp;',
+                        //  2 => '&nbsp; ',
+                        //  3 => '&nbsp; &nbsp;' etc etc
+                        // to use instead of building a string every time
+                        $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop
+                        if (($pos & 1) || 1 == $tab_end_width) {
+                            $str .= substr($tab_string, 6, $tab_end_width);
+                        } else {
+                            $str .= substr($tab_string, 0, $tab_end_width+5);
+                        }
+                        $lines[$key] .= $str;
+                        $pos += $tab_end_width;
+
+                        if (false === strpos($line, "\t", $i + 1)) {
+                            $lines[$key] .= substr($line, $i + 1);
+                            break;
+                        }
+                    } elseif (0 == $pos && ' ' == $char) {
+                        $lines[$key] .= '&nbsp;';
+                        ++$pos;
+                    } else {
+                        $lines[$key] .= $char;
+                        ++$pos;
+                    }
+                }
+            }
+            $result = implode("\n", $lines);
+            unset($lines);//We don't need the lines separated beyond this --- free them!
+        }
+        // Other whitespace
+        // BenBE: Fix to reduce the number of replacements to be done
+        $result = preg_replace('/^ /m', '&nbsp;', $result);
+        $result = str_replace('  ', ' &nbsp;', $result);
+
+        if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
+            if ($this->line_ending === null) {
+                $result = nl2br($result);
+            } else {
+                $result = str_replace("\n", $this->line_ending, $result);
+            }
+        }
+    }
+
+    /**
+     * Changes the case of a keyword for those languages where a change is asked for
+     *
+     * @param  string The keyword to change the case of
+     * @return string The keyword with its case changed
+     * @since  1.0.0
+     * @access private
+     */
+    function change_case($instr) {
+        switch ($this->language_data['CASE_KEYWORDS']) {
+            case GESHI_CAPS_UPPER:
+                return strtoupper($instr);
+            case GESHI_CAPS_LOWER:
+                return strtolower($instr);
+            default:
+                return $instr;
+        }
+    }
+
+    /**
+     * Handles replacements of keywords to include markup and links if requested
+     *
+     * @param  string The keyword to add the Markup to
+     * @return The HTML for the match found
+     * @since  1.0.8
+     * @access private
+     *
+     * @todo   Get rid of ender in keyword links
+     */
+    function handle_keyword_replace($match) {
+        $k = $this->_kw_replace_group;
+        $keyword = $match[0];
+        $keyword_match = $match[1];
+
+        $before = '';
+        $after = '';
+
+        if ($this->keyword_links) {
+            // Keyword links have been ebabled
+
+            if (isset($this->language_data['URLS'][$k]) &&
+                $this->language_data['URLS'][$k] != '') {
+                // There is a base group for this keyword
+
+                // Old system: strtolower
+                //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword);
+                // New system: get keyword from language file to get correct case
+                if (!$this->language_data['CASE_SENSITIVE'][$k] &&
+                    strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) {
+                    foreach ($this->language_data['KEYWORDS'][$k] as $word) {
+                        if (strcasecmp($word, $keyword_match) == 0) {
+                            break;
+                        }
+                    }
+                } else {
+                    $word = $keyword_match;
+                }
+
+                $before = '<|UR1|"' .
+                    str_replace(
+                        array(
+                            '{FNAME}',
+                            '{FNAMEL}',
+                            '{FNAMEU}',
+                            '.'),
+                        array(
+                            str_replace('+', '%20', urlencode($this->hsc($word))),
+                            str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))),
+                            str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))),
+                            '<DOT>'),
+                        $this->language_data['URLS'][$k]
+                    ) . '">';
+                $after = '</a>';
+            }
+        }
+
+        return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after;
+    }
+
+    /**
+     * handles regular expressions highlighting-definitions with callback functions
+     *
+     * @note this is a callback, don't use it directly
+     *
+     * @param array the matches array
+     * @return The highlighted string
+     * @since 1.0.8
+     * @access private
+     */
+    function handle_regexps_callback($matches) {
+        // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'",
+        return  ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>';
+    }
+
+    /**
+     * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this
+     *
+     * @note this is a callback, don't use it directly
+     *
+     * @param array the matches array
+     * @return string
+     * @since 1.0.8
+     * @access private
+     */
+    function handle_multiline_regexps($matches) {
+        $before = $this->_hmr_before;
+        $after = $this->_hmr_after;
+        if ($this->_hmr_replace) {
+            $replace = $this->_hmr_replace;
+            $search = array();
+
+            foreach (array_keys($matches) as $k) {
+                $search[] = '\\' . $k;
+            }
+
+            $before = str_replace($search, $matches, $before);
+            $after = str_replace($search, $matches, $after);
+            $replace = str_replace($search, $matches, $replace);
+        } else {
+            $replace = $matches[0];
+        }
+        return $before
+                    . '<|!REG3XP' . $this->_hmr_key .'!>'
+                        . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace)
+                    . '|>'
+              . $after;
+    }
+
+    /**
+     * Takes a string that has no strings or comments in it, and highlights
+     * stuff like keywords, numbers and methods.
+     *
+     * @param string The string to parse for keyword, numbers etc.
+     * @since 1.0.0
+     * @access private
+     * @todo BUGGY! Why? Why not build string and return?
+     */
+    function parse_non_string_part($stuff_to_parse) {
+        $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse);
+
+        // Highlight keywords
+        $disallowed_before = "(?<![a-zA-Z0-9\$_\|\#|^&";
+        $disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
+        if ($this->lexic_permissions['STRINGS']) {
+            $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/');
+            $disallowed_before .= $quotemarks;
+            $disallowed_after .= $quotemarks;
+        }
+        $disallowed_before .= "])";
+        $disallowed_after .= "])";
+
+        $parser_control_pergroup = false;
+        if (isset($this->language_data['PARSER_CONTROL'])) {
+            if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
+                $x = 0; // check wether per-keyword-group parser_control is enabled
+                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
+                    $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
+                    ++$x;
+                }
+                if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
+                    $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
+                    ++$x;
+                }
+                $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0;
+            }
+        }
+
+        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
+            if (!isset($this->lexic_permissions['KEYWORDS'][$k]) ||
+                $this->lexic_permissions['KEYWORDS'][$k]) {
+
+                $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k];
+                $modifiers = $case_sensitive ? '' : 'i';
+
+                // NEW in 1.0.8 - per-keyword-group parser control
+                $disallowed_before_local = $disallowed_before;
+                $disallowed_after_local = $disallowed_after;
+                if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) {
+                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) {
+                        $disallowed_before_local =
+                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'];
+                    }
+
+                    if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) {
+                        $disallowed_after_local =
+                            $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'];
+                    }
+                }
+
+                $this->_kw_replace_group = $k;
+
+                //NEW in 1.0.8, the cached regexp list
+                // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks
+                for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set <  $set_length; ++$set) {
+                    $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set];
+                    // Might make a more unique string for putting the number in soon
+                    // Basically, we don't put the styles in yet because then the styles themselves will
+                    // get highlighted if the language has a CSS keyword in it (like CSS, for example ;))
+                    $stuff_to_parse = preg_replace_callback(
+                        "/$disallowed_before_local({$keywordset})(?!\<DOT\>(?:htm|php|aspx?))$disallowed_after_local/$modifiers",
+                        array($this, 'handle_keyword_replace'),
+                        $stuff_to_parse
+                        );
+                }
+            }
+        }
+
+        // Regular expressions
+        foreach ($this->language_data['REGEXPS'] as $key => $regexp) {
+            if ($this->lexic_permissions['REGEXPS'][$key]) {
+                if (is_array($regexp)) {
+                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                        // produce valid HTML when we match multiple lines
+                        $this->_hmr_replace = $regexp[GESHI_REPLACE];
+                        $this->_hmr_before = $regexp[GESHI_BEFORE];
+                        $this->_hmr_key = $key;
+                        $this->_hmr_after = $regexp[GESHI_AFTER];
+                        $stuff_to_parse = preg_replace_callback(
+                            "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}",
+                            array($this, 'handle_multiline_regexps'),
+                            $stuff_to_parse);
+                        $this->_hmr_replace = false;
+                        $this->_hmr_before = '';
+                        $this->_hmr_after = '';
+                    } else {
+                        $stuff_to_parse = preg_replace(
+                            '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS],
+                            $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER],
+                            $stuff_to_parse);
+                    }
+                } else {
+                    if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                        // produce valid HTML when we match multiple lines
+                        $this->_hmr_key = $key;
+                        $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/",
+                                              array($this, 'handle_multiline_regexps'), $stuff_to_parse);
+                        $this->_hmr_key = '';
+                    } else {
+                        $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse);
+                    }
+                }
+            }
+        }
+
+        // Highlight numbers. As of 1.0.8 we support different types of numbers
+        $numbers_found = false;
+
+        if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) {
+            $numbers_found = true;
+
+            //For each of the formats ...
+            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
+                //Check if it should be highlighted ...
+                $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse);
+            }
+        }
+
+        //
+        // Now that's all done, replace /[number]/ with the correct styles
+        //
+        foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
+            if (!$this->use_classes) {
+                $attributes = ' style="' .
+                    (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ?
+                    $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"';
+            } else {
+                $attributes = ' class="kw' . $k . '"';
+            }
+            $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse);
+        }
+
+        if ($numbers_found) {
+            // Put number styles in
+            foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
+                //Commented out for now, as this needs some review ...
+                //                if ($numbers_permissions & $id) {
+                //Get the appropriate style ...
+                //Checking for unset styles is done by the style cache builder ...
+                if (!$this->use_classes) {
+                    $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"';
+                } else {
+                    $attributes = ' class="nu'.$id.'"';
+                }
+
+                //Set in the correct styles ...
+                $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse);
+                //                }
+            }
+        }
+
+        // Highlight methods and fields in objects
+        if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) {
+            $oolang_spaces = "[\s]*";
+            $oolang_before = "";
+            $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*";
+            if (isset($this->language_data['PARSER_CONTROL'])) {
+                if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) {
+                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) {
+                        $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'];
+                    }
+                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) {
+                        $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'];
+                    }
+                    if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) {
+                        $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'];
+                    }
+                }
+            }
+
+            foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) {
+                if (false !== strpos($stuff_to_parse, $splitter)) {
+                    if (!$this->use_classes) {
+                        $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"';
+                    } else {
+                        $attributes = ' class="me' . $key . '"';
+                    }
+                    $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse);
+                }
+            }
+        }
+
+        //
+        // Highlight brackets. Yes, I've tried adding a semi-colon to this list.
+        // You try it, and see what happens ;)
+        // TODO: Fix lexic permissions not converting entities if shouldn't
+        // be highlighting regardless
+        //
+        if ($this->lexic_permissions['BRACKETS']) {
+            $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'],
+                              $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse );
+        }
+
+
+        //FIX for symbol highlighting ...
+        if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
+            //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp)
+            $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
+            $global_offset = 0;
+            for ($s_id = 0; $s_id < $n_symbols; ++$s_id) {
+                $symbol_match = $pot_symbols[$s_id][0][0];
+                if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) {
+                    // already highlighted blocks _must_ include either < or >
+                    // so if this conditional applies, we have to skip this match
+                    // BenBE: UNLESS the block contains <SEMI> or <PIPE>
+                    if(strpos($symbol_match, '<SEMI>') === false &&
+                        strpos($symbol_match, '<PIPE>') === false) {
+                        continue;
+                    }
+                }
+
+                // if we reach this point, we have a valid match which needs to be highlighted
+
+                $symbol_length = strlen($symbol_match);
+                $symbol_offset = $pot_symbols[$s_id][0][1];
+                unset($pot_symbols[$s_id]);
+                $symbol_end = $symbol_length + $symbol_offset;
+                $symbol_hl = "";
+
+                // if we have multiple styles, we have to handle them properly
+                if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) {
+                    $old_sym = -1;
+                    // Split the current stuff to replace into its atomic symbols ...
+                    preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER);
+                    foreach ($sym_match_syms[0] as $sym_ms) {
+                        //Check if consequtive symbols belong to the same group to save output ...
+                        if (isset($this->language_data['SYMBOL_DATA'][$sym_ms])
+                            && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) {
+                            if (-1 != $old_sym) {
+                                $symbol_hl .= "|>";
+                            }
+                            $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms];
+                            if (!$this->use_classes) {
+                                $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">';
+                            } else {
+                                $symbol_hl .= '<| class="sy' . $old_sym . '">';
+                            }
+                        }
+                        $symbol_hl .= $sym_ms;
+                    }
+                    unset($sym_match_syms);
+
+                    //Close remaining tags and insert the replacement at the right position ...
+                    //Take caution if symbol_hl is empty to avoid doubled closing spans.
+                    if (-1 != $old_sym) {
+                        $symbol_hl .= "|>";
+                    }
+                } else {
+                    if (!$this->use_classes) {
+                        $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">';
+                    } else {
+                        $symbol_hl = '<| class="sy0">';
+                    }
+                    $symbol_hl .= $symbol_match . '|>';
+                }
+
+                $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length);
+
+                // since we replace old text with something of different size,
+                // we'll have to keep track of the differences
+                $global_offset += strlen($symbol_hl) - $symbol_length;
+            }
+        }
+        //FIX for symbol highlighting ...
+
+        // Add class/style for regexps
+        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
+            if ($this->lexic_permissions['REGEXPS'][$key]) {
+                if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) {
+                    $this->_rx_key = $key;
+                    $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U",
+                        array($this, 'handle_regexps_callback'),
+                        $stuff_to_parse);
+                } else {
+                    if (!$this->use_classes) {
+                        $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
+                    } else {
+                        if (is_array($this->language_data['REGEXPS'][$key]) &&
+                            array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
+                            $attributes = ' class="' .
+                                $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
+                        } else {
+                           $attributes = ' class="re' . $key . '"';
+                        }
+                    }
+                    $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
+                }
+            }
+        }
+
+        // Replace <DOT> with . for urls
+        $stuff_to_parse = str_replace('<DOT>', '.', $stuff_to_parse);
+        // Replace <|UR1| with <a href= for urls also
+        if (isset($this->link_styles[GESHI_LINK])) {
+            if ($this->use_classes) {
+                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
+            } else {
+                $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse);
+            }
+        } else {
+            $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
+        }
+
+        //
+        // NOW we add the span thingy ;)
+        //
+
+        $stuff_to_parse = str_replace('<|', '<span', $stuff_to_parse);
+        $stuff_to_parse = str_replace ( '|>', '</span>', $stuff_to_parse );
+        return substr($stuff_to_parse, 1);
+    }
+
+    /**
+     * Sets the time taken to parse the code
+     *
+     * @param microtime The time when parsing started
+     * @param microtime The time when parsing ended
+     * @since 1.0.2
+     * @access private
+     */
+    function set_time($start_time, $end_time) {
+        $start = explode(' ', $start_time);
+        $end = explode(' ', $end_time);
+        $this->time = $end[0] + $end[1] - $start[0] - $start[1];
+    }
+
+    /**
+     * Gets the time taken to parse the code
+     *
+     * @return double The time taken to parse the code
+     * @since  1.0.2
+     */
+    function get_time() {
+        return $this->time;
+    }
+
+    /**
+     * Merges arrays recursively, overwriting values of the first array with values of later arrays
+     *
+     * @since 1.0.8
+     * @access private
+     */
+    function merge_arrays() {
+        $arrays = func_get_args();
+        $narrays = count($arrays);
+
+        // check arguments
+        // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array)
+        for ($i = 0; $i < $narrays; $i ++) {
+            if (!is_array($arrays[$i])) {
+                // also array_merge_recursive returns nothing in this case
+                trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING);
+                return false;
+            }
+        }
+
+        // the first array is in the output set in every case
+        $ret = $arrays[0];
+
+        // merege $ret with the remaining arrays
+        for ($i = 1; $i < $narrays; $i ++) {
+            foreach ($arrays[$i] as $key => $value) {
+                if (is_array($value) && isset($ret[$key])) {
+                    // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays)
+                    // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false.
+                    $ret[$key] = $this->merge_arrays($ret[$key], $value);
+                } else {
+                    $ret[$key] = $value;
+                }
+            }
+        }
+
+        return $ret;
+    }
+
+    /**
+     * Gets language information and stores it for later use
+     *
+     * @param string The filename of the language file you want to load
+     * @since 1.0.0
+     * @access private
+     * @todo Needs to load keys for lexic permissions for keywords, regexps etc
+     */
+    function load_language($file_name) {
+        if ($file_name == $this->loaded_language) {
+            // this file is already loaded!
+            return;
+        }
+
+        //Prepare some stuff before actually loading the language file
+        $this->loaded_language = $file_name;
+        $this->parse_cache_built = false;
+        $this->enable_highlighting();
+        $language_data = array();
+
+        //Load the language file
+        require $file_name;
+
+        // Perhaps some checking might be added here later to check that
+        // $language data is a valid thing but maybe not
+        $this->language_data = $language_data;
+
+        // Set strict mode if should be set
+        $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES'];
+
+        // Set permissions for all lexics to true
+        // so they'll be highlighted by default
+        foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
+            if (!empty($this->language_data['KEYWORDS'][$key])) {
+                $this->lexic_permissions['KEYWORDS'][$key] = true;
+            } else {
+                $this->lexic_permissions['KEYWORDS'][$key] = false;
+            }
+        }
+
+        foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) {
+            $this->lexic_permissions['COMMENTS'][$key] = true;
+        }
+        foreach (array_keys($this->language_data['REGEXPS']) as $key) {
+            $this->lexic_permissions['REGEXPS'][$key] = true;
+        }
+
+        // for BenBE and future code reviews:
+        // we can use empty here since we only check for existance and emptiness of an array
+        // if it is not an array at all but rather false or null this will work as intended as well
+        // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice
+        if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) {
+            foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) {
+                // it's either true or false and maybe is true as well
+                $perm = $value !== GESHI_NEVER;
+                if ($flag == 'ALL') {
+                    $this->enable_highlighting($perm);
+                    continue;
+                }
+                if (!isset($this->lexic_permissions[$flag])) {
+                    // unknown lexic permission
+                    continue;
+                }
+                if (is_array($this->lexic_permissions[$flag])) {
+                    foreach ($this->lexic_permissions[$flag] as $key => $val) {
+                        $this->lexic_permissions[$flag][$key] = $perm;
+                    }
+                } else {
+                    $this->lexic_permissions[$flag] = $perm;
+                }
+            }
+            unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']);
+        }
+
+        //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given
+        //You need to set one for HARDESCAPES only in this case.
+        if(!isset($this->language_data['HARDCHAR'])) {
+            $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR'];
+        }
+
+        //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults
+        $style_filename = substr($file_name, 0, -4) . '.style.php';
+        if (is_readable($style_filename)) {
+            //Clear any style_data that could have been set before ...
+            if (isset($style_data)) {
+                unset($style_data);
+            }
+
+            //Read the Style Information from the style file
+            include $style_filename;
+
+            //Apply the new styles to our current language styles
+            if (isset($style_data) && is_array($style_data)) {
+                $this->language_data['STYLES'] =
+                    $this->merge_arrays($this->language_data['STYLES'], $style_data);
+            }
+        }
+    }
+
+    /**
+     * Takes the parsed code and various options, and creates the HTML
+     * surrounding it to make it look nice.
+     *
+     * @param  string The code already parsed (reference!)
+     * @since  1.0.0
+     * @access private
+     */
+    function finalise(&$parsed_code) {
+        // Remove end parts of important declarations
+        // This is BUGGY!! My fault for bad code: fix coming in 1.2
+        // @todo Remove this crap
+        if ($this->enable_important_blocks &&
+            (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) {
+            $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code);
+        }
+
+        // Add HTML whitespace stuff if we're using the <div> header
+        if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) {
+            $this->indent($parsed_code);
+        }
+
+        // purge some unnecessary stuff
+        /** NOTE: memorypeak #1 */
+        $parsed_code = preg_replace('#<span[^>]+>(\s*)</span>#', '\\1', $parsed_code);
+
+        // If we are using IDs for line numbers, there needs to be an overall
+        // ID set to prevent collisions.
+        if ($this->add_ids && !$this->overall_id) {
+            $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4);
+        }
+
+        // Get code into lines
+        /** NOTE: memorypeak #2 */
+        $code = explode("\n", $parsed_code);
+        $parsed_code = $this->header();
+
+        // If we're using line numbers, we insert <li>s and appropriate
+        // markup to style them (otherwise we don't need to do anything)
+        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
+            // If we're using the <pre> header, we shouldn't add newlines because
+            // the <pre> will line-break them (and the <li>s already do this for us)
+            $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : '';
+
+            // Set vars to defaults for following loop
+            $i = 0;
+
+            // Foreach line...
+            for ($i = 0, $n = count($code); $i < $n;) {
+                //Reset the attributes for a new line ...
+                $attrs = array();
+
+                // Make lines have at least one space in them if they're empty
+                // BenBE: Checking emptiness using trim instead of relying on blanks
+                if ('' == trim($code[$i])) {
+                    $code[$i] = '&nbsp;';
+                }
+
+                // If this is a "special line"...
+                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
+                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
+                    // Set the attributes to style the line
+                    if ($this->use_classes) {
+                        //$attr = ' class="li2"';
+                        $attrs['class'][] = 'li2';
+                        $def_attr = ' class="de2"';
+                    } else {
+                        //$attr = ' style="' . $this->line_style2 . '"';
+                        $attrs['style'][] = $this->line_style2;
+                        // This style "covers up" the special styles set for special lines
+                        // so that styles applied to special lines don't apply to the actual
+                        // code on that line
+                        $def_attr = ' style="' . $this->code_style . '"';
+                    }
+                } else {
+                    if ($this->use_classes) {
+                        //$attr = ' class="li1"';
+                        $attrs['class'][] = 'li1';
+                        $def_attr = ' class="de1"';
+                    } else {
+                        //$attr = ' style="' . $this->line_style1 . '"';
+                        $attrs['style'][] = $this->line_style1;
+                        $def_attr = ' style="' . $this->code_style . '"';
+                    }
+                }
+
+                //Check which type of tag to insert for this line
+                if ($this->header_type == GESHI_HEADER_PRE_VALID) {
+                    $start = "<pre$def_attr>";
+                    $end = '</pre>';
+                } else {
+                    // Span or div?
+                    $start = "<div$def_attr>";
+                    $end = '</div>';
+                }
+
+                ++$i;
+
+                // Are we supposed to use ids? If so, add them
+                if ($this->add_ids) {
+                    $attrs['id'][] = "$this->overall_id-$i";
+                }
+
+                //Is this some line with extra styles???
+                if (in_array($i, $this->highlight_extra_lines)) {
+                    if ($this->use_classes) {
+                        if (isset($this->highlight_extra_lines_styles[$i])) {
+                            $attrs['class'][] = "lx$i";
+                        } else {
+                            $attrs['class'][] = "ln-xtra";
+                        }
+                    } else {
+                        array_push($attrs['style'], $this->get_line_style($i));
+                    }
+                }
+
+                // Add in the line surrounded by appropriate list HTML
+                $attr_string = '';
+                foreach ($attrs as $key => $attr) {
+                    $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"';
+                }
+
+                $parsed_code .= "<li$attr_string>$start{$code[$i-1]}$end</li>$ls";
+                unset($code[$i - 1]);
+            }
+        } else {
+            $n = count($code);
+            if ($this->use_classes) {
+                $attributes = ' class="de1"';
+            } else {
+                $attributes = ' style="'. $this->code_style .'"';
+            }
+            if ($this->header_type == GESHI_HEADER_PRE_VALID) {
+                $parsed_code .= '<pre'. $attributes .'>';
+            } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
+                if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                    if ($this->use_classes) {
+                        $attrs = ' class="ln"';
+                    } else {
+                        $attrs = ' style="'. $this->table_linenumber_style .'"';
+                    }
+                    $parsed_code .= '<td'.$attrs.'><pre'.$attributes.'>';
+                    // get linenumbers
+                    // we don't merge it with the for below, since it should be better for
+                    // memory consumption this way
+                    // @todo: but... actually it would still be somewhat nice to merge the two loops
+                    //        the mem peaks are at different positions
+                    for ($i = 0; $i < $n; ++$i) {
+                        $close = 0;
+                        // fancy lines
+                        if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
+                            $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
+                            // Set the attributes to style the line
+                            if ($this->use_classes) {
+                                $parsed_code .= '<span class="xtra li2"><span class="de2">';
+                            } else {
+                                // This style "covers up" the special styles set for special lines
+                                // so that styles applied to special lines don't apply to the actual
+                                // code on that line
+                                $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
+                                                  .'<span style="' . $this->code_style .'">';
+                            }
+                            $close += 2;
+                        }
+                        //Is this some line with extra styles???
+                        if (in_array($i + 1, $this->highlight_extra_lines)) {
+                            if ($this->use_classes) {
+                                if (isset($this->highlight_extra_lines_styles[$i])) {
+                                    $parsed_code .= "<span class=\"xtra lx$i\">";
+                                } else {
+                                    $parsed_code .= "<span class=\"xtra ln-xtra\">";
+                                }
+                            } else {
+                                $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
+                            }
+                            ++$close;
+                        }
+                        $parsed_code .= $this->line_numbers_start + $i;
+                        if ($close) {
+                            $parsed_code .= str_repeat('</span>', $close);
+                        } elseif ($i != $n) {
+                            $parsed_code .= "\n";
+                        }
+                    }
+                    $parsed_code .= '</pre></td><td'.$attributes.'>';
+                }
+                $parsed_code .= '<pre'. $attributes .'>';
+            }
+            // No line numbers, but still need to handle highlighting lines extra.
+            // Have to use divs so the full width of the code is highlighted
+            $close = 0;
+            for ($i = 0; $i < $n; ++$i) {
+                // Make lines have at least one space in them if they're empty
+                // BenBE: Checking emptiness using trim instead of relying on blanks
+                if ('' == trim($code[$i])) {
+                    $code[$i] = '&nbsp;';
+                }
+                // fancy lines
+                if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
+                    $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
+                    // Set the attributes to style the line
+                    if ($this->use_classes) {
+                        $parsed_code .= '<span class="xtra li2"><span class="de2">';
+                    } else {
+                        // This style "covers up" the special styles set for special lines
+                        // so that styles applied to special lines don't apply to the actual
+                        // code on that line
+                        $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
+                                          .'<span style="' . $this->code_style .'">';
+                    }
+                    $close += 2;
+                }
+                //Is this some line with extra styles???
+                if (in_array($i + 1, $this->highlight_extra_lines)) {
+                    if ($this->use_classes) {
+                        if (isset($this->highlight_extra_lines_styles[$i])) {
+                            $parsed_code .= "<span class=\"xtra lx$i\">";
+                        } else {
+                            $parsed_code .= "<span class=\"xtra ln-xtra\">";
+                        }
+                    } else {
+                        $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
+                    }
+                    ++$close;
+                }
+
+                $parsed_code .= $code[$i];
+
+                if ($close) {
+                  $parsed_code .= str_repeat('</span>', $close);
+                  $close = 0;
+                }
+                elseif ($i + 1 < $n) {
+                    $parsed_code .= "\n";
+                }
+                unset($code[$i]);
+            }
+
+            if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) {
+                $parsed_code .= '</pre>';
+            }
+            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                $parsed_code .= '</td>';
+            }
+        }
+
+        $parsed_code .= $this->footer();
+    }
+
+    /**
+     * Creates the header for the code block (with correct attributes)
+     *
+     * @return string The header for the code block
+     * @since  1.0.0
+     * @access private
+     */
+    function header() {
+        // Get attributes needed
+        /**
+         * @todo   Document behaviour change - class is outputted regardless of whether
+         *         we're using classes or not. Same with style
+         */
+        $attributes = ' class="' . $this->_genCSSName($this->language);
+        if ($this->overall_class != '') {
+            $attributes .= " ".$this->_genCSSName($this->overall_class);
+        }
+        $attributes .= '"';
+
+        if ($this->overall_id != '') {
+            $attributes .= " id=\"{$this->overall_id}\"";
+        }
+        if ($this->overall_style != '' && !$this->use_classes) {
+            $attributes .= ' style="' . $this->overall_style . '"';
+        }
+
+        $ol_attributes = '';
+
+        if ($this->line_numbers_start != 1) {
+            $ol_attributes .= ' start="' . $this->line_numbers_start . '"';
+        }
+
+        // Get the header HTML
+        $header = $this->header_content;
+        if ($header) {
+            if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) {
+                $header = str_replace("\n", '', $header);
+            }
+            $header = $this->replace_keywords($header);
+
+            if ($this->use_classes) {
+                $attr = ' class="head"';
+            } else {
+                $attr = " style=\"{$this->header_content_style}\"";
+            }
+            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                $header = "<thead><tr><td colspan=\"2\" $attr>$header</td></tr></thead>";
+            } else {
+                $header = "<div$attr>$header</div>";
+            }
+        }
+
+        if (GESHI_HEADER_NONE == $this->header_type) {
+            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                return "$header<ol$attributes$ol_attributes>";
+            }
+            return $header . ($this->force_code_block ? '<div>' : '');
+        }
+
+        // Work out what to return and do it
+        if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+            if ($this->header_type == GESHI_HEADER_PRE) {
+                return "<pre$attributes>$header<ol$ol_attributes>";
+            } elseif ($this->header_type == GESHI_HEADER_DIV ||
+                $this->header_type == GESHI_HEADER_PRE_VALID) {
+                return "<div$attributes>$header<ol$ol_attributes>";
+            } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
+                return "<table$attributes>$header<tbody><tr class=\"li1\">";
+            }
+        } else {
+            if ($this->header_type == GESHI_HEADER_PRE) {
+                return "<pre$attributes>$header"  .
+                    ($this->force_code_block ? '<div>' : '');
+            } else {
+                return "<div$attributes>$header" .
+                    ($this->force_code_block ? '<div>' : '');
+            }
+        }
+    }
+
+    /**
+     * Returns the footer for the code block.
+     *
+     * @return string The footer for the code block
+     * @since  1.0.0
+     * @access private
+     */
+    function footer() {
+        $footer = $this->footer_content;
+        if ($footer) {
+            if ($this->header_type == GESHI_HEADER_PRE) {
+                $footer = str_replace("\n", '', $footer);;
+            }
+            $footer = $this->replace_keywords($footer);
+
+            if ($this->use_classes) {
+                $attr = ' class="foot"';
+            } else {
+                $attr = " style=\"{$this->footer_content_style}\"";
+            }
+            if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                $footer = "<tfoot><tr><td colspan=\"2\">$footer</td></tr></tfoot>";
+            } else {
+                $footer = "<div$attr>$footer</div>";
+            }
+        }
+
+        if (GESHI_HEADER_NONE == $this->header_type) {
+            return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '</ol>' . $footer : $footer;
+        }
+
+        if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) {
+            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                return "</ol>$footer</div>";
+            }
+            return ($this->force_code_block ? '</div>' : '') .
+                "$footer</div>";
+        }
+        elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
+            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                return "</tr></tbody>$footer</table>";
+            }
+            return ($this->force_code_block ? '</div>' : '') .
+                "$footer</div>";
+        }
+        else {
+            if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+                return "</ol>$footer</pre>";
+            }
+            return ($this->force_code_block ? '</div>' : '') .
+                "$footer</pre>";
+        }
+    }
+
+    /**
+     * Replaces certain keywords in the header and footer with
+     * certain configuration values
+     *
+     * @param  string The header or footer content to do replacement on
+     * @return string The header or footer with replaced keywords
+     * @since  1.0.2
+     * @access private
+     */
+    function replace_keywords($instr) {
+        $keywords = $replacements = array();
+
+        $keywords[] = '<TIME>';
+        $keywords[] = '{TIME}';
+        $replacements[] = $replacements[] = number_format($time = $this->get_time(), 3);
+
+        $keywords[] = '<LANGUAGE>';
+        $keywords[] = '{LANGUAGE}';
+        $replacements[] = $replacements[] = $this->language_data['LANG_NAME'];
+
+        $keywords[] = '<VERSION>';
+        $keywords[] = '{VERSION}';
+        $replacements[] = $replacements[] = GESHI_VERSION;
+
+        $keywords[] = '<SPEED>';
+        $keywords[] = '{SPEED}';
+        if ($time <= 0) {
+            $speed = 'N/A';
+        } else {
+            $speed = strlen($this->source) / $time;
+            if ($speed >= 1024) {
+                $speed = sprintf("%.2f KB/s", $speed / 1024.0);
+            } else {
+                $speed = sprintf("%.0f B/s", $speed);
+            }
+        }
+        $replacements[] = $replacements[] = $speed;
+
+        return str_replace($keywords, $replacements, $instr);
+    }
+
+    /**
+     * Secure replacement for PHP built-in function htmlspecialchars().
+     *
+     * See ticket #427 (http://wush.net/trac/wikka/ticket/427) for the rationale
+     * for this replacement function.
+     *
+     * The INTERFACE for this function is almost the same as that for
+     * htmlspecialchars(), with the same default for quote style; however, there
+     * is no 'charset' parameter. The reason for this is as follows:
+     *
+     * The PHP docs say:
+     *      "The third argument charset defines character set used in conversion."
+     *
+     * I suspect PHP's htmlspecialchars() is working at the byte-value level and
+     * thus _needs_ to know (or asssume) a character set because the special
+     * characters to be replaced could exist at different code points in
+     * different character sets. (If indeed htmlspecialchars() works at
+     * byte-value level that goes some  way towards explaining why the
+     * vulnerability would exist in this function, too, and not only in
+     * htmlentities() which certainly is working at byte-value level.)
+     *
+     * This replacement function however works at character level and should
+     * therefore be "immune" to character set differences - so no charset
+     * parameter is needed or provided. If a third parameter is passed, it will
+     * be silently ignored.
+     *
+     * In the OUTPUT there is a minor difference in that we use '&#39;' instead
+     * of PHP's '&#039;' for a single quote: this provides compatibility with
+     *      get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)
+     * (see comment by mikiwoz at yahoo dot co dot uk on
+     * http://php.net/htmlspecialchars); it also matches the entity definition
+     * for XML 1.0
+     * (http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters).
+     * Like PHP we use a numeric character reference instead of '&apos;' for the
+     * single quote. For the other special characters we use the named entity
+     * references, as PHP is doing.
+     *
+     * @author      {@link http://wikkawiki.org/JavaWoman Marjolein Katsma}
+     *
+     * @license     http://www.gnu.org/copyleft/lgpl.html
+     *              GNU Lesser General Public License
+     * @copyright   Copyright 2007, {@link http://wikkawiki.org/CreditsPage
+     *              Wikka Development Team}
+     *
+     * @access      private
+     * @param       string  $string string to be converted
+     * @param       integer $quote_style
+     *                      - ENT_COMPAT:   escapes &, <, > and double quote (default)
+     *                      - ENT_NOQUOTES: escapes only &, < and >
+     *                      - ENT_QUOTES:   escapes &, <, >, double and single quotes
+     * @return      string  converted string
+     * @since       1.0.7.18
+     */
+    function hsc($string, $quote_style = ENT_COMPAT) {
+        // init
+        static $aTransSpecchar = array(
+            '&' => '&amp;',
+            '"' => '&quot;',
+            '<' => '&lt;',
+            '>' => '&gt;',
+
+            //This fix is related to SF#1923020, but has to be applied
+            //regardless of actually highlighting symbols.
+
+            //Circumvent a bug with symbol highlighting
+            //This is required as ; would produce undesirable side-effects if it
+            //was not to be processed as an entity.
+            ';' => '<SEMI>', // Force ; to be processed as entity
+            '|' => '<PIPE>' // Force | to be processed as entity
+            );                      // ENT_COMPAT set
+
+        switch ($quote_style) {
+            case ENT_NOQUOTES: // don't convert double quotes
+                unset($aTransSpecchar['"']);
+                break;
+            case ENT_QUOTES: // convert single quotes as well
+                $aTransSpecchar["'"] = '&#39;'; // (apos) htmlspecialchars() uses '&#039;'
+                break;
+        }
+
+        // return translated string
+        return strtr($string, $aTransSpecchar);
+    }
+
+    function _genCSSName($name){
+        return (is_numeric($name[0]) ? '_' : '') . $name;
+    }
+
+    /**
+     * Returns a stylesheet for the highlighted code. If $economy mode
+     * is true, we only return the stylesheet declarations that matter for
+     * this code block instead of the whole thing
+     *
+     * @param  boolean Whether to use economy mode or not
+     * @return string A stylesheet built on the data for the current language
+     * @since  1.0.0
+     */
+    function get_stylesheet($economy_mode = true) {
+        // If there's an error, chances are that the language file
+        // won't have populated the language data file, so we can't
+        // risk getting a stylesheet...
+        if ($this->error) {
+            return '';
+        }
+
+        //Check if the style rearrangements have been processed ...
+        //This also does some preprocessing to check which style groups are useable ...
+        if(!isset($this->language_data['NUMBERS_CACHE'])) {
+            $this->build_style_cache();
+        }
+
+        // First, work out what the selector should be. If there's an ID,
+        // that should be used, the same for a class. Otherwise, a selector
+        // of '' means that these styles will be applied anywhere
+        if ($this->overall_id) {
+            $selector = '#' . $this->_genCSSName($this->overall_id);
+        } else {
+            $selector = '.' . $this->_genCSSName($this->language);
+            if ($this->overall_class) {
+                $selector .= '.' . $this->_genCSSName($this->overall_class);
+            }
+        }
+        $selector .= ' ';
+
+        // Header of the stylesheet
+        if (!$economy_mode) {
+            $stylesheet = "/**\n".
+                " * GeSHi Dynamically Generated Stylesheet\n".
+                " * --------------------------------------\n".
+                " * Dynamically generated stylesheet for {$this->language}\n".
+                " * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n".
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
+                " * --------------------------------------\n".
+                " */\n";
+        } else {
+            $stylesheet = "/**\n".
+                " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
+                " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
+                " */\n";
+        }
+
+        // Set the <ol> to have no effect at all if there are line numbers
+        // (<ol>s have margins that should be destroyed so all layout is
+        // controlled by the set_overall_style method, which works on the
+        // <pre> or <div> container). Additionally, set default styles for lines
+        if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
+            //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n";
+            $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n";
+        }
+
+        // Add overall styles
+        // note: neglect economy_mode, empty styles are meaningless
+        if ($this->overall_style != '') {
+            $stylesheet .= "$selector {{$this->overall_style}}\n";
+        }
+
+        // Add styles for links
+        // note: economy mode does not make _any_ sense here
+        //       either the style is empty and thus no selector is needed
+        //       or the appropriate key is given.
+        foreach ($this->link_styles as $key => $style) {
+            if ($style != '') {
+                switch ($key) {
+                    case GESHI_LINK:
+                        $stylesheet .= "{$selector}a:link {{$style}}\n";
+                        break;
+                    case GESHI_HOVER:
+                        $stylesheet .= "{$selector}a:hover {{$style}}\n";
+                        break;
+                    case GESHI_ACTIVE:
+                        $stylesheet .= "{$selector}a:active {{$style}}\n";
+                        break;
+                    case GESHI_VISITED:
+                        $stylesheet .= "{$selector}a:visited {{$style}}\n";
+                        break;
+                }
+            }
+        }
+
+        // Header and footer
+        // note: neglect economy_mode, empty styles are meaningless
+        if ($this->header_content_style != '') {
+            $stylesheet .= "$selector.head {{$this->header_content_style}}\n";
+        }
+        if ($this->footer_content_style != '') {
+            $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n";
+        }
+
+        // Styles for important stuff
+        // note: neglect economy_mode, empty styles are meaningless
+        if ($this->important_styles != '') {
+            $stylesheet .= "$selector.imp {{$this->important_styles}}\n";
+        }
+
+        // Simple line number styles
+        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') {
+            $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n";
+        }
+        if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') {
+            $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n";
+        }
+        // If there is a style set for fancy line numbers, echo it out
+        if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') {
+            $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n";
+        }
+
+        // note: empty styles are meaningless
+        foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode ||
+                (isset($this->lexic_permissions['KEYWORDS'][$group]) &&
+                $this->lexic_permissions['KEYWORDS'][$group]))) {
+                $stylesheet .= "$selector.kw$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode ||
+                (isset($this->lexic_permissions['COMMENTS'][$group]) &&
+                $this->lexic_permissions['COMMENTS'][$group]) ||
+                (!empty($this->language_data['COMMENT_REGEXP']) &&
+                !empty($this->language_data['COMMENT_REGEXP'][$group])))) {
+                $stylesheet .= "$selector.co$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) {
+                // NEW: since 1.0.8 we have to handle hardescapes
+                if ($group === 'HARD') {
+                    $group = '_h';
+                }
+                $stylesheet .= "$selector.es$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) {
+                $stylesheet .= "$selector.br$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) {
+                $stylesheet .= "$selector.sy$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) {
+                // NEW: since 1.0.8 we have to handle hardquotes
+                if ($group === 'HARD') {
+                    $group = '_h';
+                }
+                $stylesheet .= "$selector.st$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) {
+                $stylesheet .= "$selector.nu$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) {
+                $stylesheet .= "$selector.me$group {{$styles}}\n";
+            }
+        }
+        // note: neglect economy_mode, empty styles are meaningless
+        foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) {
+            if ($styles != '') {
+                $stylesheet .= "$selector.sc$group {{$styles}}\n";
+            }
+        }
+        foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) {
+            if ($styles != '' && (!$economy_mode ||
+                (isset($this->lexic_permissions['REGEXPS'][$group]) &&
+                $this->lexic_permissions['REGEXPS'][$group]))) {
+                if (is_array($this->language_data['REGEXPS'][$group]) &&
+                    array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) {
+                    $stylesheet .= "$selector.";
+                    $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS];
+                    $stylesheet .= " {{$styles}}\n";
+                } else {
+                    $stylesheet .= "$selector.re$group {{$styles}}\n";
+                }
+            }
+        }
+        // Styles for lines being highlighted extra
+        if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) {
+            $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n";
+        }
+        $stylesheet .= "{$selector}span.xtra { display:block; }\n";
+        foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) {
+            $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n";
+        }
+
+        return $stylesheet;
+    }
+
+    /**
+     * Get's the style that is used for the specified line
+     *
+     * @param int The line number information is requested for
+     * @access private
+     * @since 1.0.7.21
+     */
+    function get_line_style($line) {
+        //$style = null;
+        $style = null;
+        if (isset($this->highlight_extra_lines_styles[$line])) {
+            $style = $this->highlight_extra_lines_styles[$line];
+        } else { // if no "extra" style assigned
+            $style = $this->highlight_extra_lines_style;
+        }
+
+        return $style;
+    }
+
+    /**
+    * this functions creates an optimized regular expression list
+    * of an array of strings.
+    *
+    * Example:
+    * <code>$list = array('faa', 'foo', 'foobar');
+    *          => string 'f(aa|oo(bar)?)'</code>
+    *
+    * @param $list array of (unquoted) strings
+    * @param $regexp_delimiter your regular expression delimiter, @see preg_quote()
+    * @return string for regular expression
+    * @author Milian Wolff <mail@milianw.de>
+    * @since 1.0.8
+    * @access private
+    */
+    function optimize_regexp_list($list, $regexp_delimiter = '/') {
+        $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$',
+            '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter);
+        sort($list);
+        $regexp_list = array('');
+        $num_subpatterns = 0;
+        $list_key = 0;
+
+        // the tokens which we will use to generate the regexp list
+        $tokens = array();
+        $prev_keys = array();
+        // go through all entries of the list and generate the token list
+        $cur_len = 0;
+        for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) {
+            if ($cur_len > GESHI_MAX_PCRE_LENGTH) {
+                // seems like the length of this pcre is growing exorbitantly
+                $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens);
+                $num_subpatterns = substr_count($regexp_list[$list_key], '(?:');
+                $tokens = array();
+                $cur_len = 0;
+            }
+            $level = 0;
+            $entry = preg_quote((string) $list[$i], $regexp_delimiter);
+            $pointer = &$tokens;
+            // properly assign the new entry to the correct position in the token array
+            // possibly generate smaller common denominator keys
+            while (true) {
+                // get the common denominator
+                if (isset($prev_keys[$level])) {
+                    if ($prev_keys[$level] == $entry) {
+                        // this is a duplicate entry, skip it
+                        continue 2;
+                    }
+                    $char = 0;
+                    while (isset($entry[$char]) && isset($prev_keys[$level][$char])
+                            && $entry[$char] == $prev_keys[$level][$char]) {
+                        ++$char;
+                    }
+                    if ($char > 0) {
+                        // this entry has at least some chars in common with the current key
+                        if ($char == strlen($prev_keys[$level])) {
+                            // current key is totally matched, i.e. this entry has just some bits appended
+                            $pointer = &$pointer[$prev_keys[$level]];
+                        } else {
+                            // only part of the keys match
+                            $new_key_part1 = substr($prev_keys[$level], 0, $char);
+                            $new_key_part2 = substr($prev_keys[$level], $char);
+
+                            if (in_array($new_key_part1[0], $regex_chars)
+                                || in_array($new_key_part2[0], $regex_chars)) {
+                                // this is bad, a regex char as first character
+                                $pointer[$entry] = array('' => true);
+                                array_splice($prev_keys, $level, count($prev_keys), $entry);
+                                $cur_len += strlen($entry);
+                                continue;
+                            } else {
+                                // relocate previous tokens
+                                $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]);
+                                unset($pointer[$prev_keys[$level]]);
+                                $pointer = &$pointer[$new_key_part1];
+                                // recreate key index
+                                array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2));
+                                $cur_len += strlen($new_key_part2);
+                            }
+                        }
+                        ++$level;
+                        $entry = substr($entry, $char);
+                        continue;
+                    }
+                    // else: fall trough, i.e. no common denominator was found
+                }
+                if ($level == 0 && !empty($tokens)) {
+                    // we can dump current tokens into the string and throw them away afterwards
+                    $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
+                    $new_subpatterns = substr_count($new_entry, '(?:');
+                    if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) {
+                        $regexp_list[++$list_key] = $new_entry;
+                        $num_subpatterns = $new_subpatterns;
+                    } else {
+                        if (!empty($regexp_list[$list_key])) {
+                            $new_entry = '|' . $new_entry;
+                        }
+                        $regexp_list[$list_key] .= $new_entry;
+                        $num_subpatterns += $new_subpatterns;
+                    }
+                    $tokens = array();
+                    $cur_len = 0;
+                }
+                // no further common denominator found
+                $pointer[$entry] = array('' => true);
+                array_splice($prev_keys, $level, count($prev_keys), $entry);
+
+                $cur_len += strlen($entry);
+                break;
+            }
+            unset($list[$i]);
+        }
+        // make sure the last tokens get converted as well
+        $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
+        if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) {
+            if ( !empty($regexp_list[$list_key]) ) {
+              ++$list_key;
+            }
+            $regexp_list[$list_key] = $new_entry;
+        } else {
+            if (!empty($regexp_list[$list_key])) {
+                $new_entry = '|' . $new_entry;
+            }
+            $regexp_list[$list_key] .= $new_entry;
+        }
+        return $regexp_list;
+    }
+    /**
+    * this function creates the appropriate regexp string of an token array
+    * you should not call this function directly, @see $this->optimize_regexp_list().
+    *
+    * @param &$tokens array of tokens
+    * @param $recursed bool to know wether we recursed or not
+    * @return string
+    * @author Milian Wolff <mail@milianw.de>
+    * @since 1.0.8
+    * @access private
+    */
+    function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
+        $list = '';
+        foreach ($tokens as $token => $sub_tokens) {
+            $list .= $token;
+            $close_entry = isset($sub_tokens['']);
+            unset($sub_tokens['']);
+            if (!empty($sub_tokens)) {
+                $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')';
+                if ($close_entry) {
+                    // make sub_tokens optional
+                    $list .= '?';
+                }
+            }
+            $list .= '|';
+        }
+        if (!$recursed) {
+            // do some optimizations
+            // common trailing strings
+            // BUGGY!
+            //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function(
+            //    '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list);
+            // (?:p)? => p?
+            $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list);
+            // (?:a|b|c|d|...)? => [abcd...]?
+            // TODO: a|bb|c => [ac]|bb
+            static $callback_2;
+            if (!isset($callback_2)) {
+                $callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";');
+            }
+            $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list);
+        }
+        // return $list without trailing pipe
+        return substr($list, 0, -1);
+    }
+} // End Class GeSHi
+
+
+if (!function_exists('geshi_highlight')) {
+    /**
+     * Easy way to highlight stuff. Behaves just like highlight_string
+     *
+     * @param string The code to highlight
+     * @param string The language to highlight the code in
+     * @param string The path to the language files. You can leave this blank if you need
+     *               as from version 1.0.7 the path should be automatically detected
+     * @param boolean Whether to return the result or to echo
+     * @return string The code highlighted (if $return is true)
+     * @since 1.0.2
+     */
+    function geshi_highlight($string, $language, $path = null, $return = false) {
+        $geshi = new GeSHi($string, $language, $path);
+        $geshi->set_header_type(GESHI_HEADER_NONE);
+
+        if ($return) {
+            return '<code>' . $geshi->parse_code() . '</code>';
+        }
+
+        echo '<code>' . $geshi->parse_code() . '</code>';
+
+        if ($geshi->error()) {
+            return false;
+        }
+        return true;
+    }
+}
+
 ?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/4cs.php b/wp-content/plugins/wp-syntax/geshi/geshi/4cs.php
index c00792e60ed57dd823c6df973b46ece34b759105..5209c51e8026ea3b0ef107a1f50e92e19cbd9228 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/4cs.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/4cs.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Jason Curl (jason.curl@continental-corporation.com)
  * Copyright: (c) 2009 Jason Curl
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/09/05
  *
  * 4CS language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/6502acme.php b/wp-content/plugins/wp-syntax/geshi/geshi/6502acme.php
index 07f9eaf9e09f0abe92332cba28ff32f55adef1f1..203e04dfa3e6f9383bca498f9f570785e5dd3394 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/6502acme.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/6502acme.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/05/26
  *
  * MOS 6502 (more specifically 6510) ACME Cross Assembler 0.93 by Marco Baye language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/6502kickass.php b/wp-content/plugins/wp-syntax/geshi/geshi/6502kickass.php
index f4a4bd86e17969761ac8bd7112790a17cd947c0b..8042826290203646d9f7a19e7ed1811e68fc708c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/6502kickass.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/6502kickass.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/06/07
  *
  * MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/6502tasm.php b/wp-content/plugins/wp-syntax/geshi/geshi/6502tasm.php
index 391e0170ea9ffe8b6141e98be16e14b52cedb999..86aa479df97ba11b9c30565cb3552cc999afd895 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/6502tasm.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/6502tasm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/06/02
  *
  * MOS 6502 (6510) TASM/64TASS (64TASS being the super set of TASM) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/68000devpac.php b/wp-content/plugins/wp-syntax/geshi/geshi/68000devpac.php
index d0f3a50728a7e3dc9c234fc2246116b356869d6e..f46387ae93fdbb97f8d2133bdb8476fc79cb7bf4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/68000devpac.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/68000devpac.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Warren Willmey
  * Copyright: (c) 2010 Warren Willmey.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/06/09
  *
  * Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/abap.php b/wp-content/plugins/wp-syntax/geshi/geshi/abap.php
index 8b510df0892fbd206a9d6a8658d71978d2a1356c..5acd261c68928f0dcdbcf1a3c64635a90b1ff6c6 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/abap.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/abap.php
@@ -7,7 +7,7 @@
  *  - Sandra Rossi (sandra.rossi@gmail.com)
  *  - Jacob Laursen (jlu@kmd.dk)
  * Copyright: (c) 2007 Andres Picazo
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * ABAP language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/actionscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/actionscript.php
index 276cf4fe4421bdd49a2fe8375bf2869055f6ebef..08e5b49acf4d192b712e7eef07cc290421ff7551 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/actionscript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/actionscript.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Steffen Krause (Steffen.krause@muse.de)
  * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/20
  *
  * Actionscript language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/actionscript3.php b/wp-content/plugins/wp-syntax/geshi/geshi/actionscript3.php
index ceaa61d1547fbdf7278c1201a9ea6a75e6352691..189d714b31186e2b1566768567c252d8785a8462 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/actionscript3.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/actionscript3.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Jordi Boggiano (j.boggiano@seld.be)
  * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/11/26
  *
  * ActionScript3 language file for GeSHi.
@@ -60,7 +60,7 @@ $language_data = array (
     'COMMENT_MULTI' => array('/*' => '*/'),
     'COMMENT_REGEXP' => array(
         //Regular expressions
-        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
+        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
@@ -72,7 +72,7 @@ $language_data = array (
             'private', 'null', 'new', 'is', 'internal', 'instanceof', 'in',
             'import', 'if', 'get', 'for', 'false', 'else', 'each', 'do',
             'delete', 'default', 'continue', 'catch', 'case', 'break', 'as',
-            'extends'
+            'extends', 'override'
             ),
         2 => array(
             'var'
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ada.php b/wp-content/plugins/wp-syntax/geshi/geshi/ada.php
index eb98c9784287184ef93bbfaf0ccff40be048ea0f..c4ef2c39587141bc0cf1d1f5c6c1d34228e8dca2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ada.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ada.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/29
  *
  * Ada language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/algol68.php b/wp-content/plugins/wp-syntax/geshi/geshi/algol68.php
index e9f19da4de6a758ca20195e82aea01ed511e0690..5b1e5aa7fb33d96b61e2bce1d2c209bc435c85fe 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/algol68.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/algol68.php
@@ -1,49 +1,147 @@
 <?php
-/**
+/*************************************************************************************
  * algol68.php
  * --------
  * Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
  * Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
- * Release Version: v.v.v.v
+ * Release Version: 1.0.8.11
  * Date Started: 2010/04/24
  *
  * ALGOL 68 language file for GeSHi.
  *
  * CHANGES
  * -------
- * yyyy/mm/dd (v.v.v.v)
- *   -  First Release
+ * 2010/04/24 (1.0.8.8.0)
+ *   - First Release - machine generated by http://rosettacode.org/geshi/
+ * 2010/05/24 (1.0.8.8.1)
+ *   - #2324 - converted comment detection to RegEx
+ * 2010/06/16 (1.0.8.8.2)
+ *   - separate symbols from keywords - quick fix
+ * 2010/06/16 (1.0.8.8.3)
+ *   - reverse length order symbols
+ *   - Add RegEx for BITS and REAL literals (INT to do)
+ *   - recognise LONG and SHORT prefixes to literals
+ * 2010/07/23 (1.0.8.8.4)
+ *   - fix errors detected by langcheck.php, eg rm tab, fix indenting, rm duplicate keywords, fix symbols as keywords etc
+ *   - removed bulk of local variables from name space.
+ *   - unfolded arrays
  *
  * TODO (updated yyyy/mm/dd)
  * -------------------------
+ *   - Use "Parser Control" to fix KEYWORD parsing, eg: (INT minus one= -1; print(ABSminus one))
+ *   - Parse $FORMATS$ more fully - if possible.
+ *   - Pull reserved words from the source of A68G and A68RS
+ *   - Pull stdlib PROC/OP/MODE symbols from the soruce of A68G and A68RS
+ *   - Pull PROC/OP/MODE extensions from the soruce of A68G and A68RS
+ *   - Use RegEx to detect extended precision PROC names, eg 'long long sin' etc
+ *   - Use RegEx to detect white space std PROC names, eg 'new line'
+ *   - Use RegEx to detect white space ext PROC names, eg 'cgs speed of light'
+ *   - Use RegEx to detect BOLD symbols, eg userdefined MODEs and OPs
+ *   - Add REgEx for INT literals - Adding INT breaks formatting...
+ *   - Adding PIPE as a key word breaks formatting of "|" symbols!!
  *
+ *************************************************************************************
  *
+ *     This file is part of GeSHi.
  *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
  *
- *      This file is part of GeSHi.
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
  *
- *    GeSHi is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *    GeSHi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with GeSHi; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
+ ************************************************************************************/
+
+if(!function_exists('geshi_langfile_algol68_vars')) {
+    function geshi_langfile_algol68_vars(){
+        $pre='(?<![0-9a-z_\.])';
+        $post='?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
+        $post=""; # assuming the RegEx is greedy #
+
+        $_="\s*";
+
+        $srad="Rr";        $rrad="[".$srad."]";  # either one digit, OR opt-space in digits #
+        $sbin="0-1";       $rbin="[".$sbin."]";  $_bin=$rbin."(?:[".$sbin."\s]*".$rbin."|)";
+        $snib="0-3";       $rnib="[".$snib."]";  $_nib=$rnib."(?:[".$snib."\s]*".$rnib."|)";
+        $soct="0-7";       $roct="[".$soct."]";  $_oct=$roct."(?:[".$soct."\s]*".$roct."|)";
+        $sdec="0-9";       $rdec="[".$sdec."]";  $_dec=$rdec."(?:[".$sdec."\s]*".$rdec."|)";
+        $shex="0-9A-Fa-f"; $rhex="[".$shex."]";  $_hex=$rhex."(?:[".$shex."\s]*".$rhex."|)";
+
+        # Define BITS: #
+        $prebits=$pre; $postbits=$post;
+        $bl="2".$_.$rrad.$_.$_bin;
+        $bl=$bl."|"."2".$_.$rrad.$_.$_bin;
+        $bl=$bl."|"."4".$_.$rrad.$_.$_nib;
+        $bl=$bl."|"."8".$_.$rrad.$_.$_oct;
+        $bl=$bl."|"."1".$_."0".$_.$rrad.$_.$_dec;
+        $bl=$bl."|"."1".$_."6".$_.$rrad.$_.$_hex;
+
+        # Define INT: #
+        $preint=$pre; $postint=$post;
+        # for some reason ".0 e - 2" is not recognised, but ".0 e + 2" IS!
+        # work around: remove spaces between sign and digits! Maybe because
+        # of the Unary '-' Operator
+        $sign_="(?:-|\-|[-]|[\-]|\+|)";  # attempts #
+
+        $sign_="(?:-\s*|\+\s*|)"; # n.b. sign is followed by white space #
+
+        $_int=$sign_.$_dec;
+        $il=          $_int;                      # +_9           #
+
+        $GESHI_NUMBER_INT_BASIC='(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
+
+        # Define REAL: #
+        $prereal=$pre; $postreal=$post;
+        $sexp="Ee\\\\";   $_exp="(?:⏨|[".$sexp."])".$_.$_int;
+        $_decimal="[.]".$_.$_dec;
+
+        # Add permitted permutations of various parts #
+        $rl=        $_int.$_.$_decimal.$_.$_exp; # +_9_._9_e_+_9 #
+        $rl=$rl."|".$_int.$_."[.]".$_.$_exp;     # +_9_.___e_+_9 #
+        $rl=$rl."|".$_int.$_.$_exp;              # +_9_____e_+_9 #
+        $rl=$rl."|".$sign_.$_decimal.$_.$_exp;   # +___._9_e_+_9 #
+
+        $rl=$rl."|".$_int.$_.$_decimal;          # +_9_._9       #
+        $rl=$rl."|".$sign_.$_decimal;            # +___._9       #
+
+        # The following line damaged formatting...
+        #$rl=$rl."|".$_int;                       # +_9           #
+
+        # Apparently Algol68 does not support '2.', c.f. Algol 68G
+        #$rl=$rl."|".$_int.$_."[.]";             # +_9_.         #
+
+        # Literal prefixes are overridden by KEYWORDS :-(
+        $LONGS="(?:(?:(LONG\s+)*|(SHORT\s+))*|)";
+
+        return array(
+            "BITS" => $prebits.$LONGS."(?:".$bl.")".$postbits,
+            "INT" => $preint.$LONGS."(?:".$il.")".$postint,
+            "REAL" => $prereal.$LONGS."(?:".$rl.")".$postreal,
+
+            "BOLD" => 'color: #b1b100; font-weight: bold;',
+            "ITALIC" => 'color: #b1b100;', # procedures traditionally italic #
+            "NONSTD" => 'color: #FF0000; font-weight: bold;', # RED #
+            "COMMENT" => 'color: #666666; font-style: italic;'
+        );
+    }
+}
+$a68=geshi_langfile_algol68_vars();
 
 $language_data = array(
     'LANG_NAME' => 'ALGOL 68',
     'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array(
-        '#' => '#',
         '¢' => '¢',
         '£' => '£',
+        '#' => '#',
         ),
     'COMMENT_REGEXP' => array(
         1 => '/\bCO((?:MMENT)?)\b.*?\bCO\\1\b/i',
@@ -53,42 +151,59 @@ $language_data = array(
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '"',
+    'NUMBERS' => GESHI_NUMBER_HEX_SUFFIX,  # Warning: Feature!! #
+#                GESHI_NUMBER_HEX_SUFFIX, # Attempt ignore default #
     'KEYWORDS' => array(
-        1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON'),
-        2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'),
-        3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID', 'COMPLEX', 'VECTOR'),
-        4 => array('MODE', 'OP', 'PRIO', 'PROC'),
-        5 => array('FLEX', 'HEAP', 'LOC', 'LONG', 'REF', 'SHORT', 'EITHER'),
-        6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION'),
-        7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', '○', 'SKIP', '~'),
-        8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', '-', 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'),
-        9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'),
-        10 => array('+*', 'I', '+×', '⊥', '!', '⏨'),
-        11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'),
-        12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', '□', '÷:'),
-        13 => array('-', '+'),
-        14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'),
-        15 => array('=', 'EQ', '/=', 'NE', '≠', '~='),
-        16 => array('&', 'AND', '∧', 'OR', '∨'),
+# Extensions
+        1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON', 'PROGRAM', 'CONTEXT'),
+#        2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'), #
+        2 => array('CASE', 'IN', 'OUSE', /* 'IN',*/ 'OUT', 'ESAC', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO TO', 'GOTO', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', /* 'THEN',*/ 'ELSE', 'FI' ),
+        3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID'),
+        4 => array('MODE', 'OP', 'PRIO', 'PROC', 'FLEX', 'HEAP', 'LOC', 'REF', 'LONG', 'SHORT', 'EITHER'),
+# Extensions or deprecated keywords
+# 'PIPE': keyword somehow interferes with the internal operation of GeSHi
+        5 => array('FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT', 'CTB', 'CT', 'CTAB', 'COMPLEX', 'VECTOR', 'SOUND' /*, 'PIPE'*/),
+        6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION', 'OF'),
+# '(', '|', '|:', ')',  #
+#        7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', '○', 'SKIP', '~'),
+        7 => array('AT', 'IS', 'ISNT', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'SKIP'),
+        8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', /* '-',*/ 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'),
+# OPERATORS ordered roughtly by PRIORITY #
+#       9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'),
+#        10 => array('+*', 'I', '+×', '⊥', '!', '⏨'),
+        10 => array('I'),
+#        11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'),
+        11 => array('SHL', 'SHR', /*'UP', 'DOWN', 'LWB', 'UPB'*/),
+#        12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', '□', '÷:'),
+        12 => array('OVER', 'MOD', 'ELEM'),
+#        13 => array('-', '+'),
+#        14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'),
+        14 => array('LT', 'LE', 'GE', 'GT'),
+#        15 => array('=', 'EQ', '/=', 'NE', '≠', '~='),
+        15 => array('EQ', 'NE'),
+#        16 => array('&', 'AND', '∧', 'OR', '∨', '/\\', '\\/'),
+        16 => array('AND', 'OR'),
         17 => array('MINUSAB', 'PLUSAB', 'TIMESAB', 'DIVAB', 'OVERAB', 'MODAB', 'PLUSTO'),
-        18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'),
+#        18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'),
+# Extensions or deprecated keywords
+        18 => array('MINUS', 'PLUS', 'DIV', /* 'MOD',*/ 'PRUS', 'IS NOT'),
+# Extensions or deprecated keywords
         19 => array('THEF', 'ANDF', 'ORF', 'ANDTH', 'OREL', 'ANDTHEN', 'ORELSE'),
-        20 => array('int_lengths', 'intlengths', 'int_shorths', 'intshorths', 'max_int', 'maxint', 'real_lengths', 'reallengths', 'real_shorths', 'realshorths', 'bits_lengths', 'bitslengths', 'bits_shorths', 'bitsshorths', 'bytes_lengths', 'byteslengths', 'bytes_shorths', 'bytesshorths', 'max_abs_char', 'maxabschar', 'int_width', 'intwidth', 'long_int_width', 'longintwidth', 'long_long_int_width', 'longlongintwidth', 'real_width', 'realwidth', 'long_real_width', 'longrealwidth', 'long_long_real_width', 'longlongrealwidth', 'exp_width', 'expwidth', 'long_exp_width', 'longexpwidth', 'long_long_exp_width', 'longlongexpwidth', 'bits_width', 'bitswidth', 'long_bits_width', 'longbitswidth', 'long_long_bits_width', 'longlongbitswidth', 'bytes_width', 'byteswidth', 'long_bytes_width', 'longbyteswidth', 'max_real', 'maxreal', 'small_real', 'smallreal', 'long_max_int', 'longmaxint', 'long_long_max_int', 'longlongmaxint', 'long_max_real', 'longmaxreal', 'long_small_real', 'longsmallreal', 'long_long_max_real', 'longlongmaxreal', 'long_long_small_real', 'longlongsmallreal', 'long_max_bits', 'longmaxbits', 'long_long_max_bits', 'longlongmaxbits', 'null_character', 'nullcharacter', 'blank', 'flip', 'flop', 'error_char', 'errorchar', 'exp_char', 'expchar', 'newline_char', 'newlinechar', 'formfeed_char', 'formfeedchar', 'tab_char', 'tabchar'),
-        21 => array('stand_in_channel', 'standinchannel', 'stand_out_channel', 'standoutchannel', 'stand_back_channel', 'standbackchannel', 'stand_draw_channel', 'standdrawchannel', 'stand_error_channel', 'standerrorchannel'),
-        22 => array('put_possible', 'putpossible', 'get_possible', 'getpossible', 'bin_possible', 'binpossible', 'set_possible', 'setpossible', 'reset_possible', 'resetpossible', 'reidf_possible', 'reidfpossible', 'draw_possible', 'drawpossible', 'compressible', 'on_logical_file_end', 'onlogicalfileend', 'on_physical_file_end', 'onphysicalfileend', 'on_line_end', 'onlineend', 'on_page_end', 'onpageend', 'on_format_end', 'onformatend', 'on_value_error', 'onvalueerror', 'on_open_error', 'onopenerror', 'on_transput_error', 'ontransputerror', 'on_format_error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new_line', 'newline', 'print', 'write_f', 'writef', 'print_f', 'printf', 'write_bin', 'writebin', 'print_bin', 'printbin', 'read_f', 'readf', 'read_bin', 'readbin', 'put_f', 'putf', 'get_f', 'getf', 'make_term', 'maketerm', 'make_device', 'makedevice', 'idf', 'term', 'read_int', 'readint', 'read_long_int', 'readlongint', 'read_long_long_int', 'readlonglongint', 'read_real', 'readreal', 'read_long_real', 'readlongreal', 'read_long_long_real', 'readlonglongreal', 'read_complex', 'readcomplex', 'read_long_complex', 'readlongcomplex', 'read_long_long_complex', 'readlonglongcomplex', 'read_bool', 'readbool', 'read_bits', 'readbits', 'read_long_bits', 'readlongbits', 'read_long_long_bits', 'readlonglongbits', 'read_char', 'readchar', 'read_string', 'readstring', 'print_int', 'printint', 'print_long_int', 'printlongint', 'print_long_long_int', 'printlonglongint', 'print_real', 'printreal', 'print_long_real', 'printlongreal', 'print_long_long_real', 'printlonglongreal', 'print_complex', 'printcomplex', 'print_long_complex', 'printlongcomplex', 'print_long_long_complex', 'printlonglongcomplex', 'print_bool', 'printbool', 'print_bits', 'printbits', 'print_long_bits', 'printlongbits', 'print_long_long_bits', 'printlonglongbits', 'print_char', 'printchar', 'print_string', 'printstring', 'whole', 'fixed', 'float'),
-        23 => array('pi', 'long_pi', 'longpi', 'long_long_pi', 'longlongpi'),
-        24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc_sin', 'arcsin', 'cos', 'arc_cos', 'arccos', 'tan', 'arc_tan', 'arctan', 'long_sqrt', 'longsqrt', 'long_curt', 'longcurt', 'long_cbrt', 'longcbrt', 'long_exp', 'longexp', 'long_ln', 'longln', 'long_log', 'longlog', 'long_sin', 'longsin', 'long_arc_sin', 'longarcsin', 'long_cos', 'longcos', 'long_arc_cos', 'longarccos', 'long_tan', 'longtan', 'long_arc_tan', 'longarctan', 'long_long_sqrt', 'longlongsqrt', 'long_long_curt', 'longlongcurt', 'long_long_cbrt', 'longlongcbrt', 'long_long_exp', 'longlongexp', 'long_long_ln', 'longlongln', 'long_long_log', 'longlonglog', 'long_long_sin', 'longlongsin', 'long_long_arc_sin', 'longlongarcsin', 'long_long_cos', 'longlongcos', 'long_long_arc_cos', 'longlongarccos', 'long_long_tan', 'longlongtan', 'long_long_arc_tan', 'longlongarctan'),
-        25 => array('first_random', 'firstrandom', 'next_random', 'nextrandom', 'long_next_random', 'longnextrandom', 'long_long_next_random', 'longlongnextrandom'),
-        26 => array('real', 'bits_pack', 'bitspack', 'long_bits_pack', 'longbitspack', 'long_long_bits_pack', 'longlongbitspack', 'bytes_pack', 'bytespack', 'long_bytes_pack', 'longbytespack', 'char_in_string', 'charinstring', 'last_char_in_string', 'lastcharinstring', 'string_in_string', 'stringinstring'),
-        27 => array('utc_time', 'utctime', 'local_time', 'localtime', 'argc', 'argv', 'get_env', 'getenv', 'reset_errno', 'reseterrno', 'errno', 'strerror'),
-        28 => array('sinh', 'long_sinh', 'longsinh', 'long_long_sinh', 'longlongsinh', 'arc_sinh', 'arcsinh', 'long_arc_sinh', 'longarcsinh', 'long_long_arc_sinh', 'longlongarcsinh', 'cosh', 'long_cosh', 'longcosh', 'long_long_cosh', 'longlongcosh', 'arc_cosh', 'arccosh', 'long_arc_cosh', 'longarccosh', 'long_long_arc_cosh', 'longlongarccosh', 'tanh', 'long_tanh', 'longtanh', 'long_long_tanh', 'longlongtanh', 'arc_tanh', 'arctanh', 'long_arc_tanh', 'longarctanh', 'long_long_arc_tanh', 'longlongarctanh', 'arc_tan2', 'arctan2', 'long_arc_tan2', 'longarctan2', 'long_long_arc_tan2', 'longlongarctan2'),
-        29 => array('complex_sqrt', 'complexsqrt', 'long_complex_sqrt', 'longcomplexsqrt', 'long_long_complex_sqrt', 'longlongcomplexsqrt', 'complex_exp', 'complexexp', 'long_complex_exp', 'longcomplexexp', 'long_long_complex_exp', 'longlongcomplexexp', 'complex_ln', 'complexln', 'long_complex_ln', 'longcomplexln', 'long_long_complex_ln', 'longlongcomplexln', 'complex_sin', 'complexsin', 'long_complex_sin', 'longcomplexsin', 'long_long_complex_sin', 'longlongcomplexsin', 'complex_arc_sin', 'complexarcsin', 'long_complex_arc_sin', 'longcomplexarcsin', 'long_long_complex_arc_sin', 'longlongcomplexarcsin', 'complex_cos', 'complexcos', 'long_complex_cos', 'longcomplexcos', 'long_long_complex_cos', 'longlongcomplexcos', 'complex_arc_cos', 'complexarccos', 'long_complex_arc_cos', 'longcomplexarccos', 'long_long_complex_arc_cos', 'longlongcomplexarccos', 'complex_tan', 'complextan', 'long_complex_tan', 'longcomplextan', 'long_long_complex_tan', 'longlongcomplextan', 'complex_arc_tan', 'complexarctan', 'long_complex_arc_tan', 'longcomplexarctan', 'long_long_complex_arc_tan', 'longlongcomplexarctan', 'complex_sinh', 'complexsinh', 'complex_arc_sinh', 'complexarcsinh', 'complex_cosh', 'complexcosh', 'complex_arc_cosh', 'complexarccosh', 'complex_tanh', 'complextanh', 'complex_arc_tanh', 'complexarctanh')
+# Built in procedures - from standard prelude #
+        20 => array('int lengths', 'intlengths', 'int shorths', 'intshorths', 'max int', 'maxint', 'real lengths', 'reallengths', 'real shorths', 'realshorths', 'bits lengths', 'bitslengths', 'bits shorths', 'bitsshorths', 'bytes lengths', 'byteslengths', 'bytes shorths', 'bytesshorths', 'max abs char', 'maxabschar', 'int width', 'intwidth', 'long int width', 'longintwidth', 'long long int width', 'longlongintwidth', 'real width', 'realwidth', 'long real width', 'longrealwidth', 'long long real width', 'longlongrealwidth', 'exp width', 'expwidth', 'long exp width', 'longexpwidth', 'long long exp width', 'longlongexpwidth', 'bits width', 'bitswidth', 'long bits width', 'longbitswidth', 'long long bits width', 'longlongbitswidth', 'bytes width', 'byteswidth', 'long bytes width', 'longbyteswidth', 'max real', 'maxreal', 'small real', 'smallreal', 'long max int', 'longmaxint', 'long long max int', 'longlongmaxint', 'long max real', 'longmaxreal', 'long small real', 'longsmallreal', 'long long max real', 'longlongmaxreal', 'long long small real', 'longlongsmallreal', 'long max bits', 'longmaxbits', 'long long max bits', 'longlongmaxbits', 'null character', 'nullcharacter', 'blank', 'flip', 'flop', 'error char', 'errorchar', 'exp char', 'expchar', 'newline char', 'newlinechar', 'formfeed char', 'formfeedchar', 'tab char', 'tabchar'),
+        21 => array('stand in channel', 'standinchannel', 'stand out channel', 'standoutchannel', 'stand back channel', 'standbackchannel', 'stand draw channel', 'standdrawchannel', 'stand error channel', 'standerrorchannel'),
+        22 => array('put possible', 'putpossible', 'get possible', 'getpossible', 'bin possible', 'binpossible', 'set possible', 'setpossible', 'reset possible', 'resetpossible', 'reidf possible', 'reidfpossible', 'draw possible', 'drawpossible', 'compressible', 'on logical file end', 'onlogicalfileend', 'on physical file end', 'onphysicalfileend', 'on line end', 'onlineend', 'on page end', 'onpageend', 'on format end', 'onformatend', 'on value error', 'onvalueerror', 'on open error', 'onopenerror', 'on transput error', 'ontransputerror', 'on format error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new line', 'newline', 'print', 'write f', 'writef', 'print f', 'printf', 'write bin', 'writebin', 'print bin', 'printbin', 'read f', 'readf', 'read bin', 'readbin', 'put f', 'putf', 'get f', 'getf', 'make term', 'maketerm', 'make device', 'makedevice', 'idf', 'term', 'read int', 'readint', 'read long int', 'readlongint', 'read long long int', 'readlonglongint', 'read real', 'readreal', 'read long real', 'readlongreal', 'read long long real', 'readlonglongreal', 'read complex', 'readcomplex', 'read long complex', 'readlongcomplex', 'read long long complex', 'readlonglongcomplex', 'read bool', 'readbool', 'read bits', 'readbits', 'read long bits', 'readlongbits', 'read long long bits', 'readlonglongbits', 'read char', 'readchar', 'read string', 'readstring', 'print int', 'printint', 'print long int', 'printlongint', 'print long long int', 'printlonglongint', 'print real', 'printreal', 'print long real', 'printlongreal', 'print long long real', 'printlonglongreal', 'print complex', 'printcomplex', 'print long complex', 'printlongcomplex', 'print long long complex', 'printlonglongcomplex', 'print bool', 'printbool', 'print bits', 'printbits', 'print long bits', 'printlongbits', 'print long long bits', 'printlonglongbits', 'print char', 'printchar', 'print string', 'printstring', 'whole', 'fixed', 'float'),
+        23 => array('pi', 'long pi', 'longpi', 'long long pi', 'longlongpi'),
+        24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc sin', 'arcsin', 'cos', 'arc cos', 'arccos', 'tan', 'arc tan', 'arctan', 'long sqrt', 'longsqrt', 'long curt', 'longcurt', 'long cbrt', 'longcbrt', 'long exp', 'longexp', 'long ln', 'longln', 'long log', 'longlog', 'long sin', 'longsin', 'long arc sin', 'longarcsin', 'long cos', 'longcos', 'long arc cos', 'longarccos', 'long tan', 'longtan', 'long arc tan', 'longarctan', 'long long sqrt', 'longlongsqrt', 'long long curt', 'longlongcurt', 'long long cbrt', 'longlongcbrt', 'long long exp', 'longlongexp', 'long long ln', 'longlongln', 'long long log', 'longlonglog', 'long long sin', 'longlongsin', 'long long arc sin', 'longlongarcsin', 'long long cos', 'longlongcos', 'long long arc cos', 'longlongarccos', 'long long tan', 'longlongtan', 'long long arc tan', 'longlongarctan'),
+        25 => array('first random', 'firstrandom', 'next random', 'nextrandom', 'long next random', 'longnextrandom', 'long long next random', 'longlongnextrandom'),
+        26 => array('real', 'bits pack', 'bitspack', 'long bits pack', 'longbitspack', 'long long bits pack', 'longlongbitspack', 'bytes pack', 'bytespack', 'long bytes pack', 'longbytespack', 'char in string', 'charinstring', 'last char in string', 'lastcharinstring', 'string in string', 'stringinstring'),
+        27 => array('utc time', 'utctime', 'local time', 'localtime', 'argc', 'argv', 'get env', 'getenv', 'reset errno', 'reseterrno', 'errno', 'strerror'),
+        28 => array('sinh', 'long sinh', 'longsinh', 'long long sinh', 'longlongsinh', 'arc sinh', 'arcsinh', 'long arc sinh', 'longarcsinh', 'long long arc sinh', 'longlongarcsinh', 'cosh', 'long cosh', 'longcosh', 'long long cosh', 'longlongcosh', 'arc cosh', 'arccosh', 'long arc cosh', 'longarccosh', 'long long arc cosh', 'longlongarccosh', 'tanh', 'long tanh', 'longtanh', 'long long tanh', 'longlongtanh', 'arc tanh', 'arctanh', 'long arc tanh', 'longarctanh', 'long long arc tanh', 'longlongarctanh', 'arc tan2', 'arctan2', 'long arc tan2', 'longarctan2', 'long long arc tan2', 'longlongarctan2'),
+        29 => array('complex sqrt', 'complexsqrt', 'long complex sqrt', 'longcomplexsqrt', 'long long complex sqrt', 'longlongcomplexsqrt', 'complex exp', 'complexexp', 'long complex exp', 'longcomplexexp', 'long long complex exp', 'longlongcomplexexp', 'complex ln', 'complexln', 'long complex ln', 'longcomplexln', 'long long complex ln', 'longlongcomplexln', 'complex sin', 'complexsin', 'long complex sin', 'longcomplexsin', 'long long complex sin', 'longlongcomplexsin', 'complex arc sin', 'complexarcsin', 'long complex arc sin', 'longcomplexarcsin', 'long long complex arc sin', 'longlongcomplexarcsin', 'complex cos', 'complexcos', 'long complex cos', 'longcomplexcos', 'long long complex cos', 'longlongcomplexcos', 'complex arc cos', 'complexarccos', 'long complex arc cos', 'longcomplexarccos', 'long long complex arc cos', 'longlongcomplexarccos', 'complex tan', 'complextan', 'long complex tan', 'longcomplextan', 'long long complex tan', 'longlongcomplextan', 'complex arc tan', 'complexarctan', 'long complex arc tan', 'longcomplexarctan', 'long long complex arc tan', 'longlongcomplexarctan', 'complex sinh', 'complexsinh', 'complex arc sinh', 'complexarcsinh', 'complex cosh', 'complexcosh', 'complex arc cosh', 'complexarccosh', 'complex tanh', 'complextanh', 'complex arc tanh', 'complexarctanh')
         ),
     'SYMBOLS' => array(
-        1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
-            )
-        ),
+        1 => array( /* reverse length sorted... */ '÷×:=', '%×:=', ':≠:', '÷*:=', '÷::=', '%*:=', ':/=:', '×:=', '÷:=', '÷×', '%:=', '%×', '*:=', '+:=', '+=:', '+×', '-:=', '/:=', '::=', ':=:', '÷*', '÷:', '↑', '↓', '∧', '∨', '≠', '≤', '≥', '⊥', '⌈', '⌊', '⎧', '⎩', /* '⏨', */ '□', '○', '%*', '**', '+*', '/=', '::', '/\\', '\\/', '<=', '>=', '|:', '~=', '¬', '×', '÷', '!', '%', '&', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '{', '|', '}', '~')
+    ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => true,
@@ -99,11 +214,11 @@ $language_data = array(
         6 => true,
         7 => true,
         8 => true,
-        9 => true,
+#        9 => true,
         10 => true,
         11 => true,
         12 => true,
-        13 => true,
+#        13 => true,
         14 => true,
         15 => true,
         16 => true,
@@ -123,43 +238,18 @@ $language_data = array(
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #b1b100; font-weight: bold;',
-            2 => 'color: #b1b100; font-weight: bold;',
-            3 => 'color: #b1b100; font-weight: bold;',
-            4 => 'color: #b1b100; font-weight: bold;',
-            5 => 'color: #b1b100; font-weight: bold;',
-            6 => 'color: #b1b100; font-weight: bold;',
-            7 => 'color: #b1b100; font-weight: bold;',
-            8 => 'color: #b1b100; font-weight: bold;',
-            9 => 'color: #b1b100; font-weight: bold;',
-            10 => 'color: #b1b100; font-weight: bold;',
-            11 => 'color: #b1b100; font-weight: bold;',
-            12 => 'color: #b1b100; font-weight: bold;',
-            13 => 'color: #b1b100; font-weight: bold;',
-            14 => 'color: #b1b100; font-weight: bold;',
-            15 => 'color: #b1b100; font-weight: bold;',
-            16 => 'color: #b1b100; font-weight: bold;',
-            17 => 'color: #b1b100; font-weight: bold;',
-            18 => 'color: #b1b100; font-weight: bold;',
-            19 => 'color: #b1b100; font-weight: bold;',
-            20 => 'color: #b1b100;',
-            21 => 'color: #b1b100;',
-            22 => 'color: #b1b100;',
-            23 => 'color: #b1b100;',
-            24 => 'color: #b1b100;',
-            25 => 'color: #b1b100;',
-            26 => 'color: #b1b100;',
-            27 => 'color: #b1b100;',
-            28 => 'color: #b1b100;',
-            29 => 'color: #b1b100;'
+            1 => $a68['NONSTD'], 2 => $a68['BOLD'], 3 => $a68['BOLD'], 4 => $a68['BOLD'],
+            5 => $a68['NONSTD'], 6 => $a68['BOLD'], 7 => $a68['BOLD'], 8 => $a68['BOLD'],
+            /* 9 => $a68['BOLD'],*/ 10 => $a68['BOLD'], 11 => $a68['BOLD'], 12 => $a68['BOLD'],
+            /* 13 => $a68['BOLD'],*/ 14 => $a68['BOLD'], 15 => $a68['BOLD'], 16 => $a68['BOLD'], 17 => $a68['BOLD'],
+            18 => $a68['NONSTD'], 19 => $a68['NONSTD'],
+            20 => $a68['ITALIC'], 21 => $a68['ITALIC'], 22 => $a68['ITALIC'], 23 => $a68['ITALIC'],
+            24 => $a68['ITALIC'], 25 => $a68['ITALIC'], 26 => $a68['ITALIC'], 27 => $a68['ITALIC'],
+            28 => $a68['ITALIC'], 29 => $a68['ITALIC']
             ),
         'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #666666; font-style: italic;',
-            3 => 'color: #666666; font-style: italic;',
-            4 => 'color: #666666; font-style: italic;',
-            5 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
+            1 => $a68['COMMENT'], 2 => $a68['COMMENT'], 3 => $a68['COMMENT'], /* 4 => $a68['COMMENT'],
+            5 => $a68['COMMENT'],*/ 'MULTI' => $a68['COMMENT']
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
@@ -174,12 +264,18 @@ $language_data = array(
             0 => 'color: #cc66cc;',
             ),
         'METHODS' => array(
-            0 => 'color: #004000;'
+            0 => 'color: #004000;',
+            1 => 'color: #004000;'
             ),
         'SYMBOLS' => array(
+            0 => 'color: #339933;',
             1 => 'color: #339933;'
             ),
-        'REGEXPS' => array(),
+        'REGEXPS' => array(
+            0  => 'color: #cc66cc;',   # BITS #
+            1  => 'color: #cc66cc;',   # REAL #
+            /* 2  => 'color: #cc66cc;',   # INT # */
+            ),
         'SCRIPT' => array()
         ),
     'URLS' => array(
@@ -191,11 +287,11 @@ $language_data = array(
         6 => '',
         7 => '',
         8 => '',
-        9 => '',
+#        9 => '',
         10 => '',
         11 => '',
         12 => '',
-        13 => '',
+#        13 => '',
         14 => '',
         15 => '',
         16 => '',
@@ -215,12 +311,19 @@ $language_data = array(
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
+        0 => '→',
         1 => 'OF'
         ),
-    'REGEXPS' => array(),
+    'REGEXPS' => array(
+        0 => $a68['BITS'],
+        1 => $a68['REAL']
+        # 2 => $a68['INT'], # Breaks formatting for some reason #
+        # 2 => $GESHI_NUMBER_INT_BASIC # Also breaks formatting  #
+    ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(),
     'HIGHLIGHT_STRICT_BLOCK' => array()
 );
 
+unset($a68);
 ?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/apache.php b/wp-content/plugins/wp-syntax/geshi/geshi/apache.php
index ddd4d6a0355e53fb0d8c4afc080a2d94a0acb792..c944443c73515fde1d4dc873f109e9c3d4e561b8 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/apache.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/apache.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inmail.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/29/07
  *
  * Apache language file for GeSHi.
@@ -344,6 +344,9 @@ $language_data = array (
 
             //mod_unique_id.c
 
+            //mod_upload_progress
+            'ReportUploads', 'TrackUploads', 'UploadProgressSharedMemorySize',
+
             //mod_userdir.c
             'UserDir',
 
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/applescript.php b/wp-content/plugins/wp-syntax/geshi/geshi/applescript.php
index 870ac0fd04fda8bdbbeda5e82df877a197d04247..603fa4a3e54206348ac260f1ee1dff3037f387e9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/applescript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/applescript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Stephan Klimek (http://www.initware.org)
  * Copyright: Stephan Klimek (http://www.initware.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/07/20
  *
  * AppleScript language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/apt_sources.php b/wp-content/plugins/wp-syntax/geshi/geshi/apt_sources.php
index 0512380b86f6558b4864d985ebf002d7400d0a0c..9f1ed045e15a54ebf8fc2a79b03c8b81d8b4322a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/apt_sources.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/apt_sources.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/06/17
  *
  * Apt sources.list language file for GeSHi.
@@ -55,7 +55,7 @@ $language_data = array (
             'stable/updates',
             //Debian
             'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge',
-            'etch', 'lenny', 'sid',
+            'etch', 'lenny', 'wheezy', 'sid',
             //Ubuntu
             'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports',
             'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports',
@@ -65,7 +65,11 @@ $language_data = array (
             'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports',
             'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports',
             'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports',
-            'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports'
+            'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports',
+            'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports',
+            'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports',
+            'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports',
+            'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports'
             ),
         3 => array(
             'main', 'restricted', 'preview', 'contrib', 'non-free',
@@ -141,4 +145,4 @@ $language_data = array (
     'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/arm.php b/wp-content/plugins/wp-syntax/geshi/geshi/arm.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e3c0a37e983d3cf87ac7eb1a71fe07e62ff651f
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/arm.php
@@ -0,0 +1,3318 @@
+<?php
+/*************************************************************************************
+ * arm.php
+ * -------
+ * Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/10/06
+ *
+ * ARM Assembler language file for GeSHi.
+ * Based on the following documents:
+ *   - "ARM Architecture Reference Manual: ARMv7-A and ARMv7-R edition"
+ *   - "Intel XScale Technology: Intel Wireless MMX2 Coprocessor",
+ *       Revision 1.5, July 2006
+ *
+ * CHANGES
+ * -------
+ * 2011/10/06
+ *   -  First Release (supported UAL syntax for up to ARMv7 A/R, VFPv3, NEON, WMMX/WMMX2)
+ *
+ * TODO (updated 2011/10/06)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'ARM ASSEMBLER',
+    'COMMENT_SINGLE' => array(
+        1 => ';'
+        ),
+    'COMMENT_MULTI' => array(),
+    //Line address prefix suppression
+    'COMMENT_REGEXP' => array(
+        2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        /* Unconditional Data Processing Instructions */
+        1 => array(
+            /* Data Processing: Unconditional Addition & Subtraction */
+            'adc.w','adcal.w',
+            'adc','adcal',
+            'add.w','addal.w',
+            'add','addal',
+            'addw','addwal',
+            'rsb.w','rsbal.w',
+            'rsb','rsbal',
+            'rsc','rscal',
+            'sbc.w','sbcal.w',
+            'sbc','sbcal',
+            'sub.w','subal.w',
+            'sub','subal',
+            'neg.w','negal.w',
+            'neg','negal',
+            'adr.w','adral.w',
+            'adr','adral',
+            /* Data Processing: Unconditional Logical */
+            'and.w','andal.w',
+            'and','andal',
+            'bic.w','bical.w',
+            'bic','bical',
+            'orr.w','orral.w',
+            'orr','orral',
+            'orn.w','ornal.w',
+            'orn','ornal',
+            'eor.w','eoral.w',
+            'eor','eoral',
+            'mov.w','moval.w',
+            'mov','moval',
+            'movw','movwal',
+            'movt','movtal',
+            'cpy','cpyal',
+            'mvn.w','mvnal.w',
+            'mvn','mvnal',
+            /* Data Processing: Unconditional Shifts and Rotates */
+            'asr.w','asral.w',
+            'asr','asral',
+            'lsl.w','lslal.w',
+            'lsl','lslal',
+            'lsr.w','lsral.w',
+            'lsr','lsral',
+            'ror.w','roral.w',
+            'ror','roral',
+            'rrx','rrxal',
+            /* Data Processing: Unconditional Word Multiply and Multiply-Add */
+            'mul','mulal',
+            'mla','mlaal',
+            'mls','mlsal',
+            'smull','smullal',
+            'muls','mulsal',
+            'umull','umullal',
+            'smlal','smlalal',
+            'umlal','umlalal',
+            /* Data Processing: Unconditional Halfword Multiply and Multiply-Add (ARMv5TE) */
+            'smulbb','smulbbal',
+            'smulbt','smulbtal',
+            'smultb','smultbal',
+            'smultt','smulttal',
+            'smulwb','smulwbal',
+            'smulwt','smulwtal',
+            'smlalbb','smlalbbal',
+            'smlalbt','smlalbtal',
+            'smlaltb','smlaltbal',
+            'smlaltt','smlalttal',
+            'smlabb','smlabbal',
+            'smlabt','smlabtal',
+            'smlatb','smlatbal',
+            'smlatt','smlattal',
+            'smlawb','smlawbal',
+            'smlawt','smlawtal',
+            /* Data Processing: Unconditional Bit Operations */
+            'ubfx','ubfxal',
+            'sbfx','sbfxal',
+            'bfc','bfcal',
+            'bfi','bfial',
+            'clz','clzal',
+            /* Data Processing: Unconditional Divide (ARMv7-R) */
+            'sdiv','sdival',
+            'udiv','udival'
+            ),
+        /* Conditional Data Processing Instructions */
+        2 => array(
+            /* Data Processing: Conditional Addition & Subtraction */
+            'adceq.w','adcne.w','adccs.w','adchs.w','adccc.w','adclo.w','adcmi.w','adcpl.w','adcvs.w','adcvc.w','adchi.w','adcls.w','adcge.w','adclt.w','adcgt.w','adcle.w',
+            'adceq','adcne','adccs','adchs','adccc','adclo','adcmi','adcpl','adcvs','adcvc','adchi','adcls','adcge','adclt','adcgt','adcle',
+            'addeq.w','addne.w','addcs.w','addhs.w','addcc.w','addlo.w','addmi.w','addpl.w','addvs.w','addvc.w','addhi.w','addls.w','addge.w','addlt.w','addgt.w','addle.w',
+            'addeq','addne','addcs','addhs','addcc','addlo','addmi','addpl','addvs','addvc','addhi','addls','addge','addlt','addgt','addle',
+            'addweq','addwne','addwcs','addwhs','addwcc','addwlo','addwmi','addwpl','addwvs','addwvc','addwhi','addwls','addwge','addwlt','addwgt','addwle',
+            'rsbeq.w','rsbne.w','rsbcs.w','rsbhs.w','rsbcc.w','rsblo.w','rsbmi.w','rsbpl.w','rsbvs.w','rsbvc.w','rsbhi.w','rsbls.w','rsbge.w','rsblt.w','rsbgt.w','rsble.w',
+            'rsbeq','rsbne','rsbcs','rsbhs','rsbcc','rsblo','rsbmi','rsbpl','rsbvs','rsbvc','rsbhi','rsbls','rsbge','rsblt','rsbgt','rsble',
+            'rsceq','rscne','rsccs','rschs','rsccc','rsclo','rscmi','rscpl','rscvs','rscvc','rschi','rscls','rscge','rsclt','rscgt','rscle',
+            'sbceq.w','sbcne.w','sbccs.w','sbchs.w','sbccc.w','sbclo.w','sbcmi.w','sbcpl.w','sbcvs.w','sbcvc.w','sbchi.w','sbcls.w','sbcge.w','sbclt.w','sbcgt.w','sbcle.w',
+            'sbceq','sbcne','sbccs','sbchs','sbccc','sbclo','sbcmi','sbcpl','sbcvs','sbcvc','sbchi','sbcls','sbcge','sbclt','sbcgt','sbcle',
+            'subeq.w','subne.w','subcs.w','subhs.w','subcc.w','sublo.w','submi.w','subpl.w','subvs.w','subvc.w','subhi.w','subls.w','subge.w','sublt.w','subgt.w','suble.w',
+            'subeq','subne','subcs','subhs','subcc','sublo','submi','subpl','subvs','subvc','subhi','subls','subge','sublt','subgt','suble',
+            'negeq.w','negne.w','negcs.w','neghs.w','negcc.w','neglo.w','negmi.w','negpl.w','negvs.w','negvc.w','neghi.w','negls.w','negge.w','neglt.w','neggt.w','negle.w',
+            'negeq','negne','negcs','neghs','negcc','neglo','negmi','negpl','negvs','negvc','neghi','negls','negge','neglt','neggt','negle',
+            'adreq.w','adrne.w','adrcs.w','adrhs.w','adrcc.w','adrlo.w','adrmi.w','adrpl.w','adrvs.w','adrvc.w','adrhi.w','adrls.w','adrge.w','adrlt.w','adrgt.w','adrle.w',
+            'adreq','adrne','adrcs','adrhs','adrcc','adrlo','adrmi','adrpl','adrvs','adrvc','adrhi','adrls','adrge','adrlt','adrgt','adrle',
+            /* Data Processing: Conditional Logical */
+            'andeq.w','andne.w','andcs.w','andhs.w','andcc.w','andlo.w','andmi.w','andpl.w','andvs.w','andvc.w','andhi.w','andls.w','andge.w','andlt.w','andgt.w','andle.w',
+            'andeq','andne','andcs','andhs','andcc','andlo','andmi','andpl','andvs','andvc','andhi','andls','andge','andlt','andgt','andle',
+            'biceq.w','bicne.w','biccs.w','bichs.w','biccc.w','biclo.w','bicmi.w','bicpl.w','bicvs.w','bicvc.w','bichi.w','bicls.w','bicge.w','biclt.w','bicgt.w','bicle.w',
+            'biceq','bicne','biccs','bichs','biccc','biclo','bicmi','bicpl','bicvs','bicvc','bichi','bicls','bicge','biclt','bicgt','bicle',
+            'orreq.w','orrne.w','orrcs.w','orrhs.w','orrcc.w','orrlo.w','orrmi.w','orrpl.w','orrvs.w','orrvc.w','orrhi.w','orrls.w','orrge.w','orrlt.w','orrgt.w','orrle.w',
+            'orreq','orrne','orrcs','orrhs','orrcc','orrlo','orrmi','orrpl','orrvs','orrvc','orrhi','orrls','orrge','orrlt','orrgt','orrle',
+            'orneq.w','ornne.w','orncs.w','ornhs.w','orncc.w','ornlo.w','ornmi.w','ornpl.w','ornvs.w','ornvc.w','ornhi.w','ornls.w','ornge.w','ornlt.w','orngt.w','ornle.w',
+            'orneq','ornne','orncs','ornhs','orncc','ornlo','ornmi','ornpl','ornvs','ornvc','ornhi','ornls','ornge','ornlt','orngt','ornle',
+            'eoreq.w','eorne.w','eorcs.w','eorhs.w','eorcc.w','eorlo.w','eormi.w','eorpl.w','eorvs.w','eorvc.w','eorhi.w','eorls.w','eorge.w','eorlt.w','eorgt.w','eorle.w',
+            'eoreq','eorne','eorcs','eorhs','eorcc','eorlo','eormi','eorpl','eorvs','eorvc','eorhi','eorls','eorge','eorlt','eorgt','eorle',
+            'moveq.w','movne.w','movcs.w','movhs.w','movcc.w','movlo.w','movmi.w','movpl.w','movvs.w','movvc.w','movhi.w','movls.w','movge.w','movlt.w','movgt.w','movle.w',
+            'moveq','movne','movcs','movhs','movcc','movlo','movmi','movpl','movvs','movvc','movhi','movls','movge','movlt','movgt','movle',
+            'movweq','movwne','movwcs','movwhs','movwcc','movwlo','movwmi','movwpl','movwvs','movwvc','movwhi','movwls','movwge','movwlt','movwgt','movwle',
+            'movteq','movtne','movtcs','movths','movtcc','movtlo','movtmi','movtpl','movtvs','movtvc','movthi','movtls','movtge','movtlt','movtgt','movtle',
+            'cpyeq','cpyne','cpycs','cpyhs','cpycc','cpylo','cpymi','cpypl','cpyvs','cpyvc','cpyhi','cpyls','cpyge','cpylt','cpygt','cpyle',
+            'mvneq.w','mvnne.w','mvncs.w','mvnhs.w','mvncc.w','mvnlo.w','mvnmi.w','mvnpl.w','mvnvs.w','mvnvc.w','mvnhi.w','mvnls.w','mvnge.w','mvnlt.w','mvngt.w','mvnle.w',
+            'mvneq','mvnne','mvncs','mvnhs','mvncc','mvnlo','mvnmi','mvnpl','mvnvs','mvnvc','mvnhi','mvnls','mvnge','mvnlt','mvngt','mvnle',
+            /* Data Processing: Conditional Shifts and Rotates */
+            'asreq.w','asrne.w','asrcs.w','asrhs.w','asrcc.w','asrlo.w','asrmi.w','asrpl.w','asrvs.w','asrvc.w','asrhi.w','asrls.w','asrge.w','asrlt.w','asrgt.w','asrle.w',
+            'asreq','asrne','asrcs','asrhs','asrcc','asrlo','asrmi','asrpl','asrvs','asrvc','asrhi','asrls','asrge','asrlt','asrgt','asrle',
+            'lsleq.w','lslne.w','lslcs.w','lslhs.w','lslcc.w','lsllo.w','lslmi.w','lslpl.w','lslvs.w','lslvc.w','lslhi.w','lslls.w','lslge.w','lsllt.w','lslgt.w','lslle.w',
+            'lsleq','lslne','lslcs','lslhs','lslcc','lsllo','lslmi','lslpl','lslvs','lslvc','lslhi','lslls','lslge','lsllt','lslgt','lslle',
+            'lsreq.w','lsrne.w','lsrcs.w','lsrhs.w','lsrcc.w','lsrlo.w','lsrmi.w','lsrpl.w','lsrvs.w','lsrvc.w','lsrhi.w','lsrls.w','lsrge.w','lsrlt.w','lsrgt.w','lsrle.w',
+            'lsreq','lsrne','lsrcs','lsrhs','lsrcc','lsrlo','lsrmi','lsrpl','lsrvs','lsrvc','lsrhi','lsrls','lsrge','lsrlt','lsrgt','lsrle',
+            'roreq.w','rorne.w','rorcs.w','rorhs.w','rorcc.w','rorlo.w','rormi.w','rorpl.w','rorvs.w','rorvc.w','rorhi.w','rorls.w','rorge.w','rorlt.w','rorgt.w','rorle.w',
+            'roreq','rorne','rorcs','rorhs','rorcc','rorlo','rormi','rorpl','rorvs','rorvc','rorhi','rorls','rorge','rorlt','rorgt','rorle',
+            'rrxeq','rrxne','rrxcs','rrxhs','rrxcc','rrxlo','rrxmi','rrxpl','rrxvs','rrxvc','rrxhi','rrxls','rrxge','rrxlt','rrxgt','rrxle',
+            /* Data Processing: Conditional Word Multiply and Multiply-Add */
+            'muleq','mulne','mulcs','mulhs','mulcc','mullo','mulmi','mulpl','mulvs','mulvc','mulhi','mulls','mulge','mullt','mulgt','mulle',
+            'mlaeq','mlane','mlacs','mlahs','mlacc','mlalo','mlami','mlapl','mlavs','mlavc','mlahi','mlals','mlage','mlalt','mlagt','mlale',
+            'mlseq','mlsne','mlscs','mlshs','mlscc','mlslo','mlsmi','mlspl','mlsvs','mlsvc','mlshi','mlsls','mlsge','mlslt','mlsgt','mlsle',
+            'smulleq','smullne','smullcs','smullhs','smullcc','smulllo','smullmi','smullpl','smullvs','smullvc','smullhi','smullls','smullge','smulllt','smullgt','smullle',
+            'mulseq','mulsne','mulscs','mulshs','mulscc','mulslo','mulsmi','mulspl','mulsvs','mulsvc','mulshi','mulsls','mulsge','mulslt','mulsgt','mulsle',
+            'umulleq','umullne','umullcs','umullhs','umullcc','umulllo','umullmi','umullpl','umullvs','umullvc','umullhi','umullls','umullge','umulllt','umullgt','umullle',
+            'smlaleq','smlalne','smlalcs','smlalhs','smlalcc','smlallo','smlalmi','smlalpl','smlalvs','smlalvc','smlalhi','smlalls','smlalge','smlallt','smlalgt','smlalle',
+            'umlaleq','umlalne','umlalcs','umlalhs','umlalcc','umlallo','umlalmi','umlalpl','umlalvs','umlalvc','umlalhi','umlalls','umlalge','umlallt','umlalgt','umlalle',
+            /* Data Processing: Conditional Halfword Multiply and Multiply-Add (ARMv5TE) */
+            'smulbbeq','smulbbne','smulbbcs','smulbbhs','smulbbcc','smulbblo','smulbbmi','smulbbpl','smulbbvs','smulbbvc','smulbbhi','smulbbls','smulbbge','smulbblt','smulbbgt','smulbble',
+            'smulbteq','smulbtne','smulbtcs','smulbths','smulbtcc','smulbtlo','smulbtmi','smulbtpl','smulbtvs','smulbtvc','smulbthi','smulbtls','smulbtge','smulbtlt','smulbtgt','smulbtle',
+            'smultbeq','smultbne','smultbcs','smultbhs','smultbcc','smultblo','smultbmi','smultbpl','smultbvs','smultbvc','smultbhi','smultbls','smultbge','smultblt','smultbgt','smultble',
+            'smultteq','smulttne','smulttcs','smultths','smulttcc','smulttlo','smulttmi','smulttpl','smulttvs','smulttvc','smultthi','smulttls','smulttge','smulttlt','smulttgt','smulttle',
+            'smulwbeq','smulwbne','smulwbcs','smulwbhs','smulwbcc','smulwblo','smulwbmi','smulwbpl','smulwbvs','smulwbvc','smulwbhi','smulwbls','smulwbge','smulwblt','smulwbgt','smulwble',
+            'smulwteq','smulwtne','smulwtcs','smulwths','smulwtcc','smulwtlo','smulwtmi','smulwtpl','smulwtvs','smulwtvc','smulwthi','smulwtls','smulwtge','smulwtlt','smulwtgt','smulwtle',
+            'smlalbbeq','smlalbbne','smlalbbcs','smlalbbhs','smlalbbcc','smlalbblo','smlalbbmi','smlalbbpl','smlalbbvs','smlalbbvc','smlalbbhi','smlalbbls','smlalbbge','smlalbblt','smlalbbgt','smlalbble',
+            'smlalbteq','smlalbtne','smlalbtcs','smlalbths','smlalbtcc','smlalbtlo','smlalbtmi','smlalbtpl','smlalbtvs','smlalbtvc','smlalbthi','smlalbtls','smlalbtge','smlalbtlt','smlalbtgt','smlalbtle',
+            'smlaltbeq','smlaltbne','smlaltbcs','smlaltbhs','smlaltbcc','smlaltblo','smlaltbmi','smlaltbpl','smlaltbvs','smlaltbvc','smlaltbhi','smlaltbls','smlaltbge','smlaltblt','smlaltbgt','smlaltble',
+            'smlaltteq','smlalttne','smlalttcs','smlaltths','smlalttcc','smlalttlo','smlalttmi','smlalttpl','smlalttvs','smlalttvc','smlaltthi','smlalttls','smlalttge','smlalttlt','smlalttgt','smlalttle',
+            'smlabbeq','smlabbne','smlabbcs','smlabbhs','smlabbcc','smlabblo','smlabbmi','smlabbpl','smlabbvs','smlabbvc','smlabbhi','smlabbls','smlabbge','smlabblt','smlabbgt','smlabble',
+            'smlabteq','smlabtne','smlabtcs','smlabths','smlabtcc','smlabtlo','smlabtmi','smlabtpl','smlabtvs','smlabtvc','smlabthi','smlabtls','smlabtge','smlabtlt','smlabtgt','smlabtle',
+            'smlatbeq','smlatbne','smlatbcs','smlatbhs','smlatbcc','smlatblo','smlatbmi','smlatbpl','smlatbvs','smlatbvc','smlatbhi','smlatbls','smlatbge','smlatblt','smlatbgt','smlatble',
+            'smlatteq','smlattne','smlattcs','smlatths','smlattcc','smlattlo','smlattmi','smlattpl','smlattvs','smlattvc','smlatthi','smlattls','smlattge','smlattlt','smlattgt','smlattle',
+            'smlawbeq','smlawbne','smlawbcs','smlawbhs','smlawbcc','smlawblo','smlawbmi','smlawbpl','smlawbvs','smlawbvc','smlawbhi','smlawbls','smlawbge','smlawblt','smlawbgt','smlawble',
+            'smlawteq','smlawtne','smlawtcs','smlawths','smlawtcc','smlawtlo','smlawtmi','smlawtpl','smlawtvs','smlawtvc','smlawthi','smlawtls','smlawtge','smlawtlt','smlawtgt','smlawtle',
+            /* Data Processing: Conditional Bit Operations */
+            'ubfxeq','ubfxne','ubfxcs','ubfxhs','ubfxcc','ubfxlo','ubfxmi','ubfxpl','ubfxvs','ubfxvc','ubfxhi','ubfxls','ubfxge','ubfxlt','ubfxgt','ubfxle',
+            'sbfxeq','sbfxne','sbfxcs','sbfxhs','sbfxcc','sbfxlo','sbfxmi','sbfxpl','sbfxvs','sbfxvc','sbfxhi','sbfxls','sbfxge','sbfxlt','sbfxgt','sbfxle',
+            'bfceq','bfcne','bfccs','bfchs','bfccc','bfclo','bfcmi','bfcpl','bfcvs','bfcvc','bfchi','bfcls','bfcge','bfclt','bfcgt','bfcle',
+            'bfieq','bfine','bfics','bfihs','bficc','bfilo','bfimi','bfipl','bfivs','bfivc','bfihi','bfils','bfige','bfilt','bfigt','bfile',
+            'clzeq','clzne','clzcs','clzhs','clzcc','clzlo','clzmi','clzpl','clzvs','clzvc','clzhi','clzls','clzge','clzlt','clzgt','clzle',
+            /* ARMv7-R: Conditional Divide */
+            'sdiveq','sdivne','sdivcs','sdivhs','sdivcc','sdivlo','sdivmi','sdivpl','sdivvs','sdivvc','sdivhi','sdivls','sdivge','sdivlt','sdivgt','sdivle',
+            'udiveq','udivne','udivcs','udivhs','udivcc','udivlo','udivmi','udivpl','udivvs','udivvc','udivhi','udivls','udivge','udivlt','udivgt','udivle'
+            ),
+        /* Unconditional Memory Access */
+        3 => array(
+            /* Memory Access: Unconditional Memory Loads and Prefetches */
+            'ldm.w','ldmal.w',
+            'ldm','ldmal',
+            'ldmda','ldmdaal',
+            'ldmdb','ldmdbal',
+            'ldmib','ldmibal',
+            'ldmia','ldmiaal',
+            'ldmea','ldmeaal',
+            'ldmed','ldmedal',
+            'ldmfa','ldmfaal',
+            'ldmfd','ldmfdal',
+            'ldrd','ldrdal',
+            'ldr.w','ldral.w',
+            'ldr','ldral',
+            'ldrh.w','ldrhal.w',
+            'ldrh','ldrhal',
+            'ldrb.w','ldrbal.w',
+            'ldrb','ldrbal',
+            'ldrsh.w','ldrshal.w',
+            'ldrsh','ldrshal',
+            'ldrsb.w','ldrsbal.w',
+            'ldrsb','ldrsbal',
+            'ldrt','ldrtal',
+            'ldrht','ldrhtal',
+            'ldrbt','ldrbtal',
+            'ldrsht','ldrshtal',
+            'ldrsbt','ldrsbtal',
+            'pop.w','popal.w',
+            'pop','popal',
+            'pld','pldal',
+            'pldw','pldwal',
+            'pli','plial',
+            /* Memory Access: Unconditional Memory Stores */
+            'stm.w','stmal.w',
+            'stm','stmal',
+            'stmda','stmdaal',
+            'stmdb','stmdbal',
+            'stmib','stmibal',
+            'stmia','stmiaal',
+            'stmea','stmeaal',
+            'stmed','stmedal',
+            'stdfa','stdfaal',
+            'stdfd','stdfdal',
+            'strd','strdal',
+            'str.w','stral.w',
+            'str','stral',
+            'strh.w','strhal.w',
+            'strh','strhal',
+            'strb.w','strbal.w',
+            'strb','strbal',
+            'strt','strtal',
+            'strht','strhtal',
+            'strbt','strbtal',
+            'push.w','pushal.w',
+            'push','pushal'
+            ),
+        /* Conditional Memory Access */
+        4 => array(
+            /* Memory Access: Conditional Memory Loads and Prefetches */
+            'ldmeq.w','ldmne.w','ldmcs.w','ldmhs.w','ldmcc.w','ldmlo.w','ldmmi.w','ldmpl.w','ldmvs.w','ldmvc.w','ldmhi.w','ldmls.w','ldmge.w','ldmlt.w','ldmgt.w','ldmle.w',
+            'ldmeq','ldmne','ldmcs','ldmhs','ldmcc','ldmlo','ldmmi','ldmpl','ldmvs','ldmvc','ldmhi','ldmls','ldmge','ldmlt','ldmgt','ldmle',
+            'ldmdaeq','ldmdane','ldmdacs','ldmdahs','ldmdacc','ldmdalo','ldmdami','ldmdapl','ldmdavs','ldmdavc','ldmdahi','ldmdals','ldmdage','ldmdalt','ldmdagt','ldmdale',
+            'ldmdbeq','ldmdbne','ldmdbcs','ldmdbhs','ldmdbcc','ldmdblo','ldmdbmi','ldmdbpl','ldmdbvs','ldmdbvc','ldmdbhi','ldmdbls','ldmdbge','ldmdblt','ldmdbgt','ldmdble',
+            'ldmibeq','ldmibne','ldmibcs','ldmibhs','ldmibcc','ldmiblo','ldmibmi','ldmibpl','ldmibvs','ldmibvc','ldmibhi','ldmibls','ldmibge','ldmiblt','ldmibgt','ldmible',
+            'ldmiaeq','ldmiane','ldmiacs','ldmiahs','ldmiacc','ldmialo','ldmiami','ldmiapl','ldmiavs','ldmiavc','ldmiahi','ldmials','ldmiage','ldmialt','ldmiagt','ldmiale',
+            'ldmeaeq','ldmeane','ldmeacs','ldmeahs','ldmeacc','ldmealo','ldmeami','ldmeapl','ldmeavs','ldmeavc','ldmeahi','ldmeals','ldmeage','ldmealt','ldmeagt','ldmeale',
+            'ldmedeq','ldmedne','ldmedcs','ldmedhs','ldmedcc','ldmedlo','ldmedmi','ldmedpl','ldmedvs','ldmedvc','ldmedhi','ldmedls','ldmedge','ldmedlt','ldmedgt','ldmedle',
+            'ldmfaeq','ldmfane','ldmfacs','ldmfahs','ldmfacc','ldmfalo','ldmfami','ldmfapl','ldmfavs','ldmfavc','ldmfahi','ldmfals','ldmfage','ldmfalt','ldmfagt','ldmfale',
+            'ldmfdeq','ldmfdne','ldmfdcs','ldmfdhs','ldmfdcc','ldmfdlo','ldmfdmi','ldmfdpl','ldmfdvs','ldmfdvc','ldmfdhi','ldmfdls','ldmfdge','ldmfdlt','ldmfdgt','ldmfdle',
+            'ldrdeq','ldrdne','ldrdcs','ldrdhs','ldrdcc','ldrdlo','ldrdmi','ldrdpl','ldrdvs','ldrdvc','ldrdhi','ldrdls','ldrdge','ldrdlt','ldrdgt','ldrdle',
+            'ldreq.w','ldrne.w','ldrcs.w','ldrhs.w','ldrcc.w','ldrlo.w','ldrmi.w','ldrpl.w','ldrvs.w','ldrvc.w','ldrhi.w','ldrls.w','ldrge.w','ldrlt.w','ldrgt.w','ldrle.w',
+            'ldreq','ldrne','ldrcs','ldrhs','ldrcc','ldrlo','ldrmi','ldrpl','ldrvs','ldrvc','ldrhi','ldrls','ldrge','ldrlt','ldrgt','ldrle',
+            'ldrheq.w','ldrhne.w','ldrhcs.w','ldrhhs.w','ldrhcc.w','ldrhlo.w','ldrhmi.w','ldrhpl.w','ldrhvs.w','ldrhvc.w','ldrhhi.w','ldrhls.w','ldrhge.w','ldrhlt.w','ldrhgt.w','ldrhle.w',
+            'ldrheq','ldrhne','ldrhcs','ldrhhs','ldrhcc','ldrhlo','ldrhmi','ldrhpl','ldrhvs','ldrhvc','ldrhhi','ldrhls','ldrhge','ldrhlt','ldrhgt','ldrhle',
+            'ldrbeq.w','ldrbne.w','ldrbcs.w','ldrbhs.w','ldrbcc.w','ldrblo.w','ldrbmi.w','ldrbpl.w','ldrbvs.w','ldrbvc.w','ldrbhi.w','ldrbls.w','ldrbge.w','ldrblt.w','ldrbgt.w','ldrble.w',
+            'ldrbeq','ldrbne','ldrbcs','ldrbhs','ldrbcc','ldrblo','ldrbmi','ldrbpl','ldrbvs','ldrbvc','ldrbhi','ldrbls','ldrbge','ldrblt','ldrbgt','ldrble',
+            'ldrsheq.w','ldrshne.w','ldrshcs.w','ldrshhs.w','ldrshcc.w','ldrshlo.w','ldrshmi.w','ldrshpl.w','ldrshvs.w','ldrshvc.w','ldrshhi.w','ldrshls.w','ldrshge.w','ldrshlt.w','ldrshgt.w','ldrshle.w',
+            'ldrsheq','ldrshne','ldrshcs','ldrshhs','ldrshcc','ldrshlo','ldrshmi','ldrshpl','ldrshvs','ldrshvc','ldrshhi','ldrshls','ldrshge','ldrshlt','ldrshgt','ldrshle',
+            'ldrsbeq.w','ldrsbne.w','ldrsbcs.w','ldrsbhs.w','ldrsbcc.w','ldrsblo.w','ldrsbmi.w','ldrsbpl.w','ldrsbvs.w','ldrsbvc.w','ldrsbhi.w','ldrsbls.w','ldrsbge.w','ldrsblt.w','ldrsbgt.w','ldrsble.w',
+            'ldrsbeq','ldrsbne','ldrsbcs','ldrsbhs','ldrsbcc','ldrsblo','ldrsbmi','ldrsbpl','ldrsbvs','ldrsbvc','ldrsbhi','ldrsbls','ldrsbge','ldrsblt','ldrsbgt','ldrsble',
+            'ldrteq','ldrtne','ldrtcs','ldrths','ldrtcc','ldrtlo','ldrtmi','ldrtpl','ldrtvs','ldrtvc','ldrthi','ldrtls','ldrtge','ldrtlt','ldrtgt','ldrtle',
+            'ldrhteq','ldrhtne','ldrhtcs','ldrhths','ldrhtcc','ldrhtlo','ldrhtmi','ldrhtpl','ldrhtvs','ldrhtvc','ldrhthi','ldrhtls','ldrhtge','ldrhtlt','ldrhtgt','ldrhtle',
+            'ldrbteq','ldrbtne','ldrbtcs','ldrbths','ldrbtcc','ldrbtlo','ldrbtmi','ldrbtpl','ldrbtvs','ldrbtvc','ldrbthi','ldrbtls','ldrbtge','ldrbtlt','ldrbtgt','ldrbtle',
+            'ldrshteq','ldrshtne','ldrshtcs','ldrshths','ldrshtcc','ldrshtlo','ldrshtmi','ldrshtpl','ldrshtvs','ldrshtvc','ldrshthi','ldrshtls','ldrshtge','ldrshtlt','ldrshtgt','ldrshtle',
+            'ldrsbteq','ldrsbtne','ldrsbtcs','ldrsbths','ldrsbtcc','ldrsbtlo','ldrsbtmi','ldrsbtpl','ldrsbtvs','ldrsbtvc','ldrsbthi','ldrsbtls','ldrsbtge','ldrsbtlt','ldrsbtgt','ldrsbtle',
+            'popeq.w','popne.w','popcs.w','pophs.w','popcc.w','poplo.w','popmi.w','poppl.w','popvs.w','popvc.w','pophi.w','popls.w','popge.w','poplt.w','popgt.w','pople.w',
+            'popeq','popne','popcs','pophs','popcc','poplo','popmi','poppl','popvs','popvc','pophi','popls','popge','poplt','popgt','pople',
+            'pldeq','pldne','pldcs','pldhs','pldcc','pldlo','pldmi','pldpl','pldvs','pldvc','pldhi','pldls','pldge','pldlt','pldgt','pldle',
+            'pldweq','pldwne','pldwcs','pldwhs','pldwcc','pldwlo','pldwmi','pldwpl','pldwvs','pldwvc','pldwhi','pldwls','pldwge','pldwlt','pldwgt','pldwle',
+            'plieq','pline','plics','plihs','plicc','plilo','plimi','plipl','plivs','plivc','plihi','plils','plige','plilt','pligt','plile',
+            /* Memory Access: Conditional Memory Stores */
+            'stmeq.w','stmne.w','stmcs.w','stmhs.w','stmcc.w','stmlo.w','stmmi.w','stmpl.w','stmvs.w','stmvc.w','stmhi.w','stmls.w','stmge.w','stmlt.w','stmgt.w','stmle.w',
+            'stmeq','stmne','stmcs','stmhs','stmcc','stmlo','stmmi','stmpl','stmvs','stmvc','stmhi','stmls','stmge','stmlt','stmgt','stmle',
+            'stmdaeq','stmdane','stmdacs','stmdahs','stmdacc','stmdalo','stmdami','stmdapl','stmdavs','stmdavc','stmdahi','stmdals','stmdage','stmdalt','stmdagt','stmdale',
+            'stmdbeq','stmdbne','stmdbcs','stmdbhs','stmdbcc','stmdblo','stmdbmi','stmdbpl','stmdbvs','stmdbvc','stmdbhi','stmdbls','stmdbge','stmdblt','stmdbgt','stmdble',
+            'stmibeq','stmibne','stmibcs','stmibhs','stmibcc','stmiblo','stmibmi','stmibpl','stmibvs','stmibvc','stmibhi','stmibls','stmibge','stmiblt','stmibgt','stmible',
+            'stmiaeq','stmiane','stmiacs','stmiahs','stmiacc','stmialo','stmiami','stmiapl','stmiavs','stmiavc','stmiahi','stmials','stmiage','stmialt','stmiagt','stmiale',
+            'stmeaeq','stmeane','stmeacs','stmeahs','stmeacc','stmealo','stmeami','stmeapl','stmeavs','stmeavc','stmeahi','stmeals','stmeage','stmealt','stmeagt','stmeale',
+            'stmedeq','stmedne','stmedcs','stmedhs','stmedcc','stmedlo','stmedmi','stmedpl','stmedvs','stmedvc','stmedhi','stmedls','stmedge','stmedlt','stmedgt','stmedle',
+            'stdfaeq','stdfane','stdfacs','stdfahs','stdfacc','stdfalo','stdfami','stdfapl','stdfavs','stdfavc','stdfahi','stdfals','stdfage','stdfalt','stdfagt','stdfale',
+            'stdfdeq','stdfdne','stdfdcs','stdfdhs','stdfdcc','stdfdlo','stdfdmi','stdfdpl','stdfdvs','stdfdvc','stdfdhi','stdfdls','stdfdge','stdfdlt','stdfdgt','stdfdle',
+            'strdeq','strdne','strdcs','strdhs','strdcc','strdlo','strdmi','strdpl','strdvs','strdvc','strdhi','strdls','strdge','strdlt','strdgt','strdle',
+            'streq.w','strne.w','strcs.w','strhs.w','strcc.w','strlo.w','strmi.w','strpl.w','strvs.w','strvc.w','strhi.w','strls.w','strge.w','strlt.w','strgt.w','strle.w',
+            'streq','strne','strcs','strhs','strcc','strlo','strmi','strpl','strvs','strvc','strhi','strls','strge','strlt','strgt','strle',
+            'strheq.w','strhne.w','strhcs.w','strhhs.w','strhcc.w','strhlo.w','strhmi.w','strhpl.w','strhvs.w','strhvc.w','strhhi.w','strhls.w','strhge.w','strhlt.w','strhgt.w','strhle.w',
+            'strheq','strhne','strhcs','strhhs','strhcc','strhlo','strhmi','strhpl','strhvs','strhvc','strhhi','strhls','strhge','strhlt','strhgt','strhle',
+            'strbeq.w','strbne.w','strbcs.w','strbhs.w','strbcc.w','strblo.w','strbmi.w','strbpl.w','strbvs.w','strbvc.w','strbhi.w','strbls.w','strbge.w','strblt.w','strbgt.w','strble.w',
+            'strbeq','strbne','strbcs','strbhs','strbcc','strblo','strbmi','strbpl','strbvs','strbvc','strbhi','strbls','strbge','strblt','strbgt','strble',
+            'strteq','strtne','strtcs','strths','strtcc','strtlo','strtmi','strtpl','strtvs','strtvc','strthi','strtls','strtge','strtlt','strtgt','strtle',
+            'strhteq','strhtne','strhtcs','strhths','strhtcc','strhtlo','strhtmi','strhtpl','strhtvs','strhtvc','strhthi','strhtls','strhtge','strhtlt','strhtgt','strhtle',
+            'strbteq','strbtne','strbtcs','strbths','strbtcc','strbtlo','strbtmi','strbtpl','strbtvs','strbtvc','strbthi','strbtls','strbtge','strbtlt','strbtgt','strbtle',
+            'pusheq.w','pushne.w','pushcs.w','pushhs.w','pushcc.w','pushlo.w','pushmi.w','pushpl.w','pushvs.w','pushvc.w','pushhi.w','pushls.w','pushge.w','pushlt.w','pushgt.w','pushle.w',
+            'pusheq','pushne','pushcs','pushhs','pushcc','pushlo','pushmi','pushpl','pushvs','pushvc','pushhi','pushls','pushge','pushlt','pushgt','pushle'
+            ),
+        /* Unconditional Flags-Affecting Instructions */
+        5 => array(
+            /* Set Flags: Unconditional Addition and Subtraction */
+            'adds.w','addsal.w',
+            'adds','addsal',
+            'subs.w','subsal.w',
+            'subs','subsal',
+            'rsbs.w','rsbsal.w',
+            'rsbs','rsbsal',
+            'negs.w','negsal.w',
+            'negs','negsal',
+            'adcs.w','adcsal.w',
+            'adcs','adcsal',
+            'sbcs.w','sbcsal.w',
+            'sbcs','sbcsal',
+            'rscs','rscsal',
+            'cmp.w','cmpal.w',
+            'cmp','cmpal',
+            'cmn.w','cmnal.w',
+            'cmn','cmnal',
+            /* Set Flags: Unconditional Logical */
+            'ands.w','andsal.w',
+            'ands','andsal',
+            'bics.w','bicsal.w',
+            'bics','bicsal',
+            'orrs.w','orrsal.w',
+            'orrs','orrsal',
+            'orns.w','ornsal.w',
+            'orns','ornsal',
+            'eors.w','eorsal.w',
+            'eors','eorsal',
+            'mvns.w','mvnsal.w',
+            'mvns','mvnsal',
+            'movs.w','movsal.w',
+            'movs','movsal',
+            'teq','teqal',
+            'tst.w','tstal.w',
+            'tst','tstal',
+            'mrs','mrsal',
+            'msr','msral',
+            /* Set Flags: Unconditional Shifts and Rotates */
+            'asrs.w','asrsal.w',
+            'asrs','asrsal',
+            'lsls.w','lslsal.w',
+            'lsls','lslsal',
+            'lsrs.w','lsrsal.w',
+            'lsrs','lsrsal',
+            'rors.w','rorsal.w',
+            'rors','rorsal',
+            'rrxs','rrxsal',
+            /* Set Flags: Unconditional Multiply and Multiply-Add */
+            'mlas','mlasal',
+            'smulls','smullsal',
+            'umulls','umullsal',
+            'smlals','smlalsal',
+            'umlals','umlalsal'
+            ),
+        /* Conditional Flags-Affecting Instructions */
+        6 => array(
+            /* Set Flags: Conditional Addition and Subtraction */
+            'addseq.w','addsne.w','addscs.w','addshs.w','addscc.w','addslo.w','addsmi.w','addspl.w','addsvs.w','addsvc.w','addshi.w','addsls.w','addsge.w','addslt.w','addsgt.w','addsle.w',
+            'addseq','addsne','addscs','addshs','addscc','addslo','addsmi','addspl','addsvs','addsvc','addshi','addsls','addsge','addslt','addsgt','addsle',
+            'subseq.w','subsne.w','subscs.w','subshs.w','subscc.w','subslo.w','subsmi.w','subspl.w','subsvs.w','subsvc.w','subshi.w','subsls.w','subsge.w','subslt.w','subsgt.w','subsle.w',
+            'subseq','subsne','subscs','subshs','subscc','subslo','subsmi','subspl','subsvs','subsvc','subshi','subsls','subsge','subslt','subsgt','subsle',
+            'rsbseq.w','rsbsne.w','rsbscs.w','rsbshs.w','rsbscc.w','rsbslo.w','rsbsmi.w','rsbspl.w','rsbsvs.w','rsbsvc.w','rsbshi.w','rsbsls.w','rsbsge.w','rsbslt.w','rsbsgt.w','rsbsle.w',
+            'rsbseq','rsbsne','rsbscs','rsbshs','rsbscc','rsbslo','rsbsmi','rsbspl','rsbsvs','rsbsvc','rsbshi','rsbsls','rsbsge','rsbslt','rsbsgt','rsbsle',
+            'negseq.w','negsne.w','negscs.w','negshs.w','negscc.w','negslo.w','negsmi.w','negspl.w','negsvs.w','negsvc.w','negshi.w','negsls.w','negsge.w','negslt.w','negsgt.w','negsle.w',
+            'negseq','negsne','negscs','negshs','negscc','negslo','negsmi','negspl','negsvs','negsvc','negshi','negsls','negsge','negslt','negsgt','negsle',
+            'adcseq.w','adcsne.w','adcscs.w','adcshs.w','adcscc.w','adcslo.w','adcsmi.w','adcspl.w','adcsvs.w','adcsvc.w','adcshi.w','adcsls.w','adcsge.w','adcslt.w','adcsgt.w','adcsle.w',
+            'adcseq','adcsne','adcscs','adcshs','adcscc','adcslo','adcsmi','adcspl','adcsvs','adcsvc','adcshi','adcsls','adcsge','adcslt','adcsgt','adcsle',
+            'sbcseq.w','sbcsne.w','sbcscs.w','sbcshs.w','sbcscc.w','sbcslo.w','sbcsmi.w','sbcspl.w','sbcsvs.w','sbcsvc.w','sbcshi.w','sbcsls.w','sbcsge.w','sbcslt.w','sbcsgt.w','sbcsle.w',
+            'sbcseq','sbcsne','sbcscs','sbcshs','sbcscc','sbcslo','sbcsmi','sbcspl','sbcsvs','sbcsvc','sbcshi','sbcsls','sbcsge','sbcslt','sbcsgt','sbcsle',
+            'rscseq','rscsne','rscscs','rscshs','rscscc','rscslo','rscsmi','rscspl','rscsvs','rscsvc','rscshi','rscsls','rscsge','rscslt','rscsgt','rscsle',
+            'cmpeq.w','cmpne.w','cmpcs.w','cmphs.w','cmpcc.w','cmplo.w','cmpmi.w','cmppl.w','cmpvs.w','cmpvc.w','cmphi.w','cmpls.w','cmpge.w','cmplt.w','cmpgt.w','cmple.w',
+            'cmpeq','cmpne','cmpcs','cmphs','cmpcc','cmplo','cmpmi','cmppl','cmpvs','cmpvc','cmphi','cmpls','cmpge','cmplt','cmpgt','cmple',
+            'cmneq.w','cmnne.w','cmncs.w','cmnhs.w','cmncc.w','cmnlo.w','cmnmi.w','cmnpl.w','cmnvs.w','cmnvc.w','cmnhi.w','cmnls.w','cmnge.w','cmnlt.w','cmngt.w','cmnle.w',
+            'cmneq','cmnne','cmncs','cmnhs','cmncc','cmnlo','cmnmi','cmnpl','cmnvs','cmnvc','cmnhi','cmnls','cmnge','cmnlt','cmngt','cmnle',
+            /* Set Flags: Conditional Logical */
+            'andseq.w','andsne.w','andscs.w','andshs.w','andscc.w','andslo.w','andsmi.w','andspl.w','andsvs.w','andsvc.w','andshi.w','andsls.w','andsge.w','andslt.w','andsgt.w','andsle.w',
+            'andseq','andsne','andscs','andshs','andscc','andslo','andsmi','andspl','andsvs','andsvc','andshi','andsls','andsge','andslt','andsgt','andsle',
+            'bicseq.w','bicsne.w','bicscs.w','bicshs.w','bicscc.w','bicslo.w','bicsmi.w','bicspl.w','bicsvs.w','bicsvc.w','bicshi.w','bicsls.w','bicsge.w','bicslt.w','bicsgt.w','bicsle.w',
+            'bicseq','bicsne','bicscs','bicshs','bicscc','bicslo','bicsmi','bicspl','bicsvs','bicsvc','bicshi','bicsls','bicsge','bicslt','bicsgt','bicsle',
+            'orrseq.w','orrsne.w','orrscs.w','orrshs.w','orrscc.w','orrslo.w','orrsmi.w','orrspl.w','orrsvs.w','orrsvc.w','orrshi.w','orrsls.w','orrsge.w','orrslt.w','orrsgt.w','orrsle.w',
+            'orrseq','orrsne','orrscs','orrshs','orrscc','orrslo','orrsmi','orrspl','orrsvs','orrsvc','orrshi','orrsls','orrsge','orrslt','orrsgt','orrsle',
+            'ornseq.w','ornsne.w','ornscs.w','ornshs.w','ornscc.w','ornslo.w','ornsmi.w','ornspl.w','ornsvs.w','ornsvc.w','ornshi.w','ornsls.w','ornsge.w','ornslt.w','ornsgt.w','ornsle.w',
+            'ornseq','ornsne','ornscs','ornshs','ornscc','ornslo','ornsmi','ornspl','ornsvs','ornsvc','ornshi','ornsls','ornsge','ornslt','ornsgt','ornsle',
+            'eorseq.w','eorsne.w','eorscs.w','eorshs.w','eorscc.w','eorslo.w','eorsmi.w','eorspl.w','eorsvs.w','eorsvc.w','eorshi.w','eorsls.w','eorsge.w','eorslt.w','eorsgt.w','eorsle.w',
+            'eorseq','eorsne','eorscs','eorshs','eorscc','eorslo','eorsmi','eorspl','eorsvs','eorsvc','eorshi','eorsls','eorsge','eorslt','eorsgt','eorsle',
+            'mvnseq.w','mvnsne.w','mvnscs.w','mvnshs.w','mvnscc.w','mvnslo.w','mvnsmi.w','mvnspl.w','mvnsvs.w','mvnsvc.w','mvnshi.w','mvnsls.w','mvnsge.w','mvnslt.w','mvnsgt.w','mvnsle.w',
+            'mvnseq','mvnsne','mvnscs','mvnshs','mvnscc','mvnslo','mvnsmi','mvnspl','mvnsvs','mvnsvc','mvnshi','mvnsls','mvnsge','mvnslt','mvnsgt','mvnsle',
+            'movseq.w','movsne.w','movscs.w','movshs.w','movscc.w','movslo.w','movsmi.w','movspl.w','movsvs.w','movsvc.w','movshi.w','movsls.w','movsge.w','movslt.w','movsgt.w','movsle.w',
+            'movseq','movsne','movscs','movshs','movscc','movslo','movsmi','movspl','movsvs','movsvc','movshi','movsls','movsge','movslt','movsgt','movsle',
+            'teqeq','teqne','teqcs','teqhs','teqcc','teqlo','teqmi','teqpl','teqvs','teqvc','teqhi','teqls','teqge','teqlt','teqgt','teqle',
+            'tsteq.w','tstne.w','tstcs.w','tsths.w','tstcc.w','tstlo.w','tstmi.w','tstpl.w','tstvs.w','tstvc.w','tsthi.w','tstls.w','tstge.w','tstlt.w','tstgt.w','tstle.w',
+            'tsteq','tstne','tstcs','tsths','tstcc','tstlo','tstmi','tstpl','tstvs','tstvc','tsthi','tstls','tstge','tstlt','tstgt','tstle',
+            'mrseq','mrsne','mrscs','mrshs','mrscc','mrslo','mrsmi','mrspl','mrsvs','mrsvc','mrshi','mrsls','mrsge','mrslt','mrsgt','mrsle',
+            'msreq','msrne','msrcs','msrhs','msrcc','msrlo','msrmi','msrpl','msrvs','msrvc','msrhi','msrls','msrge','msrlt','msrgt','msrle',
+            /* Set Flags: Conditional Shifts and Rotates */
+            'asrseq.w','asrsne.w','asrscs.w','asrshs.w','asrscc.w','asrslo.w','asrsmi.w','asrspl.w','asrsvs.w','asrsvc.w','asrshi.w','asrsls.w','asrsge.w','asrslt.w','asrsgt.w','asrsle.w',
+            'asrseq','asrsne','asrscs','asrshs','asrscc','asrslo','asrsmi','asrspl','asrsvs','asrsvc','asrshi','asrsls','asrsge','asrslt','asrsgt','asrsle',
+            'lslseq.w','lslsne.w','lslscs.w','lslshs.w','lslscc.w','lslslo.w','lslsmi.w','lslspl.w','lslsvs.w','lslsvc.w','lslshi.w','lslsls.w','lslsge.w','lslslt.w','lslsgt.w','lslsle.w',
+            'lslseq','lslsne','lslscs','lslshs','lslscc','lslslo','lslsmi','lslspl','lslsvs','lslsvc','lslshi','lslsls','lslsge','lslslt','lslsgt','lslsle',
+            'lsrseq.w','lsrsne.w','lsrscs.w','lsrshs.w','lsrscc.w','lsrslo.w','lsrsmi.w','lsrspl.w','lsrsvs.w','lsrsvc.w','lsrshi.w','lsrsls.w','lsrsge.w','lsrslt.w','lsrsgt.w','lsrsle.w',
+            'lsrseq','lsrsne','lsrscs','lsrshs','lsrscc','lsrslo','lsrsmi','lsrspl','lsrsvs','lsrsvc','lsrshi','lsrsls','lsrsge','lsrslt','lsrsgt','lsrsle',
+            'rorseq.w','rorsne.w','rorscs.w','rorshs.w','rorscc.w','rorslo.w','rorsmi.w','rorspl.w','rorsvs.w','rorsvc.w','rorshi.w','rorsls.w','rorsge.w','rorslt.w','rorsgt.w','rorsle.w',
+            'rorseq','rorsne','rorscs','rorshs','rorscc','rorslo','rorsmi','rorspl','rorsvs','rorsvc','rorshi','rorsls','rorsge','rorslt','rorsgt','rorsle',
+            'rrxseq','rrxsne','rrxscs','rrxshs','rrxscc','rrxslo','rrxsmi','rrxspl','rrxsvs','rrxsvc','rrxshi','rrxsls','rrxsge','rrxslt','rrxsgt','rrxsle',
+            /* Set Flags: Conditional Multiply and Multiply-Add */
+            'mlaseq','mlasne','mlascs','mlashs','mlascc','mlaslo','mlasmi','mlaspl','mlasvs','mlasvc','mlashi','mlasls','mlasge','mlaslt','mlasgt','mlasle',
+            'smullseq','smullsne','smullscs','smullshs','smullscc','smullslo','smullsmi','smullspl','smullsvs','smullsvc','smullshi','smullsls','smullsge','smullslt','smullsgt','smullsle',
+            'umullseq','umullsne','umullscs','umullshs','umullscc','umullslo','umullsmi','umullspl','umullsvs','umullsvc','umullshi','umullsls','umullsge','umullslt','umullsgt','umullsle',
+            'smlalseq','smlalsne','smlalscs','smlalshs','smlalscc','smlalslo','smlalsmi','smlalspl','smlalsvs','smlalsvc','smlalshi','smlalsls','smlalsge','smlalslt','smlalsgt','smlalsle',
+            'umlalseq','umlalsne','umlalscs','umlalshs','umlalscc','umlalslo','umlalsmi','umlalspl','umlalsvs','umlalsvc','umlalshi','umlalsls','umlalsge','umlalslt','umlalsgt','umlalsle'
+            ),
+        /* Unconditional Flow Control Instructions */
+        7 => array(
+            /* Flow Control: Unconditional Branch and If-Then-Else */
+            'b.w','bal.w',
+            'b','bal',
+            'bl','blal',
+            'bx','bxal',
+            'blx','blxal',
+            'bxj','bxjal',
+            'cbnz',
+            'cbz',
+            'tbb','tbbal',
+            'tbh','tbhal',
+            'it',
+            'itt',
+            'ite',
+            'ittt',
+            'itet',
+            'itte',
+            'itee',
+            'itttt',
+            'itett',
+            'ittet',
+            'iteet',
+            'ittte',
+            'itete',
+            'ittee',
+            'iteee'
+            ),
+        /* Conditional Flow Control Instructions */
+        8 => array(
+            /* Flow Control: Conditional Branch and If-Then-Else */
+            'beq.w','bne.w','bcs.w','bhs.w','bcc.w','blo.w','bmi.w','bpl.w','bvs.w','bvc.w','bhi.w','bls.w','bge.w','blt.w','bgt.w','ble.w',
+            'beq','bne','bcs','bhs','bcc','blo','bmi','bpl','bvs','bvc','bhi','bls','bge','blt','bgt','ble',
+            'bleq','blne','blcs','blhs','blcc','bllo','blmi','blpl','blvs','blvc','blhi','blls','blge','bllt','blgt','blle',
+            'bxeq','bxne','bxcs','bxhs','bxcc','bxlo','bxmi','bxpl','bxvs','bxvc','bxhi','bxls','bxge','bxlt','bxgt','bxle',
+            'blxeq','blxne','blxcs','blxhs','blxcc','blxlo','blxmi','blxpl','blxvs','blxvc','blxhi','blxls','blxge','blxlt','blxgt','blxle',
+            'bxjeq','bxjne','bxjcs','bxjhs','bxjcc','bxjlo','bxjmi','bxjpl','bxjvs','bxjvc','bxjhi','bxjls','bxjge','bxjlt','bxjgt','bxjle',
+            'tbbeq','tbbne','tbbcs','tbbhs','tbbcc','tbblo','tbbmi','tbbpl','tbbvs','tbbvc','tbbhi','tbbls','tbbge','tbblt','tbbgt','tbble',
+            'tbheq','tbhne','tbhcs','tbhhs','tbhcc','tbhlo','tbhmi','tbhpl','tbhvs','tbhvc','tbhhi','tbhls','tbhge','tbhlt','tbhgt','tbhle'
+            ),
+        /* Unconditional Syncronization Instructions */
+        9 => array(
+            /* Synchronization: Unconditional Loads, Stores and Barriers */
+            'ldrexd','ldrexdal',
+            'ldrex','ldrexal',
+            'ldrexh','ldrexhal',
+            'ldrexb','ldrexbal',
+            'strexd','strexdal',
+            'strex','strexal',
+            'strexh','strexhal',
+            'strexb','strexbal',
+            'clrex','clrexal',
+            'swp','swpal',
+            'swpb','swpbal',
+            'dbc','dbcal',
+            'dsb','dsbal',
+            'isb','isbal',
+            'yield.w','yieldal.w',
+            'yield','yieldal',
+            'nop.w','nopal.w',
+            'nop','nopal'
+            ),
+        /* Conditional Syncronization Instructions */
+        10 => array(
+            /* Synchronization: Conditional Loads, Stores and Barriers */
+            'ldrexdeq','ldrexdne','ldrexdcs','ldrexdhs','ldrexdcc','ldrexdlo','ldrexdmi','ldrexdpl','ldrexdvs','ldrexdvc','ldrexdhi','ldrexdls','ldrexdge','ldrexdlt','ldrexdgt','ldrexdle',
+            'ldrexeq','ldrexne','ldrexcs','ldrexhs','ldrexcc','ldrexlo','ldrexmi','ldrexpl','ldrexvs','ldrexvc','ldrexhi','ldrexls','ldrexge','ldrexlt','ldrexgt','ldrexle',
+            'ldrexheq','ldrexhne','ldrexhcs','ldrexhhs','ldrexhcc','ldrexhlo','ldrexhmi','ldrexhpl','ldrexhvs','ldrexhvc','ldrexhhi','ldrexhls','ldrexhge','ldrexhlt','ldrexhgt','ldrexhle',
+            'ldrexbeq','ldrexbne','ldrexbcs','ldrexbhs','ldrexbcc','ldrexblo','ldrexbmi','ldrexbpl','ldrexbvs','ldrexbvc','ldrexbhi','ldrexbls','ldrexbge','ldrexblt','ldrexbgt','ldrexble',
+            'strexdeq','strexdne','strexdcs','strexdhs','strexdcc','strexdlo','strexdmi','strexdpl','strexdvs','strexdvc','strexdhi','strexdls','strexdge','strexdlt','strexdgt','strexdle',
+            'strexeq','strexne','strexcs','strexhs','strexcc','strexlo','strexmi','strexpl','strexvs','strexvc','strexhi','strexls','strexge','strexlt','strexgt','strexle',
+            'strexheq','strexhne','strexhcs','strexhhs','strexhcc','strexhlo','strexhmi','strexhpl','strexhvs','strexhvc','strexhhi','strexhls','strexhge','strexhlt','strexhgt','strexhle',
+            'strexbeq','strexbne','strexbcs','strexbhs','strexbcc','strexblo','strexbmi','strexbpl','strexbvs','strexbvc','strexbhi','strexbls','strexbge','strexblt','strexbgt','strexble',
+            'clrexeq','clrexne','clrexcs','clrexhs','clrexcc','clrexlo','clrexmi','clrexpl','clrexvs','clrexvc','clrexhi','clrexls','clrexge','clrexlt','clrexgt','clrexle',
+            'swpeq','swpne','swpcs','swphs','swpcc','swplo','swpmi','swppl','swpvs','swpvc','swphi','swpls','swpge','swplt','swpgt','swple',
+            'swpbeq','swpbne','swpbcs','swpbhs','swpbcc','swpblo','swpbmi','swpbpl','swpbvs','swpbvc','swpbhi','swpbls','swpbge','swpblt','swpbgt','swpble',
+            'dbceq','dbcne','dbccs','dbchs','dbccc','dbclo','dbcmi','dbcpl','dbcvs','dbcvc','dbchi','dbcls','dbcge','dbclt','dbcgt','dbcle',
+            'dsbeq','dsbne','dsbcs','dsbhs','dsbcc','dsblo','dsbmi','dsbpl','dsbvs','dsbvc','dsbhi','dsbls','dsbge','dsblt','dsbgt','dsble',
+            'isbeq','isbne','isbcs','isbhs','isbcc','isblo','isbmi','isbpl','isbvs','isbvc','isbhi','isbls','isbge','isblt','isbgt','isble',
+            'yieldeq.w','yieldne.w','yieldcs.w','yieldhs.w','yieldcc.w','yieldlo.w','yieldmi.w','yieldpl.w','yieldvs.w','yieldvc.w','yieldhi.w','yieldls.w','yieldge.w','yieldlt.w','yieldgt.w','yieldle.w',
+            'yieldeq','yieldne','yieldcs','yieldhs','yieldcc','yieldlo','yieldmi','yieldpl','yieldvs','yieldvc','yieldhi','yieldls','yieldge','yieldlt','yieldgt','yieldle',
+            'nopeq.w','nopne.w','nopcs.w','nophs.w','nopcc.w','noplo.w','nopmi.w','noppl.w','nopvs.w','nopvc.w','nophi.w','nopls.w','nopge.w','noplt.w','nopgt.w','nople.w',
+            'nopeq','nopne','nopcs','nophs','nopcc','noplo','nopmi','noppl','nopvs','nopvc','nophi','nopls','nopge','noplt','nopgt','nople'
+            ),
+        /* Unconditional ARMv6 SIMD */
+        11 => array(
+            /* ARMv6 SIMD: Unconditional Addition, Subtraction & Saturation */
+            'sadd16','sadd16al',
+            'sadd8','sadd8al',
+            'uadd16','uadd16al',
+            'uadd8','uadd8al',
+            'ssub16','ssub16al',
+            'ssub8','ssub8al',
+            'usub16','usub16al',
+            'usub8','usub8al',
+            'sasx','sasxal',
+            'ssax','ssaxal',
+            'uasx','uasxal',
+            'usax','usaxal',
+            'usad8','usad8al',
+            'usada8','usada8al',
+            /* ARMv6 SIMD: Unconditional Halving Addition & Subtraction */
+            'shadd16','shadd16al',
+            'shadd8','shadd8al',
+            'uhadd16','uhadd16al',
+            'uhadd8','uhadd8al',
+            'shsub16','shsub16al',
+            'shsub8','shsub8al',
+            'uhsub16','uhsub16al',
+            'uhsub8','uhsub8al',
+            'shasx','shasxal',
+            'shsax','shsaxal',
+            'uhasx','uhasxal',
+            'uhsax','uhsaxal',
+            /* ARMv6 SIMD: Unconditional Saturating Operations */
+            'qadd','qaddal',
+            'qadd16','qadd16al',
+            'qadd8','qadd8al',
+            'uqadd16','uqadd16al',
+            'uqadd8','uqadd8al',
+            'qsub','qsubal',
+            'qsub16','qsub16al',
+            'qsub8','qsub8al',
+            'uqsub16','uqsub16al',
+            'uqsub8','uqsub8al',
+            'qasx','qasxal',
+            'qsax','qsaxal',
+            'uqasx','uqasxal',
+            'uqsax','uqsaxal',
+            'qdadd','qdaddal',
+            'qdsub','qdsubal',
+            'ssat','ssatal',
+            'ssat16','ssat16al',
+            'usat','usatal',
+            'usat16','usat16al',
+            /* ARMv6 SIMD: Unconditional Permutation and Combine Operations */
+            'sxtah','sxtahal',
+            'sxtab','sxtabal',
+            'sxtab16','sxtab16al',
+            'uxtah','uxtahal',
+            'uxtab','uxtabal',
+            'uxtab16','uxtab16al',
+            'sxth.w','sxthal.w',
+            'sxth','sxthal',
+            'sxtb.w','sxtbal.w',
+            'sxtb','sxtbal',
+            'sxtb16','sxtb16al',
+            'uxth.w','uxthal.w',
+            'uxth','uxthal',
+            'uxtb.w','uxtbal.w',
+            'uxtb','uxtbal',
+            'uxtb16','uxtb16al',
+            'pkhbt','pkhbtal',
+            'pkhtb','pkhtbal',
+            'rbit','rbital',
+            'rev.w','reval.w',
+            'rev','reval',
+            'rev16.w','rev16al.w',
+            'rev16','rev16al',
+            'revsh.w','revshal.w',
+            'revsh','revshal',
+            'sel','selal',
+            /* ARMv6 SIMD: Unconditional Multiply and Multiply-Add */
+            'smlad','smladal',
+            'smladx','smladxal',
+            'smlsd','smlsdal',
+            'smlsdx','smlsdxal',
+            'smlald','smlaldal',
+            'smlaldx','smlaldxal',
+            'smlsld','smlsldal',
+            'smlsldx','smlsldxal',
+            'smmul','smmulal',
+            'smmulr','smmulral',
+            'smmla','smmlaal',
+            'smmlar','smmlaral',
+            'smmls','smmlsal',
+            'smmlsr','smmlsral',
+            'smuad','smuadal',
+            'smuadx','smuadxal',
+            'smusd','smusdal',
+            'smusdx','smusdxal',
+            'umaal','umaalal'
+            ),
+        /* Conditional ARMv6 SIMD */
+        12 => array(
+            /* ARMv6 SIMD: Conditional Addition, Subtraction & Saturation */
+            'sadd16eq','sadd16ne','sadd16cs','sadd16hs','sadd16cc','sadd16lo','sadd16mi','sadd16pl','sadd16vs','sadd16vc','sadd16hi','sadd16ls','sadd16ge','sadd16lt','sadd16gt','sadd16le',
+            'sadd8eq','sadd8ne','sadd8cs','sadd8hs','sadd8cc','sadd8lo','sadd8mi','sadd8pl','sadd8vs','sadd8vc','sadd8hi','sadd8ls','sadd8ge','sadd8lt','sadd8gt','sadd8le',
+            'uadd16eq','uadd16ne','uadd16cs','uadd16hs','uadd16cc','uadd16lo','uadd16mi','uadd16pl','uadd16vs','uadd16vc','uadd16hi','uadd16ls','uadd16ge','uadd16lt','uadd16gt','uadd16le',
+            'uadd8eq','uadd8ne','uadd8cs','uadd8hs','uadd8cc','uadd8lo','uadd8mi','uadd8pl','uadd8vs','uadd8vc','uadd8hi','uadd8ls','uadd8ge','uadd8lt','uadd8gt','uadd8le',
+            'ssub16eq','ssub16ne','ssub16cs','ssub16hs','ssub16cc','ssub16lo','ssub16mi','ssub16pl','ssub16vs','ssub16vc','ssub16hi','ssub16ls','ssub16ge','ssub16lt','ssub16gt','ssub16le',
+            'ssub8eq','ssub8ne','ssub8cs','ssub8hs','ssub8cc','ssub8lo','ssub8mi','ssub8pl','ssub8vs','ssub8vc','ssub8hi','ssub8ls','ssub8ge','ssub8lt','ssub8gt','ssub8le',
+            'usub16eq','usub16ne','usub16cs','usub16hs','usub16cc','usub16lo','usub16mi','usub16pl','usub16vs','usub16vc','usub16hi','usub16ls','usub16ge','usub16lt','usub16gt','usub16le',
+            'usub8eq','usub8ne','usub8cs','usub8hs','usub8cc','usub8lo','usub8mi','usub8pl','usub8vs','usub8vc','usub8hi','usub8ls','usub8ge','usub8lt','usub8gt','usub8le',
+            'sasxeq','sasxne','sasxcs','sasxhs','sasxcc','sasxlo','sasxmi','sasxpl','sasxvs','sasxvc','sasxhi','sasxls','sasxge','sasxlt','sasxgt','sasxle',
+            'ssaxeq','ssaxne','ssaxcs','ssaxhs','ssaxcc','ssaxlo','ssaxmi','ssaxpl','ssaxvs','ssaxvc','ssaxhi','ssaxls','ssaxge','ssaxlt','ssaxgt','ssaxle',
+            'uasxeq','uasxne','uasxcs','uasxhs','uasxcc','uasxlo','uasxmi','uasxpl','uasxvs','uasxvc','uasxhi','uasxls','uasxge','uasxlt','uasxgt','uasxle',
+            'usaxeq','usaxne','usaxcs','usaxhs','usaxcc','usaxlo','usaxmi','usaxpl','usaxvs','usaxvc','usaxhi','usaxls','usaxge','usaxlt','usaxgt','usaxle',
+            'usad8eq','usad8ne','usad8cs','usad8hs','usad8cc','usad8lo','usad8mi','usad8pl','usad8vs','usad8vc','usad8hi','usad8ls','usad8ge','usad8lt','usad8gt','usad8le',
+            'usada8eq','usada8ne','usada8cs','usada8hs','usada8cc','usada8lo','usada8mi','usada8pl','usada8vs','usada8vc','usada8hi','usada8ls','usada8ge','usada8lt','usada8gt','usada8le',
+            /* ARMv6 SIMD: Conditional Halving Addition & Subtraction */
+            'shadd16eq','shadd16ne','shadd16cs','shadd16hs','shadd16cc','shadd16lo','shadd16mi','shadd16pl','shadd16vs','shadd16vc','shadd16hi','shadd16ls','shadd16ge','shadd16lt','shadd16gt','shadd16le',
+            'shadd8eq','shadd8ne','shadd8cs','shadd8hs','shadd8cc','shadd8lo','shadd8mi','shadd8pl','shadd8vs','shadd8vc','shadd8hi','shadd8ls','shadd8ge','shadd8lt','shadd8gt','shadd8le',
+            'uhadd16eq','uhadd16ne','uhadd16cs','uhadd16hs','uhadd16cc','uhadd16lo','uhadd16mi','uhadd16pl','uhadd16vs','uhadd16vc','uhadd16hi','uhadd16ls','uhadd16ge','uhadd16lt','uhadd16gt','uhadd16le',
+            'uhadd8eq','uhadd8ne','uhadd8cs','uhadd8hs','uhadd8cc','uhadd8lo','uhadd8mi','uhadd8pl','uhadd8vs','uhadd8vc','uhadd8hi','uhadd8ls','uhadd8ge','uhadd8lt','uhadd8gt','uhadd8le',
+            'shsub16eq','shsub16ne','shsub16cs','shsub16hs','shsub16cc','shsub16lo','shsub16mi','shsub16pl','shsub16vs','shsub16vc','shsub16hi','shsub16ls','shsub16ge','shsub16lt','shsub16gt','shsub16le',
+            'shsub8eq','shsub8ne','shsub8cs','shsub8hs','shsub8cc','shsub8lo','shsub8mi','shsub8pl','shsub8vs','shsub8vc','shsub8hi','shsub8ls','shsub8ge','shsub8lt','shsub8gt','shsub8le',
+            'uhsub16eq','uhsub16ne','uhsub16cs','uhsub16hs','uhsub16cc','uhsub16lo','uhsub16mi','uhsub16pl','uhsub16vs','uhsub16vc','uhsub16hi','uhsub16ls','uhsub16ge','uhsub16lt','uhsub16gt','uhsub16le',
+            'uhsub8eq','uhsub8ne','uhsub8cs','uhsub8hs','uhsub8cc','uhsub8lo','uhsub8mi','uhsub8pl','uhsub8vs','uhsub8vc','uhsub8hi','uhsub8ls','uhsub8ge','uhsub8lt','uhsub8gt','uhsub8le',
+            'shasxeq','shasxne','shasxcs','shasxhs','shasxcc','shasxlo','shasxmi','shasxpl','shasxvs','shasxvc','shasxhi','shasxls','shasxge','shasxlt','shasxgt','shasxle',
+            'shsaxeq','shsaxne','shsaxcs','shsaxhs','shsaxcc','shsaxlo','shsaxmi','shsaxpl','shsaxvs','shsaxvc','shsaxhi','shsaxls','shsaxge','shsaxlt','shsaxgt','shsaxle',
+            'uhasxeq','uhasxne','uhasxcs','uhasxhs','uhasxcc','uhasxlo','uhasxmi','uhasxpl','uhasxvs','uhasxvc','uhasxhi','uhasxls','uhasxge','uhasxlt','uhasxgt','uhasxle',
+            'uhsaxeq','uhsaxne','uhsaxcs','uhsaxhs','uhsaxcc','uhsaxlo','uhsaxmi','uhsaxpl','uhsaxvs','uhsaxvc','uhsaxhi','uhsaxls','uhsaxge','uhsaxlt','uhsaxgt','uhsaxle',
+            /* ARMv6 SIMD: Conditional Saturating Operations */
+            'qaddeq','qaddne','qaddcs','qaddhs','qaddcc','qaddlo','qaddmi','qaddpl','qaddvs','qaddvc','qaddhi','qaddls','qaddge','qaddlt','qaddgt','qaddle',
+            'qadd16eq','qadd16ne','qadd16cs','qadd16hs','qadd16cc','qadd16lo','qadd16mi','qadd16pl','qadd16vs','qadd16vc','qadd16hi','qadd16ls','qadd16ge','qadd16lt','qadd16gt','qadd16le',
+            'qadd8eq','qadd8ne','qadd8cs','qadd8hs','qadd8cc','qadd8lo','qadd8mi','qadd8pl','qadd8vs','qadd8vc','qadd8hi','qadd8ls','qadd8ge','qadd8lt','qadd8gt','qadd8le',
+            'uqadd16eq','uqadd16ne','uqadd16cs','uqadd16hs','uqadd16cc','uqadd16lo','uqadd16mi','uqadd16pl','uqadd16vs','uqadd16vc','uqadd16hi','uqadd16ls','uqadd16ge','uqadd16lt','uqadd16gt','uqadd16le',
+            'uqadd8eq','uqadd8ne','uqadd8cs','uqadd8hs','uqadd8cc','uqadd8lo','uqadd8mi','uqadd8pl','uqadd8vs','uqadd8vc','uqadd8hi','uqadd8ls','uqadd8ge','uqadd8lt','uqadd8gt','uqadd8le',
+            'qsubeq','qsubne','qsubcs','qsubhs','qsubcc','qsublo','qsubmi','qsubpl','qsubvs','qsubvc','qsubhi','qsubls','qsubge','qsublt','qsubgt','qsuble',
+            'qsub16eq','qsub16ne','qsub16cs','qsub16hs','qsub16cc','qsub16lo','qsub16mi','qsub16pl','qsub16vs','qsub16vc','qsub16hi','qsub16ls','qsub16ge','qsub16lt','qsub16gt','qsub16le',
+            'qsub8eq','qsub8ne','qsub8cs','qsub8hs','qsub8cc','qsub8lo','qsub8mi','qsub8pl','qsub8vs','qsub8vc','qsub8hi','qsub8ls','qsub8ge','qsub8lt','qsub8gt','qsub8le',
+            'uqsub16eq','uqsub16ne','uqsub16cs','uqsub16hs','uqsub16cc','uqsub16lo','uqsub16mi','uqsub16pl','uqsub16vs','uqsub16vc','uqsub16hi','uqsub16ls','uqsub16ge','uqsub16lt','uqsub16gt','uqsub16le',
+            'uqsub8eq','uqsub8ne','uqsub8cs','uqsub8hs','uqsub8cc','uqsub8lo','uqsub8mi','uqsub8pl','uqsub8vs','uqsub8vc','uqsub8hi','uqsub8ls','uqsub8ge','uqsub8lt','uqsub8gt','uqsub8le',
+            'qasxeq','qasxne','qasxcs','qasxhs','qasxcc','qasxlo','qasxmi','qasxpl','qasxvs','qasxvc','qasxhi','qasxls','qasxge','qasxlt','qasxgt','qasxle',
+            'qsaxeq','qsaxne','qsaxcs','qsaxhs','qsaxcc','qsaxlo','qsaxmi','qsaxpl','qsaxvs','qsaxvc','qsaxhi','qsaxls','qsaxge','qsaxlt','qsaxgt','qsaxle',
+            'uqasxeq','uqasxne','uqasxcs','uqasxhs','uqasxcc','uqasxlo','uqasxmi','uqasxpl','uqasxvs','uqasxvc','uqasxhi','uqasxls','uqasxge','uqasxlt','uqasxgt','uqasxle',
+            'uqsaxeq','uqsaxne','uqsaxcs','uqsaxhs','uqsaxcc','uqsaxlo','uqsaxmi','uqsaxpl','uqsaxvs','uqsaxvc','uqsaxhi','uqsaxls','uqsaxge','uqsaxlt','uqsaxgt','uqsaxle',
+            'qdaddeq','qdaddne','qdaddcs','qdaddhs','qdaddcc','qdaddlo','qdaddmi','qdaddpl','qdaddvs','qdaddvc','qdaddhi','qdaddls','qdaddge','qdaddlt','qdaddgt','qdaddle',
+            'qdsubeq','qdsubne','qdsubcs','qdsubhs','qdsubcc','qdsublo','qdsubmi','qdsubpl','qdsubvs','qdsubvc','qdsubhi','qdsubls','qdsubge','qdsublt','qdsubgt','qdsuble',
+            'ssateq','ssatne','ssatcs','ssaths','ssatcc','ssatlo','ssatmi','ssatpl','ssatvs','ssatvc','ssathi','ssatls','ssatge','ssatlt','ssatgt','ssatle',
+            'ssat16eq','ssat16ne','ssat16cs','ssat16hs','ssat16cc','ssat16lo','ssat16mi','ssat16pl','ssat16vs','ssat16vc','ssat16hi','ssat16ls','ssat16ge','ssat16lt','ssat16gt','ssat16le',
+            'usateq','usatne','usatcs','usaths','usatcc','usatlo','usatmi','usatpl','usatvs','usatvc','usathi','usatls','usatge','usatlt','usatgt','usatle',
+            'usat16eq','usat16ne','usat16cs','usat16hs','usat16cc','usat16lo','usat16mi','usat16pl','usat16vs','usat16vc','usat16hi','usat16ls','usat16ge','usat16lt','usat16gt','usat16le',
+            /* ARMv6 SIMD: Conditional Permutation and Combine Operations */
+            'sxtaheq','sxtahne','sxtahcs','sxtahhs','sxtahcc','sxtahlo','sxtahmi','sxtahpl','sxtahvs','sxtahvc','sxtahhi','sxtahls','sxtahge','sxtahlt','sxtahgt','sxtahle',
+            'sxtabeq','sxtabne','sxtabcs','sxtabhs','sxtabcc','sxtablo','sxtabmi','sxtabpl','sxtabvs','sxtabvc','sxtabhi','sxtabls','sxtabge','sxtablt','sxtabgt','sxtable',
+            'sxtab16eq','sxtab16ne','sxtab16cs','sxtab16hs','sxtab16cc','sxtab16lo','sxtab16mi','sxtab16pl','sxtab16vs','sxtab16vc','sxtab16hi','sxtab16ls','sxtab16ge','sxtab16lt','sxtab16gt','sxtab16le',
+            'uxtaheq','uxtahne','uxtahcs','uxtahhs','uxtahcc','uxtahlo','uxtahmi','uxtahpl','uxtahvs','uxtahvc','uxtahhi','uxtahls','uxtahge','uxtahlt','uxtahgt','uxtahle',
+            'uxtabeq','uxtabne','uxtabcs','uxtabhs','uxtabcc','uxtablo','uxtabmi','uxtabpl','uxtabvs','uxtabvc','uxtabhi','uxtabls','uxtabge','uxtablt','uxtabgt','uxtable',
+            'uxtab16eq','uxtab16ne','uxtab16cs','uxtab16hs','uxtab16cc','uxtab16lo','uxtab16mi','uxtab16pl','uxtab16vs','uxtab16vc','uxtab16hi','uxtab16ls','uxtab16ge','uxtab16lt','uxtab16gt','uxtab16le',
+            'sxtheq.w','sxthne.w','sxthcs.w','sxthhs.w','sxthcc.w','sxthlo.w','sxthmi.w','sxthpl.w','sxthvs.w','sxthvc.w','sxthhi.w','sxthls.w','sxthge.w','sxthlt.w','sxthgt.w','sxthle.w',
+            'sxtheq','sxthne','sxthcs','sxthhs','sxthcc','sxthlo','sxthmi','sxthpl','sxthvs','sxthvc','sxthhi','sxthls','sxthge','sxthlt','sxthgt','sxthle',
+            'sxtbeq.w','sxtbne.w','sxtbcs.w','sxtbhs.w','sxtbcc.w','sxtblo.w','sxtbmi.w','sxtbpl.w','sxtbvs.w','sxtbvc.w','sxtbhi.w','sxtbls.w','sxtbge.w','sxtblt.w','sxtbgt.w','sxtble.w',
+            'sxtbeq','sxtbne','sxtbcs','sxtbhs','sxtbcc','sxtblo','sxtbmi','sxtbpl','sxtbvs','sxtbvc','sxtbhi','sxtbls','sxtbge','sxtblt','sxtbgt','sxtble',
+            'sxtb16eq','sxtb16ne','sxtb16cs','sxtb16hs','sxtb16cc','sxtb16lo','sxtb16mi','sxtb16pl','sxtb16vs','sxtb16vc','sxtb16hi','sxtb16ls','sxtb16ge','sxtb16lt','sxtb16gt','sxtb16le',
+            'uxtheq.w','uxthne.w','uxthcs.w','uxthhs.w','uxthcc.w','uxthlo.w','uxthmi.w','uxthpl.w','uxthvs.w','uxthvc.w','uxthhi.w','uxthls.w','uxthge.w','uxthlt.w','uxthgt.w','uxthle.w',
+            'uxtheq','uxthne','uxthcs','uxthhs','uxthcc','uxthlo','uxthmi','uxthpl','uxthvs','uxthvc','uxthhi','uxthls','uxthge','uxthlt','uxthgt','uxthle',
+            'uxtbeq.w','uxtbne.w','uxtbcs.w','uxtbhs.w','uxtbcc.w','uxtblo.w','uxtbmi.w','uxtbpl.w','uxtbvs.w','uxtbvc.w','uxtbhi.w','uxtbls.w','uxtbge.w','uxtblt.w','uxtbgt.w','uxtble.w',
+            'uxtbeq','uxtbne','uxtbcs','uxtbhs','uxtbcc','uxtblo','uxtbmi','uxtbpl','uxtbvs','uxtbvc','uxtbhi','uxtbls','uxtbge','uxtblt','uxtbgt','uxtble',
+            'uxtb16eq','uxtb16ne','uxtb16cs','uxtb16hs','uxtb16cc','uxtb16lo','uxtb16mi','uxtb16pl','uxtb16vs','uxtb16vc','uxtb16hi','uxtb16ls','uxtb16ge','uxtb16lt','uxtb16gt','uxtb16le',
+            'pkhbteq','pkhbtne','pkhbtcs','pkhbths','pkhbtcc','pkhbtlo','pkhbtmi','pkhbtpl','pkhbtvs','pkhbtvc','pkhbthi','pkhbtls','pkhbtge','pkhbtlt','pkhbtgt','pkhbtle',
+            'pkhtbeq','pkhtbne','pkhtbcs','pkhtbhs','pkhtbcc','pkhtblo','pkhtbmi','pkhtbpl','pkhtbvs','pkhtbvc','pkhtbhi','pkhtbls','pkhtbge','pkhtblt','pkhtbgt','pkhtble',
+            'rbiteq','rbitne','rbitcs','rbiths','rbitcc','rbitlo','rbitmi','rbitpl','rbitvs','rbitvc','rbithi','rbitls','rbitge','rbitlt','rbitgt','rbitle',
+            'reveq.w','revne.w','revcs.w','revhs.w','revcc.w','revlo.w','revmi.w','revpl.w','revvs.w','revvc.w','revhi.w','revls.w','revge.w','revlt.w','revgt.w','revle.w',
+            'reveq','revne','revcs','revhs','revcc','revlo','revmi','revpl','revvs','revvc','revhi','revls','revge','revlt','revgt','revle',
+            'rev16eq.w','rev16ne.w','rev16cs.w','rev16hs.w','rev16cc.w','rev16lo.w','rev16mi.w','rev16pl.w','rev16vs.w','rev16vc.w','rev16hi.w','rev16ls.w','rev16ge.w','rev16lt.w','rev16gt.w','rev16le.w',
+            'rev16eq','rev16ne','rev16cs','rev16hs','rev16cc','rev16lo','rev16mi','rev16pl','rev16vs','rev16vc','rev16hi','rev16ls','rev16ge','rev16lt','rev16gt','rev16le',
+            'revsheq.w','revshne.w','revshcs.w','revshhs.w','revshcc.w','revshlo.w','revshmi.w','revshpl.w','revshvs.w','revshvc.w','revshhi.w','revshls.w','revshge.w','revshlt.w','revshgt.w','revshle.w',
+            'revsheq','revshne','revshcs','revshhs','revshcc','revshlo','revshmi','revshpl','revshvs','revshvc','revshhi','revshls','revshge','revshlt','revshgt','revshle',
+            'seleq','selne','selcs','selhs','selcc','sello','selmi','selpl','selvs','selvc','selhi','sells','selge','sellt','selgt','selle',
+            /* ARMv6 SIMD: Conditional Multiply and Multiply-Add */
+            'smladeq','smladne','smladcs','smladhs','smladcc','smladlo','smladmi','smladpl','smladvs','smladvc','smladhi','smladls','smladge','smladlt','smladgt','smladle',
+            'smladxeq','smladxne','smladxcs','smladxhs','smladxcc','smladxlo','smladxmi','smladxpl','smladxvs','smladxvc','smladxhi','smladxls','smladxge','smladxlt','smladxgt','smladxle',
+            'smlsdeq','smlsdne','smlsdcs','smlsdhs','smlsdcc','smlsdlo','smlsdmi','smlsdpl','smlsdvs','smlsdvc','smlsdhi','smlsdls','smlsdge','smlsdlt','smlsdgt','smlsdle',
+            'smlsdxeq','smlsdxne','smlsdxcs','smlsdxhs','smlsdxcc','smlsdxlo','smlsdxmi','smlsdxpl','smlsdxvs','smlsdxvc','smlsdxhi','smlsdxls','smlsdxge','smlsdxlt','smlsdxgt','smlsdxle',
+            'smlaldeq','smlaldne','smlaldcs','smlaldhs','smlaldcc','smlaldlo','smlaldmi','smlaldpl','smlaldvs','smlaldvc','smlaldhi','smlaldls','smlaldge','smlaldlt','smlaldgt','smlaldle',
+            'smlaldxeq','smlaldxne','smlaldxcs','smlaldxhs','smlaldxcc','smlaldxlo','smlaldxmi','smlaldxpl','smlaldxvs','smlaldxvc','smlaldxhi','smlaldxls','smlaldxge','smlaldxlt','smlaldxgt','smlaldxle',
+            'smlsldeq','smlsldne','smlsldcs','smlsldhs','smlsldcc','smlsldlo','smlsldmi','smlsldpl','smlsldvs','smlsldvc','smlsldhi','smlsldls','smlsldge','smlsldlt','smlsldgt','smlsldle',
+            'smlsldxeq','smlsldxne','smlsldxcs','smlsldxhs','smlsldxcc','smlsldxlo','smlsldxmi','smlsldxpl','smlsldxvs','smlsldxvc','smlsldxhi','smlsldxls','smlsldxge','smlsldxlt','smlsldxgt','smlsldxle',
+            'smmuleq','smmulne','smmulcs','smmulhs','smmulcc','smmullo','smmulmi','smmulpl','smmulvs','smmulvc','smmulhi','smmulls','smmulge','smmullt','smmulgt','smmulle',
+            'smmulreq','smmulrne','smmulrcs','smmulrhs','smmulrcc','smmulrlo','smmulrmi','smmulrpl','smmulrvs','smmulrvc','smmulrhi','smmulrls','smmulrge','smmulrlt','smmulrgt','smmulrle',
+            'smmlaeq','smmlane','smmlacs','smmlahs','smmlacc','smmlalo','smmlami','smmlapl','smmlavs','smmlavc','smmlahi','smmlals','smmlage','smmlalt','smmlagt','smmlale',
+            'smmlareq','smmlarne','smmlarcs','smmlarhs','smmlarcc','smmlarlo','smmlarmi','smmlarpl','smmlarvs','smmlarvc','smmlarhi','smmlarls','smmlarge','smmlarlt','smmlargt','smmlarle',
+            'smmlseq','smmlsne','smmlscs','smmlshs','smmlscc','smmlslo','smmlsmi','smmlspl','smmlsvs','smmlsvc','smmlshi','smmlsls','smmlsge','smmlslt','smmlsgt','smmlsle',
+            'smmlsreq','smmlsrne','smmlsrcs','smmlsrhs','smmlsrcc','smmlsrlo','smmlsrmi','smmlsrpl','smmlsrvs','smmlsrvc','smmlsrhi','smmlsrls','smmlsrge','smmlsrlt','smmlsrgt','smmlsrle',
+            'smuadeq','smuadne','smuadcs','smuadhs','smuadcc','smuadlo','smuadmi','smuadpl','smuadvs','smuadvc','smuadhi','smuadls','smuadge','smuadlt','smuadgt','smuadle',
+            'smuadxeq','smuadxne','smuadxcs','smuadxhs','smuadxcc','smuadxlo','smuadxmi','smuadxpl','smuadxvs','smuadxvc','smuadxhi','smuadxls','smuadxge','smuadxlt','smuadxgt','smuadxle',
+            'smusdeq','smusdne','smusdcs','smusdhs','smusdcc','smusdlo','smusdmi','smusdpl','smusdvs','smusdvc','smusdhi','smusdls','smusdge','smusdlt','smusdgt','smusdle',
+            'smusdxeq','smusdxne','smusdxcs','smusdxhs','smusdxcc','smusdxlo','smusdxmi','smusdxpl','smusdxvs','smusdxvc','smusdxhi','smusdxls','smusdxge','smusdxlt','smusdxgt','smusdxle',
+            'umaaleq','umaalne','umaalcs','umaalhs','umaalcc','umaallo','umaalmi','umaalpl','umaalvs','umaalvc','umaalhi','umaalls','umaalge','umaallt','umaalgt','umaalle'
+            ),
+        /* Unconditional Coprocessor Instructions */
+        13 => array(
+            /* Data Processing: Unconditional Coprocessor Instructions */
+            'cdp','cdpal',
+            'cdp2','cdp2al',
+            'ldc','ldcal',
+            'ldcl','ldclal',
+            'ldc2','ldc2al',
+            'ldc2l','ldc2lal',
+            'stc','stcal',
+            'stcl','stclal',
+            'stc2','stc2al',
+            'stc2l','stc2lal',
+            'mcr','mcral',
+            'mcr2','mcr2al',
+            'mcrr','mcrral',
+            'mcrr2','mcrr2al',
+            'mrc','mrcal',
+            'mrc2','mrc2al',
+            'mrrc','mrrcal',
+            'mrrc2','mrrc2al'
+            ),
+        /* Conditional Coprocessor Instructions */
+        14 => array(
+            /* Data Processing: Conditional Coprocessor Instructions */
+            'cdpeq','cdpne','cdpcs','cdphs','cdpcc','cdplo','cdpmi','cdppl','cdpvs','cdpvc','cdphi','cdpls','cdpge','cdplt','cdpgt','cdple',
+            'cdp2eq','cdp2ne','cdp2cs','cdp2hs','cdp2cc','cdp2lo','cdp2mi','cdp2pl','cdp2vs','cdp2vc','cdp2hi','cdp2ls','cdp2ge','cdp2lt','cdp2gt','cdp2le',
+            'ldceq','ldcne','ldccs','ldchs','ldccc','ldclo','ldcmi','ldcpl','ldcvs','ldcvc','ldchi','ldcls','ldcge','ldclt','ldcgt','ldcle',
+            'ldcleq','ldclne','ldclcs','ldclhs','ldclcc','ldcllo','ldclmi','ldclpl','ldclvs','ldclvc','ldclhi','ldclls','ldclge','ldcllt','ldclgt','ldclle',
+            'ldc2eq','ldc2ne','ldc2cs','ldc2hs','ldc2cc','ldc2lo','ldc2mi','ldc2pl','ldc2vs','ldc2vc','ldc2hi','ldc2ls','ldc2ge','ldc2lt','ldc2gt','ldc2le',
+            'ldc2leq','ldc2lne','ldc2lcs','ldc2lhs','ldc2lcc','ldc2llo','ldc2lmi','ldc2lpl','ldc2lvs','ldc2lvc','ldc2lhi','ldc2lls','ldc2lge','ldc2llt','ldc2lgt','ldc2lle',
+            'stceq','stcne','stccs','stchs','stccc','stclo','stcmi','stcpl','stcvs','stcvc','stchi','stcls','stcge','stclt','stcgt','stcle',
+            'stcleq','stclne','stclcs','stclhs','stclcc','stcllo','stclmi','stclpl','stclvs','stclvc','stclhi','stclls','stclge','stcllt','stclgt','stclle',
+            'stc2eq','stc2ne','stc2cs','stc2hs','stc2cc','stc2lo','stc2mi','stc2pl','stc2vs','stc2vc','stc2hi','stc2ls','stc2ge','stc2lt','stc2gt','stc2le',
+            'stc2leq','stc2lne','stc2lcs','stc2lhs','stc2lcc','stc2llo','stc2lmi','stc2lpl','stc2lvs','stc2lvc','stc2lhi','stc2lls','stc2lge','stc2llt','stc2lgt','stc2lle',
+            'mcreq','mcrne','mcrcs','mcrhs','mcrcc','mcrlo','mcrmi','mcrpl','mcrvs','mcrvc','mcrhi','mcrls','mcrge','mcrlt','mcrgt','mcrle',
+            'mcr2eq','mcr2ne','mcr2cs','mcr2hs','mcr2cc','mcr2lo','mcr2mi','mcr2pl','mcr2vs','mcr2vc','mcr2hi','mcr2ls','mcr2ge','mcr2lt','mcr2gt','mcr2le',
+            'mcrreq','mcrrne','mcrrcs','mcrrhs','mcrrcc','mcrrlo','mcrrmi','mcrrpl','mcrrvs','mcrrvc','mcrrhi','mcrrls','mcrrge','mcrrlt','mcrrgt','mcrrle',
+            'mcrr2eq','mcrr2ne','mcrr2cs','mcrr2hs','mcrr2cc','mcrr2lo','mcrr2mi','mcrr2pl','mcrr2vs','mcrr2vc','mcrr2hi','mcrr2ls','mcrr2ge','mcrr2lt','mcrr2gt','mcrr2le',
+            'mrceq','mrcne','mrccs','mrchs','mrccc','mrclo','mrcmi','mrcpl','mrcvs','mrcvc','mrchi','mrcls','mrcge','mrclt','mrcgt','mrcle',
+            'mrc2eq','mrc2ne','mrc2cs','mrc2hs','mrc2cc','mrc2lo','mrc2mi','mrc2pl','mrc2vs','mrc2vc','mrc2hi','mrc2ls','mrc2ge','mrc2lt','mrc2gt','mrc2le',
+            'mrrceq','mrrcne','mrrccs','mrrchs','mrrccc','mrrclo','mrrcmi','mrrcpl','mrrcvs','mrrcvc','mrrchi','mrrcls','mrrcge','mrrclt','mrrcgt','mrrcle',
+            'mrrc2eq','mrrc2ne','mrrc2cs','mrrc2hs','mrrc2cc','mrrc2lo','mrrc2mi','mrrc2pl','mrrc2vs','mrrc2vc','mrrc2hi','mrrc2ls','mrrc2ge','mrrc2lt','mrrc2gt','mrrc2le'
+            ),
+        /* Unconditional System Instructions */
+        15 => array(
+            /* System: Unconditional Debug and State-Change Instructions */
+            'bkpt',
+            'dbg','dbgal',
+            'setend',
+            'svc','svcal',
+            'sev.w','seval.w',
+            'sev','seval',
+            'wfe.w','wfeal.w',
+            'wfe','wfeal',
+            'wfi.w','wfial.w',
+            'wfi','wfial',
+            /* System: Unconditional ThumbEE Instructions */
+            'enterx',
+            'leavex',
+            'chka.n','chkaal.n',
+            'chka','chkaal',
+            'hb.n','hbal.n',
+            'hb','hbal',
+            'hbl.n','hblal.n',
+            'hbl','hblal',
+            'hblp.n','hblpal.n',
+            'hblp','hblpal',
+            'hbp.n','hbpal.n',
+            'hbp','hbpal',
+            /* System: Unconditional Privileged Instructions */
+            'cpsie.n',
+            'cpsie.w',
+            'cpsie',
+            'cpsid.n',
+            'cpsid.w',
+            'cpsid',
+            'smc','smcal',
+            'rfeda','rfedaal',
+            'rfedb','rfedbal',
+            'rfeia','rfeiaal',
+            'rfeib','rfeibal',
+            'srsda','srsdaal',
+            'srsdb','srsdbal',
+            'srsia','srsiaal',
+            'srsib','srsibal'
+            ),
+        /* Conditional System Instructions */
+        16 => array(
+            /* System: Conditional Debug and State-Change Instructions */
+            'dbgeq','dbgne','dbgcs','dbghs','dbgcc','dbglo','dbgmi','dbgpl','dbgvs','dbgvc','dbghi','dbgls','dbgge','dbglt','dbggt','dbgle',
+            'svceq','svcne','svccs','svchs','svccc','svclo','svcmi','svcpl','svcvs','svcvc','svchi','svcls','svcge','svclt','svcgt','svcle',
+            'seveq.w','sevne.w','sevcs.w','sevhs.w','sevcc.w','sevlo.w','sevmi.w','sevpl.w','sevvs.w','sevvc.w','sevhi.w','sevls.w','sevge.w','sevlt.w','sevgt.w','sevle.w',
+            'seveq','sevne','sevcs','sevhs','sevcc','sevlo','sevmi','sevpl','sevvs','sevvc','sevhi','sevls','sevge','sevlt','sevgt','sevle',
+            'wfeeq.w','wfene.w','wfecs.w','wfehs.w','wfecc.w','wfelo.w','wfemi.w','wfepl.w','wfevs.w','wfevc.w','wfehi.w','wfels.w','wfege.w','wfelt.w','wfegt.w','wfele.w',
+            'wfeeq','wfene','wfecs','wfehs','wfecc','wfelo','wfemi','wfepl','wfevs','wfevc','wfehi','wfels','wfege','wfelt','wfegt','wfele',
+            'wfieq.w','wfine.w','wfics.w','wfihs.w','wficc.w','wfilo.w','wfimi.w','wfipl.w','wfivs.w','wfivc.w','wfihi.w','wfils.w','wfige.w','wfilt.w','wfigt.w','wfile.w',
+            'wfieq','wfine','wfics','wfihs','wficc','wfilo','wfimi','wfipl','wfivs','wfivc','wfihi','wfils','wfige','wfilt','wfigt','wfile',
+            /* System: Conditional ThumbEE Instructions */
+            'chkaeq.n','chkane.n','chkacs.n','chkahs.n','chkacc.n','chkalo.n','chkami.n','chkapl.n','chkavs.n','chkavc.n','chkahi.n','chkals.n','chkage.n','chkalt.n','chkagt.n','chkale.n',
+            'chkaeq','chkane','chkacs','chkahs','chkacc','chkalo','chkami','chkapl','chkavs','chkavc','chkahi','chkals','chkage','chkalt','chkagt','chkale',
+            'hbeq.n','hbne.n','hbcs.n','hbhs.n','hbcc.n','hblo.n','hbmi.n','hbpl.n','hbvs.n','hbvc.n','hbhi.n','hbls.n','hbge.n','hblt.n','hbgt.n','hble.n',
+            'hbeq','hbne','hbcs','hbhs','hbcc','hblo','hbmi','hbpl','hbvs','hbvc','hbhi','hbls','hbge','hblt','hbgt','hble',
+            'hbleq.n','hblne.n','hblcs.n','hblhs.n','hblcc.n','hbllo.n','hblmi.n','hblpl.n','hblvs.n','hblvc.n','hblhi.n','hblls.n','hblge.n','hbllt.n','hblgt.n','hblle.n',
+            'hbleq','hblne','hblcs','hblhs','hblcc','hbllo','hblmi','hblpl','hblvs','hblvc','hblhi','hblls','hblge','hbllt','hblgt','hblle',
+            'hblpeq.n','hblpne.n','hblpcs.n','hblphs.n','hblpcc.n','hblplo.n','hblpmi.n','hblppl.n','hblpvs.n','hblpvc.n','hblphi.n','hblpls.n','hblpge.n','hblplt.n','hblpgt.n','hblple.n',
+            'hblpeq','hblpne','hblpcs','hblphs','hblpcc','hblplo','hblpmi','hblppl','hblpvs','hblpvc','hblphi','hblpls','hblpge','hblplt','hblpgt','hblple',
+            'hbpeq.n','hbpne.n','hbpcs.n','hbphs.n','hbpcc.n','hbplo.n','hbpmi.n','hbppl.n','hbpvs.n','hbpvc.n','hbphi.n','hbpls.n','hbpge.n','hbplt.n','hbpgt.n','hbple.n',
+            'hbpeq','hbpne','hbpcs','hbphs','hbpcc','hbplo','hbpmi','hbppl','hbpvs','hbpvc','hbphi','hbpls','hbpge','hbplt','hbpgt','hbple',
+            /* System: Conditional Privileged Instructions */
+            'smceq','smcne','smccs','smchs','smccc','smclo','smcmi','smcpl','smcvs','smcvc','smchi','smcls','smcge','smclt','smcgt','smcle',
+            'rfedaeq','rfedane','rfedacs','rfedahs','rfedacc','rfedalo','rfedami','rfedapl','rfedavs','rfedavc','rfedahi','rfedals','rfedage','rfedalt','rfedagt','rfedale',
+            'rfedbeq','rfedbne','rfedbcs','rfedbhs','rfedbcc','rfedblo','rfedbmi','rfedbpl','rfedbvs','rfedbvc','rfedbhi','rfedbls','rfedbge','rfedblt','rfedbgt','rfedble',
+            'rfeiaeq','rfeiane','rfeiacs','rfeiahs','rfeiacc','rfeialo','rfeiami','rfeiapl','rfeiavs','rfeiavc','rfeiahi','rfeials','rfeiage','rfeialt','rfeiagt','rfeiale',
+            'rfeibeq','rfeibne','rfeibcs','rfeibhs','rfeibcc','rfeiblo','rfeibmi','rfeibpl','rfeibvs','rfeibvc','rfeibhi','rfeibls','rfeibge','rfeiblt','rfeibgt','rfeible',
+            'srsdaeq','srsdane','srsdacs','srsdahs','srsdacc','srsdalo','srsdami','srsdapl','srsdavs','srsdavc','srsdahi','srsdals','srsdage','srsdalt','srsdagt','srsdale',
+            'srsdbeq','srsdbne','srsdbcs','srsdbhs','srsdbcc','srsdblo','srsdbmi','srsdbpl','srsdbvs','srsdbvc','srsdbhi','srsdbls','srsdbge','srsdblt','srsdbgt','srsdble',
+            'srsiaeq','srsiane','srsiacs','srsiahs','srsiacc','srsialo','srsiami','srsiapl','srsiavs','srsiavc','srsiahi','srsials','srsiage','srsialt','srsiagt','srsiale',
+            'srsibeq','srsibne','srsibcs','srsibhs','srsibcc','srsiblo','srsibmi','srsibpl','srsibvs','srsibvc','srsibhi','srsibls','srsibge','srsiblt','srsibgt','srsible'
+            ),
+        /* Unconditional WMMX/WMMX2 instructions */
+        17 => array(
+            /* Unconditional WMMX/WMMX2 SIMD Instructions */
+            'tandcb','tandcbal',
+            'tandch','tandchal',
+            'tandcw','tandcwal',
+            'tbcstb','tbcstbal',
+            'tbcsth','tbcsthal',
+            'tbcstw','tbcstwal',
+            'textrcb','textrcbal',
+            'textrch','textrchal',
+            'textrcw','textrcwal',
+            'textrmsb','textrmsbal',
+            'textrmsh','textrmshal',
+            'textrmsw','textrmswal',
+            'textrmub','textrmubal',
+            'textrmuh','textrmuhal',
+            'textrmuw','textrmuwal',
+            'tinsrb','tinsrbal',
+            'tinsrh','tinsrhal',
+            'tinsrw','tinsrwal',
+            'tmcr','tmcral',
+            'tmcrr','tmcrral',
+            'tmia','tmiaal',
+            'tmiaph','tmiaphal',
+            'tmiabb','tmiabbal',
+            'tmiabt','tmiabtal',
+            'tmiatb','tmiatbal',
+            'tmiatt','tmiattal',
+            'tmovmskb','tmovmskbal',
+            'tmovmskh','tmovmskhal',
+            'tmovmskw','tmovmskwal',
+            'tmrc','tmrcal',
+            'tmrrc','tmrrcal',
+            'torcb','torcbal',
+            'torch','torchal',
+            'torcw','torcwal',
+            'torvscb','torvscbal',
+            'torvsch','torvschal',
+            'torvscw','torvscwal',
+            'wabsb','wabsbal',
+            'wabsh','wabshal',
+            'wabsw','wabswal',
+            'wabsdiffb','wabsdiffbal',
+            'wabsdiffh','wabsdiffhal',
+            'wabsdiffw','wabsdiffwal',
+            'waccb','waccbal',
+            'wacch','wacchal',
+            'waccw','waccwal',
+            'waddb','waddbal',
+            'waddh','waddhal',
+            'waddw','waddwal',
+            'waddbc','waddbcal',
+            'waddhc','waddhcal',
+            'waddwc','waddwcal',
+            'waddbss','waddbssal',
+            'waddhss','waddhssal',
+            'waddwss','waddwssal',
+            'waddbus','waddbusal',
+            'waddhus','waddhusal',
+            'waddwus','waddwusal',
+            'waddsubhx','waddsubhxal',
+            'waligni','walignial',
+            'walignr0','walignr0al',
+            'walignr1','walignr1al',
+            'walignr2','walignr2al',
+            'walignr3','walignr3al',
+            'wand','wandal',
+            'wandn','wandnal',
+            'wavg2b','wavg2bal',
+            'wavg2h','wavg2hal',
+            'wavg2br','wavg2bral',
+            'wavg2hr','wavg2hral',
+            'wavg4','wavg4al',
+            'wavg4r','wavg4ral',
+            'wcmpeqb','wcmpeqbal',
+            'wcmpeqh','wcmpeqhal',
+            'wcmpeqw','wcmpeqwal',
+            'wcmpgtsb','wcmpgtsbal',
+            'wcmpgtsh','wcmpgtshal',
+            'wcmpgtsw','wcmpgtswal',
+            'wcmpgtub','wcmpgtubal',
+            'wcmpgtuh','wcmpgtuhal',
+            'wcmpgtuw','wcmpgtuwal',
+            'wldrb','wldrbal',
+            'wldrh','wldrhal',
+            'wldrw','wldrwal',
+            'wldrd','wldrdal',
+            'wmacs','wmacsal',
+            'wmacu','wmacual',
+            'wmacsz','wmacszal',
+            'wmacuz','wmacuzal',
+            'wmadds','wmaddsal',
+            'wmaddu','wmaddual',
+            'wmaddsx','wmaddsxal',
+            'wmaddux','wmadduxal',
+            'wmaddsn','wmaddsnal',
+            'wmaddun','wmaddunal',
+            'wmaxsb','wmaxsbal',
+            'wmaxsh','wmaxshal',
+            'wmaxsw','wmaxswal',
+            'wmaxub','wmaxubal',
+            'wmaxuh','wmaxuhal',
+            'wmaxuw','wmaxuwal',
+            'wmerge','wmergeal',
+            'wmiabb','wmiabbal',
+            'wmiabt','wmiabtal',
+            'wmiatb','wmiatbal',
+            'wmiatt','wmiattal',
+            'wmiabbn','wmiabbnal',
+            'wmiabtn','wmiabtnal',
+            'wmiatbn','wmiatbnal',
+            'wmiattn','wmiattnal',
+            'wmiawbb','wmiawbbal',
+            'wmiawbt','wmiawbtal',
+            'wmiawtb','wmiawtbal',
+            'wmiawtt','wmiawttal',
+            'wmiawbbn','wmiawbbnal',
+            'wmiawbtn','wmiawbtnal',
+            'wmiawtbn','wmiawtbnal',
+            'wmiawttn','wmiawttnal',
+            'wminsb','wminsbal',
+            'wminsh','wminshal',
+            'wminsw','wminswal',
+            'wminub','wminubal',
+            'wminuh','wminuhal',
+            'wminuw','wminuwal',
+            'wmov','wmoval',
+            'wmulsm','wmulsmal',
+            'wmulsl','wmulslal',
+            'wmulum','wmulumal',
+            'wmulul','wmululal',
+            'wmulsmr','wmulsmral',
+            'wmulslr','wmulslral',
+            'wmulumr','wmulumral',
+            'wmululr','wmululral',
+            'wmulwum','wmulwumal',
+            'wmulwsm','wmulwsmal',
+            'wmulwl','wmulwlal',
+            'wmulwumr','wmulwumral',
+            'wmulwsmr','wmulwsmral',
+            'wor','woral',
+            'wpackhss','wpackhssal',
+            'wpackwss','wpackwssal',
+            'wpackdss','wpackdssal',
+            'wpackhus','wpackhusal',
+            'wpackwus','wpackwusal',
+            'wpackdus','wpackdusal',
+            'wqmiabb','wqmiabbal',
+            'wqmiabt','wqmiabtal',
+            'wqmiatb','wqmiatbal',
+            'wqmiatt','wqmiattal',
+            'wqmiabbn','wqmiabbnal',
+            'wqmiabtn','wqmiabtnal',
+            'wqmiatbn','wqmiatbnal',
+            'wqmiattn','wqmiattnal',
+            'wqmulm','wqmulmal',
+            'wqmulmr','wqmulmral',
+            'wqmulwm','wqmulwmal',
+            'wqmulwmr','wqmulwmral',
+            'wrorh','wrorhal',
+            'wrorw','wrorwal',
+            'wrord','wrordal',
+            'wrorhg','wrorhgal',
+            'wrorwg','wrorwgal',
+            'wrordg','wrordgal',
+            'wsadb','wsadbal',
+            'wsadh','wsadhal',
+            'wsadbz','wsadbzal',
+            'wsadhz','wsadhzal',
+            'wshufh','wshufhal',
+            'wsllh','wsllhal',
+            'wsllw','wsllwal',
+            'wslld','wslldal',
+            'wsllhg','wsllhgal',
+            'wsllwg','wsllwgal',
+            'wslldg','wslldgal',
+            'wsrah','wsrahal',
+            'wsraw','wsrawal',
+            'wsrad','wsradal',
+            'wsrahg','wsrahgal',
+            'wsrawg','wsrawgal',
+            'wsradg','wsradgal',
+            'wsrlh','wsrlhal',
+            'wsrlw','wsrlwal',
+            'wsrld','wsrldal',
+            'wsrlhg','wsrlhgal',
+            'wsrlwg','wsrlwgal',
+            'wsrldg','wsrldgal',
+            'wstrb','wstrbal',
+            'wstrh','wstrhal',
+            'wstrw','wstrwal',
+            'wstrd','wstrdal',
+            'wsubb','wsubbal',
+            'wsubh','wsubhal',
+            'wsubw','wsubwal',
+            'wsubbss','wsubbssal',
+            'wsubhss','wsubhssal',
+            'wsubwss','wsubwssal',
+            'wsubbus','wsubbusal',
+            'wsubhus','wsubhusal',
+            'wsubwus','wsubwusal',
+            'wsubaddhx','wsubaddhxal',
+            'wunpckehsb','wunpckehsbal',
+            'wunpckehsh','wunpckehshal',
+            'wunpckehsw','wunpckehswal',
+            'wunpckehub','wunpckehubal',
+            'wunpckehuh','wunpckehuhal',
+            'wunpckehuw','wunpckehuwal',
+            'wunpckihb','wunpckihbal',
+            'wunpckihh','wunpckihhal',
+            'wunpckihw','wunpckihwal',
+            'wunpckelsb','wunpckelsbal',
+            'wunpckelsh','wunpckelshal',
+            'wunpckelsw','wunpckelswal',
+            'wunpckelub','wunpckelubal',
+            'wunpckeluh','wunpckeluhal',
+            'wunpckeluw','wunpckeluwal',
+            'wunpckilb','wunpckilbal',
+            'wunpckilh','wunpckilhal',
+            'wunpckilw','wunpckilwal',
+            'wxor','wxoral',
+            'wzero','wzeroal'
+            ),
+        /* Conditional WMMX/WMMX2 SIMD Instructions */
+        18 => array(
+            /* Conditional WMMX/WMMX2 SIMD Instructions */
+            'tandcbeq','tandcbne','tandcbcs','tandcbhs','tandcbcc','tandcblo','tandcbmi','tandcbpl','tandcbvs','tandcbvc','tandcbhi','tandcbls','tandcbge','tandcblt','tandcbgt','tandcble',
+            'tandcheq','tandchne','tandchcs','tandchhs','tandchcc','tandchlo','tandchmi','tandchpl','tandchvs','tandchvc','tandchhi','tandchls','tandchge','tandchlt','tandchgt','tandchle',
+            'tandcweq','tandcwne','tandcwcs','tandcwhs','tandcwcc','tandcwlo','tandcwmi','tandcwpl','tandcwvs','tandcwvc','tandcwhi','tandcwls','tandcwge','tandcwlt','tandcwgt','tandcwle',
+            'tbcstbeq','tbcstbne','tbcstbcs','tbcstbhs','tbcstbcc','tbcstblo','tbcstbmi','tbcstbpl','tbcstbvs','tbcstbvc','tbcstbhi','tbcstbls','tbcstbge','tbcstblt','tbcstbgt','tbcstble',
+            'tbcstheq','tbcsthne','tbcsthcs','tbcsthhs','tbcsthcc','tbcsthlo','tbcsthmi','tbcsthpl','tbcsthvs','tbcsthvc','tbcsthhi','tbcsthls','tbcsthge','tbcsthlt','tbcsthgt','tbcsthle',
+            'tbcstweq','tbcstwne','tbcstwcs','tbcstwhs','tbcstwcc','tbcstwlo','tbcstwmi','tbcstwpl','tbcstwvs','tbcstwvc','tbcstwhi','tbcstwls','tbcstwge','tbcstwlt','tbcstwgt','tbcstwle',
+            'textrcbeq','textrcbne','textrcbcs','textrcbhs','textrcbcc','textrcblo','textrcbmi','textrcbpl','textrcbvs','textrcbvc','textrcbhi','textrcbls','textrcbge','textrcblt','textrcbgt','textrcble',
+            'textrcheq','textrchne','textrchcs','textrchhs','textrchcc','textrchlo','textrchmi','textrchpl','textrchvs','textrchvc','textrchhi','textrchls','textrchge','textrchlt','textrchgt','textrchle',
+            'textrcweq','textrcwne','textrcwcs','textrcwhs','textrcwcc','textrcwlo','textrcwmi','textrcwpl','textrcwvs','textrcwvc','textrcwhi','textrcwls','textrcwge','textrcwlt','textrcwgt','textrcwle',
+            'textrmsbeq','textrmsbne','textrmsbcs','textrmsbhs','textrmsbcc','textrmsblo','textrmsbmi','textrmsbpl','textrmsbvs','textrmsbvc','textrmsbhi','textrmsbls','textrmsbge','textrmsblt','textrmsbgt','textrmsble',
+            'textrmsheq','textrmshne','textrmshcs','textrmshhs','textrmshcc','textrmshlo','textrmshmi','textrmshpl','textrmshvs','textrmshvc','textrmshhi','textrmshls','textrmshge','textrmshlt','textrmshgt','textrmshle',
+            'textrmsweq','textrmswne','textrmswcs','textrmswhs','textrmswcc','textrmswlo','textrmswmi','textrmswpl','textrmswvs','textrmswvc','textrmswhi','textrmswls','textrmswge','textrmswlt','textrmswgt','textrmswle',
+            'textrmubeq','textrmubne','textrmubcs','textrmubhs','textrmubcc','textrmublo','textrmubmi','textrmubpl','textrmubvs','textrmubvc','textrmubhi','textrmubls','textrmubge','textrmublt','textrmubgt','textrmuble',
+            'textrmuheq','textrmuhne','textrmuhcs','textrmuhhs','textrmuhcc','textrmuhlo','textrmuhmi','textrmuhpl','textrmuhvs','textrmuhvc','textrmuhhi','textrmuhls','textrmuhge','textrmuhlt','textrmuhgt','textrmuhle',
+            'textrmuweq','textrmuwne','textrmuwcs','textrmuwhs','textrmuwcc','textrmuwlo','textrmuwmi','textrmuwpl','textrmuwvs','textrmuwvc','textrmuwhi','textrmuwls','textrmuwge','textrmuwlt','textrmuwgt','textrmuwle',
+            'tinsrbeq','tinsrbne','tinsrbcs','tinsrbhs','tinsrbcc','tinsrblo','tinsrbmi','tinsrbpl','tinsrbvs','tinsrbvc','tinsrbhi','tinsrbls','tinsrbge','tinsrblt','tinsrbgt','tinsrble',
+            'tinsrheq','tinsrhne','tinsrhcs','tinsrhhs','tinsrhcc','tinsrhlo','tinsrhmi','tinsrhpl','tinsrhvs','tinsrhvc','tinsrhhi','tinsrhls','tinsrhge','tinsrhlt','tinsrhgt','tinsrhle',
+            'tinsrweq','tinsrwne','tinsrwcs','tinsrwhs','tinsrwcc','tinsrwlo','tinsrwmi','tinsrwpl','tinsrwvs','tinsrwvc','tinsrwhi','tinsrwls','tinsrwge','tinsrwlt','tinsrwgt','tinsrwle',
+            'tmcreq','tmcrne','tmcrcs','tmcrhs','tmcrcc','tmcrlo','tmcrmi','tmcrpl','tmcrvs','tmcrvc','tmcrhi','tmcrls','tmcrge','tmcrlt','tmcrgt','tmcrle',
+            'tmcrreq','tmcrrne','tmcrrcs','tmcrrhs','tmcrrcc','tmcrrlo','tmcrrmi','tmcrrpl','tmcrrvs','tmcrrvc','tmcrrhi','tmcrrls','tmcrrge','tmcrrlt','tmcrrgt','tmcrrle',
+            'tmiaeq','tmiane','tmiacs','tmiahs','tmiacc','tmialo','tmiami','tmiapl','tmiavs','tmiavc','tmiahi','tmials','tmiage','tmialt','tmiagt','tmiale',
+            'tmiapheq','tmiaphne','tmiaphcs','tmiaphhs','tmiaphcc','tmiaphlo','tmiaphmi','tmiaphpl','tmiaphvs','tmiaphvc','tmiaphhi','tmiaphls','tmiaphge','tmiaphlt','tmiaphgt','tmiaphle',
+            'tmiabbeq','tmiabbne','tmiabbcs','tmiabbhs','tmiabbcc','tmiabblo','tmiabbmi','tmiabbpl','tmiabbvs','tmiabbvc','tmiabbhi','tmiabbls','tmiabbge','tmiabblt','tmiabbgt','tmiabble',
+            'tmiabteq','tmiabtne','tmiabtcs','tmiabths','tmiabtcc','tmiabtlo','tmiabtmi','tmiabtpl','tmiabtvs','tmiabtvc','tmiabthi','tmiabtls','tmiabtge','tmiabtlt','tmiabtgt','tmiabtle',
+            'tmiatbeq','tmiatbne','tmiatbcs','tmiatbhs','tmiatbcc','tmiatblo','tmiatbmi','tmiatbpl','tmiatbvs','tmiatbvc','tmiatbhi','tmiatbls','tmiatbge','tmiatblt','tmiatbgt','tmiatble',
+            'tmiatteq','tmiattne','tmiattcs','tmiatths','tmiattcc','tmiattlo','tmiattmi','tmiattpl','tmiattvs','tmiattvc','tmiatthi','tmiattls','tmiattge','tmiattlt','tmiattgt','tmiattle',
+            'tmovmskbeq','tmovmskbne','tmovmskbcs','tmovmskbhs','tmovmskbcc','tmovmskblo','tmovmskbmi','tmovmskbpl','tmovmskbvs','tmovmskbvc','tmovmskbhi','tmovmskbls','tmovmskbge','tmovmskblt','tmovmskbgt','tmovmskble',
+            'tmovmskheq','tmovmskhne','tmovmskhcs','tmovmskhhs','tmovmskhcc','tmovmskhlo','tmovmskhmi','tmovmskhpl','tmovmskhvs','tmovmskhvc','tmovmskhhi','tmovmskhls','tmovmskhge','tmovmskhlt','tmovmskhgt','tmovmskhle',
+            'tmovmskweq','tmovmskwne','tmovmskwcs','tmovmskwhs','tmovmskwcc','tmovmskwlo','tmovmskwmi','tmovmskwpl','tmovmskwvs','tmovmskwvc','tmovmskwhi','tmovmskwls','tmovmskwge','tmovmskwlt','tmovmskwgt','tmovmskwle',
+            'tmrceq','tmrcne','tmrccs','tmrchs','tmrccc','tmrclo','tmrcmi','tmrcpl','tmrcvs','tmrcvc','tmrchi','tmrcls','tmrcge','tmrclt','tmrcgt','tmrcle',
+            'tmrrceq','tmrrcne','tmrrccs','tmrrchs','tmrrccc','tmrrclo','tmrrcmi','tmrrcpl','tmrrcvs','tmrrcvc','tmrrchi','tmrrcls','tmrrcge','tmrrclt','tmrrcgt','tmrrcle',
+            'torcbeq','torcbne','torcbcs','torcbhs','torcbcc','torcblo','torcbmi','torcbpl','torcbvs','torcbvc','torcbhi','torcbls','torcbge','torcblt','torcbgt','torcble',
+            'torcheq','torchne','torchcs','torchhs','torchcc','torchlo','torchmi','torchpl','torchvs','torchvc','torchhi','torchls','torchge','torchlt','torchgt','torchle',
+            'torcweq','torcwne','torcwcs','torcwhs','torcwcc','torcwlo','torcwmi','torcwpl','torcwvs','torcwvc','torcwhi','torcwls','torcwge','torcwlt','torcwgt','torcwle',
+            'torvscbeq','torvscbne','torvscbcs','torvscbhs','torvscbcc','torvscblo','torvscbmi','torvscbpl','torvscbvs','torvscbvc','torvscbhi','torvscbls','torvscbge','torvscblt','torvscbgt','torvscble',
+            'torvscheq','torvschne','torvschcs','torvschhs','torvschcc','torvschlo','torvschmi','torvschpl','torvschvs','torvschvc','torvschhi','torvschls','torvschge','torvschlt','torvschgt','torvschle',
+            'torvscweq','torvscwne','torvscwcs','torvscwhs','torvscwcc','torvscwlo','torvscwmi','torvscwpl','torvscwvs','torvscwvc','torvscwhi','torvscwls','torvscwge','torvscwlt','torvscwgt','torvscwle',
+            'wabsbeq','wabsbne','wabsbcs','wabsbhs','wabsbcc','wabsblo','wabsbmi','wabsbpl','wabsbvs','wabsbvc','wabsbhi','wabsbls','wabsbge','wabsblt','wabsbgt','wabsble',
+            'wabsheq','wabshne','wabshcs','wabshhs','wabshcc','wabshlo','wabshmi','wabshpl','wabshvs','wabshvc','wabshhi','wabshls','wabshge','wabshlt','wabshgt','wabshle',
+            'wabsweq','wabswne','wabswcs','wabswhs','wabswcc','wabswlo','wabswmi','wabswpl','wabswvs','wabswvc','wabswhi','wabswls','wabswge','wabswlt','wabswgt','wabswle',
+            'wabsdiffbeq','wabsdiffbne','wabsdiffbcs','wabsdiffbhs','wabsdiffbcc','wabsdiffblo','wabsdiffbmi','wabsdiffbpl','wabsdiffbvs','wabsdiffbvc','wabsdiffbhi','wabsdiffbls','wabsdiffbge','wabsdiffblt','wabsdiffbgt','wabsdiffble',
+            'wabsdiffheq','wabsdiffhne','wabsdiffhcs','wabsdiffhhs','wabsdiffhcc','wabsdiffhlo','wabsdiffhmi','wabsdiffhpl','wabsdiffhvs','wabsdiffhvc','wabsdiffhhi','wabsdiffhls','wabsdiffhge','wabsdiffhlt','wabsdiffhgt','wabsdiffhle',
+            'wabsdiffweq','wabsdiffwne','wabsdiffwcs','wabsdiffwhs','wabsdiffwcc','wabsdiffwlo','wabsdiffwmi','wabsdiffwpl','wabsdiffwvs','wabsdiffwvc','wabsdiffwhi','wabsdiffwls','wabsdiffwge','wabsdiffwlt','wabsdiffwgt','wabsdiffwle',
+            'waccbeq','waccbne','waccbcs','waccbhs','waccbcc','waccblo','waccbmi','waccbpl','waccbvs','waccbvc','waccbhi','waccbls','waccbge','waccblt','waccbgt','waccble',
+            'waccheq','wacchne','wacchcs','wacchhs','wacchcc','wacchlo','wacchmi','wacchpl','wacchvs','wacchvc','wacchhi','wacchls','wacchge','wacchlt','wacchgt','wacchle',
+            'waccweq','waccwne','waccwcs','waccwhs','waccwcc','waccwlo','waccwmi','waccwpl','waccwvs','waccwvc','waccwhi','waccwls','waccwge','waccwlt','waccwgt','waccwle',
+            'waddbeq','waddbne','waddbcs','waddbhs','waddbcc','waddblo','waddbmi','waddbpl','waddbvs','waddbvc','waddbhi','waddbls','waddbge','waddblt','waddbgt','waddble',
+            'waddheq','waddhne','waddhcs','waddhhs','waddhcc','waddhlo','waddhmi','waddhpl','waddhvs','waddhvc','waddhhi','waddhls','waddhge','waddhlt','waddhgt','waddhle',
+            'waddweq','waddwne','waddwcs','waddwhs','waddwcc','waddwlo','waddwmi','waddwpl','waddwvs','waddwvc','waddwhi','waddwls','waddwge','waddwlt','waddwgt','waddwle',
+            'waddbceq','waddbcne','waddbccs','waddbchs','waddbccc','waddbclo','waddbcmi','waddbcpl','waddbcvs','waddbcvc','waddbchi','waddbcls','waddbcge','waddbclt','waddbcgt','waddbcle',
+            'waddhceq','waddhcne','waddhccs','waddhchs','waddhccc','waddhclo','waddhcmi','waddhcpl','waddhcvs','waddhcvc','waddhchi','waddhcls','waddhcge','waddhclt','waddhcgt','waddhcle',
+            'waddwceq','waddwcne','waddwccs','waddwchs','waddwccc','waddwclo','waddwcmi','waddwcpl','waddwcvs','waddwcvc','waddwchi','waddwcls','waddwcge','waddwclt','waddwcgt','waddwcle',
+            'waddbsseq','waddbssne','waddbsscs','waddbsshs','waddbsscc','waddbsslo','waddbssmi','waddbsspl','waddbssvs','waddbssvc','waddbsshi','waddbssls','waddbssge','waddbsslt','waddbssgt','waddbssle',
+            'waddhsseq','waddhssne','waddhsscs','waddhsshs','waddhsscc','waddhsslo','waddhssmi','waddhsspl','waddhssvs','waddhssvc','waddhsshi','waddhssls','waddhssge','waddhsslt','waddhssgt','waddhssle',
+            'waddwsseq','waddwssne','waddwsscs','waddwsshs','waddwsscc','waddwsslo','waddwssmi','waddwsspl','waddwssvs','waddwssvc','waddwsshi','waddwssls','waddwssge','waddwsslt','waddwssgt','waddwssle',
+            'waddbuseq','waddbusne','waddbuscs','waddbushs','waddbuscc','waddbuslo','waddbusmi','waddbuspl','waddbusvs','waddbusvc','waddbushi','waddbusls','waddbusge','waddbuslt','waddbusgt','waddbusle',
+            'waddhuseq','waddhusne','waddhuscs','waddhushs','waddhuscc','waddhuslo','waddhusmi','waddhuspl','waddhusvs','waddhusvc','waddhushi','waddhusls','waddhusge','waddhuslt','waddhusgt','waddhusle',
+            'waddwuseq','waddwusne','waddwuscs','waddwushs','waddwuscc','waddwuslo','waddwusmi','waddwuspl','waddwusvs','waddwusvc','waddwushi','waddwusls','waddwusge','waddwuslt','waddwusgt','waddwusle',
+            'waddsubhxeq','waddsubhxne','waddsubhxcs','waddsubhxhs','waddsubhxcc','waddsubhxlo','waddsubhxmi','waddsubhxpl','waddsubhxvs','waddsubhxvc','waddsubhxhi','waddsubhxls','waddsubhxge','waddsubhxlt','waddsubhxgt','waddsubhxle',
+            'walignieq','walignine','walignics','walignihs','walignicc','walignilo','walignimi','walignipl','walignivs','walignivc','walignihi','walignils','walignige','walignilt','walignigt','walignile',
+            'walignr0eq','walignr0ne','walignr0cs','walignr0hs','walignr0cc','walignr0lo','walignr0mi','walignr0pl','walignr0vs','walignr0vc','walignr0hi','walignr0ls','walignr0ge','walignr0lt','walignr0gt','walignr0le',
+            'walignr1eq','walignr1ne','walignr1cs','walignr1hs','walignr1cc','walignr1lo','walignr1mi','walignr1pl','walignr1vs','walignr1vc','walignr1hi','walignr1ls','walignr1ge','walignr1lt','walignr1gt','walignr1le',
+            'walignr2eq','walignr2ne','walignr2cs','walignr2hs','walignr2cc','walignr2lo','walignr2mi','walignr2pl','walignr2vs','walignr2vc','walignr2hi','walignr2ls','walignr2ge','walignr2lt','walignr2gt','walignr2le',
+            'walignr3eq','walignr3ne','walignr3cs','walignr3hs','walignr3cc','walignr3lo','walignr3mi','walignr3pl','walignr3vs','walignr3vc','walignr3hi','walignr3ls','walignr3ge','walignr3lt','walignr3gt','walignr3le',
+            'wandeq','wandne','wandcs','wandhs','wandcc','wandlo','wandmi','wandpl','wandvs','wandvc','wandhi','wandls','wandge','wandlt','wandgt','wandle',
+            'wandneq','wandnne','wandncs','wandnhs','wandncc','wandnlo','wandnmi','wandnpl','wandnvs','wandnvc','wandnhi','wandnls','wandnge','wandnlt','wandngt','wandnle',
+            'wavg2beq','wavg2bne','wavg2bcs','wavg2bhs','wavg2bcc','wavg2blo','wavg2bmi','wavg2bpl','wavg2bvs','wavg2bvc','wavg2bhi','wavg2bls','wavg2bge','wavg2blt','wavg2bgt','wavg2ble',
+            'wavg2heq','wavg2hne','wavg2hcs','wavg2hhs','wavg2hcc','wavg2hlo','wavg2hmi','wavg2hpl','wavg2hvs','wavg2hvc','wavg2hhi','wavg2hls','wavg2hge','wavg2hlt','wavg2hgt','wavg2hle',
+            'wavg2breq','wavg2brne','wavg2brcs','wavg2brhs','wavg2brcc','wavg2brlo','wavg2brmi','wavg2brpl','wavg2brvs','wavg2brvc','wavg2brhi','wavg2brls','wavg2brge','wavg2brlt','wavg2brgt','wavg2brle',
+            'wavg2hreq','wavg2hrne','wavg2hrcs','wavg2hrhs','wavg2hrcc','wavg2hrlo','wavg2hrmi','wavg2hrpl','wavg2hrvs','wavg2hrvc','wavg2hrhi','wavg2hrls','wavg2hrge','wavg2hrlt','wavg2hrgt','wavg2hrle',
+            'wavg4eq','wavg4ne','wavg4cs','wavg4hs','wavg4cc','wavg4lo','wavg4mi','wavg4pl','wavg4vs','wavg4vc','wavg4hi','wavg4ls','wavg4ge','wavg4lt','wavg4gt','wavg4le',
+            'wavg4req','wavg4rne','wavg4rcs','wavg4rhs','wavg4rcc','wavg4rlo','wavg4rmi','wavg4rpl','wavg4rvs','wavg4rvc','wavg4rhi','wavg4rls','wavg4rge','wavg4rlt','wavg4rgt','wavg4rle',
+            'wcmpeqbeq','wcmpeqbne','wcmpeqbcs','wcmpeqbhs','wcmpeqbcc','wcmpeqblo','wcmpeqbmi','wcmpeqbpl','wcmpeqbvs','wcmpeqbvc','wcmpeqbhi','wcmpeqbls','wcmpeqbge','wcmpeqblt','wcmpeqbgt','wcmpeqble',
+            'wcmpeqheq','wcmpeqhne','wcmpeqhcs','wcmpeqhhs','wcmpeqhcc','wcmpeqhlo','wcmpeqhmi','wcmpeqhpl','wcmpeqhvs','wcmpeqhvc','wcmpeqhhi','wcmpeqhls','wcmpeqhge','wcmpeqhlt','wcmpeqhgt','wcmpeqhle',
+            'wcmpeqweq','wcmpeqwne','wcmpeqwcs','wcmpeqwhs','wcmpeqwcc','wcmpeqwlo','wcmpeqwmi','wcmpeqwpl','wcmpeqwvs','wcmpeqwvc','wcmpeqwhi','wcmpeqwls','wcmpeqwge','wcmpeqwlt','wcmpeqwgt','wcmpeqwle',
+            'wcmpgtsbeq','wcmpgtsbne','wcmpgtsbcs','wcmpgtsbhs','wcmpgtsbcc','wcmpgtsblo','wcmpgtsbmi','wcmpgtsbpl','wcmpgtsbvs','wcmpgtsbvc','wcmpgtsbhi','wcmpgtsbls','wcmpgtsbge','wcmpgtsblt','wcmpgtsbgt','wcmpgtsble',
+            'wcmpgtsheq','wcmpgtshne','wcmpgtshcs','wcmpgtshhs','wcmpgtshcc','wcmpgtshlo','wcmpgtshmi','wcmpgtshpl','wcmpgtshvs','wcmpgtshvc','wcmpgtshhi','wcmpgtshls','wcmpgtshge','wcmpgtshlt','wcmpgtshgt','wcmpgtshle',
+            'wcmpgtsweq','wcmpgtswne','wcmpgtswcs','wcmpgtswhs','wcmpgtswcc','wcmpgtswlo','wcmpgtswmi','wcmpgtswpl','wcmpgtswvs','wcmpgtswvc','wcmpgtswhi','wcmpgtswls','wcmpgtswge','wcmpgtswlt','wcmpgtswgt','wcmpgtswle',
+            'wcmpgtubeq','wcmpgtubne','wcmpgtubcs','wcmpgtubhs','wcmpgtubcc','wcmpgtublo','wcmpgtubmi','wcmpgtubpl','wcmpgtubvs','wcmpgtubvc','wcmpgtubhi','wcmpgtubls','wcmpgtubge','wcmpgtublt','wcmpgtubgt','wcmpgtuble',
+            'wcmpgtuheq','wcmpgtuhne','wcmpgtuhcs','wcmpgtuhhs','wcmpgtuhcc','wcmpgtuhlo','wcmpgtuhmi','wcmpgtuhpl','wcmpgtuhvs','wcmpgtuhvc','wcmpgtuhhi','wcmpgtuhls','wcmpgtuhge','wcmpgtuhlt','wcmpgtuhgt','wcmpgtuhle',
+            'wcmpgtuweq','wcmpgtuwne','wcmpgtuwcs','wcmpgtuwhs','wcmpgtuwcc','wcmpgtuwlo','wcmpgtuwmi','wcmpgtuwpl','wcmpgtuwvs','wcmpgtuwvc','wcmpgtuwhi','wcmpgtuwls','wcmpgtuwge','wcmpgtuwlt','wcmpgtuwgt','wcmpgtuwle',
+            'wldrbeq','wldrbne','wldrbcs','wldrbhs','wldrbcc','wldrblo','wldrbmi','wldrbpl','wldrbvs','wldrbvc','wldrbhi','wldrbls','wldrbge','wldrblt','wldrbgt','wldrble',
+            'wldrheq','wldrhne','wldrhcs','wldrhhs','wldrhcc','wldrhlo','wldrhmi','wldrhpl','wldrhvs','wldrhvc','wldrhhi','wldrhls','wldrhge','wldrhlt','wldrhgt','wldrhle',
+            'wldrweq','wldrwne','wldrwcs','wldrwhs','wldrwcc','wldrwlo','wldrwmi','wldrwpl','wldrwvs','wldrwvc','wldrwhi','wldrwls','wldrwge','wldrwlt','wldrwgt','wldrwle',
+            'wldrdeq','wldrdne','wldrdcs','wldrdhs','wldrdcc','wldrdlo','wldrdmi','wldrdpl','wldrdvs','wldrdvc','wldrdhi','wldrdls','wldrdge','wldrdlt','wldrdgt','wldrdle',
+            'wmacseq','wmacsne','wmacscs','wmacshs','wmacscc','wmacslo','wmacsmi','wmacspl','wmacsvs','wmacsvc','wmacshi','wmacsls','wmacsge','wmacslt','wmacsgt','wmacsle',
+            'wmacueq','wmacune','wmacucs','wmacuhs','wmacucc','wmaculo','wmacumi','wmacupl','wmacuvs','wmacuvc','wmacuhi','wmaculs','wmacuge','wmacult','wmacugt','wmacule',
+            'wmacszeq','wmacszne','wmacszcs','wmacszhs','wmacszcc','wmacszlo','wmacszmi','wmacszpl','wmacszvs','wmacszvc','wmacszhi','wmacszls','wmacszge','wmacszlt','wmacszgt','wmacszle',
+            'wmacuzeq','wmacuzne','wmacuzcs','wmacuzhs','wmacuzcc','wmacuzlo','wmacuzmi','wmacuzpl','wmacuzvs','wmacuzvc','wmacuzhi','wmacuzls','wmacuzge','wmacuzlt','wmacuzgt','wmacuzle',
+            'wmaddseq','wmaddsne','wmaddscs','wmaddshs','wmaddscc','wmaddslo','wmaddsmi','wmaddspl','wmaddsvs','wmaddsvc','wmaddshi','wmaddsls','wmaddsge','wmaddslt','wmaddsgt','wmaddsle',
+            'wmaddueq','wmaddune','wmadducs','wmadduhs','wmadducc','wmaddulo','wmaddumi','wmaddupl','wmadduvs','wmadduvc','wmadduhi','wmadduls','wmadduge','wmaddult','wmaddugt','wmaddule',
+            'wmaddsxeq','wmaddsxne','wmaddsxcs','wmaddsxhs','wmaddsxcc','wmaddsxlo','wmaddsxmi','wmaddsxpl','wmaddsxvs','wmaddsxvc','wmaddsxhi','wmaddsxls','wmaddsxge','wmaddsxlt','wmaddsxgt','wmaddsxle',
+            'wmadduxeq','wmadduxne','wmadduxcs','wmadduxhs','wmadduxcc','wmadduxlo','wmadduxmi','wmadduxpl','wmadduxvs','wmadduxvc','wmadduxhi','wmadduxls','wmadduxge','wmadduxlt','wmadduxgt','wmadduxle',
+            'wmaddsneq','wmaddsnne','wmaddsncs','wmaddsnhs','wmaddsncc','wmaddsnlo','wmaddsnmi','wmaddsnpl','wmaddsnvs','wmaddsnvc','wmaddsnhi','wmaddsnls','wmaddsnge','wmaddsnlt','wmaddsngt','wmaddsnle',
+            'wmadduneq','wmaddunne','wmadduncs','wmaddunhs','wmadduncc','wmaddunlo','wmaddunmi','wmaddunpl','wmaddunvs','wmaddunvc','wmaddunhi','wmaddunls','wmaddunge','wmaddunlt','wmaddungt','wmaddunle',
+            'wmaxsbeq','wmaxsbne','wmaxsbcs','wmaxsbhs','wmaxsbcc','wmaxsblo','wmaxsbmi','wmaxsbpl','wmaxsbvs','wmaxsbvc','wmaxsbhi','wmaxsbls','wmaxsbge','wmaxsblt','wmaxsbgt','wmaxsble',
+            'wmaxsheq','wmaxshne','wmaxshcs','wmaxshhs','wmaxshcc','wmaxshlo','wmaxshmi','wmaxshpl','wmaxshvs','wmaxshvc','wmaxshhi','wmaxshls','wmaxshge','wmaxshlt','wmaxshgt','wmaxshle',
+            'wmaxsweq','wmaxswne','wmaxswcs','wmaxswhs','wmaxswcc','wmaxswlo','wmaxswmi','wmaxswpl','wmaxswvs','wmaxswvc','wmaxswhi','wmaxswls','wmaxswge','wmaxswlt','wmaxswgt','wmaxswle',
+            'wmaxubeq','wmaxubne','wmaxubcs','wmaxubhs','wmaxubcc','wmaxublo','wmaxubmi','wmaxubpl','wmaxubvs','wmaxubvc','wmaxubhi','wmaxubls','wmaxubge','wmaxublt','wmaxubgt','wmaxuble',
+            'wmaxuheq','wmaxuhne','wmaxuhcs','wmaxuhhs','wmaxuhcc','wmaxuhlo','wmaxuhmi','wmaxuhpl','wmaxuhvs','wmaxuhvc','wmaxuhhi','wmaxuhls','wmaxuhge','wmaxuhlt','wmaxuhgt','wmaxuhle',
+            'wmaxuweq','wmaxuwne','wmaxuwcs','wmaxuwhs','wmaxuwcc','wmaxuwlo','wmaxuwmi','wmaxuwpl','wmaxuwvs','wmaxuwvc','wmaxuwhi','wmaxuwls','wmaxuwge','wmaxuwlt','wmaxuwgt','wmaxuwle',
+            'wmergeeq','wmergene','wmergecs','wmergehs','wmergecc','wmergelo','wmergemi','wmergepl','wmergevs','wmergevc','wmergehi','wmergels','wmergege','wmergelt','wmergegt','wmergele',
+            'wmiabbeq','wmiabbne','wmiabbcs','wmiabbhs','wmiabbcc','wmiabblo','wmiabbmi','wmiabbpl','wmiabbvs','wmiabbvc','wmiabbhi','wmiabbls','wmiabbge','wmiabblt','wmiabbgt','wmiabble',
+            'wmiabteq','wmiabtne','wmiabtcs','wmiabths','wmiabtcc','wmiabtlo','wmiabtmi','wmiabtpl','wmiabtvs','wmiabtvc','wmiabthi','wmiabtls','wmiabtge','wmiabtlt','wmiabtgt','wmiabtle',
+            'wmiatbeq','wmiatbne','wmiatbcs','wmiatbhs','wmiatbcc','wmiatblo','wmiatbmi','wmiatbpl','wmiatbvs','wmiatbvc','wmiatbhi','wmiatbls','wmiatbge','wmiatblt','wmiatbgt','wmiatble',
+            'wmiatteq','wmiattne','wmiattcs','wmiatths','wmiattcc','wmiattlo','wmiattmi','wmiattpl','wmiattvs','wmiattvc','wmiatthi','wmiattls','wmiattge','wmiattlt','wmiattgt','wmiattle',
+            'wmiabbneq','wmiabbnne','wmiabbncs','wmiabbnhs','wmiabbncc','wmiabbnlo','wmiabbnmi','wmiabbnpl','wmiabbnvs','wmiabbnvc','wmiabbnhi','wmiabbnls','wmiabbnge','wmiabbnlt','wmiabbngt','wmiabbnle',
+            'wmiabtneq','wmiabtnne','wmiabtncs','wmiabtnhs','wmiabtncc','wmiabtnlo','wmiabtnmi','wmiabtnpl','wmiabtnvs','wmiabtnvc','wmiabtnhi','wmiabtnls','wmiabtnge','wmiabtnlt','wmiabtngt','wmiabtnle',
+            'wmiatbneq','wmiatbnne','wmiatbncs','wmiatbnhs','wmiatbncc','wmiatbnlo','wmiatbnmi','wmiatbnpl','wmiatbnvs','wmiatbnvc','wmiatbnhi','wmiatbnls','wmiatbnge','wmiatbnlt','wmiatbngt','wmiatbnle',
+            'wmiattneq','wmiattnne','wmiattncs','wmiattnhs','wmiattncc','wmiattnlo','wmiattnmi','wmiattnpl','wmiattnvs','wmiattnvc','wmiattnhi','wmiattnls','wmiattnge','wmiattnlt','wmiattngt','wmiattnle',
+            'wmiawbbeq','wmiawbbne','wmiawbbcs','wmiawbbhs','wmiawbbcc','wmiawbblo','wmiawbbmi','wmiawbbpl','wmiawbbvs','wmiawbbvc','wmiawbbhi','wmiawbbls','wmiawbbge','wmiawbblt','wmiawbbgt','wmiawbble',
+            'wmiawbteq','wmiawbtne','wmiawbtcs','wmiawbths','wmiawbtcc','wmiawbtlo','wmiawbtmi','wmiawbtpl','wmiawbtvs','wmiawbtvc','wmiawbthi','wmiawbtls','wmiawbtge','wmiawbtlt','wmiawbtgt','wmiawbtle',
+            'wmiawtbeq','wmiawtbne','wmiawtbcs','wmiawtbhs','wmiawtbcc','wmiawtblo','wmiawtbmi','wmiawtbpl','wmiawtbvs','wmiawtbvc','wmiawtbhi','wmiawtbls','wmiawtbge','wmiawtblt','wmiawtbgt','wmiawtble',
+            'wmiawtteq','wmiawttne','wmiawttcs','wmiawtths','wmiawttcc','wmiawttlo','wmiawttmi','wmiawttpl','wmiawttvs','wmiawttvc','wmiawtthi','wmiawttls','wmiawttge','wmiawttlt','wmiawttgt','wmiawttle',
+            'wmiawbbneq','wmiawbbnne','wmiawbbncs','wmiawbbnhs','wmiawbbncc','wmiawbbnlo','wmiawbbnmi','wmiawbbnpl','wmiawbbnvs','wmiawbbnvc','wmiawbbnhi','wmiawbbnls','wmiawbbnge','wmiawbbnlt','wmiawbbngt','wmiawbbnle',
+            'wmiawbtneq','wmiawbtnne','wmiawbtncs','wmiawbtnhs','wmiawbtncc','wmiawbtnlo','wmiawbtnmi','wmiawbtnpl','wmiawbtnvs','wmiawbtnvc','wmiawbtnhi','wmiawbtnls','wmiawbtnge','wmiawbtnlt','wmiawbtngt','wmiawbtnle',
+            'wmiawtbneq','wmiawtbnne','wmiawtbncs','wmiawtbnhs','wmiawtbncc','wmiawtbnlo','wmiawtbnmi','wmiawtbnpl','wmiawtbnvs','wmiawtbnvc','wmiawtbnhi','wmiawtbnls','wmiawtbnge','wmiawtbnlt','wmiawtbngt','wmiawtbnle',
+            'wmiawttneq','wmiawttnne','wmiawttncs','wmiawttnhs','wmiawttncc','wmiawttnlo','wmiawttnmi','wmiawttnpl','wmiawttnvs','wmiawttnvc','wmiawttnhi','wmiawttnls','wmiawttnge','wmiawttnlt','wmiawttngt','wmiawttnle',
+            'wminsbeq','wminsbne','wminsbcs','wminsbhs','wminsbcc','wminsblo','wminsbmi','wminsbpl','wminsbvs','wminsbvc','wminsbhi','wminsbls','wminsbge','wminsblt','wminsbgt','wminsble',
+            'wminsheq','wminshne','wminshcs','wminshhs','wminshcc','wminshlo','wminshmi','wminshpl','wminshvs','wminshvc','wminshhi','wminshls','wminshge','wminshlt','wminshgt','wminshle',
+            'wminsweq','wminswne','wminswcs','wminswhs','wminswcc','wminswlo','wminswmi','wminswpl','wminswvs','wminswvc','wminswhi','wminswls','wminswge','wminswlt','wminswgt','wminswle',
+            'wminubeq','wminubne','wminubcs','wminubhs','wminubcc','wminublo','wminubmi','wminubpl','wminubvs','wminubvc','wminubhi','wminubls','wminubge','wminublt','wminubgt','wminuble',
+            'wminuheq','wminuhne','wminuhcs','wminuhhs','wminuhcc','wminuhlo','wminuhmi','wminuhpl','wminuhvs','wminuhvc','wminuhhi','wminuhls','wminuhge','wminuhlt','wminuhgt','wminuhle',
+            'wminuweq','wminuwne','wminuwcs','wminuwhs','wminuwcc','wminuwlo','wminuwmi','wminuwpl','wminuwvs','wminuwvc','wminuwhi','wminuwls','wminuwge','wminuwlt','wminuwgt','wminuwle',
+            'wmoveq','wmovne','wmovcs','wmovhs','wmovcc','wmovlo','wmovmi','wmovpl','wmovvs','wmovvc','wmovhi','wmovls','wmovge','wmovlt','wmovgt','wmovle',
+            'wmulsmeq','wmulsmne','wmulsmcs','wmulsmhs','wmulsmcc','wmulsmlo','wmulsmmi','wmulsmpl','wmulsmvs','wmulsmvc','wmulsmhi','wmulsmls','wmulsmge','wmulsmlt','wmulsmgt','wmulsmle',
+            'wmulsleq','wmulslne','wmulslcs','wmulslhs','wmulslcc','wmulsllo','wmulslmi','wmulslpl','wmulslvs','wmulslvc','wmulslhi','wmulslls','wmulslge','wmulsllt','wmulslgt','wmulslle',
+            'wmulumeq','wmulumne','wmulumcs','wmulumhs','wmulumcc','wmulumlo','wmulummi','wmulumpl','wmulumvs','wmulumvc','wmulumhi','wmulumls','wmulumge','wmulumlt','wmulumgt','wmulumle',
+            'wmululeq','wmululne','wmululcs','wmululhs','wmululcc','wmulullo','wmululmi','wmululpl','wmululvs','wmululvc','wmululhi','wmululls','wmululge','wmulullt','wmululgt','wmululle',
+            'wmulsmreq','wmulsmrne','wmulsmrcs','wmulsmrhs','wmulsmrcc','wmulsmrlo','wmulsmrmi','wmulsmrpl','wmulsmrvs','wmulsmrvc','wmulsmrhi','wmulsmrls','wmulsmrge','wmulsmrlt','wmulsmrgt','wmulsmrle',
+            'wmulslreq','wmulslrne','wmulslrcs','wmulslrhs','wmulslrcc','wmulslrlo','wmulslrmi','wmulslrpl','wmulslrvs','wmulslrvc','wmulslrhi','wmulslrls','wmulslrge','wmulslrlt','wmulslrgt','wmulslrle',
+            'wmulumreq','wmulumrne','wmulumrcs','wmulumrhs','wmulumrcc','wmulumrlo','wmulumrmi','wmulumrpl','wmulumrvs','wmulumrvc','wmulumrhi','wmulumrls','wmulumrge','wmulumrlt','wmulumrgt','wmulumrle',
+            'wmululreq','wmululrne','wmululrcs','wmululrhs','wmululrcc','wmululrlo','wmululrmi','wmululrpl','wmululrvs','wmululrvc','wmululrhi','wmululrls','wmululrge','wmululrlt','wmululrgt','wmululrle',
+            'wmulwumeq','wmulwumne','wmulwumcs','wmulwumhs','wmulwumcc','wmulwumlo','wmulwummi','wmulwumpl','wmulwumvs','wmulwumvc','wmulwumhi','wmulwumls','wmulwumge','wmulwumlt','wmulwumgt','wmulwumle',
+            'wmulwsmeq','wmulwsmne','wmulwsmcs','wmulwsmhs','wmulwsmcc','wmulwsmlo','wmulwsmmi','wmulwsmpl','wmulwsmvs','wmulwsmvc','wmulwsmhi','wmulwsmls','wmulwsmge','wmulwsmlt','wmulwsmgt','wmulwsmle',
+            'wmulwleq','wmulwlne','wmulwlcs','wmulwlhs','wmulwlcc','wmulwllo','wmulwlmi','wmulwlpl','wmulwlvs','wmulwlvc','wmulwlhi','wmulwlls','wmulwlge','wmulwllt','wmulwlgt','wmulwlle',
+            'wmulwumreq','wmulwumrne','wmulwumrcs','wmulwumrhs','wmulwumrcc','wmulwumrlo','wmulwumrmi','wmulwumrpl','wmulwumrvs','wmulwumrvc','wmulwumrhi','wmulwumrls','wmulwumrge','wmulwumrlt','wmulwumrgt','wmulwumrle',
+            'wmulwsmreq','wmulwsmrne','wmulwsmrcs','wmulwsmrhs','wmulwsmrcc','wmulwsmrlo','wmulwsmrmi','wmulwsmrpl','wmulwsmrvs','wmulwsmrvc','wmulwsmrhi','wmulwsmrls','wmulwsmrge','wmulwsmrlt','wmulwsmrgt','wmulwsmrle',
+            'woreq','worne','worcs','worhs','worcc','worlo','wormi','worpl','worvs','worvc','worhi','worls','worge','worlt','worgt','worle',
+            'wpackhsseq','wpackhssne','wpackhsscs','wpackhsshs','wpackhsscc','wpackhsslo','wpackhssmi','wpackhsspl','wpackhssvs','wpackhssvc','wpackhsshi','wpackhssls','wpackhssge','wpackhsslt','wpackhssgt','wpackhssle',
+            'wpackwsseq','wpackwssne','wpackwsscs','wpackwsshs','wpackwsscc','wpackwsslo','wpackwssmi','wpackwsspl','wpackwssvs','wpackwssvc','wpackwsshi','wpackwssls','wpackwssge','wpackwsslt','wpackwssgt','wpackwssle',
+            'wpackdsseq','wpackdssne','wpackdsscs','wpackdsshs','wpackdsscc','wpackdsslo','wpackdssmi','wpackdsspl','wpackdssvs','wpackdssvc','wpackdsshi','wpackdssls','wpackdssge','wpackdsslt','wpackdssgt','wpackdssle',
+            'wpackhuseq','wpackhusne','wpackhuscs','wpackhushs','wpackhuscc','wpackhuslo','wpackhusmi','wpackhuspl','wpackhusvs','wpackhusvc','wpackhushi','wpackhusls','wpackhusge','wpackhuslt','wpackhusgt','wpackhusle',
+            'wpackwuseq','wpackwusne','wpackwuscs','wpackwushs','wpackwuscc','wpackwuslo','wpackwusmi','wpackwuspl','wpackwusvs','wpackwusvc','wpackwushi','wpackwusls','wpackwusge','wpackwuslt','wpackwusgt','wpackwusle',
+            'wpackduseq','wpackdusne','wpackduscs','wpackdushs','wpackduscc','wpackduslo','wpackdusmi','wpackduspl','wpackdusvs','wpackdusvc','wpackdushi','wpackdusls','wpackdusge','wpackduslt','wpackdusgt','wpackdusle',
+            'wqmiabbeq','wqmiabbne','wqmiabbcs','wqmiabbhs','wqmiabbcc','wqmiabblo','wqmiabbmi','wqmiabbpl','wqmiabbvs','wqmiabbvc','wqmiabbhi','wqmiabbls','wqmiabbge','wqmiabblt','wqmiabbgt','wqmiabble',
+            'wqmiabteq','wqmiabtne','wqmiabtcs','wqmiabths','wqmiabtcc','wqmiabtlo','wqmiabtmi','wqmiabtpl','wqmiabtvs','wqmiabtvc','wqmiabthi','wqmiabtls','wqmiabtge','wqmiabtlt','wqmiabtgt','wqmiabtle',
+            'wqmiatbeq','wqmiatbne','wqmiatbcs','wqmiatbhs','wqmiatbcc','wqmiatblo','wqmiatbmi','wqmiatbpl','wqmiatbvs','wqmiatbvc','wqmiatbhi','wqmiatbls','wqmiatbge','wqmiatblt','wqmiatbgt','wqmiatble',
+            'wqmiatteq','wqmiattne','wqmiattcs','wqmiatths','wqmiattcc','wqmiattlo','wqmiattmi','wqmiattpl','wqmiattvs','wqmiattvc','wqmiatthi','wqmiattls','wqmiattge','wqmiattlt','wqmiattgt','wqmiattle',
+            'wqmiabbneq','wqmiabbnne','wqmiabbncs','wqmiabbnhs','wqmiabbncc','wqmiabbnlo','wqmiabbnmi','wqmiabbnpl','wqmiabbnvs','wqmiabbnvc','wqmiabbnhi','wqmiabbnls','wqmiabbnge','wqmiabbnlt','wqmiabbngt','wqmiabbnle',
+            'wqmiabtneq','wqmiabtnne','wqmiabtncs','wqmiabtnhs','wqmiabtncc','wqmiabtnlo','wqmiabtnmi','wqmiabtnpl','wqmiabtnvs','wqmiabtnvc','wqmiabtnhi','wqmiabtnls','wqmiabtnge','wqmiabtnlt','wqmiabtngt','wqmiabtnle',
+            'wqmiatbneq','wqmiatbnne','wqmiatbncs','wqmiatbnhs','wqmiatbncc','wqmiatbnlo','wqmiatbnmi','wqmiatbnpl','wqmiatbnvs','wqmiatbnvc','wqmiatbnhi','wqmiatbnls','wqmiatbnge','wqmiatbnlt','wqmiatbngt','wqmiatbnle',
+            'wqmiattneq','wqmiattnne','wqmiattncs','wqmiattnhs','wqmiattncc','wqmiattnlo','wqmiattnmi','wqmiattnpl','wqmiattnvs','wqmiattnvc','wqmiattnhi','wqmiattnls','wqmiattnge','wqmiattnlt','wqmiattngt','wqmiattnle',
+            'wqmulmeq','wqmulmne','wqmulmcs','wqmulmhs','wqmulmcc','wqmulmlo','wqmulmmi','wqmulmpl','wqmulmvs','wqmulmvc','wqmulmhi','wqmulmls','wqmulmge','wqmulmlt','wqmulmgt','wqmulmle',
+            'wqmulmreq','wqmulmrne','wqmulmrcs','wqmulmrhs','wqmulmrcc','wqmulmrlo','wqmulmrmi','wqmulmrpl','wqmulmrvs','wqmulmrvc','wqmulmrhi','wqmulmrls','wqmulmrge','wqmulmrlt','wqmulmrgt','wqmulmrle',
+            'wqmulwmeq','wqmulwmne','wqmulwmcs','wqmulwmhs','wqmulwmcc','wqmulwmlo','wqmulwmmi','wqmulwmpl','wqmulwmvs','wqmulwmvc','wqmulwmhi','wqmulwmls','wqmulwmge','wqmulwmlt','wqmulwmgt','wqmulwmle',
+            'wqmulwmreq','wqmulwmrne','wqmulwmrcs','wqmulwmrhs','wqmulwmrcc','wqmulwmrlo','wqmulwmrmi','wqmulwmrpl','wqmulwmrvs','wqmulwmrvc','wqmulwmrhi','wqmulwmrls','wqmulwmrge','wqmulwmrlt','wqmulwmrgt','wqmulwmrle',
+            'wrorheq','wrorhne','wrorhcs','wrorhhs','wrorhcc','wrorhlo','wrorhmi','wrorhpl','wrorhvs','wrorhvc','wrorhhi','wrorhls','wrorhge','wrorhlt','wrorhgt','wrorhle',
+            'wrorweq','wrorwne','wrorwcs','wrorwhs','wrorwcc','wrorwlo','wrorwmi','wrorwpl','wrorwvs','wrorwvc','wrorwhi','wrorwls','wrorwge','wrorwlt','wrorwgt','wrorwle',
+            'wrordeq','wrordne','wrordcs','wrordhs','wrordcc','wrordlo','wrordmi','wrordpl','wrordvs','wrordvc','wrordhi','wrordls','wrordge','wrordlt','wrordgt','wrordle',
+            'wrorhgeq','wrorhgne','wrorhgcs','wrorhghs','wrorhgcc','wrorhglo','wrorhgmi','wrorhgpl','wrorhgvs','wrorhgvc','wrorhghi','wrorhgls','wrorhgge','wrorhglt','wrorhggt','wrorhgle',
+            'wrorwgeq','wrorwgne','wrorwgcs','wrorwghs','wrorwgcc','wrorwglo','wrorwgmi','wrorwgpl','wrorwgvs','wrorwgvc','wrorwghi','wrorwgls','wrorwgge','wrorwglt','wrorwggt','wrorwgle',
+            'wrordgeq','wrordgne','wrordgcs','wrordghs','wrordgcc','wrordglo','wrordgmi','wrordgpl','wrordgvs','wrordgvc','wrordghi','wrordgls','wrordgge','wrordglt','wrordggt','wrordgle',
+            'wsadbeq','wsadbne','wsadbcs','wsadbhs','wsadbcc','wsadblo','wsadbmi','wsadbpl','wsadbvs','wsadbvc','wsadbhi','wsadbls','wsadbge','wsadblt','wsadbgt','wsadble',
+            'wsadheq','wsadhne','wsadhcs','wsadhhs','wsadhcc','wsadhlo','wsadhmi','wsadhpl','wsadhvs','wsadhvc','wsadhhi','wsadhls','wsadhge','wsadhlt','wsadhgt','wsadhle',
+            'wsadbzeq','wsadbzne','wsadbzcs','wsadbzhs','wsadbzcc','wsadbzlo','wsadbzmi','wsadbzpl','wsadbzvs','wsadbzvc','wsadbzhi','wsadbzls','wsadbzge','wsadbzlt','wsadbzgt','wsadbzle',
+            'wsadhzeq','wsadhzne','wsadhzcs','wsadhzhs','wsadhzcc','wsadhzlo','wsadhzmi','wsadhzpl','wsadhzvs','wsadhzvc','wsadhzhi','wsadhzls','wsadhzge','wsadhzlt','wsadhzgt','wsadhzle',
+            'wshufheq','wshufhne','wshufhcs','wshufhhs','wshufhcc','wshufhlo','wshufhmi','wshufhpl','wshufhvs','wshufhvc','wshufhhi','wshufhls','wshufhge','wshufhlt','wshufhgt','wshufhle',
+            'wsllheq','wsllhne','wsllhcs','wsllhhs','wsllhcc','wsllhlo','wsllhmi','wsllhpl','wsllhvs','wsllhvc','wsllhhi','wsllhls','wsllhge','wsllhlt','wsllhgt','wsllhle',
+            'wsllweq','wsllwne','wsllwcs','wsllwhs','wsllwcc','wsllwlo','wsllwmi','wsllwpl','wsllwvs','wsllwvc','wsllwhi','wsllwls','wsllwge','wsllwlt','wsllwgt','wsllwle',
+            'wslldeq','wslldne','wslldcs','wslldhs','wslldcc','wslldlo','wslldmi','wslldpl','wslldvs','wslldvc','wslldhi','wslldls','wslldge','wslldlt','wslldgt','wslldle',
+            'wsllhgeq','wsllhgne','wsllhgcs','wsllhghs','wsllhgcc','wsllhglo','wsllhgmi','wsllhgpl','wsllhgvs','wsllhgvc','wsllhghi','wsllhgls','wsllhgge','wsllhglt','wsllhggt','wsllhgle',
+            'wsllwgeq','wsllwgne','wsllwgcs','wsllwghs','wsllwgcc','wsllwglo','wsllwgmi','wsllwgpl','wsllwgvs','wsllwgvc','wsllwghi','wsllwgls','wsllwgge','wsllwglt','wsllwggt','wsllwgle',
+            'wslldgeq','wslldgne','wslldgcs','wslldghs','wslldgcc','wslldglo','wslldgmi','wslldgpl','wslldgvs','wslldgvc','wslldghi','wslldgls','wslldgge','wslldglt','wslldggt','wslldgle',
+            'wsraheq','wsrahne','wsrahcs','wsrahhs','wsrahcc','wsrahlo','wsrahmi','wsrahpl','wsrahvs','wsrahvc','wsrahhi','wsrahls','wsrahge','wsrahlt','wsrahgt','wsrahle',
+            'wsraweq','wsrawne','wsrawcs','wsrawhs','wsrawcc','wsrawlo','wsrawmi','wsrawpl','wsrawvs','wsrawvc','wsrawhi','wsrawls','wsrawge','wsrawlt','wsrawgt','wsrawle',
+            'wsradeq','wsradne','wsradcs','wsradhs','wsradcc','wsradlo','wsradmi','wsradpl','wsradvs','wsradvc','wsradhi','wsradls','wsradge','wsradlt','wsradgt','wsradle',
+            'wsrahgeq','wsrahgne','wsrahgcs','wsrahghs','wsrahgcc','wsrahglo','wsrahgmi','wsrahgpl','wsrahgvs','wsrahgvc','wsrahghi','wsrahgls','wsrahgge','wsrahglt','wsrahggt','wsrahgle',
+            'wsrawgeq','wsrawgne','wsrawgcs','wsrawghs','wsrawgcc','wsrawglo','wsrawgmi','wsrawgpl','wsrawgvs','wsrawgvc','wsrawghi','wsrawgls','wsrawgge','wsrawglt','wsrawggt','wsrawgle',
+            'wsradgeq','wsradgne','wsradgcs','wsradghs','wsradgcc','wsradglo','wsradgmi','wsradgpl','wsradgvs','wsradgvc','wsradghi','wsradgls','wsradgge','wsradglt','wsradggt','wsradgle',
+            'wsrlheq','wsrlhne','wsrlhcs','wsrlhhs','wsrlhcc','wsrlhlo','wsrlhmi','wsrlhpl','wsrlhvs','wsrlhvc','wsrlhhi','wsrlhls','wsrlhge','wsrlhlt','wsrlhgt','wsrlhle',
+            'wsrlweq','wsrlwne','wsrlwcs','wsrlwhs','wsrlwcc','wsrlwlo','wsrlwmi','wsrlwpl','wsrlwvs','wsrlwvc','wsrlwhi','wsrlwls','wsrlwge','wsrlwlt','wsrlwgt','wsrlwle',
+            'wsrldeq','wsrldne','wsrldcs','wsrldhs','wsrldcc','wsrldlo','wsrldmi','wsrldpl','wsrldvs','wsrldvc','wsrldhi','wsrldls','wsrldge','wsrldlt','wsrldgt','wsrldle',
+            'wsrlhgeq','wsrlhgne','wsrlhgcs','wsrlhghs','wsrlhgcc','wsrlhglo','wsrlhgmi','wsrlhgpl','wsrlhgvs','wsrlhgvc','wsrlhghi','wsrlhgls','wsrlhgge','wsrlhglt','wsrlhggt','wsrlhgle',
+            'wsrlwgeq','wsrlwgne','wsrlwgcs','wsrlwghs','wsrlwgcc','wsrlwglo','wsrlwgmi','wsrlwgpl','wsrlwgvs','wsrlwgvc','wsrlwghi','wsrlwgls','wsrlwgge','wsrlwglt','wsrlwggt','wsrlwgle',
+            'wsrldgeq','wsrldgne','wsrldgcs','wsrldghs','wsrldgcc','wsrldglo','wsrldgmi','wsrldgpl','wsrldgvs','wsrldgvc','wsrldghi','wsrldgls','wsrldgge','wsrldglt','wsrldggt','wsrldgle',
+            'wstrbeq','wstrbne','wstrbcs','wstrbhs','wstrbcc','wstrblo','wstrbmi','wstrbpl','wstrbvs','wstrbvc','wstrbhi','wstrbls','wstrbge','wstrblt','wstrbgt','wstrble',
+            'wstrheq','wstrhne','wstrhcs','wstrhhs','wstrhcc','wstrhlo','wstrhmi','wstrhpl','wstrhvs','wstrhvc','wstrhhi','wstrhls','wstrhge','wstrhlt','wstrhgt','wstrhle',
+            'wstrweq','wstrwne','wstrwcs','wstrwhs','wstrwcc','wstrwlo','wstrwmi','wstrwpl','wstrwvs','wstrwvc','wstrwhi','wstrwls','wstrwge','wstrwlt','wstrwgt','wstrwle',
+            'wstrdeq','wstrdne','wstrdcs','wstrdhs','wstrdcc','wstrdlo','wstrdmi','wstrdpl','wstrdvs','wstrdvc','wstrdhi','wstrdls','wstrdge','wstrdlt','wstrdgt','wstrdle',
+            'wsubbeq','wsubbne','wsubbcs','wsubbhs','wsubbcc','wsubblo','wsubbmi','wsubbpl','wsubbvs','wsubbvc','wsubbhi','wsubbls','wsubbge','wsubblt','wsubbgt','wsubble',
+            'wsubheq','wsubhne','wsubhcs','wsubhhs','wsubhcc','wsubhlo','wsubhmi','wsubhpl','wsubhvs','wsubhvc','wsubhhi','wsubhls','wsubhge','wsubhlt','wsubhgt','wsubhle',
+            'wsubweq','wsubwne','wsubwcs','wsubwhs','wsubwcc','wsubwlo','wsubwmi','wsubwpl','wsubwvs','wsubwvc','wsubwhi','wsubwls','wsubwge','wsubwlt','wsubwgt','wsubwle',
+            'wsubbsseq','wsubbssne','wsubbsscs','wsubbsshs','wsubbsscc','wsubbsslo','wsubbssmi','wsubbsspl','wsubbssvs','wsubbssvc','wsubbsshi','wsubbssls','wsubbssge','wsubbsslt','wsubbssgt','wsubbssle',
+            'wsubhsseq','wsubhssne','wsubhsscs','wsubhsshs','wsubhsscc','wsubhsslo','wsubhssmi','wsubhsspl','wsubhssvs','wsubhssvc','wsubhsshi','wsubhssls','wsubhssge','wsubhsslt','wsubhssgt','wsubhssle',
+            'wsubwsseq','wsubwssne','wsubwsscs','wsubwsshs','wsubwsscc','wsubwsslo','wsubwssmi','wsubwsspl','wsubwssvs','wsubwssvc','wsubwsshi','wsubwssls','wsubwssge','wsubwsslt','wsubwssgt','wsubwssle',
+            'wsubbuseq','wsubbusne','wsubbuscs','wsubbushs','wsubbuscc','wsubbuslo','wsubbusmi','wsubbuspl','wsubbusvs','wsubbusvc','wsubbushi','wsubbusls','wsubbusge','wsubbuslt','wsubbusgt','wsubbusle',
+            'wsubhuseq','wsubhusne','wsubhuscs','wsubhushs','wsubhuscc','wsubhuslo','wsubhusmi','wsubhuspl','wsubhusvs','wsubhusvc','wsubhushi','wsubhusls','wsubhusge','wsubhuslt','wsubhusgt','wsubhusle',
+            'wsubwuseq','wsubwusne','wsubwuscs','wsubwushs','wsubwuscc','wsubwuslo','wsubwusmi','wsubwuspl','wsubwusvs','wsubwusvc','wsubwushi','wsubwusls','wsubwusge','wsubwuslt','wsubwusgt','wsubwusle',
+            'wsubaddhxeq','wsubaddhxne','wsubaddhxcs','wsubaddhxhs','wsubaddhxcc','wsubaddhxlo','wsubaddhxmi','wsubaddhxpl','wsubaddhxvs','wsubaddhxvc','wsubaddhxhi','wsubaddhxls','wsubaddhxge','wsubaddhxlt','wsubaddhxgt','wsubaddhxle',
+            'wunpckehsbeq','wunpckehsbne','wunpckehsbcs','wunpckehsbhs','wunpckehsbcc','wunpckehsblo','wunpckehsbmi','wunpckehsbpl','wunpckehsbvs','wunpckehsbvc','wunpckehsbhi','wunpckehsbls','wunpckehsbge','wunpckehsblt','wunpckehsbgt','wunpckehsble',
+            'wunpckehsheq','wunpckehshne','wunpckehshcs','wunpckehshhs','wunpckehshcc','wunpckehshlo','wunpckehshmi','wunpckehshpl','wunpckehshvs','wunpckehshvc','wunpckehshhi','wunpckehshls','wunpckehshge','wunpckehshlt','wunpckehshgt','wunpckehshle',
+            'wunpckehsweq','wunpckehswne','wunpckehswcs','wunpckehswhs','wunpckehswcc','wunpckehswlo','wunpckehswmi','wunpckehswpl','wunpckehswvs','wunpckehswvc','wunpckehswhi','wunpckehswls','wunpckehswge','wunpckehswlt','wunpckehswgt','wunpckehswle',
+            'wunpckehubeq','wunpckehubne','wunpckehubcs','wunpckehubhs','wunpckehubcc','wunpckehublo','wunpckehubmi','wunpckehubpl','wunpckehubvs','wunpckehubvc','wunpckehubhi','wunpckehubls','wunpckehubge','wunpckehublt','wunpckehubgt','wunpckehuble',
+            'wunpckehuheq','wunpckehuhne','wunpckehuhcs','wunpckehuhhs','wunpckehuhcc','wunpckehuhlo','wunpckehuhmi','wunpckehuhpl','wunpckehuhvs','wunpckehuhvc','wunpckehuhhi','wunpckehuhls','wunpckehuhge','wunpckehuhlt','wunpckehuhgt','wunpckehuhle',
+            'wunpckehuweq','wunpckehuwne','wunpckehuwcs','wunpckehuwhs','wunpckehuwcc','wunpckehuwlo','wunpckehuwmi','wunpckehuwpl','wunpckehuwvs','wunpckehuwvc','wunpckehuwhi','wunpckehuwls','wunpckehuwge','wunpckehuwlt','wunpckehuwgt','wunpckehuwle',
+            'wunpckihbeq','wunpckihbne','wunpckihbcs','wunpckihbhs','wunpckihbcc','wunpckihblo','wunpckihbmi','wunpckihbpl','wunpckihbvs','wunpckihbvc','wunpckihbhi','wunpckihbls','wunpckihbge','wunpckihblt','wunpckihbgt','wunpckihble',
+            'wunpckihheq','wunpckihhne','wunpckihhcs','wunpckihhhs','wunpckihhcc','wunpckihhlo','wunpckihhmi','wunpckihhpl','wunpckihhvs','wunpckihhvc','wunpckihhhi','wunpckihhls','wunpckihhge','wunpckihhlt','wunpckihhgt','wunpckihhle',
+            'wunpckihweq','wunpckihwne','wunpckihwcs','wunpckihwhs','wunpckihwcc','wunpckihwlo','wunpckihwmi','wunpckihwpl','wunpckihwvs','wunpckihwvc','wunpckihwhi','wunpckihwls','wunpckihwge','wunpckihwlt','wunpckihwgt','wunpckihwle',
+            'wunpckelsbeq','wunpckelsbne','wunpckelsbcs','wunpckelsbhs','wunpckelsbcc','wunpckelsblo','wunpckelsbmi','wunpckelsbpl','wunpckelsbvs','wunpckelsbvc','wunpckelsbhi','wunpckelsbls','wunpckelsbge','wunpckelsblt','wunpckelsbgt','wunpckelsble',
+            'wunpckelsheq','wunpckelshne','wunpckelshcs','wunpckelshhs','wunpckelshcc','wunpckelshlo','wunpckelshmi','wunpckelshpl','wunpckelshvs','wunpckelshvc','wunpckelshhi','wunpckelshls','wunpckelshge','wunpckelshlt','wunpckelshgt','wunpckelshle',
+            'wunpckelsweq','wunpckelswne','wunpckelswcs','wunpckelswhs','wunpckelswcc','wunpckelswlo','wunpckelswmi','wunpckelswpl','wunpckelswvs','wunpckelswvc','wunpckelswhi','wunpckelswls','wunpckelswge','wunpckelswlt','wunpckelswgt','wunpckelswle',
+            'wunpckelubeq','wunpckelubne','wunpckelubcs','wunpckelubhs','wunpckelubcc','wunpckelublo','wunpckelubmi','wunpckelubpl','wunpckelubvs','wunpckelubvc','wunpckelubhi','wunpckelubls','wunpckelubge','wunpckelublt','wunpckelubgt','wunpckeluble',
+            'wunpckeluheq','wunpckeluhne','wunpckeluhcs','wunpckeluhhs','wunpckeluhcc','wunpckeluhlo','wunpckeluhmi','wunpckeluhpl','wunpckeluhvs','wunpckeluhvc','wunpckeluhhi','wunpckeluhls','wunpckeluhge','wunpckeluhlt','wunpckeluhgt','wunpckeluhle',
+            'wunpckeluweq','wunpckeluwne','wunpckeluwcs','wunpckeluwhs','wunpckeluwcc','wunpckeluwlo','wunpckeluwmi','wunpckeluwpl','wunpckeluwvs','wunpckeluwvc','wunpckeluwhi','wunpckeluwls','wunpckeluwge','wunpckeluwlt','wunpckeluwgt','wunpckeluwle',
+            'wunpckilbeq','wunpckilbne','wunpckilbcs','wunpckilbhs','wunpckilbcc','wunpckilblo','wunpckilbmi','wunpckilbpl','wunpckilbvs','wunpckilbvc','wunpckilbhi','wunpckilbls','wunpckilbge','wunpckilblt','wunpckilbgt','wunpckilble',
+            'wunpckilheq','wunpckilhne','wunpckilhcs','wunpckilhhs','wunpckilhcc','wunpckilhlo','wunpckilhmi','wunpckilhpl','wunpckilhvs','wunpckilhvc','wunpckilhhi','wunpckilhls','wunpckilhge','wunpckilhlt','wunpckilhgt','wunpckilhle',
+            'wunpckilweq','wunpckilwne','wunpckilwcs','wunpckilwhs','wunpckilwcc','wunpckilwlo','wunpckilwmi','wunpckilwpl','wunpckilwvs','wunpckilwvc','wunpckilwhi','wunpckilwls','wunpckilwge','wunpckilwlt','wunpckilwgt','wunpckilwle',
+            'wxoreq','wxorne','wxorcs','wxorhs','wxorcc','wxorlo','wxormi','wxorpl','wxorvs','wxorvc','wxorhi','wxorls','wxorge','wxorlt','wxorgt','wxorle',
+            'wzeroeq','wzerone','wzerocs','wzerohs','wzerocc','wzerolo','wzeromi','wzeropl','wzerovs','wzerovc','wzerohi','wzerols','wzeroge','wzerolt','wzerogt','wzerole'
+            ),
+        /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
+        19 => array(
+            /* Unconditional VFPv3 & NEON SIMD Memory Access: Loads */
+            'vld.8','vldal.8',
+            'vld.16','vldal.16',
+            'vld.32','vldal.32',
+            'vld.64','vldal.64',
+
+            'vld1.8','vld1al.8',
+            'vld1.16','vld1al.16',
+            'vld1.32','vld1al.32',
+
+            'vld2.8','vld2al.8',
+            'vld2.16','vld2al.16',
+            'vld2.32','vld2al.32',
+
+            'vld3.8','vld3al.8',
+            'vld3.16','vld3al.16',
+            'vld3.32','vld3al.32',
+
+            'vld4.8','vld4al.8',
+            'vld4.16','vld4al.16',
+            'vld4.32','vld4al.32',
+
+            'vldm','vldmal',
+            'vldm.32','vldmal.32',
+            'vldm.64','vldmal.64',
+
+            'vldmia','vldmiaal',
+            'vldmia.32','vldmiaal.32',
+            'vldmia.64','vldmiaal.64',
+
+            'vldmdb','vldmdbal',
+            'vldmdb.32','vldmdbal.32',
+            'vldmdb.64','vldmdbal.64',
+
+            'vldr','vldral',
+            'vldr.32','vldral.32',
+            'vldr.64','vldral.64',
+
+            'vpop','vpopal',
+            'vpop.32','vpopal.32',
+            'vpop.64','vpopal.64',
+
+            /* Unconditional VFPv3 & NEON SIMD Memory Access: Stores */
+            'vst1.8','vst1al.8',
+            'vst1.16','vst1al.16',
+            'vst1.32','vst1al.32',
+            'vst1.64','vst1al.64',
+
+            'vst2.8','vst2al.8',
+            'vst2.16','vst2al.16',
+            'vst2.32','vst2al.32',
+
+            'vst3.8','vst3al.8',
+            'vst3.16','vst3al.16',
+            'vst3.32','vst3al.32',
+
+            'vst4.8','vst4al.8',
+            'vst4.16','vst4al.16',
+            'vst4.32','vst4al.32',
+
+            'vstm','vstmal',
+            'vstm.32','vstmal.32',
+            'vstm.64','vstmal.64',
+
+            'vstmia','vstmiaal',
+            'vstmia.32','vstmiaal.32',
+            'vstmia.64','vstmiaal.64',
+
+            'vstmdb','vstmdbal',
+            'vstmdb.32','vstmdbal.32',
+            'vstmdb.64','vstmdbal.64',
+
+            'vstr','vstral',
+            'vstr.32','vstral.32',
+            'vstr.64','vstral.64',
+
+            'vpush','vpushal',
+            'vpush.32','vpushal.32',
+            'vpush.64','vpushal.64'
+            ),
+        /* Unconditional NEON SIMD Logical Instructions */
+        20 => array(
+            'vand','vandal',
+            'vand.i8','vandal.i8',
+            'vand.i16','vandal.i16',
+            'vand.i32','vandal.i32',
+            'vand.i64','vandal.i64',
+            'vand.s8','vandal.s8',
+            'vand.s16','vandal.s16',
+            'vand.s32','vandal.s32',
+            'vand.s64','vandal.s64',
+            'vand.u8','vandal.u8',
+            'vand.u16','vandal.u16',
+            'vand.u32','vandal.u32',
+            'vand.u64','vandal.u64',
+            'vand.f32','vandal.f32',
+            'vand.f64','vandal.f64',
+
+            'vbic','vbical',
+            'vbic.i8','vbical.i8',
+            'vbic.i16','vbical.i16',
+            'vbic.i32','vbical.i32',
+            'vbic.i64','vbical.i64',
+            'vbic.s8','vbical.s8',
+            'vbic.s16','vbical.s16',
+            'vbic.s32','vbical.s32',
+            'vbic.s64','vbical.s64',
+            'vbic.u8','vbical.u8',
+            'vbic.u16','vbical.u16',
+            'vbic.u32','vbical.u32',
+            'vbic.u64','vbical.u64',
+            'vbic.f32','vbical.f32',
+            'vbic.f64','vbical.f64',
+
+            'vbif','vbifal',
+            'vbif.i8','vbifal.i8',
+            'vbif.i16','vbifal.i16',
+            'vbif.i32','vbifal.i32',
+            'vbif.i64','vbifal.i64',
+            'vbif.s8','vbifal.s8',
+            'vbif.s16','vbifal.s16',
+            'vbif.s32','vbifal.s32',
+            'vbif.s64','vbifal.s64',
+            'vbif.u8','vbifal.u8',
+            'vbif.u16','vbifal.u16',
+            'vbif.u32','vbifal.u32',
+            'vbif.u64','vbifal.u64',
+            'vbif.f32','vbifal.f32',
+            'vbif.f64','vbifal.f64',
+
+            'vbit','vbital',
+            'vbit.i8','vbital.i8',
+            'vbit.i16','vbital.i16',
+            'vbit.i32','vbital.i32',
+            'vbit.i64','vbital.i64',
+            'vbit.s8','vbital.s8',
+            'vbit.s16','vbital.s16',
+            'vbit.s32','vbital.s32',
+            'vbit.s64','vbital.s64',
+            'vbit.u8','vbital.u8',
+            'vbit.u16','vbital.u16',
+            'vbit.u32','vbital.u32',
+            'vbit.u64','vbital.u64',
+            'vbit.f32','vbital.f32',
+            'vbit.f64','vbital.f64',
+
+            'vbsl','vbslal',
+            'vbsl.i8','vbslal.i8',
+            'vbsl.i16','vbslal.i16',
+            'vbsl.i32','vbslal.i32',
+            'vbsl.i64','vbslal.i64',
+            'vbsl.s8','vbslal.s8',
+            'vbsl.s16','vbslal.s16',
+            'vbsl.s32','vbslal.s32',
+            'vbsl.s64','vbslal.s64',
+            'vbsl.u8','vbslal.u8',
+            'vbsl.u16','vbslal.u16',
+            'vbsl.u32','vbslal.u32',
+            'vbsl.u64','vbslal.u64',
+            'vbsl.f32','vbslal.f32',
+            'vbsl.f64','vbslal.f64',
+
+            'veor','veoral',
+            'veor.i8','veoral.i8',
+            'veor.i16','veoral.i16',
+            'veor.i32','veoral.i32',
+            'veor.i64','veoral.i64',
+            'veor.s8','veoral.s8',
+            'veor.s16','veoral.s16',
+            'veor.s32','veoral.s32',
+            'veor.s64','veoral.s64',
+            'veor.u8','veoral.u8',
+            'veor.u16','veoral.u16',
+            'veor.u32','veoral.u32',
+            'veor.u64','veoral.u64',
+            'veor.f32','veoral.f32',
+            'veor.f64','veoral.f64',
+
+            'vmov','vmoval',
+            'vmov.8','vmoval.8',
+            'vmov.16','vmoval.16',
+            'vmov.32','vmoval.32',
+            'vmov.i8','vmoval.i8',
+            'vmov.i16','vmoval.i16',
+            'vmov.i32','vmoval.i32',
+            'vmov.i64','vmoval.i64',
+            'vmov.f32','vmoval.f32',
+            'vmov.f64','vmoval.f64',
+
+            'vmvn','vmvnal',
+            'vmvn.s8','vmvnal.s8',
+            'vmvn.s16','vmvnal.s16',
+            'vmvn.s32','vmvnal.s32',
+            'vmvn.s64','vmvnal.s64',
+            'vmvn.u8','vmvnal.u8',
+            'vmvn.u16','vmvnal.u16',
+            'vmvn.u32','vmvnal.u32',
+            'vmvn.u64','vmvnal.u64',
+            'vmvn.i8','vmvnal.i8',
+            'vmvn.i16','vmvnal.i16',
+            'vmvn.i32','vmvnal.i32',
+            'vmvn.i64','vmvnal.i64',
+            'vmvn.f32','vmvnal.f32',
+            'vmvn.f64','vmvnal.f64',
+
+            'vorn','vornal',
+            'vorn.s8','vornal.s8',
+            'vorn.s16','vornal.s16',
+            'vorn.s32','vornal.s32',
+            'vorn.s64','vornal.s64',
+            'vorn.u8','vornal.u8',
+            'vorn.u16','vornal.u16',
+            'vorn.u32','vornal.u32',
+            'vorn.u64','vornal.u64',
+            'vorn.i8','vornal.i8',
+            'vorn.i16','vornal.i16',
+            'vorn.i32','vornal.i32',
+            'vorn.i64','vornal.i64',
+            'vorn.f32','vornal.f32',
+            'vorn.f64','vornal.f64',
+
+            'vorr','vorral',
+            'vorr.s8','vorral.s8',
+            'vorr.s16','vorral.s16',
+            'vorr.s32','vorral.s32',
+            'vorr.s64','vorral.s64',
+            'vorr.u8','vorral.u8',
+            'vorr.u16','vorral.u16',
+            'vorr.u32','vorral.u32',
+            'vorr.u64','vorral.u64',
+            'vorr.i8','vorral.i8',
+            'vorr.i16','vorral.i16',
+            'vorr.i32','vorral.i32',
+            'vorr.i64','vorral.i64',
+            'vorr.f32','vorral.f32',
+            'vorr.f64','vorral.f64',
+
+            'vswp','vswpal',
+            'vswp.s8','vswpal.s8',
+            'vswp.s16','vswpal.s16',
+            'vswp.s32','vswpal.s32',
+            'vswp.s64','vswpal.s64',
+            'vswp.u8','vswpal.u8',
+            'vswp.u16','vswpal.u16',
+            'vswp.u32','vswpal.u32',
+            'vswp.u64','vswpal.u64',
+            'vswp.i8','vswpal.i8',
+            'vswp.i16','vswpal.i16',
+            'vswp.i32','vswpal.i32',
+            'vswp.i64','vswpal.i64',
+            'vswp.f32','vswpal.f32',
+            'vswp.f64','vswpal.f64'
+            ),
+        /* Unconditional NEON SIMD ARM Registers Interop Instructions */
+        21 => array(
+            'vmrs','vmrsal',
+            'vmsr','vmsral'
+            ),
+        /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
+        22 => array(
+            'vcnt.8','vcntal.8',
+            'vdup.8','vdupal.8',
+
+            'vdup.16','vdupal.16',
+            'vdup.32','vdupal.32',
+
+            'vext.8','vextal.8',
+            'vext.16','vextal.16',
+
+            'vext.32','vextal.32',
+            'vext.64','vextal.64',
+
+            'vrev16.8','vrev16al.8',
+            'vrev32.8','vrev32al.8',
+            'vrev32.16','vrev32al.16',
+            'vrev64.8','vrev64al.8',
+            'vrev64.16','vrev64al.16',
+            'vrev64.32','vrev64al.32',
+
+            'vsli.8','vslial.8',
+            'vsli.16','vslial.16',
+            'vsli.32','vslial.32',
+            'vsli.64','vslial.64',
+
+            'vsri.8','vsrial.8',
+            'vsri.16','vsrial.16',
+            'vsri.32','vsrial.32',
+            'vsri.64','vsrial.64',
+
+            'vtbl.8','vtblal.8',
+
+            'vtbx','vtbxal',
+
+            'vtrn.8','vtrnal.8',
+            'vtrn.16','vtrnal.16',
+            'vtrn.32','vtrnal.32',
+
+            'vtst.8','vtstal.8',
+            'vtst.16','vtstal.16',
+            'vtst.32','vtstal.32',
+
+            'vuzp.8','vuzpal.8',
+            'vuzp.16','vuzpal.16',
+            'vuzp.32','vuzpal.32',
+
+            'vzip.8','vzipal.8',
+            'vzip.16','vzipal.16',
+            'vzip.32','vzipal.32',
+
+            'vmull.p8','vmullal.p8'
+            ),
+        /* Unconditional NEON SIMD Universal Integer Instructions */
+        23 => array(
+            'vadd.i8','vaddal.i8',
+            'vadd.i16','vaddal.i16',
+            'vadd.i32','vaddal.i32',
+            'vadd.i64','vaddal.i64',
+
+            'vsub.i8','vsubal.i8',
+            'vsub.i16','vsubal.i16',
+            'vsub.i32','vsubal.i32',
+            'vsub.i64','vsubal.i64',
+
+            'vaddhn.i16','vaddhnal.i16',
+            'vaddhn.i32','vaddhnal.i32',
+            'vaddhn.i64','vaddhnal.i64',
+
+            'vsubhn.i16','vsubhnal.i16',
+            'vsubhn.i32','vsubhnal.i32',
+            'vsubhn.i64','vsubhnal.i64',
+
+            'vraddhn.i16','vraddhnal.i16',
+            'vraddhn.i32','vraddhnal.i32',
+            'vraddhn.i64','vraddhnal.i64',
+
+            'vrsubhn.i16','vrsubhnal.i16',
+            'vrsubhn.i32','vrsubhnal.i32',
+            'vrsubhn.i64','vrsubhnal.i64',
+
+            'vpadd.i8','vpaddal.i8',
+            'vpadd.i16','vpaddal.i16',
+            'vpadd.i32','vpaddal.i32',
+
+            'vceq.i8','vceqal.i8',
+            'vceq.i16','vceqal.i16',
+            'vceq.i32','vceqal.i32',
+
+            'vclz.i8','vclzal.i8',
+            'vclz.i16','vclzal.i16',
+            'vclz.i32','vclzal.i32',
+
+            'vmovn.i16','vmovnal.i16',
+            'vmovn.i32','vmovnal.i32',
+            'vmovn.i64','vmovnal.i64',
+
+            'vmla.s8','vmlaal.s8',
+            'vmla.s16','vmlaal.s16',
+            'vmla.s32','vmlaal.s32',
+            'vmla.u8','vmlaal.u8',
+            'vmla.u16','vmlaal.u16',
+            'vmla.u32','vmlaal.u32',
+            'vmla.i8','vmlaal.i8',
+            'vmla.i16','vmlaal.i16',
+            'vmla.i32','vmlaal.i32',
+
+            'vmls.s8','vmlsal.s8',
+            'vmls.s16','vmlsal.s16',
+            'vmls.s32','vmlsal.s32',
+            'vmls.u8','vmlsal.u8',
+            'vmls.u16','vmlsal.u16',
+            'vmls.u32','vmlsal.u32',
+            'vmls.i8','vmlsal.i8',
+            'vmls.i16','vmlsal.i16',
+            'vmls.i32','vmlsal.i32',
+
+            'vmul.s8','vmulal.s8',
+            'vmul.s16','vmulal.s16',
+            'vmul.s32','vmulal.s32',
+            'vmul.u8','vmulal.u8',
+            'vmul.u16','vmulal.u16',
+            'vmul.u32','vmulal.u32',
+            'vmul.i8','vmulal.i8',
+            'vmul.i16','vmulal.i16',
+            'vmul.i32','vmulal.i32',
+            'vmul.p8','vmulal.p8',
+
+            'vrshrn.i16','vrshrnal.i16',
+            'vrshrn.i32','vrshrnal.i32',
+            'vrshrn.i64','vrshrnal.i64',
+
+            'vshrn.i16','vshrnal.i16',
+            'vshrn.i32','vshrnal.i32',
+            'vshrn.i64','vshrnal.i64',
+
+            'vshl.i8','vshlal.i8',
+            'vshl.i16','vshlal.i16',
+            'vshl.i32','vshlal.i32',
+            'vshl.i64','vshlal.i64',
+
+            'vshll.i8','vshllal.i8',
+            'vshll.i16','vshllal.i16',
+            'vshll.i32','vshllal.i32'
+            ),
+        /* Unconditional NEON SIMD Signed Integer Instructions */
+        24 => array(
+            'vaba.s8','vabaal.s8',
+            'vaba.s16','vabaal.s16',
+            'vaba.s32','vabaal.s32',
+
+            'vabal.s8','vabalal.s8',
+            'vabal.s16','vabalal.s16',
+            'vabal.s32','vabalal.s32',
+
+            'vabd.s8','vabdal.s8',
+            'vabd.s16','vabdal.s16',
+            'vabd.s32','vabdal.s32',
+
+            'vabs.s8','vabsal.s8',
+            'vabs.s16','vabsal.s16',
+            'vabs.s32','vabsal.s32',
+
+            'vaddl.s8','vaddlal.s8',
+            'vaddl.s16','vaddlal.s16',
+            'vaddl.s32','vaddlal.s32',
+
+            'vcge.s8','vcgeal.s8',
+            'vcge.s16','vcgeal.s16',
+            'vcge.s32','vcgeal.s32',
+
+            'vcle.s8','vcleal.s8',
+            'vcle.s16','vcleal.s16',
+            'vcle.s32','vcleal.s32',
+
+            'vcgt.s8','vcgtal.s8',
+            'vcgt.s16','vcgtal.s16',
+            'vcgt.s32','vcgtal.s32',
+
+            'vclt.s8','vcltal.s8',
+            'vclt.s16','vcltal.s16',
+            'vclt.s32','vcltal.s32',
+
+            'vcls.s8','vclsal.s8',
+            'vcls.s16','vclsal.s16',
+            'vcls.s32','vclsal.s32',
+
+            'vaddw.s8','vaddwal.s8',
+            'vaddw.s16','vaddwal.s16',
+            'vaddw.s32','vaddwal.s32',
+
+            'vhadd.s8','vhaddal.s8',
+            'vhadd.s16','vhaddal.s16',
+            'vhadd.s32','vhaddal.s32',
+
+            'vhsub.s8','vhsubal.s8',
+            'vhsub.s16','vhsubal.s16',
+            'vhsub.s32','vhsubal.s32',
+
+            'vmax.s8','vmaxal.s8',
+            'vmax.s16','vmaxal.s16',
+            'vmax.s32','vmaxal.s32',
+
+            'vmin.s8','vminal.s8',
+            'vmin.s16','vminal.s16',
+            'vmin.s32','vminal.s32',
+
+            'vmlal.s8','vmlalal.s8',
+            'vmlal.s16','vmlalal.s16',
+            'vmlal.s32','vmlalal.s32',
+
+            'vmlsl.s8','vmlslal.s8',
+            'vmlsl.s16','vmlslal.s16',
+            'vmlsl.s32','vmlslal.s32',
+
+            'vneg.s8','vnegal.s8',
+            'vneg.s16','vnegal.s16',
+            'vneg.s32','vnegal.s32',
+
+            'vpadal.s8','vpadalal.s8',
+            'vpadal.s16','vpadalal.s16',
+            'vpadal.s32','vpadalal.s32',
+
+            'vmovl.s8','vmovlal.s8',
+            'vmovl.s16','vmovlal.s16',
+            'vmovl.s32','vmovlal.s32',
+
+            'vmull.s8','vmullal.s8',
+            'vmull.s16','vmullal.s16',
+            'vmull.s32','vmullal.s32',
+
+            'vpaddl.s8','vpaddlal.s8',
+            'vpaddl.s16','vpaddlal.s16',
+            'vpaddl.s32','vpaddlal.s32',
+
+            'vpmax.s8','vpmaxal.s8',
+            'vpmax.s16','vpmaxal.s16',
+            'vpmax.s32','vpmaxal.s32',
+
+            'vpmin.s8','vpminal.s8',
+            'vpmin.s16','vpminal.s16',
+            'vpmin.s32','vpminal.s32',
+
+            'vqabs.s8','vqabsal.s8',
+            'vqabs.s16','vqabsal.s16',
+            'vqabs.s32','vqabsal.s32',
+
+            'vqadd.s8','vqaddal.s8',
+            'vqadd.s16','vqaddal.s16',
+            'vqadd.s32','vqaddal.s32',
+            'vqadd.s64','vqaddal.s64',
+
+            'vqdmlal.s16','vqdmlalal.s16',
+            'vqdmlal.s32','vqdmlalal.s32',
+
+            'vqdmlsl.s16','vqdmlslal.s16',
+            'vqdmlsl.s32','vqdmlslal.s32',
+
+            'vqdmulh.s16','vqdmulhal.s16',
+            'vqdmulh.s32','vqdmulhal.s32',
+
+            'vqdmull.s16','vqdmullal.s16',
+            'vqdmull.s32','vqdmullal.s32',
+
+            'vqmovn.s16','vqmovnal.s16',
+            'vqmovn.s32','vqmovnal.s32',
+            'vqmovn.s64','vqmovnal.s64',
+
+            'vqmovun.s16','vqmovunal.s16',
+            'vqmovun.s32','vqmovunal.s32',
+            'vqmovun.s64','vqmovunal.s64',
+
+            'vqneg.s8','vqnegal.s8',
+            'vqneg.s16','vqnegal.s16',
+            'vqneg.s32','vqnegal.s32',
+
+            'vqrdmulh.s16','vqrdmulhal.s16',
+            'vqrdmulh.s32','vqrdmulhal.s32',
+
+            'vqrshl.s8','vqrshlal.s8',
+            'vqrshl.s16','vqrshlal.s16',
+            'vqrshl.s32','vqrshlal.s32',
+            'vqrshl.s64','vqrshlal.s64',
+
+            'vqrshrn.s16','vqrshrnal.s16',
+            'vqrshrn.s32','vqrshrnal.s32',
+            'vqrshrn.s64','vqrshrnal.s64',
+
+            'vqrshrun.s16','vqrshrunal.s16',
+            'vqrshrun.s32','vqrshrunal.s32',
+            'vqrshrun.s64','vqrshrunal.s64',
+
+            'vqshl.s8','vqshlal.s8',
+            'vqshl.s16','vqshlal.s16',
+            'vqshl.s32','vqshlal.s32',
+            'vqshl.s64','vqshlal.s64',
+
+            'vqshlu.s8','vqshlual.s8',
+            'vqshlu.s16','vqshlual.s16',
+            'vqshlu.s32','vqshlual.s32',
+            'vqshlu.s64','vqshlual.s64',
+
+            'vqshrn.s16','vqshrnal.s16',
+            'vqshrn.s32','vqshrnal.s32',
+            'vqshrn.s64','vqshrnal.s64',
+
+            'vqshrun.s16','vqshrunal.s16',
+            'vqshrun.s32','vqshrunal.s32',
+            'vqshrun.s64','vqshrunal.s64',
+
+            'vqsub.s8','vqsubal.s8',
+            'vqsub.s16','vqsubal.s16',
+            'vqsub.s32','vqsubal.s32',
+            'vqsub.s64','vqsubal.s64',
+
+            'vrhadd.s8','vrhaddal.s8',
+            'vrhadd.s16','vrhaddal.s16',
+            'vrhadd.s32','vrhaddal.s32',
+
+            'vrshl.s8','vrshlal.s8',
+            'vrshl.s16','vrshlal.s16',
+            'vrshl.s32','vrshlal.s32',
+            'vrshl.s64','vrshlal.s64',
+
+            'vrshr.s8','vrshral.s8',
+            'vrshr.s16','vrshral.s16',
+            'vrshr.s32','vrshral.s32',
+            'vrshr.s64','vrshral.s64',
+
+            'vrsra.s8','vrsraal.s8',
+            'vrsra.s16','vrsraal.s16',
+            'vrsra.s32','vrsraal.s32',
+            'vrsra.s64','vrsraal.s64',
+
+            'vshl.s8','vshlal.s8',
+            'vshl.s16','vshlal.s16',
+            'vshl.s32','vshlal.s32',
+            'vshl.s64','vshlal.s64',
+
+            'vshll.s8','vshllal.s8',
+            'vshll.s16','vshllal.s16',
+            'vshll.s32','vshllal.s32',
+
+            'vshr.s8','vshral.s8',
+            'vshr.s16','vshral.s16',
+            'vshr.s32','vshral.s32',
+            'vshr.s64','vshral.s64',
+
+            'vsra.s8','vsraal.s8',
+            'vsra.s16','vsraal.s16',
+            'vsra.s32','vsraal.s32',
+            'vsra.s64','vsraal.s64',
+
+            'vsubl.s8','vsublal.s8',
+            'vsubl.s16','vsublal.s16',
+            'vsubl.s32','vsublal.s32',
+
+            'vsubh.s8','vsubhal.s8',
+            'vsubh.s16','vsubhal.s16',
+            'vsubh.s32','vsubhal.s32'
+            ),
+        /* Unconditional NEON SIMD Unsigned Integer Instructions */
+        25 => array(
+            'vaba.u8','vabaal.u8',
+            'vaba.u16','vabaal.u16',
+            'vaba.u32','vabaal.u32',
+
+            'vabal.u8','vabalal.u8',
+            'vabal.u16','vabalal.u16',
+            'vabal.u32','vabalal.u32',
+
+            'vabd.u8','vabdal.u8',
+            'vabd.u16','vabdal.u16',
+            'vabd.u32','vabdal.u32',
+
+            'vaddl.u8','vaddlal.u8',
+            'vaddl.u16','vaddlal.u16',
+            'vaddl.u32','vaddlal.u32',
+
+            'vsubl.u8','vsublal.u8',
+            'vsubl.u16','vsublal.u16',
+            'vsubl.u32','vsublal.u32',
+
+            'vaddw.u8','vaddwal.u8',
+            'vaddw.u16','vaddwal.u16',
+            'vaddw.u32','vaddwal.u32',
+
+            'vsubh.u8','vsubhal.u8',
+            'vsubh.u16','vsubhal.u16',
+            'vsubh.u32','vsubhal.u32',
+
+            'vhadd.u8','vhaddal.u8',
+            'vhadd.u16','vhaddal.u16',
+            'vhadd.u32','vhaddal.u32',
+
+            'vhsub.u8','vhsubal.u8',
+            'vhsub.u16','vhsubal.u16',
+            'vhsub.u32','vhsubal.u32',
+
+            'vpadal.u8','vpadalal.u8',
+            'vpadal.u16','vpadalal.u16',
+            'vpadal.u32','vpadalal.u32',
+
+            'vpaddl.u8','vpaddlal.u8',
+            'vpaddl.u16','vpaddlal.u16',
+            'vpaddl.u32','vpaddlal.u32',
+
+            'vcge.u8','vcgeal.u8',
+            'vcge.u16','vcgeal.u16',
+            'vcge.u32','vcgeal.u32',
+
+            'vcle.u8','vcleal.u8',
+            'vcle.u16','vcleal.u16',
+            'vcle.u32','vcleal.u32',
+
+            'vcgt.u8','vcgtal.u8',
+            'vcgt.u16','vcgtal.u16',
+            'vcgt.u32','vcgtal.u32',
+
+            'vclt.u8','vcltal.u8',
+            'vclt.u16','vcltal.u16',
+            'vclt.u32','vcltal.u32',
+
+            'vmax.u8','vmaxal.u8',
+            'vmax.u16','vmaxal.u16',
+            'vmax.u32','vmaxal.u32',
+
+            'vmin.u8','vminal.u8',
+            'vmin.u16','vminal.u16',
+            'vmin.u32','vminal.u32',
+
+            'vmlal.u8','vmlalal.u8',
+            'vmlal.u16','vmlalal.u16',
+            'vmlal.u32','vmlalal.u32',
+
+            'vmlsl.u8','vmlslal.u8',
+            'vmlsl.u16','vmlslal.u16',
+            'vmlsl.u32','vmlslal.u32',
+
+            'vmull.u8','vmullal.u8',
+            'vmull.u16','vmullal.u16',
+            'vmull.u32','vmullal.u32',
+
+            'vmovl.u8','vmovlal.u8',
+            'vmovl.u16','vmovlal.u16',
+            'vmovl.u32','vmovlal.u32',
+
+            'vshl.u8','vshlal.u8',
+            'vshl.u16','vshlal.u16',
+            'vshl.u32','vshlal.u32',
+            'vshl.u64','vshlal.u64',
+
+            'vshll.u8','vshllal.u8',
+            'vshll.u16','vshllal.u16',
+            'vshll.u32','vshllal.u32',
+
+            'vshr.u8','vshral.u8',
+            'vshr.u16','vshral.u16',
+            'vshr.u32','vshral.u32',
+            'vshr.u64','vshral.u64',
+
+            'vsra.u8','vsraal.u8',
+            'vsra.u16','vsraal.u16',
+            'vsra.u32','vsraal.u32',
+            'vsra.u64','vsraal.u64',
+
+            'vpmax.u8','vpmaxal.u8',
+            'vpmax.u16','vpmaxal.u16',
+            'vpmax.u32','vpmaxal.u32',
+
+            'vpmin.u8','vpminal.u8',
+            'vpmin.u16','vpminal.u16',
+            'vpmin.u32','vpminal.u32',
+
+            'vqadd.u8','vqaddal.u8',
+            'vqadd.u16','vqaddal.u16',
+            'vqadd.u32','vqaddal.u32',
+            'vqadd.u64','vqaddal.u64',
+
+            'vqsub.u8','vqsubal.u8',
+            'vqsub.u16','vqsubal.u16',
+            'vqsub.u32','vqsubal.u32',
+            'vqsub.u64','vqsubal.u64',
+
+            'vqmovn.u16','vqmovnal.u16',
+            'vqmovn.u32','vqmovnal.u32',
+            'vqmovn.u64','vqmovnal.u64',
+
+            'vqshl.u8','vqshlal.u8',
+            'vqshl.u16','vqshlal.u16',
+            'vqshl.u32','vqshlal.u32',
+            'vqshl.u64','vqshlal.u64',
+
+            'vqshrn.u16','vqshrnal.u16',
+            'vqshrn.u32','vqshrnal.u32',
+            'vqshrn.u64','vqshrnal.u64',
+
+            'vqrshl.u8','vqrshlal.u8',
+            'vqrshl.u16','vqrshlal.u16',
+            'vqrshl.u32','vqrshlal.u32',
+            'vqrshl.u64','vqrshlal.u64',
+
+            'vqrshrn.u16','vqrshrnal.u16',
+            'vqrshrn.u32','vqrshrnal.u32',
+            'vqrshrn.u64','vqrshrnal.u64',
+
+            'vrhadd.u8','vrhaddal.u8',
+            'vrhadd.u16','vrhaddal.u16',
+            'vrhadd.u32','vrhaddal.u32',
+
+            'vrshl.u8','vrshlal.u8',
+            'vrshl.u16','vrshlal.u16',
+            'vrshl.u32','vrshlal.u32',
+            'vrshl.u64','vrshlal.u64',
+
+            'vrshr.u8','vrshral.u8',
+            'vrshr.u16','vrshral.u16',
+            'vrshr.u32','vrshral.u32',
+            'vrshr.u64','vrshral.u64',
+
+            'vrsra.u8','vrsraal.u8',
+            'vrsra.u16','vrsraal.u16',
+            'vrsra.u32','vrsraal.u32',
+            'vrsra.u64','vrsraal.u64'
+            ),
+        /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
+        26 => array(
+            'vabd.f32','vabdal.f32',
+
+            'vabs.f32','vabsal.f32',
+            'vabs.f64','vabsal.f64',
+
+            'vacge.f32','vacgeal.f32',
+            'vacgt.f32','vacgtal.f32',
+            'vacle.f32','vacleal.f32',
+            'vaclt.f32','vacltal.f32',
+
+            'vadd.f32','vaddal.f32',
+            'vadd.f64','vaddal.f64',
+
+            'vceq.f32','vceqal.f32',
+            'vcge.f32','vcgeal.f32',
+            'vcle.f32','vcleal.f32',
+            'vcgt.f32','vcgtal.f32',
+            'vclt.f32','vcltal.f32',
+
+            'vcmp.f32','vcmpal.f32',
+            'vcmp.f64','vcmpal.f64',
+
+            'vcmpe.f32','vcmpeal.f32',
+            'vcmpe.f64','vcmpeal.f64',
+
+            'vcvt.s16.f32','vcvtal.s16.f32',
+            'vcvt.s16.f64','vcvtal.s16.f64',
+            'vcvt.s32.f32','vcvtal.s32.f32',
+            'vcvt.s32.f64','vcvtal.s32.f64',
+            'vcvt.u16.f32','vcvtal.u16.f32',
+            'vcvt.u16.f64','vcvtal.u16.f64',
+            'vcvt.u32.f32','vcvtal.u32.f32',
+            'vcvt.u32.f64','vcvtal.u32.f64',
+            'vcvt.f16.f32','vcvtal.f16.f32',
+            'vcvt.f32.s32','vcvtal.f32.s32',
+            'vcvt.f32.u32','vcvtal.f32.u32',
+            'vcvt.f32.f16','vcvtal.f32.f16',
+            'vcvt.f32.f64','vcvtal.f32.f64',
+            'vcvt.f64.s32','vcvtal.f64.s32',
+            'vcvt.f64.u32','vcvtal.f64.u32',
+            'vcvt.f64.f32','vcvtal.f64.f32',
+
+            'vcvtr.s32.f32','vcvtral.s32.f32',
+            'vcvtr.s32.f64','vcvtral.s32.f64',
+            'vcvtr.u32.f32','vcvtral.u32.f32',
+            'vcvtr.u32.f64','vcvtral.u32.f64',
+
+            'vcvtb.f16.f32','vcvtbal.f16.f32',
+            'vcvtb.f32.f16','vcvtbal.f32.f16',
+
+            'vcvtt.f16.f32','vcvttal.f16.f32',
+            'vcvtt.f32.f16','vcvttal.f32.f16',
+
+            'vdiv.f32','vdival.f32',
+            'vdiv.f64','vdival.f64',
+
+            'vmax.f32','vmaxal.f32',
+            'vmin.f32','vminal.f32',
+
+            'vmla.f32','vmlaal.f32',
+            'vmla.f64','vmlaal.f64',
+
+            'vmls.f32','vmlsal.f32',
+            'vmls.f64','vmlsal.f64',
+
+            'vmul.f32','vmulal.f32',
+            'vmul.f64','vmulal.f64',
+
+            'vneg.f32','vnegal.f32',
+            'vneg.f64','vnegal.f64',
+
+            'vnmla.f32','vnmlaal.f32',
+            'vnmla.f64','vnmlaal.f64',
+
+            'vnmls.f32','vnmlsal.f32',
+            'vnmls.f64','vnmlsal.f64',
+
+            'vnmul.f64','vnmulal.f64',
+            'vnmul.f32','vnmulal.f32',
+
+            'vpadd.f32','vpaddal.f32',
+
+            'vpmax.f32','vpmaxal.f32',
+            'vpmin.f32','vpminal.f32',
+
+            'vrecpe.u32','vrecpeal.u32',
+            'vrecpe.f32','vrecpeal.f32',
+            'vrecps.f32','vrecpsal.f32',
+
+            'vrsqrte.u32','vrsqrteal.u32',
+            'vrsqrte.f32','vrsqrteal.f32',
+            'vrsqrts.f32','vrsqrtsal.f32',
+
+            'vsqrt.f32','vsqrtal.f32',
+            'vsqrt.f64','vsqrtal.f64',
+
+            'vsub.f32','vsubal.f32',
+            'vsub.f64','vsubal.f64'
+            ),
+        /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
+        27 => array(
+            /* Conditional VFPv3 & NEON SIMD Memory Access: Loads */
+            'vldeq.8','vldne.8','vldcs.8','vldhs.8','vldcc.8','vldlo.8','vldmi.8','vldpl.8','vldvs.8','vldvc.8','vldhi.8','vldls.8','vldge.8','vldlt.8','vldgt.8','vldle.8',
+            'vldeq.16','vldne.16','vldcs.16','vldhs.16','vldcc.16','vldlo.16','vldmi.16','vldpl.16','vldvs.16','vldvc.16','vldhi.16','vldls.16','vldge.16','vldlt.16','vldgt.16','vldle.16',
+            'vldeq.32','vldne.32','vldcs.32','vldhs.32','vldcc.32','vldlo.32','vldmi.32','vldpl.32','vldvs.32','vldvc.32','vldhi.32','vldls.32','vldge.32','vldlt.32','vldgt.32','vldle.32',
+            'vldeq.64','vldne.64','vldcs.64','vldhs.64','vldcc.64','vldlo.64','vldmi.64','vldpl.64','vldvs.64','vldvc.64','vldhi.64','vldls.64','vldge.64','vldlt.64','vldgt.64','vldle.64',
+
+            'vld1eq.8','vld1ne.8','vld1cs.8','vld1hs.8','vld1cc.8','vld1lo.8','vld1mi.8','vld1pl.8','vld1vs.8','vld1vc.8','vld1hi.8','vld1ls.8','vld1ge.8','vld1lt.8','vld1gt.8','vld1le.8',
+            'vld1eq.16','vld1ne.16','vld1cs.16','vld1hs.16','vld1cc.16','vld1lo.16','vld1mi.16','vld1pl.16','vld1vs.16','vld1vc.16','vld1hi.16','vld1ls.16','vld1ge.16','vld1lt.16','vld1gt.16','vld1le.16',
+            'vld1eq.32','vld1ne.32','vld1cs.32','vld1hs.32','vld1cc.32','vld1lo.32','vld1mi.32','vld1pl.32','vld1vs.32','vld1vc.32','vld1hi.32','vld1ls.32','vld1ge.32','vld1lt.32','vld1gt.32','vld1le.32',
+
+            'vld2eq.8','vld2ne.8','vld2cs.8','vld2hs.8','vld2cc.8','vld2lo.8','vld2mi.8','vld2pl.8','vld2vs.8','vld2vc.8','vld2hi.8','vld2ls.8','vld2ge.8','vld2lt.8','vld2gt.8','vld2le.8',
+            'vld2eq.16','vld2ne.16','vld2cs.16','vld2hs.16','vld2cc.16','vld2lo.16','vld2mi.16','vld2pl.16','vld2vs.16','vld2vc.16','vld2hi.16','vld2ls.16','vld2ge.16','vld2lt.16','vld2gt.16','vld2le.16',
+            'vld2eq.32','vld2ne.32','vld2cs.32','vld2hs.32','vld2cc.32','vld2lo.32','vld2mi.32','vld2pl.32','vld2vs.32','vld2vc.32','vld2hi.32','vld2ls.32','vld2ge.32','vld2lt.32','vld2gt.32','vld2le.32',
+
+            'vld3eq.8','vld3ne.8','vld3cs.8','vld3hs.8','vld3cc.8','vld3lo.8','vld3mi.8','vld3pl.8','vld3vs.8','vld3vc.8','vld3hi.8','vld3ls.8','vld3ge.8','vld3lt.8','vld3gt.8','vld3le.8',
+            'vld3eq.16','vld3ne.16','vld3cs.16','vld3hs.16','vld3cc.16','vld3lo.16','vld3mi.16','vld3pl.16','vld3vs.16','vld3vc.16','vld3hi.16','vld3ls.16','vld3ge.16','vld3lt.16','vld3gt.16','vld3le.16',
+            'vld3eq.32','vld3ne.32','vld3cs.32','vld3hs.32','vld3cc.32','vld3lo.32','vld3mi.32','vld3pl.32','vld3vs.32','vld3vc.32','vld3hi.32','vld3ls.32','vld3ge.32','vld3lt.32','vld3gt.32','vld3le.32',
+
+            'vld4eq.8','vld4ne.8','vld4cs.8','vld4hs.8','vld4cc.8','vld4lo.8','vld4mi.8','vld4pl.8','vld4vs.8','vld4vc.8','vld4hi.8','vld4ls.8','vld4ge.8','vld4lt.8','vld4gt.8','vld4le.8',
+            'vld4eq.16','vld4ne.16','vld4cs.16','vld4hs.16','vld4cc.16','vld4lo.16','vld4mi.16','vld4pl.16','vld4vs.16','vld4vc.16','vld4hi.16','vld4ls.16','vld4ge.16','vld4lt.16','vld4gt.16','vld4le.16',
+            'vld4eq.32','vld4ne.32','vld4cs.32','vld4hs.32','vld4cc.32','vld4lo.32','vld4mi.32','vld4pl.32','vld4vs.32','vld4vc.32','vld4hi.32','vld4ls.32','vld4ge.32','vld4lt.32','vld4gt.32','vld4le.32',
+
+            'vldmeq','vldmne','vldmcs','vldmhs','vldmcc','vldmlo','vldmmi','vldmpl','vldmvs','vldmvc','vldmhi','vldmls','vldmge','vldmlt','vldmgt','vldmle',
+            'vldmeq.32','vldmne.32','vldmcs.32','vldmhs.32','vldmcc.32','vldmlo.32','vldmmi.32','vldmpl.32','vldmvs.32','vldmvc.32','vldmhi.32','vldmls.32','vldmge.32','vldmlt.32','vldmgt.32','vldmle.32',
+            'vldmeq.64','vldmne.64','vldmcs.64','vldmhs.64','vldmcc.64','vldmlo.64','vldmmi.64','vldmpl.64','vldmvs.64','vldmvc.64','vldmhi.64','vldmls.64','vldmge.64','vldmlt.64','vldmgt.64','vldmle.64',
+
+            'vldmiaeq','vldmiane','vldmiacs','vldmiahs','vldmiacc','vldmialo','vldmiami','vldmiapl','vldmiavs','vldmiavc','vldmiahi','vldmials','vldmiage','vldmialt','vldmiagt','vldmiale',
+            'vldmiaeq.32','vldmiane.32','vldmiacs.32','vldmiahs.32','vldmiacc.32','vldmialo.32','vldmiami.32','vldmiapl.32','vldmiavs.32','vldmiavc.32','vldmiahi.32','vldmials.32','vldmiage.32','vldmialt.32','vldmiagt.32','vldmiale.32',
+            'vldmiaeq.64','vldmiane.64','vldmiacs.64','vldmiahs.64','vldmiacc.64','vldmialo.64','vldmiami.64','vldmiapl.64','vldmiavs.64','vldmiavc.64','vldmiahi.64','vldmials.64','vldmiage.64','vldmialt.64','vldmiagt.64','vldmiale.64',
+
+            'vldmdbeq','vldmdbne','vldmdbcs','vldmdbhs','vldmdbcc','vldmdblo','vldmdbmi','vldmdbpl','vldmdbvs','vldmdbvc','vldmdbhi','vldmdbls','vldmdbge','vldmdblt','vldmdbgt','vldmdble',
+            'vldmdbeq.32','vldmdbne.32','vldmdbcs.32','vldmdbhs.32','vldmdbcc.32','vldmdblo.32','vldmdbmi.32','vldmdbpl.32','vldmdbvs.32','vldmdbvc.32','vldmdbhi.32','vldmdbls.32','vldmdbge.32','vldmdblt.32','vldmdbgt.32','vldmdble.32',
+            'vldmdbeq.64','vldmdbne.64','vldmdbcs.64','vldmdbhs.64','vldmdbcc.64','vldmdblo.64','vldmdbmi.64','vldmdbpl.64','vldmdbvs.64','vldmdbvc.64','vldmdbhi.64','vldmdbls.64','vldmdbge.64','vldmdblt.64','vldmdbgt.64','vldmdble.64',
+
+            'vldreq','vldrne','vldrcs','vldrhs','vldrcc','vldrlo','vldrmi','vldrpl','vldrvs','vldrvc','vldrhi','vldrls','vldrge','vldrlt','vldrgt','vldrle',
+            'vldreq.32','vldrne.32','vldrcs.32','vldrhs.32','vldrcc.32','vldrlo.32','vldrmi.32','vldrpl.32','vldrvs.32','vldrvc.32','vldrhi.32','vldrls.32','vldrge.32','vldrlt.32','vldrgt.32','vldrle.32',
+            'vldreq.64','vldrne.64','vldrcs.64','vldrhs.64','vldrcc.64','vldrlo.64','vldrmi.64','vldrpl.64','vldrvs.64','vldrvc.64','vldrhi.64','vldrls.64','vldrge.64','vldrlt.64','vldrgt.64','vldrle.64',
+
+            'vpopeq','vpopne','vpopcs','vpophs','vpopcc','vpoplo','vpopmi','vpoppl','vpopvs','vpopvc','vpophi','vpopls','vpopge','vpoplt','vpopgt','vpople',
+            'vpopeq.32','vpopne.32','vpopcs.32','vpophs.32','vpopcc.32','vpoplo.32','vpopmi.32','vpoppl.32','vpopvs.32','vpopvc.32','vpophi.32','vpopls.32','vpopge.32','vpoplt.32','vpopgt.32','vpople.32',
+            'vpopeq.64','vpopne.64','vpopcs.64','vpophs.64','vpopcc.64','vpoplo.64','vpopmi.64','vpoppl.64','vpopvs.64','vpopvc.64','vpophi.64','vpopls.64','vpopge.64','vpoplt.64','vpopgt.64','vpople.64',
+
+            /* Conditional VFPv3 & NEON SIMD Memory Access: Stores */
+            'vst1eq.8','vst1ne.8','vst1cs.8','vst1hs.8','vst1cc.8','vst1lo.8','vst1mi.8','vst1pl.8','vst1vs.8','vst1vc.8','vst1hi.8','vst1ls.8','vst1ge.8','vst1lt.8','vst1gt.8','vst1le.8',
+            'vst1eq.16','vst1ne.16','vst1cs.16','vst1hs.16','vst1cc.16','vst1lo.16','vst1mi.16','vst1pl.16','vst1vs.16','vst1vc.16','vst1hi.16','vst1ls.16','vst1ge.16','vst1lt.16','vst1gt.16','vst1le.16',
+            'vst1eq.32','vst1ne.32','vst1cs.32','vst1hs.32','vst1cc.32','vst1lo.32','vst1mi.32','vst1pl.32','vst1vs.32','vst1vc.32','vst1hi.32','vst1ls.32','vst1ge.32','vst1lt.32','vst1gt.32','vst1le.32',
+            'vst1eq.64','vst1ne.64','vst1cs.64','vst1hs.64','vst1cc.64','vst1lo.64','vst1mi.64','vst1pl.64','vst1vs.64','vst1vc.64','vst1hi.64','vst1ls.64','vst1ge.64','vst1lt.64','vst1gt.64','vst1le.64',
+
+            'vst2eq.8','vst2ne.8','vst2cs.8','vst2hs.8','vst2cc.8','vst2lo.8','vst2mi.8','vst2pl.8','vst2vs.8','vst2vc.8','vst2hi.8','vst2ls.8','vst2ge.8','vst2lt.8','vst2gt.8','vst2le.8',
+            'vst2eq.16','vst2ne.16','vst2cs.16','vst2hs.16','vst2cc.16','vst2lo.16','vst2mi.16','vst2pl.16','vst2vs.16','vst2vc.16','vst2hi.16','vst2ls.16','vst2ge.16','vst2lt.16','vst2gt.16','vst2le.16',
+            'vst2eq.32','vst2ne.32','vst2cs.32','vst2hs.32','vst2cc.32','vst2lo.32','vst2mi.32','vst2pl.32','vst2vs.32','vst2vc.32','vst2hi.32','vst2ls.32','vst2ge.32','vst2lt.32','vst2gt.32','vst2le.32',
+
+            'vst3eq.8','vst3ne.8','vst3cs.8','vst3hs.8','vst3cc.8','vst3lo.8','vst3mi.8','vst3pl.8','vst3vs.8','vst3vc.8','vst3hi.8','vst3ls.8','vst3ge.8','vst3lt.8','vst3gt.8','vst3le.8',
+            'vst3eq.16','vst3ne.16','vst3cs.16','vst3hs.16','vst3cc.16','vst3lo.16','vst3mi.16','vst3pl.16','vst3vs.16','vst3vc.16','vst3hi.16','vst3ls.16','vst3ge.16','vst3lt.16','vst3gt.16','vst3le.16',
+            'vst3eq.32','vst3ne.32','vst3cs.32','vst3hs.32','vst3cc.32','vst3lo.32','vst3mi.32','vst3pl.32','vst3vs.32','vst3vc.32','vst3hi.32','vst3ls.32','vst3ge.32','vst3lt.32','vst3gt.32','vst3le.32',
+
+            'vst4eq.8','vst4ne.8','vst4cs.8','vst4hs.8','vst4cc.8','vst4lo.8','vst4mi.8','vst4pl.8','vst4vs.8','vst4vc.8','vst4hi.8','vst4ls.8','vst4ge.8','vst4lt.8','vst4gt.8','vst4le.8',
+            'vst4eq.16','vst4ne.16','vst4cs.16','vst4hs.16','vst4cc.16','vst4lo.16','vst4mi.16','vst4pl.16','vst4vs.16','vst4vc.16','vst4hi.16','vst4ls.16','vst4ge.16','vst4lt.16','vst4gt.16','vst4le.16',
+            'vst4eq.32','vst4ne.32','vst4cs.32','vst4hs.32','vst4cc.32','vst4lo.32','vst4mi.32','vst4pl.32','vst4vs.32','vst4vc.32','vst4hi.32','vst4ls.32','vst4ge.32','vst4lt.32','vst4gt.32','vst4le.32',
+
+            'vstmeq','vstmne','vstmcs','vstmhs','vstmcc','vstmlo','vstmmi','vstmpl','vstmvs','vstmvc','vstmhi','vstmls','vstmge','vstmlt','vstmgt','vstmle',
+            'vstmeq.32','vstmne.32','vstmcs.32','vstmhs.32','vstmcc.32','vstmlo.32','vstmmi.32','vstmpl.32','vstmvs.32','vstmvc.32','vstmhi.32','vstmls.32','vstmge.32','vstmlt.32','vstmgt.32','vstmle.32',
+            'vstmeq.64','vstmne.64','vstmcs.64','vstmhs.64','vstmcc.64','vstmlo.64','vstmmi.64','vstmpl.64','vstmvs.64','vstmvc.64','vstmhi.64','vstmls.64','vstmge.64','vstmlt.64','vstmgt.64','vstmle.64',
+
+            'vstmiaeq','vstmiane','vstmiacs','vstmiahs','vstmiacc','vstmialo','vstmiami','vstmiapl','vstmiavs','vstmiavc','vstmiahi','vstmials','vstmiage','vstmialt','vstmiagt','vstmiale',
+            'vstmiaeq.32','vstmiane.32','vstmiacs.32','vstmiahs.32','vstmiacc.32','vstmialo.32','vstmiami.32','vstmiapl.32','vstmiavs.32','vstmiavc.32','vstmiahi.32','vstmials.32','vstmiage.32','vstmialt.32','vstmiagt.32','vstmiale.32',
+            'vstmiaeq.64','vstmiane.64','vstmiacs.64','vstmiahs.64','vstmiacc.64','vstmialo.64','vstmiami.64','vstmiapl.64','vstmiavs.64','vstmiavc.64','vstmiahi.64','vstmials.64','vstmiage.64','vstmialt.64','vstmiagt.64','vstmiale.64',
+
+            'vstmdbeq','vstmdbne','vstmdbcs','vstmdbhs','vstmdbcc','vstmdblo','vstmdbmi','vstmdbpl','vstmdbvs','vstmdbvc','vstmdbhi','vstmdbls','vstmdbge','vstmdblt','vstmdbgt','vstmdble',
+            'vstmdbeq.32','vstmdbne.32','vstmdbcs.32','vstmdbhs.32','vstmdbcc.32','vstmdblo.32','vstmdbmi.32','vstmdbpl.32','vstmdbvs.32','vstmdbvc.32','vstmdbhi.32','vstmdbls.32','vstmdbge.32','vstmdblt.32','vstmdbgt.32','vstmdble.32',
+            'vstmdbeq.64','vstmdbne.64','vstmdbcs.64','vstmdbhs.64','vstmdbcc.64','vstmdblo.64','vstmdbmi.64','vstmdbpl.64','vstmdbvs.64','vstmdbvc.64','vstmdbhi.64','vstmdbls.64','vstmdbge.64','vstmdblt.64','vstmdbgt.64','vstmdble.64',
+
+            'vstreq','vstrne','vstrcs','vstrhs','vstrcc','vstrlo','vstrmi','vstrpl','vstrvs','vstrvc','vstrhi','vstrls','vstrge','vstrlt','vstrgt','vstrle',
+            'vstreq.32','vstrne.32','vstrcs.32','vstrhs.32','vstrcc.32','vstrlo.32','vstrmi.32','vstrpl.32','vstrvs.32','vstrvc.32','vstrhi.32','vstrls.32','vstrge.32','vstrlt.32','vstrgt.32','vstrle.32',
+            'vstreq.64','vstrne.64','vstrcs.64','vstrhs.64','vstrcc.64','vstrlo.64','vstrmi.64','vstrpl.64','vstrvs.64','vstrvc.64','vstrhi.64','vstrls.64','vstrge.64','vstrlt.64','vstrgt.64','vstrle.64',
+
+            'vpusheq','vpushne','vpushcs','vpushhs','vpushcc','vpushlo','vpushmi','vpushpl','vpushvs','vpushvc','vpushhi','vpushls','vpushge','vpushlt','vpushgt','vpushle',
+            'vpusheq.32','vpushne.32','vpushcs.32','vpushhs.32','vpushcc.32','vpushlo.32','vpushmi.32','vpushpl.32','vpushvs.32','vpushvc.32','vpushhi.32','vpushls.32','vpushge.32','vpushlt.32','vpushgt.32','vpushle.32',
+            'vpusheq.64','vpushne.64','vpushcs.64','vpushhs.64','vpushcc.64','vpushlo.64','vpushmi.64','vpushpl.64','vpushvs.64','vpushvc.64','vpushhi.64','vpushls.64','vpushge.64','vpushlt.64','vpushgt.64','vpushle.64'
+            ),
+        /* Conditional NEON SIMD Logical Instructions */
+        28 => array(
+            'vandeq','vandne','vandcs','vandhs','vandcc','vandlo','vandmi','vandpl','vandvs','vandvc','vandhi','vandls','vandge','vandlt','vandgt','vandle',
+            'vandeq.i8','vandne.i8','vandcs.i8','vandhs.i8','vandcc.i8','vandlo.i8','vandmi.i8','vandpl.i8','vandvs.i8','vandvc.i8','vandhi.i8','vandls.i8','vandge.i8','vandlt.i8','vandgt.i8','vandle.i8',
+            'vandeq.i16','vandne.i16','vandcs.i16','vandhs.i16','vandcc.i16','vandlo.i16','vandmi.i16','vandpl.i16','vandvs.i16','vandvc.i16','vandhi.i16','vandls.i16','vandge.i16','vandlt.i16','vandgt.i16','vandle.i16',
+            'vandeq.i32','vandne.i32','vandcs.i32','vandhs.i32','vandcc.i32','vandlo.i32','vandmi.i32','vandpl.i32','vandvs.i32','vandvc.i32','vandhi.i32','vandls.i32','vandge.i32','vandlt.i32','vandgt.i32','vandle.i32',
+            'vandeq.i64','vandne.i64','vandcs.i64','vandhs.i64','vandcc.i64','vandlo.i64','vandmi.i64','vandpl.i64','vandvs.i64','vandvc.i64','vandhi.i64','vandls.i64','vandge.i64','vandlt.i64','vandgt.i64','vandle.i64',
+            'vandeq.s8','vandne.s8','vandcs.s8','vandhs.s8','vandcc.s8','vandlo.s8','vandmi.s8','vandpl.s8','vandvs.s8','vandvc.s8','vandhi.s8','vandls.s8','vandge.s8','vandlt.s8','vandgt.s8','vandle.s8',
+            'vandeq.s16','vandne.s16','vandcs.s16','vandhs.s16','vandcc.s16','vandlo.s16','vandmi.s16','vandpl.s16','vandvs.s16','vandvc.s16','vandhi.s16','vandls.s16','vandge.s16','vandlt.s16','vandgt.s16','vandle.s16',
+            'vandeq.s32','vandne.s32','vandcs.s32','vandhs.s32','vandcc.s32','vandlo.s32','vandmi.s32','vandpl.s32','vandvs.s32','vandvc.s32','vandhi.s32','vandls.s32','vandge.s32','vandlt.s32','vandgt.s32','vandle.s32',
+            'vandeq.s64','vandne.s64','vandcs.s64','vandhs.s64','vandcc.s64','vandlo.s64','vandmi.s64','vandpl.s64','vandvs.s64','vandvc.s64','vandhi.s64','vandls.s64','vandge.s64','vandlt.s64','vandgt.s64','vandle.s64',
+            'vandeq.u8','vandne.u8','vandcs.u8','vandhs.u8','vandcc.u8','vandlo.u8','vandmi.u8','vandpl.u8','vandvs.u8','vandvc.u8','vandhi.u8','vandls.u8','vandge.u8','vandlt.u8','vandgt.u8','vandle.u8',
+            'vandeq.u16','vandne.u16','vandcs.u16','vandhs.u16','vandcc.u16','vandlo.u16','vandmi.u16','vandpl.u16','vandvs.u16','vandvc.u16','vandhi.u16','vandls.u16','vandge.u16','vandlt.u16','vandgt.u16','vandle.u16',
+            'vandeq.u32','vandne.u32','vandcs.u32','vandhs.u32','vandcc.u32','vandlo.u32','vandmi.u32','vandpl.u32','vandvs.u32','vandvc.u32','vandhi.u32','vandls.u32','vandge.u32','vandlt.u32','vandgt.u32','vandle.u32',
+            'vandeq.u64','vandne.u64','vandcs.u64','vandhs.u64','vandcc.u64','vandlo.u64','vandmi.u64','vandpl.u64','vandvs.u64','vandvc.u64','vandhi.u64','vandls.u64','vandge.u64','vandlt.u64','vandgt.u64','vandle.u64',
+            'vandeq.f32','vandne.f32','vandcs.f32','vandhs.f32','vandcc.f32','vandlo.f32','vandmi.f32','vandpl.f32','vandvs.f32','vandvc.f32','vandhi.f32','vandls.f32','vandge.f32','vandlt.f32','vandgt.f32','vandle.f32',
+            'vandeq.f64','vandne.f64','vandcs.f64','vandhs.f64','vandcc.f64','vandlo.f64','vandmi.f64','vandpl.f64','vandvs.f64','vandvc.f64','vandhi.f64','vandls.f64','vandge.f64','vandlt.f64','vandgt.f64','vandle.f64',
+
+            'vbiceq','vbicne','vbiccs','vbichs','vbiccc','vbiclo','vbicmi','vbicpl','vbicvs','vbicvc','vbichi','vbicls','vbicge','vbiclt','vbicgt','vbicle',
+            'vbiceq.i8','vbicne.i8','vbiccs.i8','vbichs.i8','vbiccc.i8','vbiclo.i8','vbicmi.i8','vbicpl.i8','vbicvs.i8','vbicvc.i8','vbichi.i8','vbicls.i8','vbicge.i8','vbiclt.i8','vbicgt.i8','vbicle.i8',
+            'vbiceq.i16','vbicne.i16','vbiccs.i16','vbichs.i16','vbiccc.i16','vbiclo.i16','vbicmi.i16','vbicpl.i16','vbicvs.i16','vbicvc.i16','vbichi.i16','vbicls.i16','vbicge.i16','vbiclt.i16','vbicgt.i16','vbicle.i16',
+            'vbiceq.i32','vbicne.i32','vbiccs.i32','vbichs.i32','vbiccc.i32','vbiclo.i32','vbicmi.i32','vbicpl.i32','vbicvs.i32','vbicvc.i32','vbichi.i32','vbicls.i32','vbicge.i32','vbiclt.i32','vbicgt.i32','vbicle.i32',
+            'vbiceq.i64','vbicne.i64','vbiccs.i64','vbichs.i64','vbiccc.i64','vbiclo.i64','vbicmi.i64','vbicpl.i64','vbicvs.i64','vbicvc.i64','vbichi.i64','vbicls.i64','vbicge.i64','vbiclt.i64','vbicgt.i64','vbicle.i64',
+            'vbiceq.s8','vbicne.s8','vbiccs.s8','vbichs.s8','vbiccc.s8','vbiclo.s8','vbicmi.s8','vbicpl.s8','vbicvs.s8','vbicvc.s8','vbichi.s8','vbicls.s8','vbicge.s8','vbiclt.s8','vbicgt.s8','vbicle.s8',
+            'vbiceq.s16','vbicne.s16','vbiccs.s16','vbichs.s16','vbiccc.s16','vbiclo.s16','vbicmi.s16','vbicpl.s16','vbicvs.s16','vbicvc.s16','vbichi.s16','vbicls.s16','vbicge.s16','vbiclt.s16','vbicgt.s16','vbicle.s16',
+            'vbiceq.s32','vbicne.s32','vbiccs.s32','vbichs.s32','vbiccc.s32','vbiclo.s32','vbicmi.s32','vbicpl.s32','vbicvs.s32','vbicvc.s32','vbichi.s32','vbicls.s32','vbicge.s32','vbiclt.s32','vbicgt.s32','vbicle.s32',
+            'vbiceq.s64','vbicne.s64','vbiccs.s64','vbichs.s64','vbiccc.s64','vbiclo.s64','vbicmi.s64','vbicpl.s64','vbicvs.s64','vbicvc.s64','vbichi.s64','vbicls.s64','vbicge.s64','vbiclt.s64','vbicgt.s64','vbicle.s64',
+            'vbiceq.u8','vbicne.u8','vbiccs.u8','vbichs.u8','vbiccc.u8','vbiclo.u8','vbicmi.u8','vbicpl.u8','vbicvs.u8','vbicvc.u8','vbichi.u8','vbicls.u8','vbicge.u8','vbiclt.u8','vbicgt.u8','vbicle.u8',
+            'vbiceq.u16','vbicne.u16','vbiccs.u16','vbichs.u16','vbiccc.u16','vbiclo.u16','vbicmi.u16','vbicpl.u16','vbicvs.u16','vbicvc.u16','vbichi.u16','vbicls.u16','vbicge.u16','vbiclt.u16','vbicgt.u16','vbicle.u16',
+            'vbiceq.u32','vbicne.u32','vbiccs.u32','vbichs.u32','vbiccc.u32','vbiclo.u32','vbicmi.u32','vbicpl.u32','vbicvs.u32','vbicvc.u32','vbichi.u32','vbicls.u32','vbicge.u32','vbiclt.u32','vbicgt.u32','vbicle.u32',
+            'vbiceq.u64','vbicne.u64','vbiccs.u64','vbichs.u64','vbiccc.u64','vbiclo.u64','vbicmi.u64','vbicpl.u64','vbicvs.u64','vbicvc.u64','vbichi.u64','vbicls.u64','vbicge.u64','vbiclt.u64','vbicgt.u64','vbicle.u64',
+            'vbiceq.f32','vbicne.f32','vbiccs.f32','vbichs.f32','vbiccc.f32','vbiclo.f32','vbicmi.f32','vbicpl.f32','vbicvs.f32','vbicvc.f32','vbichi.f32','vbicls.f32','vbicge.f32','vbiclt.f32','vbicgt.f32','vbicle.f32',
+            'vbiceq.f64','vbicne.f64','vbiccs.f64','vbichs.f64','vbiccc.f64','vbiclo.f64','vbicmi.f64','vbicpl.f64','vbicvs.f64','vbicvc.f64','vbichi.f64','vbicls.f64','vbicge.f64','vbiclt.f64','vbicgt.f64','vbicle.f64',
+
+            'vbifeq','vbifne','vbifcs','vbifhs','vbifcc','vbiflo','vbifmi','vbifpl','vbifvs','vbifvc','vbifhi','vbifls','vbifge','vbiflt','vbifgt','vbifle',
+            'vbifeq.i8','vbifne.i8','vbifcs.i8','vbifhs.i8','vbifcc.i8','vbiflo.i8','vbifmi.i8','vbifpl.i8','vbifvs.i8','vbifvc.i8','vbifhi.i8','vbifls.i8','vbifge.i8','vbiflt.i8','vbifgt.i8','vbifle.i8',
+            'vbifeq.i16','vbifne.i16','vbifcs.i16','vbifhs.i16','vbifcc.i16','vbiflo.i16','vbifmi.i16','vbifpl.i16','vbifvs.i16','vbifvc.i16','vbifhi.i16','vbifls.i16','vbifge.i16','vbiflt.i16','vbifgt.i16','vbifle.i16',
+            'vbifeq.i32','vbifne.i32','vbifcs.i32','vbifhs.i32','vbifcc.i32','vbiflo.i32','vbifmi.i32','vbifpl.i32','vbifvs.i32','vbifvc.i32','vbifhi.i32','vbifls.i32','vbifge.i32','vbiflt.i32','vbifgt.i32','vbifle.i32',
+            'vbifeq.i64','vbifne.i64','vbifcs.i64','vbifhs.i64','vbifcc.i64','vbiflo.i64','vbifmi.i64','vbifpl.i64','vbifvs.i64','vbifvc.i64','vbifhi.i64','vbifls.i64','vbifge.i64','vbiflt.i64','vbifgt.i64','vbifle.i64',
+            'vbifeq.s8','vbifne.s8','vbifcs.s8','vbifhs.s8','vbifcc.s8','vbiflo.s8','vbifmi.s8','vbifpl.s8','vbifvs.s8','vbifvc.s8','vbifhi.s8','vbifls.s8','vbifge.s8','vbiflt.s8','vbifgt.s8','vbifle.s8',
+            'vbifeq.s16','vbifne.s16','vbifcs.s16','vbifhs.s16','vbifcc.s16','vbiflo.s16','vbifmi.s16','vbifpl.s16','vbifvs.s16','vbifvc.s16','vbifhi.s16','vbifls.s16','vbifge.s16','vbiflt.s16','vbifgt.s16','vbifle.s16',
+            'vbifeq.s32','vbifne.s32','vbifcs.s32','vbifhs.s32','vbifcc.s32','vbiflo.s32','vbifmi.s32','vbifpl.s32','vbifvs.s32','vbifvc.s32','vbifhi.s32','vbifls.s32','vbifge.s32','vbiflt.s32','vbifgt.s32','vbifle.s32',
+            'vbifeq.s64','vbifne.s64','vbifcs.s64','vbifhs.s64','vbifcc.s64','vbiflo.s64','vbifmi.s64','vbifpl.s64','vbifvs.s64','vbifvc.s64','vbifhi.s64','vbifls.s64','vbifge.s64','vbiflt.s64','vbifgt.s64','vbifle.s64',
+            'vbifeq.u8','vbifne.u8','vbifcs.u8','vbifhs.u8','vbifcc.u8','vbiflo.u8','vbifmi.u8','vbifpl.u8','vbifvs.u8','vbifvc.u8','vbifhi.u8','vbifls.u8','vbifge.u8','vbiflt.u8','vbifgt.u8','vbifle.u8',
+            'vbifeq.u16','vbifne.u16','vbifcs.u16','vbifhs.u16','vbifcc.u16','vbiflo.u16','vbifmi.u16','vbifpl.u16','vbifvs.u16','vbifvc.u16','vbifhi.u16','vbifls.u16','vbifge.u16','vbiflt.u16','vbifgt.u16','vbifle.u16',
+            'vbifeq.u32','vbifne.u32','vbifcs.u32','vbifhs.u32','vbifcc.u32','vbiflo.u32','vbifmi.u32','vbifpl.u32','vbifvs.u32','vbifvc.u32','vbifhi.u32','vbifls.u32','vbifge.u32','vbiflt.u32','vbifgt.u32','vbifle.u32',
+            'vbifeq.u64','vbifne.u64','vbifcs.u64','vbifhs.u64','vbifcc.u64','vbiflo.u64','vbifmi.u64','vbifpl.u64','vbifvs.u64','vbifvc.u64','vbifhi.u64','vbifls.u64','vbifge.u64','vbiflt.u64','vbifgt.u64','vbifle.u64',
+            'vbifeq.f32','vbifne.f32','vbifcs.f32','vbifhs.f32','vbifcc.f32','vbiflo.f32','vbifmi.f32','vbifpl.f32','vbifvs.f32','vbifvc.f32','vbifhi.f32','vbifls.f32','vbifge.f32','vbiflt.f32','vbifgt.f32','vbifle.f32',
+            'vbifeq.f64','vbifne.f64','vbifcs.f64','vbifhs.f64','vbifcc.f64','vbiflo.f64','vbifmi.f64','vbifpl.f64','vbifvs.f64','vbifvc.f64','vbifhi.f64','vbifls.f64','vbifge.f64','vbiflt.f64','vbifgt.f64','vbifle.f64',
+
+            'vbiteq','vbitne','vbitcs','vbiths','vbitcc','vbitlo','vbitmi','vbitpl','vbitvs','vbitvc','vbithi','vbitls','vbitge','vbitlt','vbitgt','vbitle',
+            'vbiteq.i8','vbitne.i8','vbitcs.i8','vbiths.i8','vbitcc.i8','vbitlo.i8','vbitmi.i8','vbitpl.i8','vbitvs.i8','vbitvc.i8','vbithi.i8','vbitls.i8','vbitge.i8','vbitlt.i8','vbitgt.i8','vbitle.i8',
+            'vbiteq.i16','vbitne.i16','vbitcs.i16','vbiths.i16','vbitcc.i16','vbitlo.i16','vbitmi.i16','vbitpl.i16','vbitvs.i16','vbitvc.i16','vbithi.i16','vbitls.i16','vbitge.i16','vbitlt.i16','vbitgt.i16','vbitle.i16',
+            'vbiteq.i32','vbitne.i32','vbitcs.i32','vbiths.i32','vbitcc.i32','vbitlo.i32','vbitmi.i32','vbitpl.i32','vbitvs.i32','vbitvc.i32','vbithi.i32','vbitls.i32','vbitge.i32','vbitlt.i32','vbitgt.i32','vbitle.i32',
+            'vbiteq.i64','vbitne.i64','vbitcs.i64','vbiths.i64','vbitcc.i64','vbitlo.i64','vbitmi.i64','vbitpl.i64','vbitvs.i64','vbitvc.i64','vbithi.i64','vbitls.i64','vbitge.i64','vbitlt.i64','vbitgt.i64','vbitle.i64',
+            'vbiteq.s8','vbitne.s8','vbitcs.s8','vbiths.s8','vbitcc.s8','vbitlo.s8','vbitmi.s8','vbitpl.s8','vbitvs.s8','vbitvc.s8','vbithi.s8','vbitls.s8','vbitge.s8','vbitlt.s8','vbitgt.s8','vbitle.s8',
+            'vbiteq.s16','vbitne.s16','vbitcs.s16','vbiths.s16','vbitcc.s16','vbitlo.s16','vbitmi.s16','vbitpl.s16','vbitvs.s16','vbitvc.s16','vbithi.s16','vbitls.s16','vbitge.s16','vbitlt.s16','vbitgt.s16','vbitle.s16',
+            'vbiteq.s32','vbitne.s32','vbitcs.s32','vbiths.s32','vbitcc.s32','vbitlo.s32','vbitmi.s32','vbitpl.s32','vbitvs.s32','vbitvc.s32','vbithi.s32','vbitls.s32','vbitge.s32','vbitlt.s32','vbitgt.s32','vbitle.s32',
+            'vbiteq.s64','vbitne.s64','vbitcs.s64','vbiths.s64','vbitcc.s64','vbitlo.s64','vbitmi.s64','vbitpl.s64','vbitvs.s64','vbitvc.s64','vbithi.s64','vbitls.s64','vbitge.s64','vbitlt.s64','vbitgt.s64','vbitle.s64',
+            'vbiteq.u8','vbitne.u8','vbitcs.u8','vbiths.u8','vbitcc.u8','vbitlo.u8','vbitmi.u8','vbitpl.u8','vbitvs.u8','vbitvc.u8','vbithi.u8','vbitls.u8','vbitge.u8','vbitlt.u8','vbitgt.u8','vbitle.u8',
+            'vbiteq.u16','vbitne.u16','vbitcs.u16','vbiths.u16','vbitcc.u16','vbitlo.u16','vbitmi.u16','vbitpl.u16','vbitvs.u16','vbitvc.u16','vbithi.u16','vbitls.u16','vbitge.u16','vbitlt.u16','vbitgt.u16','vbitle.u16',
+            'vbiteq.u32','vbitne.u32','vbitcs.u32','vbiths.u32','vbitcc.u32','vbitlo.u32','vbitmi.u32','vbitpl.u32','vbitvs.u32','vbitvc.u32','vbithi.u32','vbitls.u32','vbitge.u32','vbitlt.u32','vbitgt.u32','vbitle.u32',
+            'vbiteq.u64','vbitne.u64','vbitcs.u64','vbiths.u64','vbitcc.u64','vbitlo.u64','vbitmi.u64','vbitpl.u64','vbitvs.u64','vbitvc.u64','vbithi.u64','vbitls.u64','vbitge.u64','vbitlt.u64','vbitgt.u64','vbitle.u64',
+            'vbiteq.f32','vbitne.f32','vbitcs.f32','vbiths.f32','vbitcc.f32','vbitlo.f32','vbitmi.f32','vbitpl.f32','vbitvs.f32','vbitvc.f32','vbithi.f32','vbitls.f32','vbitge.f32','vbitlt.f32','vbitgt.f32','vbitle.f32',
+            'vbiteq.f64','vbitne.f64','vbitcs.f64','vbiths.f64','vbitcc.f64','vbitlo.f64','vbitmi.f64','vbitpl.f64','vbitvs.f64','vbitvc.f64','vbithi.f64','vbitls.f64','vbitge.f64','vbitlt.f64','vbitgt.f64','vbitle.f64',
+
+            'vbsleq','vbslne','vbslcs','vbslhs','vbslcc','vbsllo','vbslmi','vbslpl','vbslvs','vbslvc','vbslhi','vbslls','vbslge','vbsllt','vbslgt','vbslle',
+            'vbsleq.i8','vbslne.i8','vbslcs.i8','vbslhs.i8','vbslcc.i8','vbsllo.i8','vbslmi.i8','vbslpl.i8','vbslvs.i8','vbslvc.i8','vbslhi.i8','vbslls.i8','vbslge.i8','vbsllt.i8','vbslgt.i8','vbslle.i8',
+            'vbsleq.i16','vbslne.i16','vbslcs.i16','vbslhs.i16','vbslcc.i16','vbsllo.i16','vbslmi.i16','vbslpl.i16','vbslvs.i16','vbslvc.i16','vbslhi.i16','vbslls.i16','vbslge.i16','vbsllt.i16','vbslgt.i16','vbslle.i16',
+            'vbsleq.i32','vbslne.i32','vbslcs.i32','vbslhs.i32','vbslcc.i32','vbsllo.i32','vbslmi.i32','vbslpl.i32','vbslvs.i32','vbslvc.i32','vbslhi.i32','vbslls.i32','vbslge.i32','vbsllt.i32','vbslgt.i32','vbslle.i32',
+            'vbsleq.i64','vbslne.i64','vbslcs.i64','vbslhs.i64','vbslcc.i64','vbsllo.i64','vbslmi.i64','vbslpl.i64','vbslvs.i64','vbslvc.i64','vbslhi.i64','vbslls.i64','vbslge.i64','vbsllt.i64','vbslgt.i64','vbslle.i64',
+            'vbsleq.s8','vbslne.s8','vbslcs.s8','vbslhs.s8','vbslcc.s8','vbsllo.s8','vbslmi.s8','vbslpl.s8','vbslvs.s8','vbslvc.s8','vbslhi.s8','vbslls.s8','vbslge.s8','vbsllt.s8','vbslgt.s8','vbslle.s8',
+            'vbsleq.s16','vbslne.s16','vbslcs.s16','vbslhs.s16','vbslcc.s16','vbsllo.s16','vbslmi.s16','vbslpl.s16','vbslvs.s16','vbslvc.s16','vbslhi.s16','vbslls.s16','vbslge.s16','vbsllt.s16','vbslgt.s16','vbslle.s16',
+            'vbsleq.s32','vbslne.s32','vbslcs.s32','vbslhs.s32','vbslcc.s32','vbsllo.s32','vbslmi.s32','vbslpl.s32','vbslvs.s32','vbslvc.s32','vbslhi.s32','vbslls.s32','vbslge.s32','vbsllt.s32','vbslgt.s32','vbslle.s32',
+            'vbsleq.s64','vbslne.s64','vbslcs.s64','vbslhs.s64','vbslcc.s64','vbsllo.s64','vbslmi.s64','vbslpl.s64','vbslvs.s64','vbslvc.s64','vbslhi.s64','vbslls.s64','vbslge.s64','vbsllt.s64','vbslgt.s64','vbslle.s64',
+            'vbsleq.u8','vbslne.u8','vbslcs.u8','vbslhs.u8','vbslcc.u8','vbsllo.u8','vbslmi.u8','vbslpl.u8','vbslvs.u8','vbslvc.u8','vbslhi.u8','vbslls.u8','vbslge.u8','vbsllt.u8','vbslgt.u8','vbslle.u8',
+            'vbsleq.u16','vbslne.u16','vbslcs.u16','vbslhs.u16','vbslcc.u16','vbsllo.u16','vbslmi.u16','vbslpl.u16','vbslvs.u16','vbslvc.u16','vbslhi.u16','vbslls.u16','vbslge.u16','vbsllt.u16','vbslgt.u16','vbslle.u16',
+            'vbsleq.u32','vbslne.u32','vbslcs.u32','vbslhs.u32','vbslcc.u32','vbsllo.u32','vbslmi.u32','vbslpl.u32','vbslvs.u32','vbslvc.u32','vbslhi.u32','vbslls.u32','vbslge.u32','vbsllt.u32','vbslgt.u32','vbslle.u32',
+            'vbsleq.u64','vbslne.u64','vbslcs.u64','vbslhs.u64','vbslcc.u64','vbsllo.u64','vbslmi.u64','vbslpl.u64','vbslvs.u64','vbslvc.u64','vbslhi.u64','vbslls.u64','vbslge.u64','vbsllt.u64','vbslgt.u64','vbslle.u64',
+            'vbsleq.f32','vbslne.f32','vbslcs.f32','vbslhs.f32','vbslcc.f32','vbsllo.f32','vbslmi.f32','vbslpl.f32','vbslvs.f32','vbslvc.f32','vbslhi.f32','vbslls.f32','vbslge.f32','vbsllt.f32','vbslgt.f32','vbslle.f32',
+            'vbsleq.f64','vbslne.f64','vbslcs.f64','vbslhs.f64','vbslcc.f64','vbsllo.f64','vbslmi.f64','vbslpl.f64','vbslvs.f64','vbslvc.f64','vbslhi.f64','vbslls.f64','vbslge.f64','vbsllt.f64','vbslgt.f64','vbslle.f64',
+
+            'veoreq','veorne','veorcs','veorhs','veorcc','veorlo','veormi','veorpl','veorvs','veorvc','veorhi','veorls','veorge','veorlt','veorgt','veorle',
+            'veoreq.i8','veorne.i8','veorcs.i8','veorhs.i8','veorcc.i8','veorlo.i8','veormi.i8','veorpl.i8','veorvs.i8','veorvc.i8','veorhi.i8','veorls.i8','veorge.i8','veorlt.i8','veorgt.i8','veorle.i8',
+            'veoreq.i16','veorne.i16','veorcs.i16','veorhs.i16','veorcc.i16','veorlo.i16','veormi.i16','veorpl.i16','veorvs.i16','veorvc.i16','veorhi.i16','veorls.i16','veorge.i16','veorlt.i16','veorgt.i16','veorle.i16',
+            'veoreq.i32','veorne.i32','veorcs.i32','veorhs.i32','veorcc.i32','veorlo.i32','veormi.i32','veorpl.i32','veorvs.i32','veorvc.i32','veorhi.i32','veorls.i32','veorge.i32','veorlt.i32','veorgt.i32','veorle.i32',
+            'veoreq.i64','veorne.i64','veorcs.i64','veorhs.i64','veorcc.i64','veorlo.i64','veormi.i64','veorpl.i64','veorvs.i64','veorvc.i64','veorhi.i64','veorls.i64','veorge.i64','veorlt.i64','veorgt.i64','veorle.i64',
+            'veoreq.s8','veorne.s8','veorcs.s8','veorhs.s8','veorcc.s8','veorlo.s8','veormi.s8','veorpl.s8','veorvs.s8','veorvc.s8','veorhi.s8','veorls.s8','veorge.s8','veorlt.s8','veorgt.s8','veorle.s8',
+            'veoreq.s16','veorne.s16','veorcs.s16','veorhs.s16','veorcc.s16','veorlo.s16','veormi.s16','veorpl.s16','veorvs.s16','veorvc.s16','veorhi.s16','veorls.s16','veorge.s16','veorlt.s16','veorgt.s16','veorle.s16',
+            'veoreq.s32','veorne.s32','veorcs.s32','veorhs.s32','veorcc.s32','veorlo.s32','veormi.s32','veorpl.s32','veorvs.s32','veorvc.s32','veorhi.s32','veorls.s32','veorge.s32','veorlt.s32','veorgt.s32','veorle.s32',
+            'veoreq.s64','veorne.s64','veorcs.s64','veorhs.s64','veorcc.s64','veorlo.s64','veormi.s64','veorpl.s64','veorvs.s64','veorvc.s64','veorhi.s64','veorls.s64','veorge.s64','veorlt.s64','veorgt.s64','veorle.s64',
+            'veoreq.u8','veorne.u8','veorcs.u8','veorhs.u8','veorcc.u8','veorlo.u8','veormi.u8','veorpl.u8','veorvs.u8','veorvc.u8','veorhi.u8','veorls.u8','veorge.u8','veorlt.u8','veorgt.u8','veorle.u8',
+            'veoreq.u16','veorne.u16','veorcs.u16','veorhs.u16','veorcc.u16','veorlo.u16','veormi.u16','veorpl.u16','veorvs.u16','veorvc.u16','veorhi.u16','veorls.u16','veorge.u16','veorlt.u16','veorgt.u16','veorle.u16',
+            'veoreq.u32','veorne.u32','veorcs.u32','veorhs.u32','veorcc.u32','veorlo.u32','veormi.u32','veorpl.u32','veorvs.u32','veorvc.u32','veorhi.u32','veorls.u32','veorge.u32','veorlt.u32','veorgt.u32','veorle.u32',
+            'veoreq.u64','veorne.u64','veorcs.u64','veorhs.u64','veorcc.u64','veorlo.u64','veormi.u64','veorpl.u64','veorvs.u64','veorvc.u64','veorhi.u64','veorls.u64','veorge.u64','veorlt.u64','veorgt.u64','veorle.u64',
+            'veoreq.f32','veorne.f32','veorcs.f32','veorhs.f32','veorcc.f32','veorlo.f32','veormi.f32','veorpl.f32','veorvs.f32','veorvc.f32','veorhi.f32','veorls.f32','veorge.f32','veorlt.f32','veorgt.f32','veorle.f32',
+            'veoreq.f64','veorne.f64','veorcs.f64','veorhs.f64','veorcc.f64','veorlo.f64','veormi.f64','veorpl.f64','veorvs.f64','veorvc.f64','veorhi.f64','veorls.f64','veorge.f64','veorlt.f64','veorgt.f64','veorle.f64',
+
+            'vmoveq','vmovne','vmovcs','vmovhs','vmovcc','vmovlo','vmovmi','vmovpl','vmovvs','vmovvc','vmovhi','vmovls','vmovge','vmovlt','vmovgt','vmovle',
+            'vmoveq.8','vmovne.8','vmovcs.8','vmovhs.8','vmovcc.8','vmovlo.8','vmovmi.8','vmovpl.8','vmovvs.8','vmovvc.8','vmovhi.8','vmovls.8','vmovge.8','vmovlt.8','vmovgt.8','vmovle.8',
+            'vmoveq.16','vmovne.16','vmovcs.16','vmovhs.16','vmovcc.16','vmovlo.16','vmovmi.16','vmovpl.16','vmovvs.16','vmovvc.16','vmovhi.16','vmovls.16','vmovge.16','vmovlt.16','vmovgt.16','vmovle.16',
+            'vmoveq.32','vmovne.32','vmovcs.32','vmovhs.32','vmovcc.32','vmovlo.32','vmovmi.32','vmovpl.32','vmovvs.32','vmovvc.32','vmovhi.32','vmovls.32','vmovge.32','vmovlt.32','vmovgt.32','vmovle.32',
+            'vmoveq.i8','vmovne.i8','vmovcs.i8','vmovhs.i8','vmovcc.i8','vmovlo.i8','vmovmi.i8','vmovpl.i8','vmovvs.i8','vmovvc.i8','vmovhi.i8','vmovls.i8','vmovge.i8','vmovlt.i8','vmovgt.i8','vmovle.i8',
+            'vmoveq.i16','vmovne.i16','vmovcs.i16','vmovhs.i16','vmovcc.i16','vmovlo.i16','vmovmi.i16','vmovpl.i16','vmovvs.i16','vmovvc.i16','vmovhi.i16','vmovls.i16','vmovge.i16','vmovlt.i16','vmovgt.i16','vmovle.i16',
+            'vmoveq.i32','vmovne.i32','vmovcs.i32','vmovhs.i32','vmovcc.i32','vmovlo.i32','vmovmi.i32','vmovpl.i32','vmovvs.i32','vmovvc.i32','vmovhi.i32','vmovls.i32','vmovge.i32','vmovlt.i32','vmovgt.i32','vmovle.i32',
+            'vmoveq.i64','vmovne.i64','vmovcs.i64','vmovhs.i64','vmovcc.i64','vmovlo.i64','vmovmi.i64','vmovpl.i64','vmovvs.i64','vmovvc.i64','vmovhi.i64','vmovls.i64','vmovge.i64','vmovlt.i64','vmovgt.i64','vmovle.i64',
+            'vmoveq.f32','vmovne.f32','vmovcs.f32','vmovhs.f32','vmovcc.f32','vmovlo.f32','vmovmi.f32','vmovpl.f32','vmovvs.f32','vmovvc.f32','vmovhi.f32','vmovls.f32','vmovge.f32','vmovlt.f32','vmovgt.f32','vmovle.f32',
+            'vmoveq.f64','vmovne.f64','vmovcs.f64','vmovhs.f64','vmovcc.f64','vmovlo.f64','vmovmi.f64','vmovpl.f64','vmovvs.f64','vmovvc.f64','vmovhi.f64','vmovls.f64','vmovge.f64','vmovlt.f64','vmovgt.f64','vmovle.f64',
+
+            'vmvneq','vmvnne','vmvncs','vmvnhs','vmvncc','vmvnlo','vmvnmi','vmvnpl','vmvnvs','vmvnvc','vmvnhi','vmvnls','vmvnge','vmvnlt','vmvngt','vmvnle',
+            'vmvneq.s8','vmvnne.s8','vmvncs.s8','vmvnhs.s8','vmvncc.s8','vmvnlo.s8','vmvnmi.s8','vmvnpl.s8','vmvnvs.s8','vmvnvc.s8','vmvnhi.s8','vmvnls.s8','vmvnge.s8','vmvnlt.s8','vmvngt.s8','vmvnle.s8',
+            'vmvneq.s16','vmvnne.s16','vmvncs.s16','vmvnhs.s16','vmvncc.s16','vmvnlo.s16','vmvnmi.s16','vmvnpl.s16','vmvnvs.s16','vmvnvc.s16','vmvnhi.s16','vmvnls.s16','vmvnge.s16','vmvnlt.s16','vmvngt.s16','vmvnle.s16',
+            'vmvneq.s32','vmvnne.s32','vmvncs.s32','vmvnhs.s32','vmvncc.s32','vmvnlo.s32','vmvnmi.s32','vmvnpl.s32','vmvnvs.s32','vmvnvc.s32','vmvnhi.s32','vmvnls.s32','vmvnge.s32','vmvnlt.s32','vmvngt.s32','vmvnle.s32',
+            'vmvneq.s64','vmvnne.s64','vmvncs.s64','vmvnhs.s64','vmvncc.s64','vmvnlo.s64','vmvnmi.s64','vmvnpl.s64','vmvnvs.s64','vmvnvc.s64','vmvnhi.s64','vmvnls.s64','vmvnge.s64','vmvnlt.s64','vmvngt.s64','vmvnle.s64',
+            'vmvneq.u8','vmvnne.u8','vmvncs.u8','vmvnhs.u8','vmvncc.u8','vmvnlo.u8','vmvnmi.u8','vmvnpl.u8','vmvnvs.u8','vmvnvc.u8','vmvnhi.u8','vmvnls.u8','vmvnge.u8','vmvnlt.u8','vmvngt.u8','vmvnle.u8',
+            'vmvneq.u16','vmvnne.u16','vmvncs.u16','vmvnhs.u16','vmvncc.u16','vmvnlo.u16','vmvnmi.u16','vmvnpl.u16','vmvnvs.u16','vmvnvc.u16','vmvnhi.u16','vmvnls.u16','vmvnge.u16','vmvnlt.u16','vmvngt.u16','vmvnle.u16',
+            'vmvneq.u32','vmvnne.u32','vmvncs.u32','vmvnhs.u32','vmvncc.u32','vmvnlo.u32','vmvnmi.u32','vmvnpl.u32','vmvnvs.u32','vmvnvc.u32','vmvnhi.u32','vmvnls.u32','vmvnge.u32','vmvnlt.u32','vmvngt.u32','vmvnle.u32',
+            'vmvneq.u64','vmvnne.u64','vmvncs.u64','vmvnhs.u64','vmvncc.u64','vmvnlo.u64','vmvnmi.u64','vmvnpl.u64','vmvnvs.u64','vmvnvc.u64','vmvnhi.u64','vmvnls.u64','vmvnge.u64','vmvnlt.u64','vmvngt.u64','vmvnle.u64',
+            'vmvneq.i8','vmvnne.i8','vmvncs.i8','vmvnhs.i8','vmvncc.i8','vmvnlo.i8','vmvnmi.i8','vmvnpl.i8','vmvnvs.i8','vmvnvc.i8','vmvnhi.i8','vmvnls.i8','vmvnge.i8','vmvnlt.i8','vmvngt.i8','vmvnle.i8',
+            'vmvneq.i16','vmvnne.i16','vmvncs.i16','vmvnhs.i16','vmvncc.i16','vmvnlo.i16','vmvnmi.i16','vmvnpl.i16','vmvnvs.i16','vmvnvc.i16','vmvnhi.i16','vmvnls.i16','vmvnge.i16','vmvnlt.i16','vmvngt.i16','vmvnle.i16',
+            'vmvneq.i32','vmvnne.i32','vmvncs.i32','vmvnhs.i32','vmvncc.i32','vmvnlo.i32','vmvnmi.i32','vmvnpl.i32','vmvnvs.i32','vmvnvc.i32','vmvnhi.i32','vmvnls.i32','vmvnge.i32','vmvnlt.i32','vmvngt.i32','vmvnle.i32',
+            'vmvneq.i64','vmvnne.i64','vmvncs.i64','vmvnhs.i64','vmvncc.i64','vmvnlo.i64','vmvnmi.i64','vmvnpl.i64','vmvnvs.i64','vmvnvc.i64','vmvnhi.i64','vmvnls.i64','vmvnge.i64','vmvnlt.i64','vmvngt.i64','vmvnle.i64',
+            'vmvneq.f32','vmvnne.f32','vmvncs.f32','vmvnhs.f32','vmvncc.f32','vmvnlo.f32','vmvnmi.f32','vmvnpl.f32','vmvnvs.f32','vmvnvc.f32','vmvnhi.f32','vmvnls.f32','vmvnge.f32','vmvnlt.f32','vmvngt.f32','vmvnle.f32',
+            'vmvneq.f64','vmvnne.f64','vmvncs.f64','vmvnhs.f64','vmvncc.f64','vmvnlo.f64','vmvnmi.f64','vmvnpl.f64','vmvnvs.f64','vmvnvc.f64','vmvnhi.f64','vmvnls.f64','vmvnge.f64','vmvnlt.f64','vmvngt.f64','vmvnle.f64',
+
+            'vorneq','vornne','vorncs','vornhs','vorncc','vornlo','vornmi','vornpl','vornvs','vornvc','vornhi','vornls','vornge','vornlt','vorngt','vornle',
+            'vorneq.s8','vornne.s8','vorncs.s8','vornhs.s8','vorncc.s8','vornlo.s8','vornmi.s8','vornpl.s8','vornvs.s8','vornvc.s8','vornhi.s8','vornls.s8','vornge.s8','vornlt.s8','vorngt.s8','vornle.s8',
+            'vorneq.s16','vornne.s16','vorncs.s16','vornhs.s16','vorncc.s16','vornlo.s16','vornmi.s16','vornpl.s16','vornvs.s16','vornvc.s16','vornhi.s16','vornls.s16','vornge.s16','vornlt.s16','vorngt.s16','vornle.s16',
+            'vorneq.s32','vornne.s32','vorncs.s32','vornhs.s32','vorncc.s32','vornlo.s32','vornmi.s32','vornpl.s32','vornvs.s32','vornvc.s32','vornhi.s32','vornls.s32','vornge.s32','vornlt.s32','vorngt.s32','vornle.s32',
+            'vorneq.s64','vornne.s64','vorncs.s64','vornhs.s64','vorncc.s64','vornlo.s64','vornmi.s64','vornpl.s64','vornvs.s64','vornvc.s64','vornhi.s64','vornls.s64','vornge.s64','vornlt.s64','vorngt.s64','vornle.s64',
+            'vorneq.u8','vornne.u8','vorncs.u8','vornhs.u8','vorncc.u8','vornlo.u8','vornmi.u8','vornpl.u8','vornvs.u8','vornvc.u8','vornhi.u8','vornls.u8','vornge.u8','vornlt.u8','vorngt.u8','vornle.u8',
+            'vorneq.u16','vornne.u16','vorncs.u16','vornhs.u16','vorncc.u16','vornlo.u16','vornmi.u16','vornpl.u16','vornvs.u16','vornvc.u16','vornhi.u16','vornls.u16','vornge.u16','vornlt.u16','vorngt.u16','vornle.u16',
+            'vorneq.u32','vornne.u32','vorncs.u32','vornhs.u32','vorncc.u32','vornlo.u32','vornmi.u32','vornpl.u32','vornvs.u32','vornvc.u32','vornhi.u32','vornls.u32','vornge.u32','vornlt.u32','vorngt.u32','vornle.u32',
+            'vorneq.u64','vornne.u64','vorncs.u64','vornhs.u64','vorncc.u64','vornlo.u64','vornmi.u64','vornpl.u64','vornvs.u64','vornvc.u64','vornhi.u64','vornls.u64','vornge.u64','vornlt.u64','vorngt.u64','vornle.u64',
+            'vorneq.i8','vornne.i8','vorncs.i8','vornhs.i8','vorncc.i8','vornlo.i8','vornmi.i8','vornpl.i8','vornvs.i8','vornvc.i8','vornhi.i8','vornls.i8','vornge.i8','vornlt.i8','vorngt.i8','vornle.i8',
+            'vorneq.i16','vornne.i16','vorncs.i16','vornhs.i16','vorncc.i16','vornlo.i16','vornmi.i16','vornpl.i16','vornvs.i16','vornvc.i16','vornhi.i16','vornls.i16','vornge.i16','vornlt.i16','vorngt.i16','vornle.i16',
+            'vorneq.i32','vornne.i32','vorncs.i32','vornhs.i32','vorncc.i32','vornlo.i32','vornmi.i32','vornpl.i32','vornvs.i32','vornvc.i32','vornhi.i32','vornls.i32','vornge.i32','vornlt.i32','vorngt.i32','vornle.i32',
+            'vorneq.i64','vornne.i64','vorncs.i64','vornhs.i64','vorncc.i64','vornlo.i64','vornmi.i64','vornpl.i64','vornvs.i64','vornvc.i64','vornhi.i64','vornls.i64','vornge.i64','vornlt.i64','vorngt.i64','vornle.i64',
+            'vorneq.f32','vornne.f32','vorncs.f32','vornhs.f32','vorncc.f32','vornlo.f32','vornmi.f32','vornpl.f32','vornvs.f32','vornvc.f32','vornhi.f32','vornls.f32','vornge.f32','vornlt.f32','vorngt.f32','vornle.f32',
+            'vorneq.f64','vornne.f64','vorncs.f64','vornhs.f64','vorncc.f64','vornlo.f64','vornmi.f64','vornpl.f64','vornvs.f64','vornvc.f64','vornhi.f64','vornls.f64','vornge.f64','vornlt.f64','vorngt.f64','vornle.f64',
+
+            'vorreq','vorrne','vorrcs','vorrhs','vorrcc','vorrlo','vorrmi','vorrpl','vorrvs','vorrvc','vorrhi','vorrls','vorrge','vorrlt','vorrgt','vorrle',
+            'vorreq.s8','vorrne.s8','vorrcs.s8','vorrhs.s8','vorrcc.s8','vorrlo.s8','vorrmi.s8','vorrpl.s8','vorrvs.s8','vorrvc.s8','vorrhi.s8','vorrls.s8','vorrge.s8','vorrlt.s8','vorrgt.s8','vorrle.s8',
+            'vorreq.s16','vorrne.s16','vorrcs.s16','vorrhs.s16','vorrcc.s16','vorrlo.s16','vorrmi.s16','vorrpl.s16','vorrvs.s16','vorrvc.s16','vorrhi.s16','vorrls.s16','vorrge.s16','vorrlt.s16','vorrgt.s16','vorrle.s16',
+            'vorreq.s32','vorrne.s32','vorrcs.s32','vorrhs.s32','vorrcc.s32','vorrlo.s32','vorrmi.s32','vorrpl.s32','vorrvs.s32','vorrvc.s32','vorrhi.s32','vorrls.s32','vorrge.s32','vorrlt.s32','vorrgt.s32','vorrle.s32',
+            'vorreq.s64','vorrne.s64','vorrcs.s64','vorrhs.s64','vorrcc.s64','vorrlo.s64','vorrmi.s64','vorrpl.s64','vorrvs.s64','vorrvc.s64','vorrhi.s64','vorrls.s64','vorrge.s64','vorrlt.s64','vorrgt.s64','vorrle.s64',
+            'vorreq.u8','vorrne.u8','vorrcs.u8','vorrhs.u8','vorrcc.u8','vorrlo.u8','vorrmi.u8','vorrpl.u8','vorrvs.u8','vorrvc.u8','vorrhi.u8','vorrls.u8','vorrge.u8','vorrlt.u8','vorrgt.u8','vorrle.u8',
+            'vorreq.u16','vorrne.u16','vorrcs.u16','vorrhs.u16','vorrcc.u16','vorrlo.u16','vorrmi.u16','vorrpl.u16','vorrvs.u16','vorrvc.u16','vorrhi.u16','vorrls.u16','vorrge.u16','vorrlt.u16','vorrgt.u16','vorrle.u16',
+            'vorreq.u32','vorrne.u32','vorrcs.u32','vorrhs.u32','vorrcc.u32','vorrlo.u32','vorrmi.u32','vorrpl.u32','vorrvs.u32','vorrvc.u32','vorrhi.u32','vorrls.u32','vorrge.u32','vorrlt.u32','vorrgt.u32','vorrle.u32',
+            'vorreq.u64','vorrne.u64','vorrcs.u64','vorrhs.u64','vorrcc.u64','vorrlo.u64','vorrmi.u64','vorrpl.u64','vorrvs.u64','vorrvc.u64','vorrhi.u64','vorrls.u64','vorrge.u64','vorrlt.u64','vorrgt.u64','vorrle.u64',
+            'vorreq.i8','vorrne.i8','vorrcs.i8','vorrhs.i8','vorrcc.i8','vorrlo.i8','vorrmi.i8','vorrpl.i8','vorrvs.i8','vorrvc.i8','vorrhi.i8','vorrls.i8','vorrge.i8','vorrlt.i8','vorrgt.i8','vorrle.i8',
+            'vorreq.i16','vorrne.i16','vorrcs.i16','vorrhs.i16','vorrcc.i16','vorrlo.i16','vorrmi.i16','vorrpl.i16','vorrvs.i16','vorrvc.i16','vorrhi.i16','vorrls.i16','vorrge.i16','vorrlt.i16','vorrgt.i16','vorrle.i16',
+            'vorreq.i32','vorrne.i32','vorrcs.i32','vorrhs.i32','vorrcc.i32','vorrlo.i32','vorrmi.i32','vorrpl.i32','vorrvs.i32','vorrvc.i32','vorrhi.i32','vorrls.i32','vorrge.i32','vorrlt.i32','vorrgt.i32','vorrle.i32',
+            'vorreq.i64','vorrne.i64','vorrcs.i64','vorrhs.i64','vorrcc.i64','vorrlo.i64','vorrmi.i64','vorrpl.i64','vorrvs.i64','vorrvc.i64','vorrhi.i64','vorrls.i64','vorrge.i64','vorrlt.i64','vorrgt.i64','vorrle.i64',
+            'vorreq.f32','vorrne.f32','vorrcs.f32','vorrhs.f32','vorrcc.f32','vorrlo.f32','vorrmi.f32','vorrpl.f32','vorrvs.f32','vorrvc.f32','vorrhi.f32','vorrls.f32','vorrge.f32','vorrlt.f32','vorrgt.f32','vorrle.f32',
+            'vorreq.f64','vorrne.f64','vorrcs.f64','vorrhs.f64','vorrcc.f64','vorrlo.f64','vorrmi.f64','vorrpl.f64','vorrvs.f64','vorrvc.f64','vorrhi.f64','vorrls.f64','vorrge.f64','vorrlt.f64','vorrgt.f64','vorrle.f64',
+
+            'vswpeq','vswpne','vswpcs','vswphs','vswpcc','vswplo','vswpmi','vswppl','vswpvs','vswpvc','vswphi','vswpls','vswpge','vswplt','vswpgt','vswple',
+            'vswpeq.s8','vswpne.s8','vswpcs.s8','vswphs.s8','vswpcc.s8','vswplo.s8','vswpmi.s8','vswppl.s8','vswpvs.s8','vswpvc.s8','vswphi.s8','vswpls.s8','vswpge.s8','vswplt.s8','vswpgt.s8','vswple.s8',
+            'vswpeq.s16','vswpne.s16','vswpcs.s16','vswphs.s16','vswpcc.s16','vswplo.s16','vswpmi.s16','vswppl.s16','vswpvs.s16','vswpvc.s16','vswphi.s16','vswpls.s16','vswpge.s16','vswplt.s16','vswpgt.s16','vswple.s16',
+            'vswpeq.s32','vswpne.s32','vswpcs.s32','vswphs.s32','vswpcc.s32','vswplo.s32','vswpmi.s32','vswppl.s32','vswpvs.s32','vswpvc.s32','vswphi.s32','vswpls.s32','vswpge.s32','vswplt.s32','vswpgt.s32','vswple.s32',
+            'vswpeq.s64','vswpne.s64','vswpcs.s64','vswphs.s64','vswpcc.s64','vswplo.s64','vswpmi.s64','vswppl.s64','vswpvs.s64','vswpvc.s64','vswphi.s64','vswpls.s64','vswpge.s64','vswplt.s64','vswpgt.s64','vswple.s64',
+            'vswpeq.u8','vswpne.u8','vswpcs.u8','vswphs.u8','vswpcc.u8','vswplo.u8','vswpmi.u8','vswppl.u8','vswpvs.u8','vswpvc.u8','vswphi.u8','vswpls.u8','vswpge.u8','vswplt.u8','vswpgt.u8','vswple.u8',
+            'vswpeq.u16','vswpne.u16','vswpcs.u16','vswphs.u16','vswpcc.u16','vswplo.u16','vswpmi.u16','vswppl.u16','vswpvs.u16','vswpvc.u16','vswphi.u16','vswpls.u16','vswpge.u16','vswplt.u16','vswpgt.u16','vswple.u16',
+            'vswpeq.u32','vswpne.u32','vswpcs.u32','vswphs.u32','vswpcc.u32','vswplo.u32','vswpmi.u32','vswppl.u32','vswpvs.u32','vswpvc.u32','vswphi.u32','vswpls.u32','vswpge.u32','vswplt.u32','vswpgt.u32','vswple.u32',
+            'vswpeq.u64','vswpne.u64','vswpcs.u64','vswphs.u64','vswpcc.u64','vswplo.u64','vswpmi.u64','vswppl.u64','vswpvs.u64','vswpvc.u64','vswphi.u64','vswpls.u64','vswpge.u64','vswplt.u64','vswpgt.u64','vswple.u64',
+            'vswpeq.i8','vswpne.i8','vswpcs.i8','vswphs.i8','vswpcc.i8','vswplo.i8','vswpmi.i8','vswppl.i8','vswpvs.i8','vswpvc.i8','vswphi.i8','vswpls.i8','vswpge.i8','vswplt.i8','vswpgt.i8','vswple.i8',
+            'vswpeq.i16','vswpne.i16','vswpcs.i16','vswphs.i16','vswpcc.i16','vswplo.i16','vswpmi.i16','vswppl.i16','vswpvs.i16','vswpvc.i16','vswphi.i16','vswpls.i16','vswpge.i16','vswplt.i16','vswpgt.i16','vswple.i16',
+            'vswpeq.i32','vswpne.i32','vswpcs.i32','vswphs.i32','vswpcc.i32','vswplo.i32','vswpmi.i32','vswppl.i32','vswpvs.i32','vswpvc.i32','vswphi.i32','vswpls.i32','vswpge.i32','vswplt.i32','vswpgt.i32','vswple.i32',
+            'vswpeq.i64','vswpne.i64','vswpcs.i64','vswphs.i64','vswpcc.i64','vswplo.i64','vswpmi.i64','vswppl.i64','vswpvs.i64','vswpvc.i64','vswphi.i64','vswpls.i64','vswpge.i64','vswplt.i64','vswpgt.i64','vswple.i64',
+            'vswpeq.f32','vswpne.f32','vswpcs.f32','vswphs.f32','vswpcc.f32','vswplo.f32','vswpmi.f32','vswppl.f32','vswpvs.f32','vswpvc.f32','vswphi.f32','vswpls.f32','vswpge.f32','vswplt.f32','vswpgt.f32','vswple.f32',
+            'vswpeq.f64','vswpne.f64','vswpcs.f64','vswphs.f64','vswpcc.f64','vswplo.f64','vswpmi.f64','vswppl.f64','vswpvs.f64','vswpvc.f64','vswphi.f64','vswpls.f64','vswpge.f64','vswplt.f64','vswpgt.f64','vswple.f64'
+            ),
+        /* Conditional NEON SIMD ARM Registers Interop Instructions */
+        29 => array(
+            'vmrseq','vmrsne','vmrscs','vmrshs','vmrscc','vmrslo','vmrsmi','vmrspl','vmrsvs','vmrsvc','vmrshi','vmrsls','vmrsge','vmrslt','vmrsgt','vmrsle',
+            'vmsreq','vmsrne','vmsrcs','vmsrhs','vmsrcc','vmsrlo','vmsrmi','vmsrpl','vmsrvs','vmsrvc','vmsrhi','vmsrls','vmsrge','vmsrlt','vmsrgt','vmsrle'
+            ),
+        /* Conditional NEON SIMD Bit/Byte-Level Instructions */
+        30 => array(
+            'vcnteq.8','vcntne.8','vcntcs.8','vcnths.8','vcntcc.8','vcntlo.8','vcntmi.8','vcntpl.8','vcntvs.8','vcntvc.8','vcnthi.8','vcntls.8','vcntge.8','vcntlt.8','vcntgt.8','vcntle.8',
+            'vdupeq.8','vdupne.8','vdupcs.8','vduphs.8','vdupcc.8','vduplo.8','vdupmi.8','vduppl.8','vdupvs.8','vdupvc.8','vduphi.8','vdupls.8','vdupge.8','vduplt.8','vdupgt.8','vduple.8',
+
+            'vdupeq.16','vdupne.16','vdupcs.16','vduphs.16','vdupcc.16','vduplo.16','vdupmi.16','vduppl.16','vdupvs.16','vdupvc.16','vduphi.16','vdupls.16','vdupge.16','vduplt.16','vdupgt.16','vduple.16',
+            'vdupeq.32','vdupne.32','vdupcs.32','vduphs.32','vdupcc.32','vduplo.32','vdupmi.32','vduppl.32','vdupvs.32','vdupvc.32','vduphi.32','vdupls.32','vdupge.32','vduplt.32','vdupgt.32','vduple.32',
+
+            'vexteq.8','vextne.8','vextcs.8','vexths.8','vextcc.8','vextlo.8','vextmi.8','vextpl.8','vextvs.8','vextvc.8','vexthi.8','vextls.8','vextge.8','vextlt.8','vextgt.8','vextle.8',
+            'vexteq.16','vextne.16','vextcs.16','vexths.16','vextcc.16','vextlo.16','vextmi.16','vextpl.16','vextvs.16','vextvc.16','vexthi.16','vextls.16','vextge.16','vextlt.16','vextgt.16','vextle.16',
+
+            'vexteq.32','vextne.32','vextcs.32','vexths.32','vextcc.32','vextlo.32','vextmi.32','vextpl.32','vextvs.32','vextvc.32','vexthi.32','vextls.32','vextge.32','vextlt.32','vextgt.32','vextle.32',
+            'vexteq.64','vextne.64','vextcs.64','vexths.64','vextcc.64','vextlo.64','vextmi.64','vextpl.64','vextvs.64','vextvc.64','vexthi.64','vextls.64','vextge.64','vextlt.64','vextgt.64','vextle.64',
+
+            'vrev16eq.8','vrev16ne.8','vrev16cs.8','vrev16hs.8','vrev16cc.8','vrev16lo.8','vrev16mi.8','vrev16pl.8','vrev16vs.8','vrev16vc.8','vrev16hi.8','vrev16ls.8','vrev16ge.8','vrev16lt.8','vrev16gt.8','vrev16le.8',
+            'vrev32eq.8','vrev32ne.8','vrev32cs.8','vrev32hs.8','vrev32cc.8','vrev32lo.8','vrev32mi.8','vrev32pl.8','vrev32vs.8','vrev32vc.8','vrev32hi.8','vrev32ls.8','vrev32ge.8','vrev32lt.8','vrev32gt.8','vrev32le.8',
+            'vrev32eq.16','vrev32ne.16','vrev32cs.16','vrev32hs.16','vrev32cc.16','vrev32lo.16','vrev32mi.16','vrev32pl.16','vrev32vs.16','vrev32vc.16','vrev32hi.16','vrev32ls.16','vrev32ge.16','vrev32lt.16','vrev32gt.16','vrev32le.16',
+            'vrev64eq.8','vrev64ne.8','vrev64cs.8','vrev64hs.8','vrev64cc.8','vrev64lo.8','vrev64mi.8','vrev64pl.8','vrev64vs.8','vrev64vc.8','vrev64hi.8','vrev64ls.8','vrev64ge.8','vrev64lt.8','vrev64gt.8','vrev64le.8',
+            'vrev64eq.16','vrev64ne.16','vrev64cs.16','vrev64hs.16','vrev64cc.16','vrev64lo.16','vrev64mi.16','vrev64pl.16','vrev64vs.16','vrev64vc.16','vrev64hi.16','vrev64ls.16','vrev64ge.16','vrev64lt.16','vrev64gt.16','vrev64le.16',
+            'vrev64eq.32','vrev64ne.32','vrev64cs.32','vrev64hs.32','vrev64cc.32','vrev64lo.32','vrev64mi.32','vrev64pl.32','vrev64vs.32','vrev64vc.32','vrev64hi.32','vrev64ls.32','vrev64ge.32','vrev64lt.32','vrev64gt.32','vrev64le.32',
+
+            'vslieq.8','vsline.8','vslics.8','vslihs.8','vslicc.8','vslilo.8','vslimi.8','vslipl.8','vslivs.8','vslivc.8','vslihi.8','vslils.8','vslige.8','vslilt.8','vsligt.8','vslile.8',
+            'vslieq.16','vsline.16','vslics.16','vslihs.16','vslicc.16','vslilo.16','vslimi.16','vslipl.16','vslivs.16','vslivc.16','vslihi.16','vslils.16','vslige.16','vslilt.16','vsligt.16','vslile.16',
+            'vslieq.32','vsline.32','vslics.32','vslihs.32','vslicc.32','vslilo.32','vslimi.32','vslipl.32','vslivs.32','vslivc.32','vslihi.32','vslils.32','vslige.32','vslilt.32','vsligt.32','vslile.32',
+            'vslieq.64','vsline.64','vslics.64','vslihs.64','vslicc.64','vslilo.64','vslimi.64','vslipl.64','vslivs.64','vslivc.64','vslihi.64','vslils.64','vslige.64','vslilt.64','vsligt.64','vslile.64',
+
+            'vsrieq.8','vsrine.8','vsrics.8','vsrihs.8','vsricc.8','vsrilo.8','vsrimi.8','vsripl.8','vsrivs.8','vsrivc.8','vsrihi.8','vsrils.8','vsrige.8','vsrilt.8','vsrigt.8','vsrile.8',
+            'vsrieq.16','vsrine.16','vsrics.16','vsrihs.16','vsricc.16','vsrilo.16','vsrimi.16','vsripl.16','vsrivs.16','vsrivc.16','vsrihi.16','vsrils.16','vsrige.16','vsrilt.16','vsrigt.16','vsrile.16',
+            'vsrieq.32','vsrine.32','vsrics.32','vsrihs.32','vsricc.32','vsrilo.32','vsrimi.32','vsripl.32','vsrivs.32','vsrivc.32','vsrihi.32','vsrils.32','vsrige.32','vsrilt.32','vsrigt.32','vsrile.32',
+            'vsrieq.64','vsrine.64','vsrics.64','vsrihs.64','vsricc.64','vsrilo.64','vsrimi.64','vsripl.64','vsrivs.64','vsrivc.64','vsrihi.64','vsrils.64','vsrige.64','vsrilt.64','vsrigt.64','vsrile.64',
+
+            'vtbleq.8','vtblne.8','vtblcs.8','vtblhs.8','vtblcc.8','vtbllo.8','vtblmi.8','vtblpl.8','vtblvs.8','vtblvc.8','vtblhi.8','vtblls.8','vtblge.8','vtbllt.8','vtblgt.8','vtblle.8',
+
+            'vtbxeq','vtbxne','vtbxcs','vtbxhs','vtbxcc','vtbxlo','vtbxmi','vtbxpl','vtbxvs','vtbxvc','vtbxhi','vtbxls','vtbxge','vtbxlt','vtbxgt','vtbxle',
+
+            'vtrneq.8','vtrnne.8','vtrncs.8','vtrnhs.8','vtrncc.8','vtrnlo.8','vtrnmi.8','vtrnpl.8','vtrnvs.8','vtrnvc.8','vtrnhi.8','vtrnls.8','vtrnge.8','vtrnlt.8','vtrngt.8','vtrnle.8',
+            'vtrneq.16','vtrnne.16','vtrncs.16','vtrnhs.16','vtrncc.16','vtrnlo.16','vtrnmi.16','vtrnpl.16','vtrnvs.16','vtrnvc.16','vtrnhi.16','vtrnls.16','vtrnge.16','vtrnlt.16','vtrngt.16','vtrnle.16',
+            'vtrneq.32','vtrnne.32','vtrncs.32','vtrnhs.32','vtrncc.32','vtrnlo.32','vtrnmi.32','vtrnpl.32','vtrnvs.32','vtrnvc.32','vtrnhi.32','vtrnls.32','vtrnge.32','vtrnlt.32','vtrngt.32','vtrnle.32',
+
+            'vtsteq.8','vtstne.8','vtstcs.8','vtsths.8','vtstcc.8','vtstlo.8','vtstmi.8','vtstpl.8','vtstvs.8','vtstvc.8','vtsthi.8','vtstls.8','vtstge.8','vtstlt.8','vtstgt.8','vtstle.8',
+            'vtsteq.16','vtstne.16','vtstcs.16','vtsths.16','vtstcc.16','vtstlo.16','vtstmi.16','vtstpl.16','vtstvs.16','vtstvc.16','vtsthi.16','vtstls.16','vtstge.16','vtstlt.16','vtstgt.16','vtstle.16',
+            'vtsteq.32','vtstne.32','vtstcs.32','vtsths.32','vtstcc.32','vtstlo.32','vtstmi.32','vtstpl.32','vtstvs.32','vtstvc.32','vtsthi.32','vtstls.32','vtstge.32','vtstlt.32','vtstgt.32','vtstle.32',
+
+            'vuzpeq.8','vuzpne.8','vuzpcs.8','vuzphs.8','vuzpcc.8','vuzplo.8','vuzpmi.8','vuzppl.8','vuzpvs.8','vuzpvc.8','vuzphi.8','vuzpls.8','vuzpge.8','vuzplt.8','vuzpgt.8','vuzple.8',
+            'vuzpeq.16','vuzpne.16','vuzpcs.16','vuzphs.16','vuzpcc.16','vuzplo.16','vuzpmi.16','vuzppl.16','vuzpvs.16','vuzpvc.16','vuzphi.16','vuzpls.16','vuzpge.16','vuzplt.16','vuzpgt.16','vuzple.16',
+            'vuzpeq.32','vuzpne.32','vuzpcs.32','vuzphs.32','vuzpcc.32','vuzplo.32','vuzpmi.32','vuzppl.32','vuzpvs.32','vuzpvc.32','vuzphi.32','vuzpls.32','vuzpge.32','vuzplt.32','vuzpgt.32','vuzple.32',
+
+            'vzipeq.8','vzipne.8','vzipcs.8','vziphs.8','vzipcc.8','vziplo.8','vzipmi.8','vzippl.8','vzipvs.8','vzipvc.8','vziphi.8','vzipls.8','vzipge.8','vziplt.8','vzipgt.8','vziple.8',
+            'vzipeq.16','vzipne.16','vzipcs.16','vziphs.16','vzipcc.16','vziplo.16','vzipmi.16','vzippl.16','vzipvs.16','vzipvc.16','vziphi.16','vzipls.16','vzipge.16','vziplt.16','vzipgt.16','vziple.16',
+            'vzipeq.32','vzipne.32','vzipcs.32','vziphs.32','vzipcc.32','vziplo.32','vzipmi.32','vzippl.32','vzipvs.32','vzipvc.32','vziphi.32','vzipls.32','vzipge.32','vziplt.32','vzipgt.32','vziple.32',
+
+            'vmulleq.p8','vmullne.p8','vmullcs.p8','vmullhs.p8','vmullcc.p8','vmulllo.p8','vmullmi.p8','vmullpl.p8','vmullvs.p8','vmullvc.p8','vmullhi.p8','vmullls.p8','vmullge.p8','vmulllt.p8','vmullgt.p8','vmullle.p8'
+            ),
+        /* Conditional NEON SIMD Universal Integer Instructions */
+        31 => array(
+            'vaddeq.i8','vaddne.i8','vaddcs.i8','vaddhs.i8','vaddcc.i8','vaddlo.i8','vaddmi.i8','vaddpl.i8','vaddvs.i8','vaddvc.i8','vaddhi.i8','vaddls.i8','vaddge.i8','vaddlt.i8','vaddgt.i8','vaddle.i8',
+            'vaddeq.i16','vaddne.i16','vaddcs.i16','vaddhs.i16','vaddcc.i16','vaddlo.i16','vaddmi.i16','vaddpl.i16','vaddvs.i16','vaddvc.i16','vaddhi.i16','vaddls.i16','vaddge.i16','vaddlt.i16','vaddgt.i16','vaddle.i16',
+            'vaddeq.i32','vaddne.i32','vaddcs.i32','vaddhs.i32','vaddcc.i32','vaddlo.i32','vaddmi.i32','vaddpl.i32','vaddvs.i32','vaddvc.i32','vaddhi.i32','vaddls.i32','vaddge.i32','vaddlt.i32','vaddgt.i32','vaddle.i32',
+            'vaddeq.i64','vaddne.i64','vaddcs.i64','vaddhs.i64','vaddcc.i64','vaddlo.i64','vaddmi.i64','vaddpl.i64','vaddvs.i64','vaddvc.i64','vaddhi.i64','vaddls.i64','vaddge.i64','vaddlt.i64','vaddgt.i64','vaddle.i64',
+
+            'vsubeq.i8','vsubne.i8','vsubcs.i8','vsubhs.i8','vsubcc.i8','vsublo.i8','vsubmi.i8','vsubpl.i8','vsubvs.i8','vsubvc.i8','vsubhi.i8','vsubls.i8','vsubge.i8','vsublt.i8','vsubgt.i8','vsuble.i8',
+            'vsubeq.i16','vsubne.i16','vsubcs.i16','vsubhs.i16','vsubcc.i16','vsublo.i16','vsubmi.i16','vsubpl.i16','vsubvs.i16','vsubvc.i16','vsubhi.i16','vsubls.i16','vsubge.i16','vsublt.i16','vsubgt.i16','vsuble.i16',
+            'vsubeq.i32','vsubne.i32','vsubcs.i32','vsubhs.i32','vsubcc.i32','vsublo.i32','vsubmi.i32','vsubpl.i32','vsubvs.i32','vsubvc.i32','vsubhi.i32','vsubls.i32','vsubge.i32','vsublt.i32','vsubgt.i32','vsuble.i32',
+            'vsubeq.i64','vsubne.i64','vsubcs.i64','vsubhs.i64','vsubcc.i64','vsublo.i64','vsubmi.i64','vsubpl.i64','vsubvs.i64','vsubvc.i64','vsubhi.i64','vsubls.i64','vsubge.i64','vsublt.i64','vsubgt.i64','vsuble.i64',
+
+            'vaddhneq.i16','vaddhnne.i16','vaddhncs.i16','vaddhnhs.i16','vaddhncc.i16','vaddhnlo.i16','vaddhnmi.i16','vaddhnpl.i16','vaddhnvs.i16','vaddhnvc.i16','vaddhnhi.i16','vaddhnls.i16','vaddhnge.i16','vaddhnlt.i16','vaddhngt.i16','vaddhnle.i16',
+            'vaddhneq.i32','vaddhnne.i32','vaddhncs.i32','vaddhnhs.i32','vaddhncc.i32','vaddhnlo.i32','vaddhnmi.i32','vaddhnpl.i32','vaddhnvs.i32','vaddhnvc.i32','vaddhnhi.i32','vaddhnls.i32','vaddhnge.i32','vaddhnlt.i32','vaddhngt.i32','vaddhnle.i32',
+            'vaddhneq.i64','vaddhnne.i64','vaddhncs.i64','vaddhnhs.i64','vaddhncc.i64','vaddhnlo.i64','vaddhnmi.i64','vaddhnpl.i64','vaddhnvs.i64','vaddhnvc.i64','vaddhnhi.i64','vaddhnls.i64','vaddhnge.i64','vaddhnlt.i64','vaddhngt.i64','vaddhnle.i64',
+
+            'vsubhneq.i16','vsubhnne.i16','vsubhncs.i16','vsubhnhs.i16','vsubhncc.i16','vsubhnlo.i16','vsubhnmi.i16','vsubhnpl.i16','vsubhnvs.i16','vsubhnvc.i16','vsubhnhi.i16','vsubhnls.i16','vsubhnge.i16','vsubhnlt.i16','vsubhngt.i16','vsubhnle.i16',
+            'vsubhneq.i32','vsubhnne.i32','vsubhncs.i32','vsubhnhs.i32','vsubhncc.i32','vsubhnlo.i32','vsubhnmi.i32','vsubhnpl.i32','vsubhnvs.i32','vsubhnvc.i32','vsubhnhi.i32','vsubhnls.i32','vsubhnge.i32','vsubhnlt.i32','vsubhngt.i32','vsubhnle.i32',
+            'vsubhneq.i64','vsubhnne.i64','vsubhncs.i64','vsubhnhs.i64','vsubhncc.i64','vsubhnlo.i64','vsubhnmi.i64','vsubhnpl.i64','vsubhnvs.i64','vsubhnvc.i64','vsubhnhi.i64','vsubhnls.i64','vsubhnge.i64','vsubhnlt.i64','vsubhngt.i64','vsubhnle.i64',
+
+            'vraddhneq.i16','vraddhnne.i16','vraddhncs.i16','vraddhnhs.i16','vraddhncc.i16','vraddhnlo.i16','vraddhnmi.i16','vraddhnpl.i16','vraddhnvs.i16','vraddhnvc.i16','vraddhnhi.i16','vraddhnls.i16','vraddhnge.i16','vraddhnlt.i16','vraddhngt.i16','vraddhnle.i16',
+            'vraddhneq.i32','vraddhnne.i32','vraddhncs.i32','vraddhnhs.i32','vraddhncc.i32','vraddhnlo.i32','vraddhnmi.i32','vraddhnpl.i32','vraddhnvs.i32','vraddhnvc.i32','vraddhnhi.i32','vraddhnls.i32','vraddhnge.i32','vraddhnlt.i32','vraddhngt.i32','vraddhnle.i32',
+            'vraddhneq.i64','vraddhnne.i64','vraddhncs.i64','vraddhnhs.i64','vraddhncc.i64','vraddhnlo.i64','vraddhnmi.i64','vraddhnpl.i64','vraddhnvs.i64','vraddhnvc.i64','vraddhnhi.i64','vraddhnls.i64','vraddhnge.i64','vraddhnlt.i64','vraddhngt.i64','vraddhnle.i64',
+
+            'vrsubhneq.i16','vrsubhnne.i16','vrsubhncs.i16','vrsubhnhs.i16','vrsubhncc.i16','vrsubhnlo.i16','vrsubhnmi.i16','vrsubhnpl.i16','vrsubhnvs.i16','vrsubhnvc.i16','vrsubhnhi.i16','vrsubhnls.i16','vrsubhnge.i16','vrsubhnlt.i16','vrsubhngt.i16','vrsubhnle.i16',
+            'vrsubhneq.i32','vrsubhnne.i32','vrsubhncs.i32','vrsubhnhs.i32','vrsubhncc.i32','vrsubhnlo.i32','vrsubhnmi.i32','vrsubhnpl.i32','vrsubhnvs.i32','vrsubhnvc.i32','vrsubhnhi.i32','vrsubhnls.i32','vrsubhnge.i32','vrsubhnlt.i32','vrsubhngt.i32','vrsubhnle.i32',
+            'vrsubhneq.i64','vrsubhnne.i64','vrsubhncs.i64','vrsubhnhs.i64','vrsubhncc.i64','vrsubhnlo.i64','vrsubhnmi.i64','vrsubhnpl.i64','vrsubhnvs.i64','vrsubhnvc.i64','vrsubhnhi.i64','vrsubhnls.i64','vrsubhnge.i64','vrsubhnlt.i64','vrsubhngt.i64','vrsubhnle.i64',
+
+            'vpaddeq.i8','vpaddne.i8','vpaddcs.i8','vpaddhs.i8','vpaddcc.i8','vpaddlo.i8','vpaddmi.i8','vpaddpl.i8','vpaddvs.i8','vpaddvc.i8','vpaddhi.i8','vpaddls.i8','vpaddge.i8','vpaddlt.i8','vpaddgt.i8','vpaddle.i8',
+            'vpaddeq.i16','vpaddne.i16','vpaddcs.i16','vpaddhs.i16','vpaddcc.i16','vpaddlo.i16','vpaddmi.i16','vpaddpl.i16','vpaddvs.i16','vpaddvc.i16','vpaddhi.i16','vpaddls.i16','vpaddge.i16','vpaddlt.i16','vpaddgt.i16','vpaddle.i16',
+            'vpaddeq.i32','vpaddne.i32','vpaddcs.i32','vpaddhs.i32','vpaddcc.i32','vpaddlo.i32','vpaddmi.i32','vpaddpl.i32','vpaddvs.i32','vpaddvc.i32','vpaddhi.i32','vpaddls.i32','vpaddge.i32','vpaddlt.i32','vpaddgt.i32','vpaddle.i32',
+
+            'vceqeq.i8','vceqne.i8','vceqcs.i8','vceqhs.i8','vceqcc.i8','vceqlo.i8','vceqmi.i8','vceqpl.i8','vceqvs.i8','vceqvc.i8','vceqhi.i8','vceqls.i8','vceqge.i8','vceqlt.i8','vceqgt.i8','vceqle.i8',
+            'vceqeq.i16','vceqne.i16','vceqcs.i16','vceqhs.i16','vceqcc.i16','vceqlo.i16','vceqmi.i16','vceqpl.i16','vceqvs.i16','vceqvc.i16','vceqhi.i16','vceqls.i16','vceqge.i16','vceqlt.i16','vceqgt.i16','vceqle.i16',
+            'vceqeq.i32','vceqne.i32','vceqcs.i32','vceqhs.i32','vceqcc.i32','vceqlo.i32','vceqmi.i32','vceqpl.i32','vceqvs.i32','vceqvc.i32','vceqhi.i32','vceqls.i32','vceqge.i32','vceqlt.i32','vceqgt.i32','vceqle.i32',
+
+            'vclzeq.i8','vclzne.i8','vclzcs.i8','vclzhs.i8','vclzcc.i8','vclzlo.i8','vclzmi.i8','vclzpl.i8','vclzvs.i8','vclzvc.i8','vclzhi.i8','vclzls.i8','vclzge.i8','vclzlt.i8','vclzgt.i8','vclzle.i8',
+            'vclzeq.i16','vclzne.i16','vclzcs.i16','vclzhs.i16','vclzcc.i16','vclzlo.i16','vclzmi.i16','vclzpl.i16','vclzvs.i16','vclzvc.i16','vclzhi.i16','vclzls.i16','vclzge.i16','vclzlt.i16','vclzgt.i16','vclzle.i16',
+            'vclzeq.i32','vclzne.i32','vclzcs.i32','vclzhs.i32','vclzcc.i32','vclzlo.i32','vclzmi.i32','vclzpl.i32','vclzvs.i32','vclzvc.i32','vclzhi.i32','vclzls.i32','vclzge.i32','vclzlt.i32','vclzgt.i32','vclzle.i32',
+
+            'vmovneq.i16','vmovnne.i16','vmovncs.i16','vmovnhs.i16','vmovncc.i16','vmovnlo.i16','vmovnmi.i16','vmovnpl.i16','vmovnvs.i16','vmovnvc.i16','vmovnhi.i16','vmovnls.i16','vmovnge.i16','vmovnlt.i16','vmovngt.i16','vmovnle.i16',
+            'vmovneq.i32','vmovnne.i32','vmovncs.i32','vmovnhs.i32','vmovncc.i32','vmovnlo.i32','vmovnmi.i32','vmovnpl.i32','vmovnvs.i32','vmovnvc.i32','vmovnhi.i32','vmovnls.i32','vmovnge.i32','vmovnlt.i32','vmovngt.i32','vmovnle.i32',
+            'vmovneq.i64','vmovnne.i64','vmovncs.i64','vmovnhs.i64','vmovncc.i64','vmovnlo.i64','vmovnmi.i64','vmovnpl.i64','vmovnvs.i64','vmovnvc.i64','vmovnhi.i64','vmovnls.i64','vmovnge.i64','vmovnlt.i64','vmovngt.i64','vmovnle.i64',
+
+            'vmlaeq.s8','vmlane.s8','vmlacs.s8','vmlahs.s8','vmlacc.s8','vmlalo.s8','vmlami.s8','vmlapl.s8','vmlavs.s8','vmlavc.s8','vmlahi.s8','vmlals.s8','vmlage.s8','vmlalt.s8','vmlagt.s8','vmlale.s8',
+            'vmlaeq.s16','vmlane.s16','vmlacs.s16','vmlahs.s16','vmlacc.s16','vmlalo.s16','vmlami.s16','vmlapl.s16','vmlavs.s16','vmlavc.s16','vmlahi.s16','vmlals.s16','vmlage.s16','vmlalt.s16','vmlagt.s16','vmlale.s16',
+            'vmlaeq.s32','vmlane.s32','vmlacs.s32','vmlahs.s32','vmlacc.s32','vmlalo.s32','vmlami.s32','vmlapl.s32','vmlavs.s32','vmlavc.s32','vmlahi.s32','vmlals.s32','vmlage.s32','vmlalt.s32','vmlagt.s32','vmlale.s32',
+            'vmlaeq.u8','vmlane.u8','vmlacs.u8','vmlahs.u8','vmlacc.u8','vmlalo.u8','vmlami.u8','vmlapl.u8','vmlavs.u8','vmlavc.u8','vmlahi.u8','vmlals.u8','vmlage.u8','vmlalt.u8','vmlagt.u8','vmlale.u8',
+            'vmlaeq.u16','vmlane.u16','vmlacs.u16','vmlahs.u16','vmlacc.u16','vmlalo.u16','vmlami.u16','vmlapl.u16','vmlavs.u16','vmlavc.u16','vmlahi.u16','vmlals.u16','vmlage.u16','vmlalt.u16','vmlagt.u16','vmlale.u16',
+            'vmlaeq.u32','vmlane.u32','vmlacs.u32','vmlahs.u32','vmlacc.u32','vmlalo.u32','vmlami.u32','vmlapl.u32','vmlavs.u32','vmlavc.u32','vmlahi.u32','vmlals.u32','vmlage.u32','vmlalt.u32','vmlagt.u32','vmlale.u32',
+            'vmlaeq.i8','vmlane.i8','vmlacs.i8','vmlahs.i8','vmlacc.i8','vmlalo.i8','vmlami.i8','vmlapl.i8','vmlavs.i8','vmlavc.i8','vmlahi.i8','vmlals.i8','vmlage.i8','vmlalt.i8','vmlagt.i8','vmlale.i8',
+            'vmlaeq.i16','vmlane.i16','vmlacs.i16','vmlahs.i16','vmlacc.i16','vmlalo.i16','vmlami.i16','vmlapl.i16','vmlavs.i16','vmlavc.i16','vmlahi.i16','vmlals.i16','vmlage.i16','vmlalt.i16','vmlagt.i16','vmlale.i16',
+            'vmlaeq.i32','vmlane.i32','vmlacs.i32','vmlahs.i32','vmlacc.i32','vmlalo.i32','vmlami.i32','vmlapl.i32','vmlavs.i32','vmlavc.i32','vmlahi.i32','vmlals.i32','vmlage.i32','vmlalt.i32','vmlagt.i32','vmlale.i32',
+
+            'vmlseq.s8','vmlsne.s8','vmlscs.s8','vmlshs.s8','vmlscc.s8','vmlslo.s8','vmlsmi.s8','vmlspl.s8','vmlsvs.s8','vmlsvc.s8','vmlshi.s8','vmlsls.s8','vmlsge.s8','vmlslt.s8','vmlsgt.s8','vmlsle.s8',
+            'vmlseq.s16','vmlsne.s16','vmlscs.s16','vmlshs.s16','vmlscc.s16','vmlslo.s16','vmlsmi.s16','vmlspl.s16','vmlsvs.s16','vmlsvc.s16','vmlshi.s16','vmlsls.s16','vmlsge.s16','vmlslt.s16','vmlsgt.s16','vmlsle.s16',
+            'vmlseq.s32','vmlsne.s32','vmlscs.s32','vmlshs.s32','vmlscc.s32','vmlslo.s32','vmlsmi.s32','vmlspl.s32','vmlsvs.s32','vmlsvc.s32','vmlshi.s32','vmlsls.s32','vmlsge.s32','vmlslt.s32','vmlsgt.s32','vmlsle.s32',
+            'vmlseq.u8','vmlsne.u8','vmlscs.u8','vmlshs.u8','vmlscc.u8','vmlslo.u8','vmlsmi.u8','vmlspl.u8','vmlsvs.u8','vmlsvc.u8','vmlshi.u8','vmlsls.u8','vmlsge.u8','vmlslt.u8','vmlsgt.u8','vmlsle.u8',
+            'vmlseq.u16','vmlsne.u16','vmlscs.u16','vmlshs.u16','vmlscc.u16','vmlslo.u16','vmlsmi.u16','vmlspl.u16','vmlsvs.u16','vmlsvc.u16','vmlshi.u16','vmlsls.u16','vmlsge.u16','vmlslt.u16','vmlsgt.u16','vmlsle.u16',
+            'vmlseq.u32','vmlsne.u32','vmlscs.u32','vmlshs.u32','vmlscc.u32','vmlslo.u32','vmlsmi.u32','vmlspl.u32','vmlsvs.u32','vmlsvc.u32','vmlshi.u32','vmlsls.u32','vmlsge.u32','vmlslt.u32','vmlsgt.u32','vmlsle.u32',
+            'vmlseq.i8','vmlsne.i8','vmlscs.i8','vmlshs.i8','vmlscc.i8','vmlslo.i8','vmlsmi.i8','vmlspl.i8','vmlsvs.i8','vmlsvc.i8','vmlshi.i8','vmlsls.i8','vmlsge.i8','vmlslt.i8','vmlsgt.i8','vmlsle.i8',
+            'vmlseq.i16','vmlsne.i16','vmlscs.i16','vmlshs.i16','vmlscc.i16','vmlslo.i16','vmlsmi.i16','vmlspl.i16','vmlsvs.i16','vmlsvc.i16','vmlshi.i16','vmlsls.i16','vmlsge.i16','vmlslt.i16','vmlsgt.i16','vmlsle.i16',
+            'vmlseq.i32','vmlsne.i32','vmlscs.i32','vmlshs.i32','vmlscc.i32','vmlslo.i32','vmlsmi.i32','vmlspl.i32','vmlsvs.i32','vmlsvc.i32','vmlshi.i32','vmlsls.i32','vmlsge.i32','vmlslt.i32','vmlsgt.i32','vmlsle.i32',
+
+            'vmuleq.s8','vmulne.s8','vmulcs.s8','vmulhs.s8','vmulcc.s8','vmullo.s8','vmulmi.s8','vmulpl.s8','vmulvs.s8','vmulvc.s8','vmulhi.s8','vmulls.s8','vmulge.s8','vmullt.s8','vmulgt.s8','vmulle.s8',
+            'vmuleq.s16','vmulne.s16','vmulcs.s16','vmulhs.s16','vmulcc.s16','vmullo.s16','vmulmi.s16','vmulpl.s16','vmulvs.s16','vmulvc.s16','vmulhi.s16','vmulls.s16','vmulge.s16','vmullt.s16','vmulgt.s16','vmulle.s16',
+            'vmuleq.s32','vmulne.s32','vmulcs.s32','vmulhs.s32','vmulcc.s32','vmullo.s32','vmulmi.s32','vmulpl.s32','vmulvs.s32','vmulvc.s32','vmulhi.s32','vmulls.s32','vmulge.s32','vmullt.s32','vmulgt.s32','vmulle.s32',
+            'vmuleq.u8','vmulne.u8','vmulcs.u8','vmulhs.u8','vmulcc.u8','vmullo.u8','vmulmi.u8','vmulpl.u8','vmulvs.u8','vmulvc.u8','vmulhi.u8','vmulls.u8','vmulge.u8','vmullt.u8','vmulgt.u8','vmulle.u8',
+            'vmuleq.u16','vmulne.u16','vmulcs.u16','vmulhs.u16','vmulcc.u16','vmullo.u16','vmulmi.u16','vmulpl.u16','vmulvs.u16','vmulvc.u16','vmulhi.u16','vmulls.u16','vmulge.u16','vmullt.u16','vmulgt.u16','vmulle.u16',
+            'vmuleq.u32','vmulne.u32','vmulcs.u32','vmulhs.u32','vmulcc.u32','vmullo.u32','vmulmi.u32','vmulpl.u32','vmulvs.u32','vmulvc.u32','vmulhi.u32','vmulls.u32','vmulge.u32','vmullt.u32','vmulgt.u32','vmulle.u32',
+            'vmuleq.i8','vmulne.i8','vmulcs.i8','vmulhs.i8','vmulcc.i8','vmullo.i8','vmulmi.i8','vmulpl.i8','vmulvs.i8','vmulvc.i8','vmulhi.i8','vmulls.i8','vmulge.i8','vmullt.i8','vmulgt.i8','vmulle.i8',
+            'vmuleq.i16','vmulne.i16','vmulcs.i16','vmulhs.i16','vmulcc.i16','vmullo.i16','vmulmi.i16','vmulpl.i16','vmulvs.i16','vmulvc.i16','vmulhi.i16','vmulls.i16','vmulge.i16','vmullt.i16','vmulgt.i16','vmulle.i16',
+            'vmuleq.i32','vmulne.i32','vmulcs.i32','vmulhs.i32','vmulcc.i32','vmullo.i32','vmulmi.i32','vmulpl.i32','vmulvs.i32','vmulvc.i32','vmulhi.i32','vmulls.i32','vmulge.i32','vmullt.i32','vmulgt.i32','vmulle.i32',
+            'vmuleq.p8','vmulne.p8','vmulcs.p8','vmulhs.p8','vmulcc.p8','vmullo.p8','vmulmi.p8','vmulpl.p8','vmulvs.p8','vmulvc.p8','vmulhi.p8','vmulls.p8','vmulge.p8','vmullt.p8','vmulgt.p8','vmulle.p8',
+
+            'vrshrneq.i16','vrshrnne.i16','vrshrncs.i16','vrshrnhs.i16','vrshrncc.i16','vrshrnlo.i16','vrshrnmi.i16','vrshrnpl.i16','vrshrnvs.i16','vrshrnvc.i16','vrshrnhi.i16','vrshrnls.i16','vrshrnge.i16','vrshrnlt.i16','vrshrngt.i16','vrshrnle.i16',
+            'vrshrneq.i32','vrshrnne.i32','vrshrncs.i32','vrshrnhs.i32','vrshrncc.i32','vrshrnlo.i32','vrshrnmi.i32','vrshrnpl.i32','vrshrnvs.i32','vrshrnvc.i32','vrshrnhi.i32','vrshrnls.i32','vrshrnge.i32','vrshrnlt.i32','vrshrngt.i32','vrshrnle.i32',
+            'vrshrneq.i64','vrshrnne.i64','vrshrncs.i64','vrshrnhs.i64','vrshrncc.i64','vrshrnlo.i64','vrshrnmi.i64','vrshrnpl.i64','vrshrnvs.i64','vrshrnvc.i64','vrshrnhi.i64','vrshrnls.i64','vrshrnge.i64','vrshrnlt.i64','vrshrngt.i64','vrshrnle.i64',
+
+            'vshrneq.i16','vshrnne.i16','vshrncs.i16','vshrnhs.i16','vshrncc.i16','vshrnlo.i16','vshrnmi.i16','vshrnpl.i16','vshrnvs.i16','vshrnvc.i16','vshrnhi.i16','vshrnls.i16','vshrnge.i16','vshrnlt.i16','vshrngt.i16','vshrnle.i16',
+            'vshrneq.i32','vshrnne.i32','vshrncs.i32','vshrnhs.i32','vshrncc.i32','vshrnlo.i32','vshrnmi.i32','vshrnpl.i32','vshrnvs.i32','vshrnvc.i32','vshrnhi.i32','vshrnls.i32','vshrnge.i32','vshrnlt.i32','vshrngt.i32','vshrnle.i32',
+            'vshrneq.i64','vshrnne.i64','vshrncs.i64','vshrnhs.i64','vshrncc.i64','vshrnlo.i64','vshrnmi.i64','vshrnpl.i64','vshrnvs.i64','vshrnvc.i64','vshrnhi.i64','vshrnls.i64','vshrnge.i64','vshrnlt.i64','vshrngt.i64','vshrnle.i64',
+
+            'vshleq.i8','vshlne.i8','vshlcs.i8','vshlhs.i8','vshlcc.i8','vshllo.i8','vshlmi.i8','vshlpl.i8','vshlvs.i8','vshlvc.i8','vshlhi.i8','vshlls.i8','vshlge.i8','vshllt.i8','vshlgt.i8','vshlle.i8',
+            'vshleq.i16','vshlne.i16','vshlcs.i16','vshlhs.i16','vshlcc.i16','vshllo.i16','vshlmi.i16','vshlpl.i16','vshlvs.i16','vshlvc.i16','vshlhi.i16','vshlls.i16','vshlge.i16','vshllt.i16','vshlgt.i16','vshlle.i16',
+            'vshleq.i32','vshlne.i32','vshlcs.i32','vshlhs.i32','vshlcc.i32','vshllo.i32','vshlmi.i32','vshlpl.i32','vshlvs.i32','vshlvc.i32','vshlhi.i32','vshlls.i32','vshlge.i32','vshllt.i32','vshlgt.i32','vshlle.i32',
+            'vshleq.i64','vshlne.i64','vshlcs.i64','vshlhs.i64','vshlcc.i64','vshllo.i64','vshlmi.i64','vshlpl.i64','vshlvs.i64','vshlvc.i64','vshlhi.i64','vshlls.i64','vshlge.i64','vshllt.i64','vshlgt.i64','vshlle.i64',
+
+            'vshlleq.i8','vshllne.i8','vshllcs.i8','vshllhs.i8','vshllcc.i8','vshlllo.i8','vshllmi.i8','vshllpl.i8','vshllvs.i8','vshllvc.i8','vshllhi.i8','vshllls.i8','vshllge.i8','vshlllt.i8','vshllgt.i8','vshllle.i8',
+            'vshlleq.i16','vshllne.i16','vshllcs.i16','vshllhs.i16','vshllcc.i16','vshlllo.i16','vshllmi.i16','vshllpl.i16','vshllvs.i16','vshllvc.i16','vshllhi.i16','vshllls.i16','vshllge.i16','vshlllt.i16','vshllgt.i16','vshllle.i16',
+            'vshlleq.i32','vshllne.i32','vshllcs.i32','vshllhs.i32','vshllcc.i32','vshlllo.i32','vshllmi.i32','vshllpl.i32','vshllvs.i32','vshllvc.i32','vshllhi.i32','vshllls.i32','vshllge.i32','vshlllt.i32','vshllgt.i32','vshllle.i32'
+            ),
+        /* Conditional NEON SIMD Signed Integer Instructions */
+        32 => array(
+            'vabaeq.s8','vabane.s8','vabacs.s8','vabahs.s8','vabacc.s8','vabalo.s8','vabami.s8','vabapl.s8','vabavs.s8','vabavc.s8','vabahi.s8','vabals.s8','vabage.s8','vabalt.s8','vabagt.s8','vabale.s8',
+            'vabaeq.s16','vabane.s16','vabacs.s16','vabahs.s16','vabacc.s16','vabalo.s16','vabami.s16','vabapl.s16','vabavs.s16','vabavc.s16','vabahi.s16','vabals.s16','vabage.s16','vabalt.s16','vabagt.s16','vabale.s16',
+            'vabaeq.s32','vabane.s32','vabacs.s32','vabahs.s32','vabacc.s32','vabalo.s32','vabami.s32','vabapl.s32','vabavs.s32','vabavc.s32','vabahi.s32','vabals.s32','vabage.s32','vabalt.s32','vabagt.s32','vabale.s32',
+
+            'vabaleq.s8','vabalne.s8','vabalcs.s8','vabalhs.s8','vabalcc.s8','vaballo.s8','vabalmi.s8','vabalpl.s8','vabalvs.s8','vabalvc.s8','vabalhi.s8','vaballs.s8','vabalge.s8','vaballt.s8','vabalgt.s8','vaballe.s8',
+            'vabaleq.s16','vabalne.s16','vabalcs.s16','vabalhs.s16','vabalcc.s16','vaballo.s16','vabalmi.s16','vabalpl.s16','vabalvs.s16','vabalvc.s16','vabalhi.s16','vaballs.s16','vabalge.s16','vaballt.s16','vabalgt.s16','vaballe.s16',
+            'vabaleq.s32','vabalne.s32','vabalcs.s32','vabalhs.s32','vabalcc.s32','vaballo.s32','vabalmi.s32','vabalpl.s32','vabalvs.s32','vabalvc.s32','vabalhi.s32','vaballs.s32','vabalge.s32','vaballt.s32','vabalgt.s32','vaballe.s32',
+
+            'vabdeq.s8','vabdne.s8','vabdcs.s8','vabdhs.s8','vabdcc.s8','vabdlo.s8','vabdmi.s8','vabdpl.s8','vabdvs.s8','vabdvc.s8','vabdhi.s8','vabdls.s8','vabdge.s8','vabdlt.s8','vabdgt.s8','vabdle.s8',
+            'vabdeq.s16','vabdne.s16','vabdcs.s16','vabdhs.s16','vabdcc.s16','vabdlo.s16','vabdmi.s16','vabdpl.s16','vabdvs.s16','vabdvc.s16','vabdhi.s16','vabdls.s16','vabdge.s16','vabdlt.s16','vabdgt.s16','vabdle.s16',
+            'vabdeq.s32','vabdne.s32','vabdcs.s32','vabdhs.s32','vabdcc.s32','vabdlo.s32','vabdmi.s32','vabdpl.s32','vabdvs.s32','vabdvc.s32','vabdhi.s32','vabdls.s32','vabdge.s32','vabdlt.s32','vabdgt.s32','vabdle.s32',
+
+            'vabseq.s8','vabsne.s8','vabscs.s8','vabshs.s8','vabscc.s8','vabslo.s8','vabsmi.s8','vabspl.s8','vabsvs.s8','vabsvc.s8','vabshi.s8','vabsls.s8','vabsge.s8','vabslt.s8','vabsgt.s8','vabsle.s8',
+            'vabseq.s16','vabsne.s16','vabscs.s16','vabshs.s16','vabscc.s16','vabslo.s16','vabsmi.s16','vabspl.s16','vabsvs.s16','vabsvc.s16','vabshi.s16','vabsls.s16','vabsge.s16','vabslt.s16','vabsgt.s16','vabsle.s16',
+            'vabseq.s32','vabsne.s32','vabscs.s32','vabshs.s32','vabscc.s32','vabslo.s32','vabsmi.s32','vabspl.s32','vabsvs.s32','vabsvc.s32','vabshi.s32','vabsls.s32','vabsge.s32','vabslt.s32','vabsgt.s32','vabsle.s32',
+
+            'vaddleq.s8','vaddlne.s8','vaddlcs.s8','vaddlhs.s8','vaddlcc.s8','vaddllo.s8','vaddlmi.s8','vaddlpl.s8','vaddlvs.s8','vaddlvc.s8','vaddlhi.s8','vaddlls.s8','vaddlge.s8','vaddllt.s8','vaddlgt.s8','vaddlle.s8',
+            'vaddleq.s16','vaddlne.s16','vaddlcs.s16','vaddlhs.s16','vaddlcc.s16','vaddllo.s16','vaddlmi.s16','vaddlpl.s16','vaddlvs.s16','vaddlvc.s16','vaddlhi.s16','vaddlls.s16','vaddlge.s16','vaddllt.s16','vaddlgt.s16','vaddlle.s16',
+            'vaddleq.s32','vaddlne.s32','vaddlcs.s32','vaddlhs.s32','vaddlcc.s32','vaddllo.s32','vaddlmi.s32','vaddlpl.s32','vaddlvs.s32','vaddlvc.s32','vaddlhi.s32','vaddlls.s32','vaddlge.s32','vaddllt.s32','vaddlgt.s32','vaddlle.s32',
+
+            'vcgeeq.s8','vcgene.s8','vcgecs.s8','vcgehs.s8','vcgecc.s8','vcgelo.s8','vcgemi.s8','vcgepl.s8','vcgevs.s8','vcgevc.s8','vcgehi.s8','vcgels.s8','vcgege.s8','vcgelt.s8','vcgegt.s8','vcgele.s8',
+            'vcgeeq.s16','vcgene.s16','vcgecs.s16','vcgehs.s16','vcgecc.s16','vcgelo.s16','vcgemi.s16','vcgepl.s16','vcgevs.s16','vcgevc.s16','vcgehi.s16','vcgels.s16','vcgege.s16','vcgelt.s16','vcgegt.s16','vcgele.s16',
+            'vcgeeq.s32','vcgene.s32','vcgecs.s32','vcgehs.s32','vcgecc.s32','vcgelo.s32','vcgemi.s32','vcgepl.s32','vcgevs.s32','vcgevc.s32','vcgehi.s32','vcgels.s32','vcgege.s32','vcgelt.s32','vcgegt.s32','vcgele.s32',
+
+            'vcleeq.s8','vclene.s8','vclecs.s8','vclehs.s8','vclecc.s8','vclelo.s8','vclemi.s8','vclepl.s8','vclevs.s8','vclevc.s8','vclehi.s8','vclels.s8','vclege.s8','vclelt.s8','vclegt.s8','vclele.s8',
+            'vcleeq.s16','vclene.s16','vclecs.s16','vclehs.s16','vclecc.s16','vclelo.s16','vclemi.s16','vclepl.s16','vclevs.s16','vclevc.s16','vclehi.s16','vclels.s16','vclege.s16','vclelt.s16','vclegt.s16','vclele.s16',
+            'vcleeq.s32','vclene.s32','vclecs.s32','vclehs.s32','vclecc.s32','vclelo.s32','vclemi.s32','vclepl.s32','vclevs.s32','vclevc.s32','vclehi.s32','vclels.s32','vclege.s32','vclelt.s32','vclegt.s32','vclele.s32',
+
+            'vcgteq.s8','vcgtne.s8','vcgtcs.s8','vcgths.s8','vcgtcc.s8','vcgtlo.s8','vcgtmi.s8','vcgtpl.s8','vcgtvs.s8','vcgtvc.s8','vcgthi.s8','vcgtls.s8','vcgtge.s8','vcgtlt.s8','vcgtgt.s8','vcgtle.s8',
+            'vcgteq.s16','vcgtne.s16','vcgtcs.s16','vcgths.s16','vcgtcc.s16','vcgtlo.s16','vcgtmi.s16','vcgtpl.s16','vcgtvs.s16','vcgtvc.s16','vcgthi.s16','vcgtls.s16','vcgtge.s16','vcgtlt.s16','vcgtgt.s16','vcgtle.s16',
+            'vcgteq.s32','vcgtne.s32','vcgtcs.s32','vcgths.s32','vcgtcc.s32','vcgtlo.s32','vcgtmi.s32','vcgtpl.s32','vcgtvs.s32','vcgtvc.s32','vcgthi.s32','vcgtls.s32','vcgtge.s32','vcgtlt.s32','vcgtgt.s32','vcgtle.s32',
+
+            'vclteq.s8','vcltne.s8','vcltcs.s8','vclths.s8','vcltcc.s8','vcltlo.s8','vcltmi.s8','vcltpl.s8','vcltvs.s8','vcltvc.s8','vclthi.s8','vcltls.s8','vcltge.s8','vcltlt.s8','vcltgt.s8','vcltle.s8',
+            'vclteq.s16','vcltne.s16','vcltcs.s16','vclths.s16','vcltcc.s16','vcltlo.s16','vcltmi.s16','vcltpl.s16','vcltvs.s16','vcltvc.s16','vclthi.s16','vcltls.s16','vcltge.s16','vcltlt.s16','vcltgt.s16','vcltle.s16',
+            'vclteq.s32','vcltne.s32','vcltcs.s32','vclths.s32','vcltcc.s32','vcltlo.s32','vcltmi.s32','vcltpl.s32','vcltvs.s32','vcltvc.s32','vclthi.s32','vcltls.s32','vcltge.s32','vcltlt.s32','vcltgt.s32','vcltle.s32',
+
+            'vclseq.s8','vclsne.s8','vclscs.s8','vclshs.s8','vclscc.s8','vclslo.s8','vclsmi.s8','vclspl.s8','vclsvs.s8','vclsvc.s8','vclshi.s8','vclsls.s8','vclsge.s8','vclslt.s8','vclsgt.s8','vclsle.s8',
+            'vclseq.s16','vclsne.s16','vclscs.s16','vclshs.s16','vclscc.s16','vclslo.s16','vclsmi.s16','vclspl.s16','vclsvs.s16','vclsvc.s16','vclshi.s16','vclsls.s16','vclsge.s16','vclslt.s16','vclsgt.s16','vclsle.s16',
+            'vclseq.s32','vclsne.s32','vclscs.s32','vclshs.s32','vclscc.s32','vclslo.s32','vclsmi.s32','vclspl.s32','vclsvs.s32','vclsvc.s32','vclshi.s32','vclsls.s32','vclsge.s32','vclslt.s32','vclsgt.s32','vclsle.s32',
+
+            'vaddweq.s8','vaddwne.s8','vaddwcs.s8','vaddwhs.s8','vaddwcc.s8','vaddwlo.s8','vaddwmi.s8','vaddwpl.s8','vaddwvs.s8','vaddwvc.s8','vaddwhi.s8','vaddwls.s8','vaddwge.s8','vaddwlt.s8','vaddwgt.s8','vaddwle.s8',
+            'vaddweq.s16','vaddwne.s16','vaddwcs.s16','vaddwhs.s16','vaddwcc.s16','vaddwlo.s16','vaddwmi.s16','vaddwpl.s16','vaddwvs.s16','vaddwvc.s16','vaddwhi.s16','vaddwls.s16','vaddwge.s16','vaddwlt.s16','vaddwgt.s16','vaddwle.s16',
+            'vaddweq.s32','vaddwne.s32','vaddwcs.s32','vaddwhs.s32','vaddwcc.s32','vaddwlo.s32','vaddwmi.s32','vaddwpl.s32','vaddwvs.s32','vaddwvc.s32','vaddwhi.s32','vaddwls.s32','vaddwge.s32','vaddwlt.s32','vaddwgt.s32','vaddwle.s32',
+
+            'vhaddeq.s8','vhaddne.s8','vhaddcs.s8','vhaddhs.s8','vhaddcc.s8','vhaddlo.s8','vhaddmi.s8','vhaddpl.s8','vhaddvs.s8','vhaddvc.s8','vhaddhi.s8','vhaddls.s8','vhaddge.s8','vhaddlt.s8','vhaddgt.s8','vhaddle.s8',
+            'vhaddeq.s16','vhaddne.s16','vhaddcs.s16','vhaddhs.s16','vhaddcc.s16','vhaddlo.s16','vhaddmi.s16','vhaddpl.s16','vhaddvs.s16','vhaddvc.s16','vhaddhi.s16','vhaddls.s16','vhaddge.s16','vhaddlt.s16','vhaddgt.s16','vhaddle.s16',
+            'vhaddeq.s32','vhaddne.s32','vhaddcs.s32','vhaddhs.s32','vhaddcc.s32','vhaddlo.s32','vhaddmi.s32','vhaddpl.s32','vhaddvs.s32','vhaddvc.s32','vhaddhi.s32','vhaddls.s32','vhaddge.s32','vhaddlt.s32','vhaddgt.s32','vhaddle.s32',
+
+            'vhsubeq.s8','vhsubne.s8','vhsubcs.s8','vhsubhs.s8','vhsubcc.s8','vhsublo.s8','vhsubmi.s8','vhsubpl.s8','vhsubvs.s8','vhsubvc.s8','vhsubhi.s8','vhsubls.s8','vhsubge.s8','vhsublt.s8','vhsubgt.s8','vhsuble.s8',
+            'vhsubeq.s16','vhsubne.s16','vhsubcs.s16','vhsubhs.s16','vhsubcc.s16','vhsublo.s16','vhsubmi.s16','vhsubpl.s16','vhsubvs.s16','vhsubvc.s16','vhsubhi.s16','vhsubls.s16','vhsubge.s16','vhsublt.s16','vhsubgt.s16','vhsuble.s16',
+            'vhsubeq.s32','vhsubne.s32','vhsubcs.s32','vhsubhs.s32','vhsubcc.s32','vhsublo.s32','vhsubmi.s32','vhsubpl.s32','vhsubvs.s32','vhsubvc.s32','vhsubhi.s32','vhsubls.s32','vhsubge.s32','vhsublt.s32','vhsubgt.s32','vhsuble.s32',
+
+            'vmaxeq.s8','vmaxne.s8','vmaxcs.s8','vmaxhs.s8','vmaxcc.s8','vmaxlo.s8','vmaxmi.s8','vmaxpl.s8','vmaxvs.s8','vmaxvc.s8','vmaxhi.s8','vmaxls.s8','vmaxge.s8','vmaxlt.s8','vmaxgt.s8','vmaxle.s8',
+            'vmaxeq.s16','vmaxne.s16','vmaxcs.s16','vmaxhs.s16','vmaxcc.s16','vmaxlo.s16','vmaxmi.s16','vmaxpl.s16','vmaxvs.s16','vmaxvc.s16','vmaxhi.s16','vmaxls.s16','vmaxge.s16','vmaxlt.s16','vmaxgt.s16','vmaxle.s16',
+            'vmaxeq.s32','vmaxne.s32','vmaxcs.s32','vmaxhs.s32','vmaxcc.s32','vmaxlo.s32','vmaxmi.s32','vmaxpl.s32','vmaxvs.s32','vmaxvc.s32','vmaxhi.s32','vmaxls.s32','vmaxge.s32','vmaxlt.s32','vmaxgt.s32','vmaxle.s32',
+
+            'vmineq.s8','vminne.s8','vmincs.s8','vminhs.s8','vmincc.s8','vminlo.s8','vminmi.s8','vminpl.s8','vminvs.s8','vminvc.s8','vminhi.s8','vminls.s8','vminge.s8','vminlt.s8','vmingt.s8','vminle.s8',
+            'vmineq.s16','vminne.s16','vmincs.s16','vminhs.s16','vmincc.s16','vminlo.s16','vminmi.s16','vminpl.s16','vminvs.s16','vminvc.s16','vminhi.s16','vminls.s16','vminge.s16','vminlt.s16','vmingt.s16','vminle.s16',
+            'vmineq.s32','vminne.s32','vmincs.s32','vminhs.s32','vmincc.s32','vminlo.s32','vminmi.s32','vminpl.s32','vminvs.s32','vminvc.s32','vminhi.s32','vminls.s32','vminge.s32','vminlt.s32','vmingt.s32','vminle.s32',
+
+            'vmlaleq.s8','vmlalne.s8','vmlalcs.s8','vmlalhs.s8','vmlalcc.s8','vmlallo.s8','vmlalmi.s8','vmlalpl.s8','vmlalvs.s8','vmlalvc.s8','vmlalhi.s8','vmlalls.s8','vmlalge.s8','vmlallt.s8','vmlalgt.s8','vmlalle.s8',
+            'vmlaleq.s16','vmlalne.s16','vmlalcs.s16','vmlalhs.s16','vmlalcc.s16','vmlallo.s16','vmlalmi.s16','vmlalpl.s16','vmlalvs.s16','vmlalvc.s16','vmlalhi.s16','vmlalls.s16','vmlalge.s16','vmlallt.s16','vmlalgt.s16','vmlalle.s16',
+            'vmlaleq.s32','vmlalne.s32','vmlalcs.s32','vmlalhs.s32','vmlalcc.s32','vmlallo.s32','vmlalmi.s32','vmlalpl.s32','vmlalvs.s32','vmlalvc.s32','vmlalhi.s32','vmlalls.s32','vmlalge.s32','vmlallt.s32','vmlalgt.s32','vmlalle.s32',
+
+            'vmlsleq.s8','vmlslne.s8','vmlslcs.s8','vmlslhs.s8','vmlslcc.s8','vmlsllo.s8','vmlslmi.s8','vmlslpl.s8','vmlslvs.s8','vmlslvc.s8','vmlslhi.s8','vmlslls.s8','vmlslge.s8','vmlsllt.s8','vmlslgt.s8','vmlslle.s8',
+            'vmlsleq.s16','vmlslne.s16','vmlslcs.s16','vmlslhs.s16','vmlslcc.s16','vmlsllo.s16','vmlslmi.s16','vmlslpl.s16','vmlslvs.s16','vmlslvc.s16','vmlslhi.s16','vmlslls.s16','vmlslge.s16','vmlsllt.s16','vmlslgt.s16','vmlslle.s16',
+            'vmlsleq.s32','vmlslne.s32','vmlslcs.s32','vmlslhs.s32','vmlslcc.s32','vmlsllo.s32','vmlslmi.s32','vmlslpl.s32','vmlslvs.s32','vmlslvc.s32','vmlslhi.s32','vmlslls.s32','vmlslge.s32','vmlsllt.s32','vmlslgt.s32','vmlslle.s32',
+
+            'vnegeq.s8','vnegne.s8','vnegcs.s8','vneghs.s8','vnegcc.s8','vneglo.s8','vnegmi.s8','vnegpl.s8','vnegvs.s8','vnegvc.s8','vneghi.s8','vnegls.s8','vnegge.s8','vneglt.s8','vneggt.s8','vnegle.s8',
+            'vnegeq.s16','vnegne.s16','vnegcs.s16','vneghs.s16','vnegcc.s16','vneglo.s16','vnegmi.s16','vnegpl.s16','vnegvs.s16','vnegvc.s16','vneghi.s16','vnegls.s16','vnegge.s16','vneglt.s16','vneggt.s16','vnegle.s16',
+            'vnegeq.s32','vnegne.s32','vnegcs.s32','vneghs.s32','vnegcc.s32','vneglo.s32','vnegmi.s32','vnegpl.s32','vnegvs.s32','vnegvc.s32','vneghi.s32','vnegls.s32','vnegge.s32','vneglt.s32','vneggt.s32','vnegle.s32',
+
+            'vpadaleq.s8','vpadalne.s8','vpadalcs.s8','vpadalhs.s8','vpadalcc.s8','vpadallo.s8','vpadalmi.s8','vpadalpl.s8','vpadalvs.s8','vpadalvc.s8','vpadalhi.s8','vpadalls.s8','vpadalge.s8','vpadallt.s8','vpadalgt.s8','vpadalle.s8',
+            'vpadaleq.s16','vpadalne.s16','vpadalcs.s16','vpadalhs.s16','vpadalcc.s16','vpadallo.s16','vpadalmi.s16','vpadalpl.s16','vpadalvs.s16','vpadalvc.s16','vpadalhi.s16','vpadalls.s16','vpadalge.s16','vpadallt.s16','vpadalgt.s16','vpadalle.s16',
+            'vpadaleq.s32','vpadalne.s32','vpadalcs.s32','vpadalhs.s32','vpadalcc.s32','vpadallo.s32','vpadalmi.s32','vpadalpl.s32','vpadalvs.s32','vpadalvc.s32','vpadalhi.s32','vpadalls.s32','vpadalge.s32','vpadallt.s32','vpadalgt.s32','vpadalle.s32',
+
+            'vmovleq.s8','vmovlne.s8','vmovlcs.s8','vmovlhs.s8','vmovlcc.s8','vmovllo.s8','vmovlmi.s8','vmovlpl.s8','vmovlvs.s8','vmovlvc.s8','vmovlhi.s8','vmovlls.s8','vmovlge.s8','vmovllt.s8','vmovlgt.s8','vmovlle.s8',
+            'vmovleq.s16','vmovlne.s16','vmovlcs.s16','vmovlhs.s16','vmovlcc.s16','vmovllo.s16','vmovlmi.s16','vmovlpl.s16','vmovlvs.s16','vmovlvc.s16','vmovlhi.s16','vmovlls.s16','vmovlge.s16','vmovllt.s16','vmovlgt.s16','vmovlle.s16',
+            'vmovleq.s32','vmovlne.s32','vmovlcs.s32','vmovlhs.s32','vmovlcc.s32','vmovllo.s32','vmovlmi.s32','vmovlpl.s32','vmovlvs.s32','vmovlvc.s32','vmovlhi.s32','vmovlls.s32','vmovlge.s32','vmovllt.s32','vmovlgt.s32','vmovlle.s32',
+
+            'vmulleq.s8','vmullne.s8','vmullcs.s8','vmullhs.s8','vmullcc.s8','vmulllo.s8','vmullmi.s8','vmullpl.s8','vmullvs.s8','vmullvc.s8','vmullhi.s8','vmullls.s8','vmullge.s8','vmulllt.s8','vmullgt.s8','vmullle.s8',
+            'vmulleq.s16','vmullne.s16','vmullcs.s16','vmullhs.s16','vmullcc.s16','vmulllo.s16','vmullmi.s16','vmullpl.s16','vmullvs.s16','vmullvc.s16','vmullhi.s16','vmullls.s16','vmullge.s16','vmulllt.s16','vmullgt.s16','vmullle.s16',
+            'vmulleq.s32','vmullne.s32','vmullcs.s32','vmullhs.s32','vmullcc.s32','vmulllo.s32','vmullmi.s32','vmullpl.s32','vmullvs.s32','vmullvc.s32','vmullhi.s32','vmullls.s32','vmullge.s32','vmulllt.s32','vmullgt.s32','vmullle.s32',
+
+            'vpaddleq.s8','vpaddlne.s8','vpaddlcs.s8','vpaddlhs.s8','vpaddlcc.s8','vpaddllo.s8','vpaddlmi.s8','vpaddlpl.s8','vpaddlvs.s8','vpaddlvc.s8','vpaddlhi.s8','vpaddlls.s8','vpaddlge.s8','vpaddllt.s8','vpaddlgt.s8','vpaddlle.s8',
+            'vpaddleq.s16','vpaddlne.s16','vpaddlcs.s16','vpaddlhs.s16','vpaddlcc.s16','vpaddllo.s16','vpaddlmi.s16','vpaddlpl.s16','vpaddlvs.s16','vpaddlvc.s16','vpaddlhi.s16','vpaddlls.s16','vpaddlge.s16','vpaddllt.s16','vpaddlgt.s16','vpaddlle.s16',
+            'vpaddleq.s32','vpaddlne.s32','vpaddlcs.s32','vpaddlhs.s32','vpaddlcc.s32','vpaddllo.s32','vpaddlmi.s32','vpaddlpl.s32','vpaddlvs.s32','vpaddlvc.s32','vpaddlhi.s32','vpaddlls.s32','vpaddlge.s32','vpaddllt.s32','vpaddlgt.s32','vpaddlle.s32',
+
+            'vpmaxeq.s8','vpmaxne.s8','vpmaxcs.s8','vpmaxhs.s8','vpmaxcc.s8','vpmaxlo.s8','vpmaxmi.s8','vpmaxpl.s8','vpmaxvs.s8','vpmaxvc.s8','vpmaxhi.s8','vpmaxls.s8','vpmaxge.s8','vpmaxlt.s8','vpmaxgt.s8','vpmaxle.s8',
+            'vpmaxeq.s16','vpmaxne.s16','vpmaxcs.s16','vpmaxhs.s16','vpmaxcc.s16','vpmaxlo.s16','vpmaxmi.s16','vpmaxpl.s16','vpmaxvs.s16','vpmaxvc.s16','vpmaxhi.s16','vpmaxls.s16','vpmaxge.s16','vpmaxlt.s16','vpmaxgt.s16','vpmaxle.s16',
+            'vpmaxeq.s32','vpmaxne.s32','vpmaxcs.s32','vpmaxhs.s32','vpmaxcc.s32','vpmaxlo.s32','vpmaxmi.s32','vpmaxpl.s32','vpmaxvs.s32','vpmaxvc.s32','vpmaxhi.s32','vpmaxls.s32','vpmaxge.s32','vpmaxlt.s32','vpmaxgt.s32','vpmaxle.s32',
+
+            'vpmineq.s8','vpminne.s8','vpmincs.s8','vpminhs.s8','vpmincc.s8','vpminlo.s8','vpminmi.s8','vpminpl.s8','vpminvs.s8','vpminvc.s8','vpminhi.s8','vpminls.s8','vpminge.s8','vpminlt.s8','vpmingt.s8','vpminle.s8',
+            'vpmineq.s16','vpminne.s16','vpmincs.s16','vpminhs.s16','vpmincc.s16','vpminlo.s16','vpminmi.s16','vpminpl.s16','vpminvs.s16','vpminvc.s16','vpminhi.s16','vpminls.s16','vpminge.s16','vpminlt.s16','vpmingt.s16','vpminle.s16',
+            'vpmineq.s32','vpminne.s32','vpmincs.s32','vpminhs.s32','vpmincc.s32','vpminlo.s32','vpminmi.s32','vpminpl.s32','vpminvs.s32','vpminvc.s32','vpminhi.s32','vpminls.s32','vpminge.s32','vpminlt.s32','vpmingt.s32','vpminle.s32',
+
+            'vqabseq.s8','vqabsne.s8','vqabscs.s8','vqabshs.s8','vqabscc.s8','vqabslo.s8','vqabsmi.s8','vqabspl.s8','vqabsvs.s8','vqabsvc.s8','vqabshi.s8','vqabsls.s8','vqabsge.s8','vqabslt.s8','vqabsgt.s8','vqabsle.s8',
+            'vqabseq.s16','vqabsne.s16','vqabscs.s16','vqabshs.s16','vqabscc.s16','vqabslo.s16','vqabsmi.s16','vqabspl.s16','vqabsvs.s16','vqabsvc.s16','vqabshi.s16','vqabsls.s16','vqabsge.s16','vqabslt.s16','vqabsgt.s16','vqabsle.s16',
+            'vqabseq.s32','vqabsne.s32','vqabscs.s32','vqabshs.s32','vqabscc.s32','vqabslo.s32','vqabsmi.s32','vqabspl.s32','vqabsvs.s32','vqabsvc.s32','vqabshi.s32','vqabsls.s32','vqabsge.s32','vqabslt.s32','vqabsgt.s32','vqabsle.s32',
+
+            'vqaddeq.s8','vqaddne.s8','vqaddcs.s8','vqaddhs.s8','vqaddcc.s8','vqaddlo.s8','vqaddmi.s8','vqaddpl.s8','vqaddvs.s8','vqaddvc.s8','vqaddhi.s8','vqaddls.s8','vqaddge.s8','vqaddlt.s8','vqaddgt.s8','vqaddle.s8',
+            'vqaddeq.s16','vqaddne.s16','vqaddcs.s16','vqaddhs.s16','vqaddcc.s16','vqaddlo.s16','vqaddmi.s16','vqaddpl.s16','vqaddvs.s16','vqaddvc.s16','vqaddhi.s16','vqaddls.s16','vqaddge.s16','vqaddlt.s16','vqaddgt.s16','vqaddle.s16',
+            'vqaddeq.s32','vqaddne.s32','vqaddcs.s32','vqaddhs.s32','vqaddcc.s32','vqaddlo.s32','vqaddmi.s32','vqaddpl.s32','vqaddvs.s32','vqaddvc.s32','vqaddhi.s32','vqaddls.s32','vqaddge.s32','vqaddlt.s32','vqaddgt.s32','vqaddle.s32',
+            'vqaddeq.s64','vqaddne.s64','vqaddcs.s64','vqaddhs.s64','vqaddcc.s64','vqaddlo.s64','vqaddmi.s64','vqaddpl.s64','vqaddvs.s64','vqaddvc.s64','vqaddhi.s64','vqaddls.s64','vqaddge.s64','vqaddlt.s64','vqaddgt.s64','vqaddle.s64',
+
+            'vqdmlaleq.s16','vqdmlalne.s16','vqdmlalcs.s16','vqdmlalhs.s16','vqdmlalcc.s16','vqdmlallo.s16','vqdmlalmi.s16','vqdmlalpl.s16','vqdmlalvs.s16','vqdmlalvc.s16','vqdmlalhi.s16','vqdmlalls.s16','vqdmlalge.s16','vqdmlallt.s16','vqdmlalgt.s16','vqdmlalle.s16',
+            'vqdmlaleq.s32','vqdmlalne.s32','vqdmlalcs.s32','vqdmlalhs.s32','vqdmlalcc.s32','vqdmlallo.s32','vqdmlalmi.s32','vqdmlalpl.s32','vqdmlalvs.s32','vqdmlalvc.s32','vqdmlalhi.s32','vqdmlalls.s32','vqdmlalge.s32','vqdmlallt.s32','vqdmlalgt.s32','vqdmlalle.s32',
+
+            'vqdmlsleq.s16','vqdmlslne.s16','vqdmlslcs.s16','vqdmlslhs.s16','vqdmlslcc.s16','vqdmlsllo.s16','vqdmlslmi.s16','vqdmlslpl.s16','vqdmlslvs.s16','vqdmlslvc.s16','vqdmlslhi.s16','vqdmlslls.s16','vqdmlslge.s16','vqdmlsllt.s16','vqdmlslgt.s16','vqdmlslle.s16',
+            'vqdmlsleq.s32','vqdmlslne.s32','vqdmlslcs.s32','vqdmlslhs.s32','vqdmlslcc.s32','vqdmlsllo.s32','vqdmlslmi.s32','vqdmlslpl.s32','vqdmlslvs.s32','vqdmlslvc.s32','vqdmlslhi.s32','vqdmlslls.s32','vqdmlslge.s32','vqdmlsllt.s32','vqdmlslgt.s32','vqdmlslle.s32',
+
+            'vqdmulheq.s16','vqdmulhne.s16','vqdmulhcs.s16','vqdmulhhs.s16','vqdmulhcc.s16','vqdmulhlo.s16','vqdmulhmi.s16','vqdmulhpl.s16','vqdmulhvs.s16','vqdmulhvc.s16','vqdmulhhi.s16','vqdmulhls.s16','vqdmulhge.s16','vqdmulhlt.s16','vqdmulhgt.s16','vqdmulhle.s16',
+            'vqdmulheq.s32','vqdmulhne.s32','vqdmulhcs.s32','vqdmulhhs.s32','vqdmulhcc.s32','vqdmulhlo.s32','vqdmulhmi.s32','vqdmulhpl.s32','vqdmulhvs.s32','vqdmulhvc.s32','vqdmulhhi.s32','vqdmulhls.s32','vqdmulhge.s32','vqdmulhlt.s32','vqdmulhgt.s32','vqdmulhle.s32',
+
+            'vqdmulleq.s16','vqdmullne.s16','vqdmullcs.s16','vqdmullhs.s16','vqdmullcc.s16','vqdmulllo.s16','vqdmullmi.s16','vqdmullpl.s16','vqdmullvs.s16','vqdmullvc.s16','vqdmullhi.s16','vqdmullls.s16','vqdmullge.s16','vqdmulllt.s16','vqdmullgt.s16','vqdmullle.s16',
+            'vqdmulleq.s32','vqdmullne.s32','vqdmullcs.s32','vqdmullhs.s32','vqdmullcc.s32','vqdmulllo.s32','vqdmullmi.s32','vqdmullpl.s32','vqdmullvs.s32','vqdmullvc.s32','vqdmullhi.s32','vqdmullls.s32','vqdmullge.s32','vqdmulllt.s32','vqdmullgt.s32','vqdmullle.s32',
+
+            'vqmovneq.s16','vqmovnne.s16','vqmovncs.s16','vqmovnhs.s16','vqmovncc.s16','vqmovnlo.s16','vqmovnmi.s16','vqmovnpl.s16','vqmovnvs.s16','vqmovnvc.s16','vqmovnhi.s16','vqmovnls.s16','vqmovnge.s16','vqmovnlt.s16','vqmovngt.s16','vqmovnle.s16',
+            'vqmovneq.s32','vqmovnne.s32','vqmovncs.s32','vqmovnhs.s32','vqmovncc.s32','vqmovnlo.s32','vqmovnmi.s32','vqmovnpl.s32','vqmovnvs.s32','vqmovnvc.s32','vqmovnhi.s32','vqmovnls.s32','vqmovnge.s32','vqmovnlt.s32','vqmovngt.s32','vqmovnle.s32',
+            'vqmovneq.s64','vqmovnne.s64','vqmovncs.s64','vqmovnhs.s64','vqmovncc.s64','vqmovnlo.s64','vqmovnmi.s64','vqmovnpl.s64','vqmovnvs.s64','vqmovnvc.s64','vqmovnhi.s64','vqmovnls.s64','vqmovnge.s64','vqmovnlt.s64','vqmovngt.s64','vqmovnle.s64',
+
+            'vqmovuneq.s16','vqmovunne.s16','vqmovuncs.s16','vqmovunhs.s16','vqmovuncc.s16','vqmovunlo.s16','vqmovunmi.s16','vqmovunpl.s16','vqmovunvs.s16','vqmovunvc.s16','vqmovunhi.s16','vqmovunls.s16','vqmovunge.s16','vqmovunlt.s16','vqmovungt.s16','vqmovunle.s16',
+            'vqmovuneq.s32','vqmovunne.s32','vqmovuncs.s32','vqmovunhs.s32','vqmovuncc.s32','vqmovunlo.s32','vqmovunmi.s32','vqmovunpl.s32','vqmovunvs.s32','vqmovunvc.s32','vqmovunhi.s32','vqmovunls.s32','vqmovunge.s32','vqmovunlt.s32','vqmovungt.s32','vqmovunle.s32',
+            'vqmovuneq.s64','vqmovunne.s64','vqmovuncs.s64','vqmovunhs.s64','vqmovuncc.s64','vqmovunlo.s64','vqmovunmi.s64','vqmovunpl.s64','vqmovunvs.s64','vqmovunvc.s64','vqmovunhi.s64','vqmovunls.s64','vqmovunge.s64','vqmovunlt.s64','vqmovungt.s64','vqmovunle.s64',
+
+            'vqnegeq.s8','vqnegne.s8','vqnegcs.s8','vqneghs.s8','vqnegcc.s8','vqneglo.s8','vqnegmi.s8','vqnegpl.s8','vqnegvs.s8','vqnegvc.s8','vqneghi.s8','vqnegls.s8','vqnegge.s8','vqneglt.s8','vqneggt.s8','vqnegle.s8',
+            'vqnegeq.s16','vqnegne.s16','vqnegcs.s16','vqneghs.s16','vqnegcc.s16','vqneglo.s16','vqnegmi.s16','vqnegpl.s16','vqnegvs.s16','vqnegvc.s16','vqneghi.s16','vqnegls.s16','vqnegge.s16','vqneglt.s16','vqneggt.s16','vqnegle.s16',
+            'vqnegeq.s32','vqnegne.s32','vqnegcs.s32','vqneghs.s32','vqnegcc.s32','vqneglo.s32','vqnegmi.s32','vqnegpl.s32','vqnegvs.s32','vqnegvc.s32','vqneghi.s32','vqnegls.s32','vqnegge.s32','vqneglt.s32','vqneggt.s32','vqnegle.s32',
+
+            'vqrdmulheq.s16','vqrdmulhne.s16','vqrdmulhcs.s16','vqrdmulhhs.s16','vqrdmulhcc.s16','vqrdmulhlo.s16','vqrdmulhmi.s16','vqrdmulhpl.s16','vqrdmulhvs.s16','vqrdmulhvc.s16','vqrdmulhhi.s16','vqrdmulhls.s16','vqrdmulhge.s16','vqrdmulhlt.s16','vqrdmulhgt.s16','vqrdmulhle.s16',
+            'vqrdmulheq.s32','vqrdmulhne.s32','vqrdmulhcs.s32','vqrdmulhhs.s32','vqrdmulhcc.s32','vqrdmulhlo.s32','vqrdmulhmi.s32','vqrdmulhpl.s32','vqrdmulhvs.s32','vqrdmulhvc.s32','vqrdmulhhi.s32','vqrdmulhls.s32','vqrdmulhge.s32','vqrdmulhlt.s32','vqrdmulhgt.s32','vqrdmulhle.s32',
+
+            'vqrshleq.s8','vqrshlne.s8','vqrshlcs.s8','vqrshlhs.s8','vqrshlcc.s8','vqrshllo.s8','vqrshlmi.s8','vqrshlpl.s8','vqrshlvs.s8','vqrshlvc.s8','vqrshlhi.s8','vqrshlls.s8','vqrshlge.s8','vqrshllt.s8','vqrshlgt.s8','vqrshlle.s8',
+            'vqrshleq.s16','vqrshlne.s16','vqrshlcs.s16','vqrshlhs.s16','vqrshlcc.s16','vqrshllo.s16','vqrshlmi.s16','vqrshlpl.s16','vqrshlvs.s16','vqrshlvc.s16','vqrshlhi.s16','vqrshlls.s16','vqrshlge.s16','vqrshllt.s16','vqrshlgt.s16','vqrshlle.s16',
+            'vqrshleq.s32','vqrshlne.s32','vqrshlcs.s32','vqrshlhs.s32','vqrshlcc.s32','vqrshllo.s32','vqrshlmi.s32','vqrshlpl.s32','vqrshlvs.s32','vqrshlvc.s32','vqrshlhi.s32','vqrshlls.s32','vqrshlge.s32','vqrshllt.s32','vqrshlgt.s32','vqrshlle.s32',
+            'vqrshleq.s64','vqrshlne.s64','vqrshlcs.s64','vqrshlhs.s64','vqrshlcc.s64','vqrshllo.s64','vqrshlmi.s64','vqrshlpl.s64','vqrshlvs.s64','vqrshlvc.s64','vqrshlhi.s64','vqrshlls.s64','vqrshlge.s64','vqrshllt.s64','vqrshlgt.s64','vqrshlle.s64',
+
+            'vqrshrneq.s16','vqrshrnne.s16','vqrshrncs.s16','vqrshrnhs.s16','vqrshrncc.s16','vqrshrnlo.s16','vqrshrnmi.s16','vqrshrnpl.s16','vqrshrnvs.s16','vqrshrnvc.s16','vqrshrnhi.s16','vqrshrnls.s16','vqrshrnge.s16','vqrshrnlt.s16','vqrshrngt.s16','vqrshrnle.s16',
+            'vqrshrneq.s32','vqrshrnne.s32','vqrshrncs.s32','vqrshrnhs.s32','vqrshrncc.s32','vqrshrnlo.s32','vqrshrnmi.s32','vqrshrnpl.s32','vqrshrnvs.s32','vqrshrnvc.s32','vqrshrnhi.s32','vqrshrnls.s32','vqrshrnge.s32','vqrshrnlt.s32','vqrshrngt.s32','vqrshrnle.s32',
+            'vqrshrneq.s64','vqrshrnne.s64','vqrshrncs.s64','vqrshrnhs.s64','vqrshrncc.s64','vqrshrnlo.s64','vqrshrnmi.s64','vqrshrnpl.s64','vqrshrnvs.s64','vqrshrnvc.s64','vqrshrnhi.s64','vqrshrnls.s64','vqrshrnge.s64','vqrshrnlt.s64','vqrshrngt.s64','vqrshrnle.s64',
+
+            'vqrshruneq.s16','vqrshrunne.s16','vqrshruncs.s16','vqrshrunhs.s16','vqrshruncc.s16','vqrshrunlo.s16','vqrshrunmi.s16','vqrshrunpl.s16','vqrshrunvs.s16','vqrshrunvc.s16','vqrshrunhi.s16','vqrshrunls.s16','vqrshrunge.s16','vqrshrunlt.s16','vqrshrungt.s16','vqrshrunle.s16',
+            'vqrshruneq.s32','vqrshrunne.s32','vqrshruncs.s32','vqrshrunhs.s32','vqrshruncc.s32','vqrshrunlo.s32','vqrshrunmi.s32','vqrshrunpl.s32','vqrshrunvs.s32','vqrshrunvc.s32','vqrshrunhi.s32','vqrshrunls.s32','vqrshrunge.s32','vqrshrunlt.s32','vqrshrungt.s32','vqrshrunle.s32',
+            'vqrshruneq.s64','vqrshrunne.s64','vqrshruncs.s64','vqrshrunhs.s64','vqrshruncc.s64','vqrshrunlo.s64','vqrshrunmi.s64','vqrshrunpl.s64','vqrshrunvs.s64','vqrshrunvc.s64','vqrshrunhi.s64','vqrshrunls.s64','vqrshrunge.s64','vqrshrunlt.s64','vqrshrungt.s64','vqrshrunle.s64',
+
+            'vqshleq.s8','vqshlne.s8','vqshlcs.s8','vqshlhs.s8','vqshlcc.s8','vqshllo.s8','vqshlmi.s8','vqshlpl.s8','vqshlvs.s8','vqshlvc.s8','vqshlhi.s8','vqshlls.s8','vqshlge.s8','vqshllt.s8','vqshlgt.s8','vqshlle.s8',
+            'vqshleq.s16','vqshlne.s16','vqshlcs.s16','vqshlhs.s16','vqshlcc.s16','vqshllo.s16','vqshlmi.s16','vqshlpl.s16','vqshlvs.s16','vqshlvc.s16','vqshlhi.s16','vqshlls.s16','vqshlge.s16','vqshllt.s16','vqshlgt.s16','vqshlle.s16',
+            'vqshleq.s32','vqshlne.s32','vqshlcs.s32','vqshlhs.s32','vqshlcc.s32','vqshllo.s32','vqshlmi.s32','vqshlpl.s32','vqshlvs.s32','vqshlvc.s32','vqshlhi.s32','vqshlls.s32','vqshlge.s32','vqshllt.s32','vqshlgt.s32','vqshlle.s32',
+            'vqshleq.s64','vqshlne.s64','vqshlcs.s64','vqshlhs.s64','vqshlcc.s64','vqshllo.s64','vqshlmi.s64','vqshlpl.s64','vqshlvs.s64','vqshlvc.s64','vqshlhi.s64','vqshlls.s64','vqshlge.s64','vqshllt.s64','vqshlgt.s64','vqshlle.s64',
+
+            'vqshlueq.s8','vqshlune.s8','vqshlucs.s8','vqshluhs.s8','vqshlucc.s8','vqshlulo.s8','vqshlumi.s8','vqshlupl.s8','vqshluvs.s8','vqshluvc.s8','vqshluhi.s8','vqshluls.s8','vqshluge.s8','vqshlult.s8','vqshlugt.s8','vqshlule.s8',
+            'vqshlueq.s16','vqshlune.s16','vqshlucs.s16','vqshluhs.s16','vqshlucc.s16','vqshlulo.s16','vqshlumi.s16','vqshlupl.s16','vqshluvs.s16','vqshluvc.s16','vqshluhi.s16','vqshluls.s16','vqshluge.s16','vqshlult.s16','vqshlugt.s16','vqshlule.s16',
+            'vqshlueq.s32','vqshlune.s32','vqshlucs.s32','vqshluhs.s32','vqshlucc.s32','vqshlulo.s32','vqshlumi.s32','vqshlupl.s32','vqshluvs.s32','vqshluvc.s32','vqshluhi.s32','vqshluls.s32','vqshluge.s32','vqshlult.s32','vqshlugt.s32','vqshlule.s32',
+            'vqshlueq.s64','vqshlune.s64','vqshlucs.s64','vqshluhs.s64','vqshlucc.s64','vqshlulo.s64','vqshlumi.s64','vqshlupl.s64','vqshluvs.s64','vqshluvc.s64','vqshluhi.s64','vqshluls.s64','vqshluge.s64','vqshlult.s64','vqshlugt.s64','vqshlule.s64',
+
+            'vqshrneq.s16','vqshrnne.s16','vqshrncs.s16','vqshrnhs.s16','vqshrncc.s16','vqshrnlo.s16','vqshrnmi.s16','vqshrnpl.s16','vqshrnvs.s16','vqshrnvc.s16','vqshrnhi.s16','vqshrnls.s16','vqshrnge.s16','vqshrnlt.s16','vqshrngt.s16','vqshrnle.s16',
+            'vqshrneq.s32','vqshrnne.s32','vqshrncs.s32','vqshrnhs.s32','vqshrncc.s32','vqshrnlo.s32','vqshrnmi.s32','vqshrnpl.s32','vqshrnvs.s32','vqshrnvc.s32','vqshrnhi.s32','vqshrnls.s32','vqshrnge.s32','vqshrnlt.s32','vqshrngt.s32','vqshrnle.s32',
+            'vqshrneq.s64','vqshrnne.s64','vqshrncs.s64','vqshrnhs.s64','vqshrncc.s64','vqshrnlo.s64','vqshrnmi.s64','vqshrnpl.s64','vqshrnvs.s64','vqshrnvc.s64','vqshrnhi.s64','vqshrnls.s64','vqshrnge.s64','vqshrnlt.s64','vqshrngt.s64','vqshrnle.s64',
+
+            'vqshruneq.s16','vqshrunne.s16','vqshruncs.s16','vqshrunhs.s16','vqshruncc.s16','vqshrunlo.s16','vqshrunmi.s16','vqshrunpl.s16','vqshrunvs.s16','vqshrunvc.s16','vqshrunhi.s16','vqshrunls.s16','vqshrunge.s16','vqshrunlt.s16','vqshrungt.s16','vqshrunle.s16',
+            'vqshruneq.s32','vqshrunne.s32','vqshruncs.s32','vqshrunhs.s32','vqshruncc.s32','vqshrunlo.s32','vqshrunmi.s32','vqshrunpl.s32','vqshrunvs.s32','vqshrunvc.s32','vqshrunhi.s32','vqshrunls.s32','vqshrunge.s32','vqshrunlt.s32','vqshrungt.s32','vqshrunle.s32',
+            'vqshruneq.s64','vqshrunne.s64','vqshruncs.s64','vqshrunhs.s64','vqshruncc.s64','vqshrunlo.s64','vqshrunmi.s64','vqshrunpl.s64','vqshrunvs.s64','vqshrunvc.s64','vqshrunhi.s64','vqshrunls.s64','vqshrunge.s64','vqshrunlt.s64','vqshrungt.s64','vqshrunle.s64',
+
+            'vqsubeq.s8','vqsubne.s8','vqsubcs.s8','vqsubhs.s8','vqsubcc.s8','vqsublo.s8','vqsubmi.s8','vqsubpl.s8','vqsubvs.s8','vqsubvc.s8','vqsubhi.s8','vqsubls.s8','vqsubge.s8','vqsublt.s8','vqsubgt.s8','vqsuble.s8',
+            'vqsubeq.s16','vqsubne.s16','vqsubcs.s16','vqsubhs.s16','vqsubcc.s16','vqsublo.s16','vqsubmi.s16','vqsubpl.s16','vqsubvs.s16','vqsubvc.s16','vqsubhi.s16','vqsubls.s16','vqsubge.s16','vqsublt.s16','vqsubgt.s16','vqsuble.s16',
+            'vqsubeq.s32','vqsubne.s32','vqsubcs.s32','vqsubhs.s32','vqsubcc.s32','vqsublo.s32','vqsubmi.s32','vqsubpl.s32','vqsubvs.s32','vqsubvc.s32','vqsubhi.s32','vqsubls.s32','vqsubge.s32','vqsublt.s32','vqsubgt.s32','vqsuble.s32',
+            'vqsubeq.s64','vqsubne.s64','vqsubcs.s64','vqsubhs.s64','vqsubcc.s64','vqsublo.s64','vqsubmi.s64','vqsubpl.s64','vqsubvs.s64','vqsubvc.s64','vqsubhi.s64','vqsubls.s64','vqsubge.s64','vqsublt.s64','vqsubgt.s64','vqsuble.s64',
+
+            'vrhaddeq.s8','vrhaddne.s8','vrhaddcs.s8','vrhaddhs.s8','vrhaddcc.s8','vrhaddlo.s8','vrhaddmi.s8','vrhaddpl.s8','vrhaddvs.s8','vrhaddvc.s8','vrhaddhi.s8','vrhaddls.s8','vrhaddge.s8','vrhaddlt.s8','vrhaddgt.s8','vrhaddle.s8',
+            'vrhaddeq.s16','vrhaddne.s16','vrhaddcs.s16','vrhaddhs.s16','vrhaddcc.s16','vrhaddlo.s16','vrhaddmi.s16','vrhaddpl.s16','vrhaddvs.s16','vrhaddvc.s16','vrhaddhi.s16','vrhaddls.s16','vrhaddge.s16','vrhaddlt.s16','vrhaddgt.s16','vrhaddle.s16',
+            'vrhaddeq.s32','vrhaddne.s32','vrhaddcs.s32','vrhaddhs.s32','vrhaddcc.s32','vrhaddlo.s32','vrhaddmi.s32','vrhaddpl.s32','vrhaddvs.s32','vrhaddvc.s32','vrhaddhi.s32','vrhaddls.s32','vrhaddge.s32','vrhaddlt.s32','vrhaddgt.s32','vrhaddle.s32',
+
+            'vrshleq.s8','vrshlne.s8','vrshlcs.s8','vrshlhs.s8','vrshlcc.s8','vrshllo.s8','vrshlmi.s8','vrshlpl.s8','vrshlvs.s8','vrshlvc.s8','vrshlhi.s8','vrshlls.s8','vrshlge.s8','vrshllt.s8','vrshlgt.s8','vrshlle.s8',
+            'vrshleq.s16','vrshlne.s16','vrshlcs.s16','vrshlhs.s16','vrshlcc.s16','vrshllo.s16','vrshlmi.s16','vrshlpl.s16','vrshlvs.s16','vrshlvc.s16','vrshlhi.s16','vrshlls.s16','vrshlge.s16','vrshllt.s16','vrshlgt.s16','vrshlle.s16',
+            'vrshleq.s32','vrshlne.s32','vrshlcs.s32','vrshlhs.s32','vrshlcc.s32','vrshllo.s32','vrshlmi.s32','vrshlpl.s32','vrshlvs.s32','vrshlvc.s32','vrshlhi.s32','vrshlls.s32','vrshlge.s32','vrshllt.s32','vrshlgt.s32','vrshlle.s32',
+            'vrshleq.s64','vrshlne.s64','vrshlcs.s64','vrshlhs.s64','vrshlcc.s64','vrshllo.s64','vrshlmi.s64','vrshlpl.s64','vrshlvs.s64','vrshlvc.s64','vrshlhi.s64','vrshlls.s64','vrshlge.s64','vrshllt.s64','vrshlgt.s64','vrshlle.s64',
+
+            'vrshreq.s8','vrshrne.s8','vrshrcs.s8','vrshrhs.s8','vrshrcc.s8','vrshrlo.s8','vrshrmi.s8','vrshrpl.s8','vrshrvs.s8','vrshrvc.s8','vrshrhi.s8','vrshrls.s8','vrshrge.s8','vrshrlt.s8','vrshrgt.s8','vrshrle.s8',
+            'vrshreq.s16','vrshrne.s16','vrshrcs.s16','vrshrhs.s16','vrshrcc.s16','vrshrlo.s16','vrshrmi.s16','vrshrpl.s16','vrshrvs.s16','vrshrvc.s16','vrshrhi.s16','vrshrls.s16','vrshrge.s16','vrshrlt.s16','vrshrgt.s16','vrshrle.s16',
+            'vrshreq.s32','vrshrne.s32','vrshrcs.s32','vrshrhs.s32','vrshrcc.s32','vrshrlo.s32','vrshrmi.s32','vrshrpl.s32','vrshrvs.s32','vrshrvc.s32','vrshrhi.s32','vrshrls.s32','vrshrge.s32','vrshrlt.s32','vrshrgt.s32','vrshrle.s32',
+            'vrshreq.s64','vrshrne.s64','vrshrcs.s64','vrshrhs.s64','vrshrcc.s64','vrshrlo.s64','vrshrmi.s64','vrshrpl.s64','vrshrvs.s64','vrshrvc.s64','vrshrhi.s64','vrshrls.s64','vrshrge.s64','vrshrlt.s64','vrshrgt.s64','vrshrle.s64',
+
+            'vrsraeq.s8','vrsrane.s8','vrsracs.s8','vrsrahs.s8','vrsracc.s8','vrsralo.s8','vrsrami.s8','vrsrapl.s8','vrsravs.s8','vrsravc.s8','vrsrahi.s8','vrsrals.s8','vrsrage.s8','vrsralt.s8','vrsragt.s8','vrsrale.s8',
+            'vrsraeq.s16','vrsrane.s16','vrsracs.s16','vrsrahs.s16','vrsracc.s16','vrsralo.s16','vrsrami.s16','vrsrapl.s16','vrsravs.s16','vrsravc.s16','vrsrahi.s16','vrsrals.s16','vrsrage.s16','vrsralt.s16','vrsragt.s16','vrsrale.s16',
+            'vrsraeq.s32','vrsrane.s32','vrsracs.s32','vrsrahs.s32','vrsracc.s32','vrsralo.s32','vrsrami.s32','vrsrapl.s32','vrsravs.s32','vrsravc.s32','vrsrahi.s32','vrsrals.s32','vrsrage.s32','vrsralt.s32','vrsragt.s32','vrsrale.s32',
+            'vrsraeq.s64','vrsrane.s64','vrsracs.s64','vrsrahs.s64','vrsracc.s64','vrsralo.s64','vrsrami.s64','vrsrapl.s64','vrsravs.s64','vrsravc.s64','vrsrahi.s64','vrsrals.s64','vrsrage.s64','vrsralt.s64','vrsragt.s64','vrsrale.s64',
+
+            'vshleq.s8','vshlne.s8','vshlcs.s8','vshlhs.s8','vshlcc.s8','vshllo.s8','vshlmi.s8','vshlpl.s8','vshlvs.s8','vshlvc.s8','vshlhi.s8','vshlls.s8','vshlge.s8','vshllt.s8','vshlgt.s8','vshlle.s8',
+            'vshleq.s16','vshlne.s16','vshlcs.s16','vshlhs.s16','vshlcc.s16','vshllo.s16','vshlmi.s16','vshlpl.s16','vshlvs.s16','vshlvc.s16','vshlhi.s16','vshlls.s16','vshlge.s16','vshllt.s16','vshlgt.s16','vshlle.s16',
+            'vshleq.s32','vshlne.s32','vshlcs.s32','vshlhs.s32','vshlcc.s32','vshllo.s32','vshlmi.s32','vshlpl.s32','vshlvs.s32','vshlvc.s32','vshlhi.s32','vshlls.s32','vshlge.s32','vshllt.s32','vshlgt.s32','vshlle.s32',
+            'vshleq.s64','vshlne.s64','vshlcs.s64','vshlhs.s64','vshlcc.s64','vshllo.s64','vshlmi.s64','vshlpl.s64','vshlvs.s64','vshlvc.s64','vshlhi.s64','vshlls.s64','vshlge.s64','vshllt.s64','vshlgt.s64','vshlle.s64',
+
+            'vshlleq.s8','vshllne.s8','vshllcs.s8','vshllhs.s8','vshllcc.s8','vshlllo.s8','vshllmi.s8','vshllpl.s8','vshllvs.s8','vshllvc.s8','vshllhi.s8','vshllls.s8','vshllge.s8','vshlllt.s8','vshllgt.s8','vshllle.s8',
+            'vshlleq.s16','vshllne.s16','vshllcs.s16','vshllhs.s16','vshllcc.s16','vshlllo.s16','vshllmi.s16','vshllpl.s16','vshllvs.s16','vshllvc.s16','vshllhi.s16','vshllls.s16','vshllge.s16','vshlllt.s16','vshllgt.s16','vshllle.s16',
+            'vshlleq.s32','vshllne.s32','vshllcs.s32','vshllhs.s32','vshllcc.s32','vshlllo.s32','vshllmi.s32','vshllpl.s32','vshllvs.s32','vshllvc.s32','vshllhi.s32','vshllls.s32','vshllge.s32','vshlllt.s32','vshllgt.s32','vshllle.s32',
+
+            'vshreq.s8','vshrne.s8','vshrcs.s8','vshrhs.s8','vshrcc.s8','vshrlo.s8','vshrmi.s8','vshrpl.s8','vshrvs.s8','vshrvc.s8','vshrhi.s8','vshrls.s8','vshrge.s8','vshrlt.s8','vshrgt.s8','vshrle.s8',
+            'vshreq.s16','vshrne.s16','vshrcs.s16','vshrhs.s16','vshrcc.s16','vshrlo.s16','vshrmi.s16','vshrpl.s16','vshrvs.s16','vshrvc.s16','vshrhi.s16','vshrls.s16','vshrge.s16','vshrlt.s16','vshrgt.s16','vshrle.s16',
+            'vshreq.s32','vshrne.s32','vshrcs.s32','vshrhs.s32','vshrcc.s32','vshrlo.s32','vshrmi.s32','vshrpl.s32','vshrvs.s32','vshrvc.s32','vshrhi.s32','vshrls.s32','vshrge.s32','vshrlt.s32','vshrgt.s32','vshrle.s32',
+            'vshreq.s64','vshrne.s64','vshrcs.s64','vshrhs.s64','vshrcc.s64','vshrlo.s64','vshrmi.s64','vshrpl.s64','vshrvs.s64','vshrvc.s64','vshrhi.s64','vshrls.s64','vshrge.s64','vshrlt.s64','vshrgt.s64','vshrle.s64',
+
+            'vsraeq.s8','vsrane.s8','vsracs.s8','vsrahs.s8','vsracc.s8','vsralo.s8','vsrami.s8','vsrapl.s8','vsravs.s8','vsravc.s8','vsrahi.s8','vsrals.s8','vsrage.s8','vsralt.s8','vsragt.s8','vsrale.s8',
+            'vsraeq.s16','vsrane.s16','vsracs.s16','vsrahs.s16','vsracc.s16','vsralo.s16','vsrami.s16','vsrapl.s16','vsravs.s16','vsravc.s16','vsrahi.s16','vsrals.s16','vsrage.s16','vsralt.s16','vsragt.s16','vsrale.s16',
+            'vsraeq.s32','vsrane.s32','vsracs.s32','vsrahs.s32','vsracc.s32','vsralo.s32','vsrami.s32','vsrapl.s32','vsravs.s32','vsravc.s32','vsrahi.s32','vsrals.s32','vsrage.s32','vsralt.s32','vsragt.s32','vsrale.s32',
+            'vsraeq.s64','vsrane.s64','vsracs.s64','vsrahs.s64','vsracc.s64','vsralo.s64','vsrami.s64','vsrapl.s64','vsravs.s64','vsravc.s64','vsrahi.s64','vsrals.s64','vsrage.s64','vsralt.s64','vsragt.s64','vsrale.s64',
+
+            'vsubleq.s8','vsublne.s8','vsublcs.s8','vsublhs.s8','vsublcc.s8','vsubllo.s8','vsublmi.s8','vsublpl.s8','vsublvs.s8','vsublvc.s8','vsublhi.s8','vsublls.s8','vsublge.s8','vsubllt.s8','vsublgt.s8','vsublle.s8',
+            'vsubleq.s16','vsublne.s16','vsublcs.s16','vsublhs.s16','vsublcc.s16','vsubllo.s16','vsublmi.s16','vsublpl.s16','vsublvs.s16','vsublvc.s16','vsublhi.s16','vsublls.s16','vsublge.s16','vsubllt.s16','vsublgt.s16','vsublle.s16',
+            'vsubleq.s32','vsublne.s32','vsublcs.s32','vsublhs.s32','vsublcc.s32','vsubllo.s32','vsublmi.s32','vsublpl.s32','vsublvs.s32','vsublvc.s32','vsublhi.s32','vsublls.s32','vsublge.s32','vsubllt.s32','vsublgt.s32','vsublle.s32',
+
+            'vsubheq.s8','vsubhne.s8','vsubhcs.s8','vsubhhs.s8','vsubhcc.s8','vsubhlo.s8','vsubhmi.s8','vsubhpl.s8','vsubhvs.s8','vsubhvc.s8','vsubhhi.s8','vsubhls.s8','vsubhge.s8','vsubhlt.s8','vsubhgt.s8','vsubhle.s8',
+            'vsubheq.s16','vsubhne.s16','vsubhcs.s16','vsubhhs.s16','vsubhcc.s16','vsubhlo.s16','vsubhmi.s16','vsubhpl.s16','vsubhvs.s16','vsubhvc.s16','vsubhhi.s16','vsubhls.s16','vsubhge.s16','vsubhlt.s16','vsubhgt.s16','vsubhle.s16',
+            'vsubheq.s32','vsubhne.s32','vsubhcs.s32','vsubhhs.s32','vsubhcc.s32','vsubhlo.s32','vsubhmi.s32','vsubhpl.s32','vsubhvs.s32','vsubhvc.s32','vsubhhi.s32','vsubhls.s32','vsubhge.s32','vsubhlt.s32','vsubhgt.s32','vsubhle.s32'
+            ),
+        /* Conditional NEON SIMD Unsigned Integer Instructions */
+        33 => array(
+            'vabaeq.u8','vabane.u8','vabacs.u8','vabahs.u8','vabacc.u8','vabalo.u8','vabami.u8','vabapl.u8','vabavs.u8','vabavc.u8','vabahi.u8','vabals.u8','vabage.u8','vabalt.u8','vabagt.u8','vabale.u8',
+            'vabaeq.u16','vabane.u16','vabacs.u16','vabahs.u16','vabacc.u16','vabalo.u16','vabami.u16','vabapl.u16','vabavs.u16','vabavc.u16','vabahi.u16','vabals.u16','vabage.u16','vabalt.u16','vabagt.u16','vabale.u16',
+            'vabaeq.u32','vabane.u32','vabacs.u32','vabahs.u32','vabacc.u32','vabalo.u32','vabami.u32','vabapl.u32','vabavs.u32','vabavc.u32','vabahi.u32','vabals.u32','vabage.u32','vabalt.u32','vabagt.u32','vabale.u32',
+
+            'vabaleq.u8','vabalne.u8','vabalcs.u8','vabalhs.u8','vabalcc.u8','vaballo.u8','vabalmi.u8','vabalpl.u8','vabalvs.u8','vabalvc.u8','vabalhi.u8','vaballs.u8','vabalge.u8','vaballt.u8','vabalgt.u8','vaballe.u8',
+            'vabaleq.u16','vabalne.u16','vabalcs.u16','vabalhs.u16','vabalcc.u16','vaballo.u16','vabalmi.u16','vabalpl.u16','vabalvs.u16','vabalvc.u16','vabalhi.u16','vaballs.u16','vabalge.u16','vaballt.u16','vabalgt.u16','vaballe.u16',
+            'vabaleq.u32','vabalne.u32','vabalcs.u32','vabalhs.u32','vabalcc.u32','vaballo.u32','vabalmi.u32','vabalpl.u32','vabalvs.u32','vabalvc.u32','vabalhi.u32','vaballs.u32','vabalge.u32','vaballt.u32','vabalgt.u32','vaballe.u32',
+
+            'vabdeq.u8','vabdne.u8','vabdcs.u8','vabdhs.u8','vabdcc.u8','vabdlo.u8','vabdmi.u8','vabdpl.u8','vabdvs.u8','vabdvc.u8','vabdhi.u8','vabdls.u8','vabdge.u8','vabdlt.u8','vabdgt.u8','vabdle.u8',
+            'vabdeq.u16','vabdne.u16','vabdcs.u16','vabdhs.u16','vabdcc.u16','vabdlo.u16','vabdmi.u16','vabdpl.u16','vabdvs.u16','vabdvc.u16','vabdhi.u16','vabdls.u16','vabdge.u16','vabdlt.u16','vabdgt.u16','vabdle.u16',
+            'vabdeq.u32','vabdne.u32','vabdcs.u32','vabdhs.u32','vabdcc.u32','vabdlo.u32','vabdmi.u32','vabdpl.u32','vabdvs.u32','vabdvc.u32','vabdhi.u32','vabdls.u32','vabdge.u32','vabdlt.u32','vabdgt.u32','vabdle.u32',
+
+            'vaddleq.u8','vaddlne.u8','vaddlcs.u8','vaddlhs.u8','vaddlcc.u8','vaddllo.u8','vaddlmi.u8','vaddlpl.u8','vaddlvs.u8','vaddlvc.u8','vaddlhi.u8','vaddlls.u8','vaddlge.u8','vaddllt.u8','vaddlgt.u8','vaddlle.u8',
+            'vaddleq.u16','vaddlne.u16','vaddlcs.u16','vaddlhs.u16','vaddlcc.u16','vaddllo.u16','vaddlmi.u16','vaddlpl.u16','vaddlvs.u16','vaddlvc.u16','vaddlhi.u16','vaddlls.u16','vaddlge.u16','vaddllt.u16','vaddlgt.u16','vaddlle.u16',
+            'vaddleq.u32','vaddlne.u32','vaddlcs.u32','vaddlhs.u32','vaddlcc.u32','vaddllo.u32','vaddlmi.u32','vaddlpl.u32','vaddlvs.u32','vaddlvc.u32','vaddlhi.u32','vaddlls.u32','vaddlge.u32','vaddllt.u32','vaddlgt.u32','vaddlle.u32',
+
+            'vsubleq.u8','vsublne.u8','vsublcs.u8','vsublhs.u8','vsublcc.u8','vsubllo.u8','vsublmi.u8','vsublpl.u8','vsublvs.u8','vsublvc.u8','vsublhi.u8','vsublls.u8','vsublge.u8','vsubllt.u8','vsublgt.u8','vsublle.u8',
+            'vsubleq.u16','vsublne.u16','vsublcs.u16','vsublhs.u16','vsublcc.u16','vsubllo.u16','vsublmi.u16','vsublpl.u16','vsublvs.u16','vsublvc.u16','vsublhi.u16','vsublls.u16','vsublge.u16','vsubllt.u16','vsublgt.u16','vsublle.u16',
+            'vsubleq.u32','vsublne.u32','vsublcs.u32','vsublhs.u32','vsublcc.u32','vsubllo.u32','vsublmi.u32','vsublpl.u32','vsublvs.u32','vsublvc.u32','vsublhi.u32','vsublls.u32','vsublge.u32','vsubllt.u32','vsublgt.u32','vsublle.u32',
+
+            'vaddweq.u8','vaddwne.u8','vaddwcs.u8','vaddwhs.u8','vaddwcc.u8','vaddwlo.u8','vaddwmi.u8','vaddwpl.u8','vaddwvs.u8','vaddwvc.u8','vaddwhi.u8','vaddwls.u8','vaddwge.u8','vaddwlt.u8','vaddwgt.u8','vaddwle.u8',
+            'vaddweq.u16','vaddwne.u16','vaddwcs.u16','vaddwhs.u16','vaddwcc.u16','vaddwlo.u16','vaddwmi.u16','vaddwpl.u16','vaddwvs.u16','vaddwvc.u16','vaddwhi.u16','vaddwls.u16','vaddwge.u16','vaddwlt.u16','vaddwgt.u16','vaddwle.u16',
+            'vaddweq.u32','vaddwne.u32','vaddwcs.u32','vaddwhs.u32','vaddwcc.u32','vaddwlo.u32','vaddwmi.u32','vaddwpl.u32','vaddwvs.u32','vaddwvc.u32','vaddwhi.u32','vaddwls.u32','vaddwge.u32','vaddwlt.u32','vaddwgt.u32','vaddwle.u32',
+
+            'vsubheq.u8','vsubhne.u8','vsubhcs.u8','vsubhhs.u8','vsubhcc.u8','vsubhlo.u8','vsubhmi.u8','vsubhpl.u8','vsubhvs.u8','vsubhvc.u8','vsubhhi.u8','vsubhls.u8','vsubhge.u8','vsubhlt.u8','vsubhgt.u8','vsubhle.u8',
+            'vsubheq.u16','vsubhne.u16','vsubhcs.u16','vsubhhs.u16','vsubhcc.u16','vsubhlo.u16','vsubhmi.u16','vsubhpl.u16','vsubhvs.u16','vsubhvc.u16','vsubhhi.u16','vsubhls.u16','vsubhge.u16','vsubhlt.u16','vsubhgt.u16','vsubhle.u16',
+            'vsubheq.u32','vsubhne.u32','vsubhcs.u32','vsubhhs.u32','vsubhcc.u32','vsubhlo.u32','vsubhmi.u32','vsubhpl.u32','vsubhvs.u32','vsubhvc.u32','vsubhhi.u32','vsubhls.u32','vsubhge.u32','vsubhlt.u32','vsubhgt.u32','vsubhle.u32',
+
+            'vhaddeq.u8','vhaddne.u8','vhaddcs.u8','vhaddhs.u8','vhaddcc.u8','vhaddlo.u8','vhaddmi.u8','vhaddpl.u8','vhaddvs.u8','vhaddvc.u8','vhaddhi.u8','vhaddls.u8','vhaddge.u8','vhaddlt.u8','vhaddgt.u8','vhaddle.u8',
+            'vhaddeq.u16','vhaddne.u16','vhaddcs.u16','vhaddhs.u16','vhaddcc.u16','vhaddlo.u16','vhaddmi.u16','vhaddpl.u16','vhaddvs.u16','vhaddvc.u16','vhaddhi.u16','vhaddls.u16','vhaddge.u16','vhaddlt.u16','vhaddgt.u16','vhaddle.u16',
+            'vhaddeq.u32','vhaddne.u32','vhaddcs.u32','vhaddhs.u32','vhaddcc.u32','vhaddlo.u32','vhaddmi.u32','vhaddpl.u32','vhaddvs.u32','vhaddvc.u32','vhaddhi.u32','vhaddls.u32','vhaddge.u32','vhaddlt.u32','vhaddgt.u32','vhaddle.u32',
+
+            'vhsubeq.u8','vhsubne.u8','vhsubcs.u8','vhsubhs.u8','vhsubcc.u8','vhsublo.u8','vhsubmi.u8','vhsubpl.u8','vhsubvs.u8','vhsubvc.u8','vhsubhi.u8','vhsubls.u8','vhsubge.u8','vhsublt.u8','vhsubgt.u8','vhsuble.u8',
+            'vhsubeq.u16','vhsubne.u16','vhsubcs.u16','vhsubhs.u16','vhsubcc.u16','vhsublo.u16','vhsubmi.u16','vhsubpl.u16','vhsubvs.u16','vhsubvc.u16','vhsubhi.u16','vhsubls.u16','vhsubge.u16','vhsublt.u16','vhsubgt.u16','vhsuble.u16',
+            'vhsubeq.u32','vhsubne.u32','vhsubcs.u32','vhsubhs.u32','vhsubcc.u32','vhsublo.u32','vhsubmi.u32','vhsubpl.u32','vhsubvs.u32','vhsubvc.u32','vhsubhi.u32','vhsubls.u32','vhsubge.u32','vhsublt.u32','vhsubgt.u32','vhsuble.u32',
+
+            'vpadaleq.u8','vpadalne.u8','vpadalcs.u8','vpadalhs.u8','vpadalcc.u8','vpadallo.u8','vpadalmi.u8','vpadalpl.u8','vpadalvs.u8','vpadalvc.u8','vpadalhi.u8','vpadalls.u8','vpadalge.u8','vpadallt.u8','vpadalgt.u8','vpadalle.u8',
+            'vpadaleq.u16','vpadalne.u16','vpadalcs.u16','vpadalhs.u16','vpadalcc.u16','vpadallo.u16','vpadalmi.u16','vpadalpl.u16','vpadalvs.u16','vpadalvc.u16','vpadalhi.u16','vpadalls.u16','vpadalge.u16','vpadallt.u16','vpadalgt.u16','vpadalle.u16',
+            'vpadaleq.u32','vpadalne.u32','vpadalcs.u32','vpadalhs.u32','vpadalcc.u32','vpadallo.u32','vpadalmi.u32','vpadalpl.u32','vpadalvs.u32','vpadalvc.u32','vpadalhi.u32','vpadalls.u32','vpadalge.u32','vpadallt.u32','vpadalgt.u32','vpadalle.u32',
+
+            'vpaddleq.u8','vpaddlne.u8','vpaddlcs.u8','vpaddlhs.u8','vpaddlcc.u8','vpaddllo.u8','vpaddlmi.u8','vpaddlpl.u8','vpaddlvs.u8','vpaddlvc.u8','vpaddlhi.u8','vpaddlls.u8','vpaddlge.u8','vpaddllt.u8','vpaddlgt.u8','vpaddlle.u8',
+            'vpaddleq.u16','vpaddlne.u16','vpaddlcs.u16','vpaddlhs.u16','vpaddlcc.u16','vpaddllo.u16','vpaddlmi.u16','vpaddlpl.u16','vpaddlvs.u16','vpaddlvc.u16','vpaddlhi.u16','vpaddlls.u16','vpaddlge.u16','vpaddllt.u16','vpaddlgt.u16','vpaddlle.u16',
+            'vpaddleq.u32','vpaddlne.u32','vpaddlcs.u32','vpaddlhs.u32','vpaddlcc.u32','vpaddllo.u32','vpaddlmi.u32','vpaddlpl.u32','vpaddlvs.u32','vpaddlvc.u32','vpaddlhi.u32','vpaddlls.u32','vpaddlge.u32','vpaddllt.u32','vpaddlgt.u32','vpaddlle.u32',
+
+            'vcgeeq.u8','vcgene.u8','vcgecs.u8','vcgehs.u8','vcgecc.u8','vcgelo.u8','vcgemi.u8','vcgepl.u8','vcgevs.u8','vcgevc.u8','vcgehi.u8','vcgels.u8','vcgege.u8','vcgelt.u8','vcgegt.u8','vcgele.u8',
+            'vcgeeq.u16','vcgene.u16','vcgecs.u16','vcgehs.u16','vcgecc.u16','vcgelo.u16','vcgemi.u16','vcgepl.u16','vcgevs.u16','vcgevc.u16','vcgehi.u16','vcgels.u16','vcgege.u16','vcgelt.u16','vcgegt.u16','vcgele.u16',
+            'vcgeeq.u32','vcgene.u32','vcgecs.u32','vcgehs.u32','vcgecc.u32','vcgelo.u32','vcgemi.u32','vcgepl.u32','vcgevs.u32','vcgevc.u32','vcgehi.u32','vcgels.u32','vcgege.u32','vcgelt.u32','vcgegt.u32','vcgele.u32',
+
+            'vcleeq.u8','vclene.u8','vclecs.u8','vclehs.u8','vclecc.u8','vclelo.u8','vclemi.u8','vclepl.u8','vclevs.u8','vclevc.u8','vclehi.u8','vclels.u8','vclege.u8','vclelt.u8','vclegt.u8','vclele.u8',
+            'vcleeq.u16','vclene.u16','vclecs.u16','vclehs.u16','vclecc.u16','vclelo.u16','vclemi.u16','vclepl.u16','vclevs.u16','vclevc.u16','vclehi.u16','vclels.u16','vclege.u16','vclelt.u16','vclegt.u16','vclele.u16',
+            'vcleeq.u32','vclene.u32','vclecs.u32','vclehs.u32','vclecc.u32','vclelo.u32','vclemi.u32','vclepl.u32','vclevs.u32','vclevc.u32','vclehi.u32','vclels.u32','vclege.u32','vclelt.u32','vclegt.u32','vclele.u32',
+
+            'vcgteq.u8','vcgtne.u8','vcgtcs.u8','vcgths.u8','vcgtcc.u8','vcgtlo.u8','vcgtmi.u8','vcgtpl.u8','vcgtvs.u8','vcgtvc.u8','vcgthi.u8','vcgtls.u8','vcgtge.u8','vcgtlt.u8','vcgtgt.u8','vcgtle.u8',
+            'vcgteq.u16','vcgtne.u16','vcgtcs.u16','vcgths.u16','vcgtcc.u16','vcgtlo.u16','vcgtmi.u16','vcgtpl.u16','vcgtvs.u16','vcgtvc.u16','vcgthi.u16','vcgtls.u16','vcgtge.u16','vcgtlt.u16','vcgtgt.u16','vcgtle.u16',
+            'vcgteq.u32','vcgtne.u32','vcgtcs.u32','vcgths.u32','vcgtcc.u32','vcgtlo.u32','vcgtmi.u32','vcgtpl.u32','vcgtvs.u32','vcgtvc.u32','vcgthi.u32','vcgtls.u32','vcgtge.u32','vcgtlt.u32','vcgtgt.u32','vcgtle.u32',
+
+            'vclteq.u8','vcltne.u8','vcltcs.u8','vclths.u8','vcltcc.u8','vcltlo.u8','vcltmi.u8','vcltpl.u8','vcltvs.u8','vcltvc.u8','vclthi.u8','vcltls.u8','vcltge.u8','vcltlt.u8','vcltgt.u8','vcltle.u8',
+            'vclteq.u16','vcltne.u16','vcltcs.u16','vclths.u16','vcltcc.u16','vcltlo.u16','vcltmi.u16','vcltpl.u16','vcltvs.u16','vcltvc.u16','vclthi.u16','vcltls.u16','vcltge.u16','vcltlt.u16','vcltgt.u16','vcltle.u16',
+            'vclteq.u32','vcltne.u32','vcltcs.u32','vclths.u32','vcltcc.u32','vcltlo.u32','vcltmi.u32','vcltpl.u32','vcltvs.u32','vcltvc.u32','vclthi.u32','vcltls.u32','vcltge.u32','vcltlt.u32','vcltgt.u32','vcltle.u32',
+
+            'vmaxeq.u8','vmaxne.u8','vmaxcs.u8','vmaxhs.u8','vmaxcc.u8','vmaxlo.u8','vmaxmi.u8','vmaxpl.u8','vmaxvs.u8','vmaxvc.u8','vmaxhi.u8','vmaxls.u8','vmaxge.u8','vmaxlt.u8','vmaxgt.u8','vmaxle.u8',
+            'vmaxeq.u16','vmaxne.u16','vmaxcs.u16','vmaxhs.u16','vmaxcc.u16','vmaxlo.u16','vmaxmi.u16','vmaxpl.u16','vmaxvs.u16','vmaxvc.u16','vmaxhi.u16','vmaxls.u16','vmaxge.u16','vmaxlt.u16','vmaxgt.u16','vmaxle.u16',
+            'vmaxeq.u32','vmaxne.u32','vmaxcs.u32','vmaxhs.u32','vmaxcc.u32','vmaxlo.u32','vmaxmi.u32','vmaxpl.u32','vmaxvs.u32','vmaxvc.u32','vmaxhi.u32','vmaxls.u32','vmaxge.u32','vmaxlt.u32','vmaxgt.u32','vmaxle.u32',
+
+            'vmineq.u8','vminne.u8','vmincs.u8','vminhs.u8','vmincc.u8','vminlo.u8','vminmi.u8','vminpl.u8','vminvs.u8','vminvc.u8','vminhi.u8','vminls.u8','vminge.u8','vminlt.u8','vmingt.u8','vminle.u8',
+            'vmineq.u16','vminne.u16','vmincs.u16','vminhs.u16','vmincc.u16','vminlo.u16','vminmi.u16','vminpl.u16','vminvs.u16','vminvc.u16','vminhi.u16','vminls.u16','vminge.u16','vminlt.u16','vmingt.u16','vminle.u16',
+            'vmineq.u32','vminne.u32','vmincs.u32','vminhs.u32','vmincc.u32','vminlo.u32','vminmi.u32','vminpl.u32','vminvs.u32','vminvc.u32','vminhi.u32','vminls.u32','vminge.u32','vminlt.u32','vmingt.u32','vminle.u32',
+
+            'vmlaleq.u8','vmlalne.u8','vmlalcs.u8','vmlalhs.u8','vmlalcc.u8','vmlallo.u8','vmlalmi.u8','vmlalpl.u8','vmlalvs.u8','vmlalvc.u8','vmlalhi.u8','vmlalls.u8','vmlalge.u8','vmlallt.u8','vmlalgt.u8','vmlalle.u8',
+            'vmlaleq.u16','vmlalne.u16','vmlalcs.u16','vmlalhs.u16','vmlalcc.u16','vmlallo.u16','vmlalmi.u16','vmlalpl.u16','vmlalvs.u16','vmlalvc.u16','vmlalhi.u16','vmlalls.u16','vmlalge.u16','vmlallt.u16','vmlalgt.u16','vmlalle.u16',
+            'vmlaleq.u32','vmlalne.u32','vmlalcs.u32','vmlalhs.u32','vmlalcc.u32','vmlallo.u32','vmlalmi.u32','vmlalpl.u32','vmlalvs.u32','vmlalvc.u32','vmlalhi.u32','vmlalls.u32','vmlalge.u32','vmlallt.u32','vmlalgt.u32','vmlalle.u32',
+
+            'vmlsleq.u8','vmlslne.u8','vmlslcs.u8','vmlslhs.u8','vmlslcc.u8','vmlsllo.u8','vmlslmi.u8','vmlslpl.u8','vmlslvs.u8','vmlslvc.u8','vmlslhi.u8','vmlslls.u8','vmlslge.u8','vmlsllt.u8','vmlslgt.u8','vmlslle.u8',
+            'vmlsleq.u16','vmlslne.u16','vmlslcs.u16','vmlslhs.u16','vmlslcc.u16','vmlsllo.u16','vmlslmi.u16','vmlslpl.u16','vmlslvs.u16','vmlslvc.u16','vmlslhi.u16','vmlslls.u16','vmlslge.u16','vmlsllt.u16','vmlslgt.u16','vmlslle.u16',
+            'vmlsleq.u32','vmlslne.u32','vmlslcs.u32','vmlslhs.u32','vmlslcc.u32','vmlsllo.u32','vmlslmi.u32','vmlslpl.u32','vmlslvs.u32','vmlslvc.u32','vmlslhi.u32','vmlslls.u32','vmlslge.u32','vmlsllt.u32','vmlslgt.u32','vmlslle.u32',
+
+            'vmulleq.u8','vmullne.u8','vmullcs.u8','vmullhs.u8','vmullcc.u8','vmulllo.u8','vmullmi.u8','vmullpl.u8','vmullvs.u8','vmullvc.u8','vmullhi.u8','vmullls.u8','vmullge.u8','vmulllt.u8','vmullgt.u8','vmullle.u8',
+            'vmulleq.u16','vmullne.u16','vmullcs.u16','vmullhs.u16','vmullcc.u16','vmulllo.u16','vmullmi.u16','vmullpl.u16','vmullvs.u16','vmullvc.u16','vmullhi.u16','vmullls.u16','vmullge.u16','vmulllt.u16','vmullgt.u16','vmullle.u16',
+            'vmulleq.u32','vmullne.u32','vmullcs.u32','vmullhs.u32','vmullcc.u32','vmulllo.u32','vmullmi.u32','vmullpl.u32','vmullvs.u32','vmullvc.u32','vmullhi.u32','vmullls.u32','vmullge.u32','vmulllt.u32','vmullgt.u32','vmullle.u32',
+
+            'vmovleq.u8','vmovlne.u8','vmovlcs.u8','vmovlhs.u8','vmovlcc.u8','vmovllo.u8','vmovlmi.u8','vmovlpl.u8','vmovlvs.u8','vmovlvc.u8','vmovlhi.u8','vmovlls.u8','vmovlge.u8','vmovllt.u8','vmovlgt.u8','vmovlle.u8',
+            'vmovleq.u16','vmovlne.u16','vmovlcs.u16','vmovlhs.u16','vmovlcc.u16','vmovllo.u16','vmovlmi.u16','vmovlpl.u16','vmovlvs.u16','vmovlvc.u16','vmovlhi.u16','vmovlls.u16','vmovlge.u16','vmovllt.u16','vmovlgt.u16','vmovlle.u16',
+            'vmovleq.u32','vmovlne.u32','vmovlcs.u32','vmovlhs.u32','vmovlcc.u32','vmovllo.u32','vmovlmi.u32','vmovlpl.u32','vmovlvs.u32','vmovlvc.u32','vmovlhi.u32','vmovlls.u32','vmovlge.u32','vmovllt.u32','vmovlgt.u32','vmovlle.u32',
+
+            'vshleq.u8','vshlne.u8','vshlcs.u8','vshlhs.u8','vshlcc.u8','vshllo.u8','vshlmi.u8','vshlpl.u8','vshlvs.u8','vshlvc.u8','vshlhi.u8','vshlls.u8','vshlge.u8','vshllt.u8','vshlgt.u8','vshlle.u8',
+            'vshleq.u16','vshlne.u16','vshlcs.u16','vshlhs.u16','vshlcc.u16','vshllo.u16','vshlmi.u16','vshlpl.u16','vshlvs.u16','vshlvc.u16','vshlhi.u16','vshlls.u16','vshlge.u16','vshllt.u16','vshlgt.u16','vshlle.u16',
+            'vshleq.u32','vshlne.u32','vshlcs.u32','vshlhs.u32','vshlcc.u32','vshllo.u32','vshlmi.u32','vshlpl.u32','vshlvs.u32','vshlvc.u32','vshlhi.u32','vshlls.u32','vshlge.u32','vshllt.u32','vshlgt.u32','vshlle.u32',
+            'vshleq.u64','vshlne.u64','vshlcs.u64','vshlhs.u64','vshlcc.u64','vshllo.u64','vshlmi.u64','vshlpl.u64','vshlvs.u64','vshlvc.u64','vshlhi.u64','vshlls.u64','vshlge.u64','vshllt.u64','vshlgt.u64','vshlle.u64',
+
+            'vshlleq.u8','vshllne.u8','vshllcs.u8','vshllhs.u8','vshllcc.u8','vshlllo.u8','vshllmi.u8','vshllpl.u8','vshllvs.u8','vshllvc.u8','vshllhi.u8','vshllls.u8','vshllge.u8','vshlllt.u8','vshllgt.u8','vshllle.u8',
+            'vshlleq.u16','vshllne.u16','vshllcs.u16','vshllhs.u16','vshllcc.u16','vshlllo.u16','vshllmi.u16','vshllpl.u16','vshllvs.u16','vshllvc.u16','vshllhi.u16','vshllls.u16','vshllge.u16','vshlllt.u16','vshllgt.u16','vshllle.u16',
+            'vshlleq.u32','vshllne.u32','vshllcs.u32','vshllhs.u32','vshllcc.u32','vshlllo.u32','vshllmi.u32','vshllpl.u32','vshllvs.u32','vshllvc.u32','vshllhi.u32','vshllls.u32','vshllge.u32','vshlllt.u32','vshllgt.u32','vshllle.u32',
+
+            'vshreq.u8','vshrne.u8','vshrcs.u8','vshrhs.u8','vshrcc.u8','vshrlo.u8','vshrmi.u8','vshrpl.u8','vshrvs.u8','vshrvc.u8','vshrhi.u8','vshrls.u8','vshrge.u8','vshrlt.u8','vshrgt.u8','vshrle.u8',
+            'vshreq.u16','vshrne.u16','vshrcs.u16','vshrhs.u16','vshrcc.u16','vshrlo.u16','vshrmi.u16','vshrpl.u16','vshrvs.u16','vshrvc.u16','vshrhi.u16','vshrls.u16','vshrge.u16','vshrlt.u16','vshrgt.u16','vshrle.u16',
+            'vshreq.u32','vshrne.u32','vshrcs.u32','vshrhs.u32','vshrcc.u32','vshrlo.u32','vshrmi.u32','vshrpl.u32','vshrvs.u32','vshrvc.u32','vshrhi.u32','vshrls.u32','vshrge.u32','vshrlt.u32','vshrgt.u32','vshrle.u32',
+            'vshreq.u64','vshrne.u64','vshrcs.u64','vshrhs.u64','vshrcc.u64','vshrlo.u64','vshrmi.u64','vshrpl.u64','vshrvs.u64','vshrvc.u64','vshrhi.u64','vshrls.u64','vshrge.u64','vshrlt.u64','vshrgt.u64','vshrle.u64',
+
+            'vsraeq.u8','vsrane.u8','vsracs.u8','vsrahs.u8','vsracc.u8','vsralo.u8','vsrami.u8','vsrapl.u8','vsravs.u8','vsravc.u8','vsrahi.u8','vsrals.u8','vsrage.u8','vsralt.u8','vsragt.u8','vsrale.u8',
+            'vsraeq.u16','vsrane.u16','vsracs.u16','vsrahs.u16','vsracc.u16','vsralo.u16','vsrami.u16','vsrapl.u16','vsravs.u16','vsravc.u16','vsrahi.u16','vsrals.u16','vsrage.u16','vsralt.u16','vsragt.u16','vsrale.u16',
+            'vsraeq.u32','vsrane.u32','vsracs.u32','vsrahs.u32','vsracc.u32','vsralo.u32','vsrami.u32','vsrapl.u32','vsravs.u32','vsravc.u32','vsrahi.u32','vsrals.u32','vsrage.u32','vsralt.u32','vsragt.u32','vsrale.u32',
+            'vsraeq.u64','vsrane.u64','vsracs.u64','vsrahs.u64','vsracc.u64','vsralo.u64','vsrami.u64','vsrapl.u64','vsravs.u64','vsravc.u64','vsrahi.u64','vsrals.u64','vsrage.u64','vsralt.u64','vsragt.u64','vsrale.u64',
+
+            'vpmaxeq.u8','vpmaxne.u8','vpmaxcs.u8','vpmaxhs.u8','vpmaxcc.u8','vpmaxlo.u8','vpmaxmi.u8','vpmaxpl.u8','vpmaxvs.u8','vpmaxvc.u8','vpmaxhi.u8','vpmaxls.u8','vpmaxge.u8','vpmaxlt.u8','vpmaxgt.u8','vpmaxle.u8',
+            'vpmaxeq.u16','vpmaxne.u16','vpmaxcs.u16','vpmaxhs.u16','vpmaxcc.u16','vpmaxlo.u16','vpmaxmi.u16','vpmaxpl.u16','vpmaxvs.u16','vpmaxvc.u16','vpmaxhi.u16','vpmaxls.u16','vpmaxge.u16','vpmaxlt.u16','vpmaxgt.u16','vpmaxle.u16',
+            'vpmaxeq.u32','vpmaxne.u32','vpmaxcs.u32','vpmaxhs.u32','vpmaxcc.u32','vpmaxlo.u32','vpmaxmi.u32','vpmaxpl.u32','vpmaxvs.u32','vpmaxvc.u32','vpmaxhi.u32','vpmaxls.u32','vpmaxge.u32','vpmaxlt.u32','vpmaxgt.u32','vpmaxle.u32',
+
+            'vpmineq.u8','vpminne.u8','vpmincs.u8','vpminhs.u8','vpmincc.u8','vpminlo.u8','vpminmi.u8','vpminpl.u8','vpminvs.u8','vpminvc.u8','vpminhi.u8','vpminls.u8','vpminge.u8','vpminlt.u8','vpmingt.u8','vpminle.u8',
+            'vpmineq.u16','vpminne.u16','vpmincs.u16','vpminhs.u16','vpmincc.u16','vpminlo.u16','vpminmi.u16','vpminpl.u16','vpminvs.u16','vpminvc.u16','vpminhi.u16','vpminls.u16','vpminge.u16','vpminlt.u16','vpmingt.u16','vpminle.u16',
+            'vpmineq.u32','vpminne.u32','vpmincs.u32','vpminhs.u32','vpmincc.u32','vpminlo.u32','vpminmi.u32','vpminpl.u32','vpminvs.u32','vpminvc.u32','vpminhi.u32','vpminls.u32','vpminge.u32','vpminlt.u32','vpmingt.u32','vpminle.u32',
+
+            'vqaddeq.u8','vqaddne.u8','vqaddcs.u8','vqaddhs.u8','vqaddcc.u8','vqaddlo.u8','vqaddmi.u8','vqaddpl.u8','vqaddvs.u8','vqaddvc.u8','vqaddhi.u8','vqaddls.u8','vqaddge.u8','vqaddlt.u8','vqaddgt.u8','vqaddle.u8',
+            'vqaddeq.u16','vqaddne.u16','vqaddcs.u16','vqaddhs.u16','vqaddcc.u16','vqaddlo.u16','vqaddmi.u16','vqaddpl.u16','vqaddvs.u16','vqaddvc.u16','vqaddhi.u16','vqaddls.u16','vqaddge.u16','vqaddlt.u16','vqaddgt.u16','vqaddle.u16',
+            'vqaddeq.u32','vqaddne.u32','vqaddcs.u32','vqaddhs.u32','vqaddcc.u32','vqaddlo.u32','vqaddmi.u32','vqaddpl.u32','vqaddvs.u32','vqaddvc.u32','vqaddhi.u32','vqaddls.u32','vqaddge.u32','vqaddlt.u32','vqaddgt.u32','vqaddle.u32',
+            'vqaddeq.u64','vqaddne.u64','vqaddcs.u64','vqaddhs.u64','vqaddcc.u64','vqaddlo.u64','vqaddmi.u64','vqaddpl.u64','vqaddvs.u64','vqaddvc.u64','vqaddhi.u64','vqaddls.u64','vqaddge.u64','vqaddlt.u64','vqaddgt.u64','vqaddle.u64',
+
+            'vqsubeq.u8','vqsubne.u8','vqsubcs.u8','vqsubhs.u8','vqsubcc.u8','vqsublo.u8','vqsubmi.u8','vqsubpl.u8','vqsubvs.u8','vqsubvc.u8','vqsubhi.u8','vqsubls.u8','vqsubge.u8','vqsublt.u8','vqsubgt.u8','vqsuble.u8',
+            'vqsubeq.u16','vqsubne.u16','vqsubcs.u16','vqsubhs.u16','vqsubcc.u16','vqsublo.u16','vqsubmi.u16','vqsubpl.u16','vqsubvs.u16','vqsubvc.u16','vqsubhi.u16','vqsubls.u16','vqsubge.u16','vqsublt.u16','vqsubgt.u16','vqsuble.u16',
+            'vqsubeq.u32','vqsubne.u32','vqsubcs.u32','vqsubhs.u32','vqsubcc.u32','vqsublo.u32','vqsubmi.u32','vqsubpl.u32','vqsubvs.u32','vqsubvc.u32','vqsubhi.u32','vqsubls.u32','vqsubge.u32','vqsublt.u32','vqsubgt.u32','vqsuble.u32',
+            'vqsubeq.u64','vqsubne.u64','vqsubcs.u64','vqsubhs.u64','vqsubcc.u64','vqsublo.u64','vqsubmi.u64','vqsubpl.u64','vqsubvs.u64','vqsubvc.u64','vqsubhi.u64','vqsubls.u64','vqsubge.u64','vqsublt.u64','vqsubgt.u64','vqsuble.u64',
+
+            'vqmovneq.u16','vqmovnne.u16','vqmovncs.u16','vqmovnhs.u16','vqmovncc.u16','vqmovnlo.u16','vqmovnmi.u16','vqmovnpl.u16','vqmovnvs.u16','vqmovnvc.u16','vqmovnhi.u16','vqmovnls.u16','vqmovnge.u16','vqmovnlt.u16','vqmovngt.u16','vqmovnle.u16',
+            'vqmovneq.u32','vqmovnne.u32','vqmovncs.u32','vqmovnhs.u32','vqmovncc.u32','vqmovnlo.u32','vqmovnmi.u32','vqmovnpl.u32','vqmovnvs.u32','vqmovnvc.u32','vqmovnhi.u32','vqmovnls.u32','vqmovnge.u32','vqmovnlt.u32','vqmovngt.u32','vqmovnle.u32',
+            'vqmovneq.u64','vqmovnne.u64','vqmovncs.u64','vqmovnhs.u64','vqmovncc.u64','vqmovnlo.u64','vqmovnmi.u64','vqmovnpl.u64','vqmovnvs.u64','vqmovnvc.u64','vqmovnhi.u64','vqmovnls.u64','vqmovnge.u64','vqmovnlt.u64','vqmovngt.u64','vqmovnle.u64',
+
+            'vqshleq.u8','vqshlne.u8','vqshlcs.u8','vqshlhs.u8','vqshlcc.u8','vqshllo.u8','vqshlmi.u8','vqshlpl.u8','vqshlvs.u8','vqshlvc.u8','vqshlhi.u8','vqshlls.u8','vqshlge.u8','vqshllt.u8','vqshlgt.u8','vqshlle.u8',
+            'vqshleq.u16','vqshlne.u16','vqshlcs.u16','vqshlhs.u16','vqshlcc.u16','vqshllo.u16','vqshlmi.u16','vqshlpl.u16','vqshlvs.u16','vqshlvc.u16','vqshlhi.u16','vqshlls.u16','vqshlge.u16','vqshllt.u16','vqshlgt.u16','vqshlle.u16',
+            'vqshleq.u32','vqshlne.u32','vqshlcs.u32','vqshlhs.u32','vqshlcc.u32','vqshllo.u32','vqshlmi.u32','vqshlpl.u32','vqshlvs.u32','vqshlvc.u32','vqshlhi.u32','vqshlls.u32','vqshlge.u32','vqshllt.u32','vqshlgt.u32','vqshlle.u32',
+            'vqshleq.u64','vqshlne.u64','vqshlcs.u64','vqshlhs.u64','vqshlcc.u64','vqshllo.u64','vqshlmi.u64','vqshlpl.u64','vqshlvs.u64','vqshlvc.u64','vqshlhi.u64','vqshlls.u64','vqshlge.u64','vqshllt.u64','vqshlgt.u64','vqshlle.u64',
+
+            'vqshrneq.u16','vqshrnne.u16','vqshrncs.u16','vqshrnhs.u16','vqshrncc.u16','vqshrnlo.u16','vqshrnmi.u16','vqshrnpl.u16','vqshrnvs.u16','vqshrnvc.u16','vqshrnhi.u16','vqshrnls.u16','vqshrnge.u16','vqshrnlt.u16','vqshrngt.u16','vqshrnle.u16',
+            'vqshrneq.u32','vqshrnne.u32','vqshrncs.u32','vqshrnhs.u32','vqshrncc.u32','vqshrnlo.u32','vqshrnmi.u32','vqshrnpl.u32','vqshrnvs.u32','vqshrnvc.u32','vqshrnhi.u32','vqshrnls.u32','vqshrnge.u32','vqshrnlt.u32','vqshrngt.u32','vqshrnle.u32',
+            'vqshrneq.u64','vqshrnne.u64','vqshrncs.u64','vqshrnhs.u64','vqshrncc.u64','vqshrnlo.u64','vqshrnmi.u64','vqshrnpl.u64','vqshrnvs.u64','vqshrnvc.u64','vqshrnhi.u64','vqshrnls.u64','vqshrnge.u64','vqshrnlt.u64','vqshrngt.u64','vqshrnle.u64',
+
+            'vqrshleq.u8','vqrshlne.u8','vqrshlcs.u8','vqrshlhs.u8','vqrshlcc.u8','vqrshllo.u8','vqrshlmi.u8','vqrshlpl.u8','vqrshlvs.u8','vqrshlvc.u8','vqrshlhi.u8','vqrshlls.u8','vqrshlge.u8','vqrshllt.u8','vqrshlgt.u8','vqrshlle.u8',
+            'vqrshleq.u16','vqrshlne.u16','vqrshlcs.u16','vqrshlhs.u16','vqrshlcc.u16','vqrshllo.u16','vqrshlmi.u16','vqrshlpl.u16','vqrshlvs.u16','vqrshlvc.u16','vqrshlhi.u16','vqrshlls.u16','vqrshlge.u16','vqrshllt.u16','vqrshlgt.u16','vqrshlle.u16',
+            'vqrshleq.u32','vqrshlne.u32','vqrshlcs.u32','vqrshlhs.u32','vqrshlcc.u32','vqrshllo.u32','vqrshlmi.u32','vqrshlpl.u32','vqrshlvs.u32','vqrshlvc.u32','vqrshlhi.u32','vqrshlls.u32','vqrshlge.u32','vqrshllt.u32','vqrshlgt.u32','vqrshlle.u32',
+            'vqrshleq.u64','vqrshlne.u64','vqrshlcs.u64','vqrshlhs.u64','vqrshlcc.u64','vqrshllo.u64','vqrshlmi.u64','vqrshlpl.u64','vqrshlvs.u64','vqrshlvc.u64','vqrshlhi.u64','vqrshlls.u64','vqrshlge.u64','vqrshllt.u64','vqrshlgt.u64','vqrshlle.u64',
+
+            'vqrshrneq.u16','vqrshrnne.u16','vqrshrncs.u16','vqrshrnhs.u16','vqrshrncc.u16','vqrshrnlo.u16','vqrshrnmi.u16','vqrshrnpl.u16','vqrshrnvs.u16','vqrshrnvc.u16','vqrshrnhi.u16','vqrshrnls.u16','vqrshrnge.u16','vqrshrnlt.u16','vqrshrngt.u16','vqrshrnle.u16',
+            'vqrshrneq.u32','vqrshrnne.u32','vqrshrncs.u32','vqrshrnhs.u32','vqrshrncc.u32','vqrshrnlo.u32','vqrshrnmi.u32','vqrshrnpl.u32','vqrshrnvs.u32','vqrshrnvc.u32','vqrshrnhi.u32','vqrshrnls.u32','vqrshrnge.u32','vqrshrnlt.u32','vqrshrngt.u32','vqrshrnle.u32',
+            'vqrshrneq.u64','vqrshrnne.u64','vqrshrncs.u64','vqrshrnhs.u64','vqrshrncc.u64','vqrshrnlo.u64','vqrshrnmi.u64','vqrshrnpl.u64','vqrshrnvs.u64','vqrshrnvc.u64','vqrshrnhi.u64','vqrshrnls.u64','vqrshrnge.u64','vqrshrnlt.u64','vqrshrngt.u64','vqrshrnle.u64',
+
+            'vrhaddeq.u8','vrhaddne.u8','vrhaddcs.u8','vrhaddhs.u8','vrhaddcc.u8','vrhaddlo.u8','vrhaddmi.u8','vrhaddpl.u8','vrhaddvs.u8','vrhaddvc.u8','vrhaddhi.u8','vrhaddls.u8','vrhaddge.u8','vrhaddlt.u8','vrhaddgt.u8','vrhaddle.u8',
+            'vrhaddeq.u16','vrhaddne.u16','vrhaddcs.u16','vrhaddhs.u16','vrhaddcc.u16','vrhaddlo.u16','vrhaddmi.u16','vrhaddpl.u16','vrhaddvs.u16','vrhaddvc.u16','vrhaddhi.u16','vrhaddls.u16','vrhaddge.u16','vrhaddlt.u16','vrhaddgt.u16','vrhaddle.u16',
+            'vrhaddeq.u32','vrhaddne.u32','vrhaddcs.u32','vrhaddhs.u32','vrhaddcc.u32','vrhaddlo.u32','vrhaddmi.u32','vrhaddpl.u32','vrhaddvs.u32','vrhaddvc.u32','vrhaddhi.u32','vrhaddls.u32','vrhaddge.u32','vrhaddlt.u32','vrhaddgt.u32','vrhaddle.u32',
+
+            'vrshleq.u8','vrshlne.u8','vrshlcs.u8','vrshlhs.u8','vrshlcc.u8','vrshllo.u8','vrshlmi.u8','vrshlpl.u8','vrshlvs.u8','vrshlvc.u8','vrshlhi.u8','vrshlls.u8','vrshlge.u8','vrshllt.u8','vrshlgt.u8','vrshlle.u8',
+            'vrshleq.u16','vrshlne.u16','vrshlcs.u16','vrshlhs.u16','vrshlcc.u16','vrshllo.u16','vrshlmi.u16','vrshlpl.u16','vrshlvs.u16','vrshlvc.u16','vrshlhi.u16','vrshlls.u16','vrshlge.u16','vrshllt.u16','vrshlgt.u16','vrshlle.u16',
+            'vrshleq.u32','vrshlne.u32','vrshlcs.u32','vrshlhs.u32','vrshlcc.u32','vrshllo.u32','vrshlmi.u32','vrshlpl.u32','vrshlvs.u32','vrshlvc.u32','vrshlhi.u32','vrshlls.u32','vrshlge.u32','vrshllt.u32','vrshlgt.u32','vrshlle.u32',
+            'vrshleq.u64','vrshlne.u64','vrshlcs.u64','vrshlhs.u64','vrshlcc.u64','vrshllo.u64','vrshlmi.u64','vrshlpl.u64','vrshlvs.u64','vrshlvc.u64','vrshlhi.u64','vrshlls.u64','vrshlge.u64','vrshllt.u64','vrshlgt.u64','vrshlle.u64',
+
+            'vrshreq.u8','vrshrne.u8','vrshrcs.u8','vrshrhs.u8','vrshrcc.u8','vrshrlo.u8','vrshrmi.u8','vrshrpl.u8','vrshrvs.u8','vrshrvc.u8','vrshrhi.u8','vrshrls.u8','vrshrge.u8','vrshrlt.u8','vrshrgt.u8','vrshrle.u8',
+            'vrshreq.u16','vrshrne.u16','vrshrcs.u16','vrshrhs.u16','vrshrcc.u16','vrshrlo.u16','vrshrmi.u16','vrshrpl.u16','vrshrvs.u16','vrshrvc.u16','vrshrhi.u16','vrshrls.u16','vrshrge.u16','vrshrlt.u16','vrshrgt.u16','vrshrle.u16',
+            'vrshreq.u32','vrshrne.u32','vrshrcs.u32','vrshrhs.u32','vrshrcc.u32','vrshrlo.u32','vrshrmi.u32','vrshrpl.u32','vrshrvs.u32','vrshrvc.u32','vrshrhi.u32','vrshrls.u32','vrshrge.u32','vrshrlt.u32','vrshrgt.u32','vrshrle.u32',
+            'vrshreq.u64','vrshrne.u64','vrshrcs.u64','vrshrhs.u64','vrshrcc.u64','vrshrlo.u64','vrshrmi.u64','vrshrpl.u64','vrshrvs.u64','vrshrvc.u64','vrshrhi.u64','vrshrls.u64','vrshrge.u64','vrshrlt.u64','vrshrgt.u64','vrshrle.u64',
+
+            'vrsraeq.u8','vrsrane.u8','vrsracs.u8','vrsrahs.u8','vrsracc.u8','vrsralo.u8','vrsrami.u8','vrsrapl.u8','vrsravs.u8','vrsravc.u8','vrsrahi.u8','vrsrals.u8','vrsrage.u8','vrsralt.u8','vrsragt.u8','vrsrale.u8',
+            'vrsraeq.u16','vrsrane.u16','vrsracs.u16','vrsrahs.u16','vrsracc.u16','vrsralo.u16','vrsrami.u16','vrsrapl.u16','vrsravs.u16','vrsravc.u16','vrsrahi.u16','vrsrals.u16','vrsrage.u16','vrsralt.u16','vrsragt.u16','vrsrale.u16',
+            'vrsraeq.u32','vrsrane.u32','vrsracs.u32','vrsrahs.u32','vrsracc.u32','vrsralo.u32','vrsrami.u32','vrsrapl.u32','vrsravs.u32','vrsravc.u32','vrsrahi.u32','vrsrals.u32','vrsrage.u32','vrsralt.u32','vrsragt.u32','vrsrale.u32',
+            'vrsraeq.u64','vrsrane.u64','vrsracs.u64','vrsrahs.u64','vrsracc.u64','vrsralo.u64','vrsrami.u64','vrsrapl.u64','vrsravs.u64','vrsravc.u64','vrsrahi.u64','vrsrals.u64','vrsrage.u64','vrsralt.u64','vrsragt.u64','vrsrale.u64',
+            ),
+        /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
+        34 => array(
+            'vabdeq.f32','vabdne.f32','vabdcs.f32','vabdhs.f32','vabdcc.f32','vabdlo.f32','vabdmi.f32','vabdpl.f32','vabdvs.f32','vabdvc.f32','vabdhi.f32','vabdls.f32','vabdge.f32','vabdlt.f32','vabdgt.f32','vabdle.f32',
+
+            'vabseq.f32','vabsne.f32','vabscs.f32','vabshs.f32','vabscc.f32','vabslo.f32','vabsmi.f32','vabspl.f32','vabsvs.f32','vabsvc.f32','vabshi.f32','vabsls.f32','vabsge.f32','vabslt.f32','vabsgt.f32','vabsle.f32',
+            'vabseq.f64','vabsne.f64','vabscs.f64','vabshs.f64','vabscc.f64','vabslo.f64','vabsmi.f64','vabspl.f64','vabsvs.f64','vabsvc.f64','vabshi.f64','vabsls.f64','vabsge.f64','vabslt.f64','vabsgt.f64','vabsle.f64',
+
+            'vacgeeq.f32','vacgene.f32','vacgecs.f32','vacgehs.f32','vacgecc.f32','vacgelo.f32','vacgemi.f32','vacgepl.f32','vacgevs.f32','vacgevc.f32','vacgehi.f32','vacgels.f32','vacgege.f32','vacgelt.f32','vacgegt.f32','vacgele.f32',
+            'vacgteq.f32','vacgtne.f32','vacgtcs.f32','vacgths.f32','vacgtcc.f32','vacgtlo.f32','vacgtmi.f32','vacgtpl.f32','vacgtvs.f32','vacgtvc.f32','vacgthi.f32','vacgtls.f32','vacgtge.f32','vacgtlt.f32','vacgtgt.f32','vacgtle.f32',
+            'vacleeq.f32','vaclene.f32','vaclecs.f32','vaclehs.f32','vaclecc.f32','vaclelo.f32','vaclemi.f32','vaclepl.f32','vaclevs.f32','vaclevc.f32','vaclehi.f32','vaclels.f32','vaclege.f32','vaclelt.f32','vaclegt.f32','vaclele.f32',
+            'vaclteq.f32','vacltne.f32','vacltcs.f32','vaclths.f32','vacltcc.f32','vacltlo.f32','vacltmi.f32','vacltpl.f32','vacltvs.f32','vacltvc.f32','vaclthi.f32','vacltls.f32','vacltge.f32','vacltlt.f32','vacltgt.f32','vacltle.f32',
+
+            'vaddeq.f32','vaddne.f32','vaddcs.f32','vaddhs.f32','vaddcc.f32','vaddlo.f32','vaddmi.f32','vaddpl.f32','vaddvs.f32','vaddvc.f32','vaddhi.f32','vaddls.f32','vaddge.f32','vaddlt.f32','vaddgt.f32','vaddle.f32',
+            'vaddeq.f64','vaddne.f64','vaddcs.f64','vaddhs.f64','vaddcc.f64','vaddlo.f64','vaddmi.f64','vaddpl.f64','vaddvs.f64','vaddvc.f64','vaddhi.f64','vaddls.f64','vaddge.f64','vaddlt.f64','vaddgt.f64','vaddle.f64',
+
+            'vceqeq.f32','vceqne.f32','vceqcs.f32','vceqhs.f32','vceqcc.f32','vceqlo.f32','vceqmi.f32','vceqpl.f32','vceqvs.f32','vceqvc.f32','vceqhi.f32','vceqls.f32','vceqge.f32','vceqlt.f32','vceqgt.f32','vceqle.f32',
+            'vcgeeq.f32','vcgene.f32','vcgecs.f32','vcgehs.f32','vcgecc.f32','vcgelo.f32','vcgemi.f32','vcgepl.f32','vcgevs.f32','vcgevc.f32','vcgehi.f32','vcgels.f32','vcgege.f32','vcgelt.f32','vcgegt.f32','vcgele.f32',
+            'vcleeq.f32','vclene.f32','vclecs.f32','vclehs.f32','vclecc.f32','vclelo.f32','vclemi.f32','vclepl.f32','vclevs.f32','vclevc.f32','vclehi.f32','vclels.f32','vclege.f32','vclelt.f32','vclegt.f32','vclele.f32',
+            'vcgteq.f32','vcgtne.f32','vcgtcs.f32','vcgths.f32','vcgtcc.f32','vcgtlo.f32','vcgtmi.f32','vcgtpl.f32','vcgtvs.f32','vcgtvc.f32','vcgthi.f32','vcgtls.f32','vcgtge.f32','vcgtlt.f32','vcgtgt.f32','vcgtle.f32',
+            'vclteq.f32','vcltne.f32','vcltcs.f32','vclths.f32','vcltcc.f32','vcltlo.f32','vcltmi.f32','vcltpl.f32','vcltvs.f32','vcltvc.f32','vclthi.f32','vcltls.f32','vcltge.f32','vcltlt.f32','vcltgt.f32','vcltle.f32',
+
+            'vcmpeq.f32','vcmpne.f32','vcmpcs.f32','vcmphs.f32','vcmpcc.f32','vcmplo.f32','vcmpmi.f32','vcmppl.f32','vcmpvs.f32','vcmpvc.f32','vcmphi.f32','vcmpls.f32','vcmpge.f32','vcmplt.f32','vcmpgt.f32','vcmple.f32',
+            'vcmpeq.f64','vcmpne.f64','vcmpcs.f64','vcmphs.f64','vcmpcc.f64','vcmplo.f64','vcmpmi.f64','vcmppl.f64','vcmpvs.f64','vcmpvc.f64','vcmphi.f64','vcmpls.f64','vcmpge.f64','vcmplt.f64','vcmpgt.f64','vcmple.f64',
+
+            'vcmpeeq.f32','vcmpene.f32','vcmpecs.f32','vcmpehs.f32','vcmpecc.f32','vcmpelo.f32','vcmpemi.f32','vcmpepl.f32','vcmpevs.f32','vcmpevc.f32','vcmpehi.f32','vcmpels.f32','vcmpege.f32','vcmpelt.f32','vcmpegt.f32','vcmpele.f32',
+            'vcmpeeq.f64','vcmpene.f64','vcmpecs.f64','vcmpehs.f64','vcmpecc.f64','vcmpelo.f64','vcmpemi.f64','vcmpepl.f64','vcmpevs.f64','vcmpevc.f64','vcmpehi.f64','vcmpels.f64','vcmpege.f64','vcmpelt.f64','vcmpegt.f64','vcmpele.f64',
+
+            'vcvteq.s16.f32','vcvtne.s16.f32','vcvtcs.s16.f32','vcvths.s16.f32','vcvtcc.s16.f32','vcvtlo.s16.f32','vcvtmi.s16.f32','vcvtpl.s16.f32','vcvtvs.s16.f32','vcvtvc.s16.f32','vcvthi.s16.f32','vcvtls.s16.f32','vcvtge.s16.f32','vcvtlt.s16.f32','vcvtgt.s16.f32','vcvtle.s16.f32',
+            'vcvteq.s16.f64','vcvtne.s16.f64','vcvtcs.s16.f64','vcvths.s16.f64','vcvtcc.s16.f64','vcvtlo.s16.f64','vcvtmi.s16.f64','vcvtpl.s16.f64','vcvtvs.s16.f64','vcvtvc.s16.f64','vcvthi.s16.f64','vcvtls.s16.f64','vcvtge.s16.f64','vcvtlt.s16.f64','vcvtgt.s16.f64','vcvtle.s16.f64',
+            'vcvteq.s32.f32','vcvtne.s32.f32','vcvtcs.s32.f32','vcvths.s32.f32','vcvtcc.s32.f32','vcvtlo.s32.f32','vcvtmi.s32.f32','vcvtpl.s32.f32','vcvtvs.s32.f32','vcvtvc.s32.f32','vcvthi.s32.f32','vcvtls.s32.f32','vcvtge.s32.f32','vcvtlt.s32.f32','vcvtgt.s32.f32','vcvtle.s32.f32',
+            'vcvteq.s32.f64','vcvtne.s32.f64','vcvtcs.s32.f64','vcvths.s32.f64','vcvtcc.s32.f64','vcvtlo.s32.f64','vcvtmi.s32.f64','vcvtpl.s32.f64','vcvtvs.s32.f64','vcvtvc.s32.f64','vcvthi.s32.f64','vcvtls.s32.f64','vcvtge.s32.f64','vcvtlt.s32.f64','vcvtgt.s32.f64','vcvtle.s32.f64',
+            'vcvteq.u16.f32','vcvtne.u16.f32','vcvtcs.u16.f32','vcvths.u16.f32','vcvtcc.u16.f32','vcvtlo.u16.f32','vcvtmi.u16.f32','vcvtpl.u16.f32','vcvtvs.u16.f32','vcvtvc.u16.f32','vcvthi.u16.f32','vcvtls.u16.f32','vcvtge.u16.f32','vcvtlt.u16.f32','vcvtgt.u16.f32','vcvtle.u16.f32',
+            'vcvteq.u16.f64','vcvtne.u16.f64','vcvtcs.u16.f64','vcvths.u16.f64','vcvtcc.u16.f64','vcvtlo.u16.f64','vcvtmi.u16.f64','vcvtpl.u16.f64','vcvtvs.u16.f64','vcvtvc.u16.f64','vcvthi.u16.f64','vcvtls.u16.f64','vcvtge.u16.f64','vcvtlt.u16.f64','vcvtgt.u16.f64','vcvtle.u16.f64',
+            'vcvteq.u32.f32','vcvtne.u32.f32','vcvtcs.u32.f32','vcvths.u32.f32','vcvtcc.u32.f32','vcvtlo.u32.f32','vcvtmi.u32.f32','vcvtpl.u32.f32','vcvtvs.u32.f32','vcvtvc.u32.f32','vcvthi.u32.f32','vcvtls.u32.f32','vcvtge.u32.f32','vcvtlt.u32.f32','vcvtgt.u32.f32','vcvtle.u32.f32',
+            'vcvteq.u32.f64','vcvtne.u32.f64','vcvtcs.u32.f64','vcvths.u32.f64','vcvtcc.u32.f64','vcvtlo.u32.f64','vcvtmi.u32.f64','vcvtpl.u32.f64','vcvtvs.u32.f64','vcvtvc.u32.f64','vcvthi.u32.f64','vcvtls.u32.f64','vcvtge.u32.f64','vcvtlt.u32.f64','vcvtgt.u32.f64','vcvtle.u32.f64',
+            'vcvteq.f16.f32','vcvtne.f16.f32','vcvtcs.f16.f32','vcvths.f16.f32','vcvtcc.f16.f32','vcvtlo.f16.f32','vcvtmi.f16.f32','vcvtpl.f16.f32','vcvtvs.f16.f32','vcvtvc.f16.f32','vcvthi.f16.f32','vcvtls.f16.f32','vcvtge.f16.f32','vcvtlt.f16.f32','vcvtgt.f16.f32','vcvtle.f16.f32',
+            'vcvteq.f32.s32','vcvtne.f32.s32','vcvtcs.f32.s32','vcvths.f32.s32','vcvtcc.f32.s32','vcvtlo.f32.s32','vcvtmi.f32.s32','vcvtpl.f32.s32','vcvtvs.f32.s32','vcvtvc.f32.s32','vcvthi.f32.s32','vcvtls.f32.s32','vcvtge.f32.s32','vcvtlt.f32.s32','vcvtgt.f32.s32','vcvtle.f32.s32',
+            'vcvteq.f32.u32','vcvtne.f32.u32','vcvtcs.f32.u32','vcvths.f32.u32','vcvtcc.f32.u32','vcvtlo.f32.u32','vcvtmi.f32.u32','vcvtpl.f32.u32','vcvtvs.f32.u32','vcvtvc.f32.u32','vcvthi.f32.u32','vcvtls.f32.u32','vcvtge.f32.u32','vcvtlt.f32.u32','vcvtgt.f32.u32','vcvtle.f32.u32',
+            'vcvteq.f32.f16','vcvtne.f32.f16','vcvtcs.f32.f16','vcvths.f32.f16','vcvtcc.f32.f16','vcvtlo.f32.f16','vcvtmi.f32.f16','vcvtpl.f32.f16','vcvtvs.f32.f16','vcvtvc.f32.f16','vcvthi.f32.f16','vcvtls.f32.f16','vcvtge.f32.f16','vcvtlt.f32.f16','vcvtgt.f32.f16','vcvtle.f32.f16',
+            'vcvteq.f32.f64','vcvtne.f32.f64','vcvtcs.f32.f64','vcvths.f32.f64','vcvtcc.f32.f64','vcvtlo.f32.f64','vcvtmi.f32.f64','vcvtpl.f32.f64','vcvtvs.f32.f64','vcvtvc.f32.f64','vcvthi.f32.f64','vcvtls.f32.f64','vcvtge.f32.f64','vcvtlt.f32.f64','vcvtgt.f32.f64','vcvtle.f32.f64',
+            'vcvteq.f64.s32','vcvtne.f64.s32','vcvtcs.f64.s32','vcvths.f64.s32','vcvtcc.f64.s32','vcvtlo.f64.s32','vcvtmi.f64.s32','vcvtpl.f64.s32','vcvtvs.f64.s32','vcvtvc.f64.s32','vcvthi.f64.s32','vcvtls.f64.s32','vcvtge.f64.s32','vcvtlt.f64.s32','vcvtgt.f64.s32','vcvtle.f64.s32',
+            'vcvteq.f64.u32','vcvtne.f64.u32','vcvtcs.f64.u32','vcvths.f64.u32','vcvtcc.f64.u32','vcvtlo.f64.u32','vcvtmi.f64.u32','vcvtpl.f64.u32','vcvtvs.f64.u32','vcvtvc.f64.u32','vcvthi.f64.u32','vcvtls.f64.u32','vcvtge.f64.u32','vcvtlt.f64.u32','vcvtgt.f64.u32','vcvtle.f64.u32',
+            'vcvteq.f64.f32','vcvtne.f64.f32','vcvtcs.f64.f32','vcvths.f64.f32','vcvtcc.f64.f32','vcvtlo.f64.f32','vcvtmi.f64.f32','vcvtpl.f64.f32','vcvtvs.f64.f32','vcvtvc.f64.f32','vcvthi.f64.f32','vcvtls.f64.f32','vcvtge.f64.f32','vcvtlt.f64.f32','vcvtgt.f64.f32','vcvtle.f64.f32',
+
+            'vcvtreq.s32.f32','vcvtrne.s32.f32','vcvtrcs.s32.f32','vcvtrhs.s32.f32','vcvtrcc.s32.f32','vcvtrlo.s32.f32','vcvtrmi.s32.f32','vcvtrpl.s32.f32','vcvtrvs.s32.f32','vcvtrvc.s32.f32','vcvtrhi.s32.f32','vcvtrls.s32.f32','vcvtrge.s32.f32','vcvtrlt.s32.f32','vcvtrgt.s32.f32','vcvtrle.s32.f32',
+            'vcvtreq.s32.f64','vcvtrne.s32.f64','vcvtrcs.s32.f64','vcvtrhs.s32.f64','vcvtrcc.s32.f64','vcvtrlo.s32.f64','vcvtrmi.s32.f64','vcvtrpl.s32.f64','vcvtrvs.s32.f64','vcvtrvc.s32.f64','vcvtrhi.s32.f64','vcvtrls.s32.f64','vcvtrge.s32.f64','vcvtrlt.s32.f64','vcvtrgt.s32.f64','vcvtrle.s32.f64',
+            'vcvtreq.u32.f32','vcvtrne.u32.f32','vcvtrcs.u32.f32','vcvtrhs.u32.f32','vcvtrcc.u32.f32','vcvtrlo.u32.f32','vcvtrmi.u32.f32','vcvtrpl.u32.f32','vcvtrvs.u32.f32','vcvtrvc.u32.f32','vcvtrhi.u32.f32','vcvtrls.u32.f32','vcvtrge.u32.f32','vcvtrlt.u32.f32','vcvtrgt.u32.f32','vcvtrle.u32.f32',
+            'vcvtreq.u32.f64','vcvtrne.u32.f64','vcvtrcs.u32.f64','vcvtrhs.u32.f64','vcvtrcc.u32.f64','vcvtrlo.u32.f64','vcvtrmi.u32.f64','vcvtrpl.u32.f64','vcvtrvs.u32.f64','vcvtrvc.u32.f64','vcvtrhi.u32.f64','vcvtrls.u32.f64','vcvtrge.u32.f64','vcvtrlt.u32.f64','vcvtrgt.u32.f64','vcvtrle.u32.f64',
+
+            'vcvtbeq.f16.f32','vcvtbne.f16.f32','vcvtbcs.f16.f32','vcvtbhs.f16.f32','vcvtbcc.f16.f32','vcvtblo.f16.f32','vcvtbmi.f16.f32','vcvtbpl.f16.f32','vcvtbvs.f16.f32','vcvtbvc.f16.f32','vcvtbhi.f16.f32','vcvtbls.f16.f32','vcvtbge.f16.f32','vcvtblt.f16.f32','vcvtbgt.f16.f32','vcvtble.f16.f32',
+            'vcvtbeq.f32.f16','vcvtbne.f32.f16','vcvtbcs.f32.f16','vcvtbhs.f32.f16','vcvtbcc.f32.f16','vcvtblo.f32.f16','vcvtbmi.f32.f16','vcvtbpl.f32.f16','vcvtbvs.f32.f16','vcvtbvc.f32.f16','vcvtbhi.f32.f16','vcvtbls.f32.f16','vcvtbge.f32.f16','vcvtblt.f32.f16','vcvtbgt.f32.f16','vcvtble.f32.f16',
+
+            'vcvtteq.f16.f32','vcvttne.f16.f32','vcvttcs.f16.f32','vcvtths.f16.f32','vcvttcc.f16.f32','vcvttlo.f16.f32','vcvttmi.f16.f32','vcvttpl.f16.f32','vcvttvs.f16.f32','vcvttvc.f16.f32','vcvtthi.f16.f32','vcvttls.f16.f32','vcvttge.f16.f32','vcvttlt.f16.f32','vcvttgt.f16.f32','vcvttle.f16.f32',
+            'vcvtteq.f32.f16','vcvttne.f32.f16','vcvttcs.f32.f16','vcvtths.f32.f16','vcvttcc.f32.f16','vcvttlo.f32.f16','vcvttmi.f32.f16','vcvttpl.f32.f16','vcvttvs.f32.f16','vcvttvc.f32.f16','vcvtthi.f32.f16','vcvttls.f32.f16','vcvttge.f32.f16','vcvttlt.f32.f16','vcvttgt.f32.f16','vcvttle.f32.f16',
+
+            'vdiveq.f32','vdivne.f32','vdivcs.f32','vdivhs.f32','vdivcc.f32','vdivlo.f32','vdivmi.f32','vdivpl.f32','vdivvs.f32','vdivvc.f32','vdivhi.f32','vdivls.f32','vdivge.f32','vdivlt.f32','vdivgt.f32','vdivle.f32',
+            'vdiveq.f64','vdivne.f64','vdivcs.f64','vdivhs.f64','vdivcc.f64','vdivlo.f64','vdivmi.f64','vdivpl.f64','vdivvs.f64','vdivvc.f64','vdivhi.f64','vdivls.f64','vdivge.f64','vdivlt.f64','vdivgt.f64','vdivle.f64',
+
+            'vmaxeq.f32','vmaxne.f32','vmaxcs.f32','vmaxhs.f32','vmaxcc.f32','vmaxlo.f32','vmaxmi.f32','vmaxpl.f32','vmaxvs.f32','vmaxvc.f32','vmaxhi.f32','vmaxls.f32','vmaxge.f32','vmaxlt.f32','vmaxgt.f32','vmaxle.f32',
+            'vmineq.f32','vminne.f32','vmincs.f32','vminhs.f32','vmincc.f32','vminlo.f32','vminmi.f32','vminpl.f32','vminvs.f32','vminvc.f32','vminhi.f32','vminls.f32','vminge.f32','vminlt.f32','vmingt.f32','vminle.f32',
+
+            'vmlaeq.f32','vmlane.f32','vmlacs.f32','vmlahs.f32','vmlacc.f32','vmlalo.f32','vmlami.f32','vmlapl.f32','vmlavs.f32','vmlavc.f32','vmlahi.f32','vmlals.f32','vmlage.f32','vmlalt.f32','vmlagt.f32','vmlale.f32',
+            'vmlaeq.f64','vmlane.f64','vmlacs.f64','vmlahs.f64','vmlacc.f64','vmlalo.f64','vmlami.f64','vmlapl.f64','vmlavs.f64','vmlavc.f64','vmlahi.f64','vmlals.f64','vmlage.f64','vmlalt.f64','vmlagt.f64','vmlale.f64',
+
+            'vmlseq.f32','vmlsne.f32','vmlscs.f32','vmlshs.f32','vmlscc.f32','vmlslo.f32','vmlsmi.f32','vmlspl.f32','vmlsvs.f32','vmlsvc.f32','vmlshi.f32','vmlsls.f32','vmlsge.f32','vmlslt.f32','vmlsgt.f32','vmlsle.f32',
+            'vmlseq.f64','vmlsne.f64','vmlscs.f64','vmlshs.f64','vmlscc.f64','vmlslo.f64','vmlsmi.f64','vmlspl.f64','vmlsvs.f64','vmlsvc.f64','vmlshi.f64','vmlsls.f64','vmlsge.f64','vmlslt.f64','vmlsgt.f64','vmlsle.f64',
+
+            'vmuleq.f32','vmulne.f32','vmulcs.f32','vmulhs.f32','vmulcc.f32','vmullo.f32','vmulmi.f32','vmulpl.f32','vmulvs.f32','vmulvc.f32','vmulhi.f32','vmulls.f32','vmulge.f32','vmullt.f32','vmulgt.f32','vmulle.f32',
+            'vmuleq.f64','vmulne.f64','vmulcs.f64','vmulhs.f64','vmulcc.f64','vmullo.f64','vmulmi.f64','vmulpl.f64','vmulvs.f64','vmulvc.f64','vmulhi.f64','vmulls.f64','vmulge.f64','vmullt.f64','vmulgt.f64','vmulle.f64',
+
+            'vnegeq.f32','vnegne.f32','vnegcs.f32','vneghs.f32','vnegcc.f32','vneglo.f32','vnegmi.f32','vnegpl.f32','vnegvs.f32','vnegvc.f32','vneghi.f32','vnegls.f32','vnegge.f32','vneglt.f32','vneggt.f32','vnegle.f32',
+            'vnegeq.f64','vnegne.f64','vnegcs.f64','vneghs.f64','vnegcc.f64','vneglo.f64','vnegmi.f64','vnegpl.f64','vnegvs.f64','vnegvc.f64','vneghi.f64','vnegls.f64','vnegge.f64','vneglt.f64','vneggt.f64','vnegle.f64',
+
+            'vnmlaeq.f32','vnmlane.f32','vnmlacs.f32','vnmlahs.f32','vnmlacc.f32','vnmlalo.f32','vnmlami.f32','vnmlapl.f32','vnmlavs.f32','vnmlavc.f32','vnmlahi.f32','vnmlals.f32','vnmlage.f32','vnmlalt.f32','vnmlagt.f32','vnmlale.f32',
+            'vnmlaeq.f64','vnmlane.f64','vnmlacs.f64','vnmlahs.f64','vnmlacc.f64','vnmlalo.f64','vnmlami.f64','vnmlapl.f64','vnmlavs.f64','vnmlavc.f64','vnmlahi.f64','vnmlals.f64','vnmlage.f64','vnmlalt.f64','vnmlagt.f64','vnmlale.f64',
+
+            'vnmlseq.f32','vnmlsne.f32','vnmlscs.f32','vnmlshs.f32','vnmlscc.f32','vnmlslo.f32','vnmlsmi.f32','vnmlspl.f32','vnmlsvs.f32','vnmlsvc.f32','vnmlshi.f32','vnmlsls.f32','vnmlsge.f32','vnmlslt.f32','vnmlsgt.f32','vnmlsle.f32',
+            'vnmlseq.f64','vnmlsne.f64','vnmlscs.f64','vnmlshs.f64','vnmlscc.f64','vnmlslo.f64','vnmlsmi.f64','vnmlspl.f64','vnmlsvs.f64','vnmlsvc.f64','vnmlshi.f64','vnmlsls.f64','vnmlsge.f64','vnmlslt.f64','vnmlsgt.f64','vnmlsle.f64',
+
+            'vnmuleq.f64','vnmulne.f64','vnmulcs.f64','vnmulhs.f64','vnmulcc.f64','vnmullo.f64','vnmulmi.f64','vnmulpl.f64','vnmulvs.f64','vnmulvc.f64','vnmulhi.f64','vnmulls.f64','vnmulge.f64','vnmullt.f64','vnmulgt.f64','vnmulle.f64',
+            'vnmuleq.f32','vnmulne.f32','vnmulcs.f32','vnmulhs.f32','vnmulcc.f32','vnmullo.f32','vnmulmi.f32','vnmulpl.f32','vnmulvs.f32','vnmulvc.f32','vnmulhi.f32','vnmulls.f32','vnmulge.f32','vnmullt.f32','vnmulgt.f32','vnmulle.f32',
+
+            'vpaddeq.f32','vpaddne.f32','vpaddcs.f32','vpaddhs.f32','vpaddcc.f32','vpaddlo.f32','vpaddmi.f32','vpaddpl.f32','vpaddvs.f32','vpaddvc.f32','vpaddhi.f32','vpaddls.f32','vpaddge.f32','vpaddlt.f32','vpaddgt.f32','vpaddle.f32',
+
+            'vpmaxeq.f32','vpmaxne.f32','vpmaxcs.f32','vpmaxhs.f32','vpmaxcc.f32','vpmaxlo.f32','vpmaxmi.f32','vpmaxpl.f32','vpmaxvs.f32','vpmaxvc.f32','vpmaxhi.f32','vpmaxls.f32','vpmaxge.f32','vpmaxlt.f32','vpmaxgt.f32','vpmaxle.f32',
+            'vpmineq.f32','vpminne.f32','vpmincs.f32','vpminhs.f32','vpmincc.f32','vpminlo.f32','vpminmi.f32','vpminpl.f32','vpminvs.f32','vpminvc.f32','vpminhi.f32','vpminls.f32','vpminge.f32','vpminlt.f32','vpmingt.f32','vpminle.f32',
+
+            'vrecpeeq.u32','vrecpene.u32','vrecpecs.u32','vrecpehs.u32','vrecpecc.u32','vrecpelo.u32','vrecpemi.u32','vrecpepl.u32','vrecpevs.u32','vrecpevc.u32','vrecpehi.u32','vrecpels.u32','vrecpege.u32','vrecpelt.u32','vrecpegt.u32','vrecpele.u32',
+            'vrecpeeq.f32','vrecpene.f32','vrecpecs.f32','vrecpehs.f32','vrecpecc.f32','vrecpelo.f32','vrecpemi.f32','vrecpepl.f32','vrecpevs.f32','vrecpevc.f32','vrecpehi.f32','vrecpels.f32','vrecpege.f32','vrecpelt.f32','vrecpegt.f32','vrecpele.f32',
+            'vrecpseq.f32','vrecpsne.f32','vrecpscs.f32','vrecpshs.f32','vrecpscc.f32','vrecpslo.f32','vrecpsmi.f32','vrecpspl.f32','vrecpsvs.f32','vrecpsvc.f32','vrecpshi.f32','vrecpsls.f32','vrecpsge.f32','vrecpslt.f32','vrecpsgt.f32','vrecpsle.f32',
+
+            'vrsqrteeq.u32','vrsqrtene.u32','vrsqrtecs.u32','vrsqrtehs.u32','vrsqrtecc.u32','vrsqrtelo.u32','vrsqrtemi.u32','vrsqrtepl.u32','vrsqrtevs.u32','vrsqrtevc.u32','vrsqrtehi.u32','vrsqrtels.u32','vrsqrtege.u32','vrsqrtelt.u32','vrsqrtegt.u32','vrsqrtele.u32',
+            'vrsqrteeq.f32','vrsqrtene.f32','vrsqrtecs.f32','vrsqrtehs.f32','vrsqrtecc.f32','vrsqrtelo.f32','vrsqrtemi.f32','vrsqrtepl.f32','vrsqrtevs.f32','vrsqrtevc.f32','vrsqrtehi.f32','vrsqrtels.f32','vrsqrtege.f32','vrsqrtelt.f32','vrsqrtegt.f32','vrsqrtele.f32',
+            'vrsqrtseq.f32','vrsqrtsne.f32','vrsqrtscs.f32','vrsqrtshs.f32','vrsqrtscc.f32','vrsqrtslo.f32','vrsqrtsmi.f32','vrsqrtspl.f32','vrsqrtsvs.f32','vrsqrtsvc.f32','vrsqrtshi.f32','vrsqrtsls.f32','vrsqrtsge.f32','vrsqrtslt.f32','vrsqrtsgt.f32','vrsqrtsle.f32',
+
+            'vsqrteq.f32','vsqrtne.f32','vsqrtcs.f32','vsqrths.f32','vsqrtcc.f32','vsqrtlo.f32','vsqrtmi.f32','vsqrtpl.f32','vsqrtvs.f32','vsqrtvc.f32','vsqrthi.f32','vsqrtls.f32','vsqrtge.f32','vsqrtlt.f32','vsqrtgt.f32','vsqrtle.f32',
+            'vsqrteq.f64','vsqrtne.f64','vsqrtcs.f64','vsqrths.f64','vsqrtcc.f64','vsqrtlo.f64','vsqrtmi.f64','vsqrtpl.f64','vsqrtvs.f64','vsqrtvc.f64','vsqrthi.f64','vsqrtls.f64','vsqrtge.f64','vsqrtlt.f64','vsqrtgt.f64','vsqrtle.f64',
+
+            'vsubeq.f32','vsubne.f32','vsubcs.f32','vsubhs.f32','vsubcc.f32','vsublo.f32','vsubmi.f32','vsubpl.f32','vsubvs.f32','vsubvc.f32','vsubhi.f32','vsubls.f32','vsubge.f32','vsublt.f32','vsubgt.f32','vsuble.f32',
+            'vsubeq.f64','vsubne.f64','vsubcs.f64','vsubhs.f64','vsubcc.f64','vsublo.f64','vsubmi.f64','vsubpl.f64','vsubvs.f64','vsubvc.f64','vsubhi.f64','vsubls.f64','vsubge.f64','vsublt.f64','vsubgt.f64','vsuble.f64'
+            ),
+        /* Registers */
+        35 => array(
+            /* General-Purpose Registers */
+            'r0','r1','r2','r3','r4','r5','r6','r7',
+            'r8','r9','r10','r11','r12','r13','r14','r15',
+            /* Scratch Registers */
+            'a1','a2','a3','a4',
+            /* Variable Registers */
+            'v1','v2','v3','v4','v5','v6','v7','v8',
+            /* Other Synonims for General-Purpose Registers */
+            'sb','sl','fp','ip','sp','lr','pc',
+            /* WMMX Data Registers */
+            'wr0','wr1','wr2','wr3','wr4','wr5','wr6','wr7',
+            'wr8','wr9','wr10','wr11','wr12','wr13','wr14','wr15',
+            /* WMMX Control Registers */
+            'wcid','wcon','wcssf','wcasf',
+            /* WMMX-Mapped General-Purpose Registers */
+            'wcgr0','wcgr1','wcgr2','wcgr3',
+            /* VFPv3 Registers */
+            's0','s1','s2','s3','s4','s5','s6','s7',
+            's8','s9','s10','s11','s12','s13','s14','s15',
+            's16','s17','s18','s19','s20','s21','s22','s23',
+            's24','s25','s26','s27','s28','s29','s30','s31',
+            /* VFPv3/NEON Registers */
+            'd0','d1','d2','d3','d4','d5','d6','d7',
+            'd8','d9','d10','d11','d12','d13','d14','d15',
+            'd16','d17','d18','d19','d20','d21','d22','d23',
+            'd24','d25','d26','d27','d28','d29','d30','d31',
+            /* NEON Registers */
+            'q0','q1','q2','q3','q4','q5','q6','q7',
+            'q8','q9','q10','q11','q12','q13','q14','q15'
+            )
+        ),
+    'SYMBOLS' => array(
+        '[', ']', '(', ')',
+        '+', '-', '*', '/', '%',
+        '.', ',', ';', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false,
+        7 => false,
+        8 => false,
+        9 => false,
+        10 => false,
+        11 => false,
+        12 => false,
+        13 => false,
+        14 => false,
+        15 => false,
+        16 => false,
+        17 => false,
+        18 => false,
+        19 => false,
+        20 => false,
+        21 => false,
+        22 => false,
+        23 => false,
+        24 => false,
+        25 => false,
+        26 => false,
+        27 => false,
+        28 => false,
+        29 => false,
+        30 => false,
+        31 => false,
+        32 => false,
+        33 => false,
+        34 => false,
+        35 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            /* Unconditional Data Processing Instructions */
+            1 => 'color: #00007f; font-weight: normal; font-style: normal;',
+            /* Conditional Data Processing Instructions */
+            2 => 'color: #00007f; font-weight: normal; font-style: italic;',
+            /* Unconditional Memory Access Instructions */
+            3 => 'color: #00007f; font-weight: normal; font-style: normal;',
+            /* Conditional Memory Access Instructions */
+            4 => 'color: #00007f; font-weight: normal; font-style: italic;',
+            /* Unconditional Flags Changing Instructions */
+            5 => 'color: #00007f; font-weight: bold; font-style: normal;',
+            /* Conditional Flags Changing Instructions */
+            6 => 'color: #00007f; font-weight: bold; font-style: italic;',
+            /* Unconditional Flow Control Instructions */
+            7 => 'color: #0000ff; font-weight: normal; font-style: normal;',
+            /* Conditional Flow Control Instructions */
+            8 => 'color: #0000ff; font-weight: normal; font-style: italic;',
+            /* Unconditional Syncronization Instructions */
+            9 => 'color: #00007f; font-weight: normal; font-style: normal;',
+            /* Conditional Syncronization Instructions */
+            10 => 'color: #00007f; font-weight: normal; font-style: italic;',
+            /* Unonditional ARMv6 SIMD */
+            11 => 'color: #b00040; font-weight: normal; font-style: normal;',
+            /* Conditional ARMv6 SIMD */
+            12 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional Coprocessor Instructions */
+            13 => 'color: #00007f; font-weight: normal; font-style: normal;',
+            /* Conditional Coprocessor Instructions */
+            14 => 'color: #00007f; font-weight: bold; font-style: italic;',
+            /* Unconditional System Instructions */
+            15 => 'color: #00007f; font-weight: normal; font-style: normal;',
+            /* Conditional System Instructions */
+            16 => 'color: #00007f; font-weight: bold; font-style: italic;',
+            /* Unconditional WMMX/WMMX2 SIMD Instructions */
+            17 => 'color: #b00040; font-weight: normal; font-style: normal;',
+            /* Conditional WMMX/WMMX2 SIMD Instructions */
+            18 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
+            19 => 'color: #b00040; font-weight: normal; font-style: normal;',
+            /* Unconditional NEON SIMD Logical Instructions */
+            20 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional NEON SIMD ARM Registers Interop Instructions */
+            21 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
+            22 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional NEON SIMD Universal Integer Instructions */
+            23 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional NEON SIMD Signed Integer Instructions */
+            24 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional NEON SIMD Unsigned Integer Instructions */
+            25 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
+            26 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
+            27 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD Logical Instructions */
+            28 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD ARM Registers Interop Instructions */
+            29 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD Bit/Byte-Level Instructions */
+            30 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD Universal Integer Instructions */
+            31 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD Signed Integer Instructions */
+            32 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional NEON SIMD Unsigned Integer Instructions */
+            33 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
+            34 => 'color: #b00040; font-weight: normal; font-style: italic;',
+            /* Registers */
+            35 => 'color: #46aa03; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            2 => 'color: #adadad; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900; font-weight: bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #7f007f;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => '',
+        9 => '',
+        10 => '',
+        11 => '',
+        12 => '',
+        13 => '',
+        14 => '',
+        15 => '',
+        16 => '',
+        17 => '',
+        18 => '',
+        19 => '',
+        20 => '',
+        21 => '',
+        22 => '',
+        23 => '',
+        24 => '',
+        25 => '',
+        26 => '',
+        27 => '',
+        28 => '',
+        29 => '',
+        30 => '',
+        31 => '',
+        32 => '',
+        33 => '',
+        34 => '',
+        35 => ''
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_BIN_PREFIX_PERCENT |
+        GESHI_NUMBER_BIN_SUFFIX |
+        GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_HEX_SUFFIX |
+        GESHI_NUMBER_OCT_SUFFIX |
+        GESHI_NUMBER_INT_BASIC |
+        GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F |
+        GESHI_NUMBER_FLT_SCI_ZERO,
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 8,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
+            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
+        )
+    )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/asm.php b/wp-content/plugins/wp-syntax/geshi/geshi/asm.php
index aebfa358fcffbfd8991cab5f1796ecfdc1416943..dd0a7ec50640cc55d01d8d14d6e7743a67e3fd78 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/asm.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/asm.php
@@ -3,15 +3,56 @@
  * asm.php
  * -------
  * Author: Tux (tux@inmail.cz)
- * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Copyright: (c) 2004 Tux (http://tux.a4.cz/),
+ *                2004-2009 Nigel McNie (http://qbnz.com/highlighter),
+ *                2009-2011 Benny Baumann (http://qbnz.com/highlighter),
+ *                2011 Dennis Yurichev (dennis@conus.info),
+ *                2011 Marat Dukhan (mdukhan3.at.gatech.dot.edu)
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/27
  *
  * x86 Assembler language file for GeSHi.
- * Words are from SciTe configuration file (based on NASM syntax)
+ * Based on the following documents:
+ *   - "Intel64 and IA-32 Architectures Programmer's Reference Manual
+ *       Volume 2 (2A & 2B): Instructions Set Reference, A-Z",
+ *       Order Number 25383-039US, May 2011
+ *   - "Intel Advanced Vector Extensions Programming Reference",
+ *       Order Number 319433-011, June 2011
+ *   - "AMD64 Architecture Programmer's Manual Volume 3:
+ *       General-Purpose and System Instructions", Publication No. 24594,
+ *       Revision 3.15, November 2009
+ *   - "AMD64 Architecture Programmer's Manual Volume 4:
+ *       128-Bit and 256-Bit Media Instructions", Publication No. 26568,
+ *       Revision 3.12, May 2011
+ *   - "AMD64 Architecture Programmer's Manual Volume 5:
+ *       64-Bit Media and x87 Floating-Point Instructions",
+ *       Publication No. 26569, Revision 3.11, December 2009
+ *   - "AMD64 Technology Lightweight Profiling Specification",
+ *       Publication No. 43724, Revision 3.08, August 2010
+ *   - "Application Note 108: Cyrix Extended MMX Instruction Set"
+ *   - "VIA Padlock Programming Guide", 3rd May 2005
+ *   - http://en.wikipedia.org/wiki/X86_instruction_listings
+ *   - NASM 2.10rc8 Online Documenation at
+ *       http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc0.html
+ * Color scheme is taken from SciTE. Previous versions of this file
+ * also used words from SciTE configuration file (based on NASM syntax)
  *
  * CHANGES
  * -------
+ * 2011/10/07
+ *   -  Rearranged instructions and registers into groups
+ *   -  Updated to support the following extensions
+ *          - CMOV, BMI1, BMI2, TBM, FSGSBASE
+ *          - LZCNT, TZCNT, POPCNT, MOVBE, CRC32
+ *          - MMX, MMX+, EMMX
+ *          - 3dnow!, 3dnow!+, 3dnow! Geode, 3dnow! Prefetch
+ *          - SSE, SSE2, SSE3, SSSE3, SSE4A, SSE4.1, SSE4.2
+ *          - AVX, AVX2, XOP, FMA3, FMA4, CVT16
+ *          - VMX, SVM
+ *          - AES, PCLMULQDQ, Padlock, RDRAND
+ *   -  Updated NASM macros and directives
+ * 2010/07/01 (1.0.8.11)
+ *   -  Added MMX/SSE/new x86-64 registers, MMX/SSE (up to 4.2) instructions
  * 2008/05/23 (1.0.7.22)
  *   -  Added description of extra language features (SF#1970248)
  * 2004/11/27 (1.0.2)
@@ -55,26 +96,71 @@ $language_data = array (
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
-        /*CPU*/
+        /* General-Purpose */
         1 => array(
-            'aaa','aad','aam','aas','adc','add','and','call','cbw','clc','cld','cli','cmc','cmp',
-            'cmps','cmpsb','cmpsw','cwd','daa','das','dec','div','esc','hlt','idiv','imul','in','inc',
-            'int','into','iret','ja','jae','jb','jbe','jc','jcxz','je','jg','jge','jl','jle','jmp',
-            'jna','jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
-            'jo','jp','jpe','jpo','js','jz','lahf','lds','lea','les','lods','lodsb','lodsw','loop',
-            'loope','loopew','loopne','loopnew','loopnz','loopnzw','loopw','loopz','loopzw','mov',
-            'movs','movsb','movsw','mul','neg','nop','not','or','out','pop','popf','push','pushf',
-            'rcl','rcr','ret','retf','retn','rol','ror','sahf','sal','sar','sbb','scas','scasb','scasw',
-            'shl','shr','stc','std','sti','stos','stosb','stosw','sub','test','wait','xchg','xlat',
-            'xlatb','xor','bound','enter','ins','insb','insw','leave','outs','outsb','outsw','popa','pusha','pushw',
-            'arpl','lar','lsl','sgdt','sidt','sldt','smsw','str','verr','verw','clts','lgdt','lidt','lldt','lmsw','ltr',
-            'bsf','bsr','bt','btc','btr','bts','cdq','cmpsd','cwde','insd','iretd','iretdf','iretf',
-            'jecxz','lfs','lgs','lodsd','loopd','looped','loopned','loopnzd','loopzd','lss','movsd',
-            'movsx','movzx','outsd','popad','popfd','pushad','pushd','pushfd','scasd','seta','setae',
-            'setb','setbe','setc','sete','setg','setge','setl','setle','setna','setnae','setnb','setnbe',
-            'setnc','setne','setng','setnge','setnl','setnle','setno','setnp','setns','setnz','seto','setp',
-            'setpe','setpo','sets','setz','shld','shrd','stosd','bswap','cmpxchg','invd','invlpg','wbinvd','xadd','lock',
-            'rep','repe','repne','repnz','repz'
+            /* BCD instructions */
+            'aaa','aad','aam','aas','daa','das',
+            /* Control flow instructions */
+            'ja','jae','jb','jbe','jc','je','jg','jge','jl','jle','jmp','jna',
+            'jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
+            'jo','jp','jpe','jpo','js','jz','jcxz','jecxz','jrcxz','loop','loope','loopne',
+            'call','ret','enter','leave','syscall','sysenter','int','into',
+            /* Predicate instructions */
+            'seta','setae','setb','setbe','setc','sete','setg','setge','setl','setle','setna',
+            'setnae','setnb','setnbe','setnc','setne','setng','setnge','setnl','setnle','setno',
+            'setnp','setns','setnz','seto','setp','setpe','setpo','sets','setz','salc',
+            /* Conditional move instructions */
+            'cmovo','cmovno','cmovb','cmovc','cmovnae','cmovae','cmovnb','cmovnc','cmove','cmovz',
+            'cmovne','cmovnz','cmovbe','cmovna','cmova','cmovnbe','cmovs','cmovns','cmovp','cmovpe',
+            'cmovnp','cmovpo','cmovl','cmovnge','cmovge','cmovnl','cmovle','cmovng','cmovg','cmovnle',
+            /* ALU instructions */
+            'add','sub','adc','sbb','neg','cmp','inc','dec','and','or','xor','not','test',
+            'shl','shr','sal','sar','shld','shrd','rol','ror','rcl','rcr',
+            'cbw','cwd','cwde','cdq','cdqe','cqo','bsf','bsr','bt','btc','btr','bts',
+            'idiv','imul','div','mul','bswap','nop',
+            /* Memory instructions */
+            'lea','mov','movsx','movsxd','movzx','xlatb','bound','xchg','xadd','cmpxchg','cmpxchg8b','cmpxchg16b',
+            /* Stack instructions */
+            'push','pop','pusha','popa','pushad','popad','pushf','popf','pushfd','popfd','pushfq','popfq',
+            /* EFLAGS manipulations instructions */
+            'clc','cld','stc','std','cmc','lahf','sahf',
+            /* Prefix instructions */
+            'lock','rep','repe','repz','repne','repnz',
+            /* String instructions */
+            'cmps','cmpsb','cmpsw',/*'cmpsd',*/ 'cmpsq', /*CMPSD conflicts with the SSE2 instructions of the same name*/
+            'movs','movsb','movsw',/*'movsd',*/ 'movsq', /*MOVSD conflicts with the SSE2 instructions of the same name*/
+            'scas','scasb','scasw','scasd','scasq',
+            'stos','stosb','stosw','stosd','stosq',
+            'lods','lodsb','lodsw','lodsd','lodsq',
+            /* Information instructions */
+            'cpuid','rdtsc','rdtscp','rdpmc','xgetbv',
+            'sgdt','sidt','sldt','smsw','str','lar',
+            /* LWP instructions */
+            'llwpcb','slwpcb','lwpval','lwpins',
+            /* Instructions from miscellaneous extensions */
+            'crc32','popcnt','lzcnt','tzcnt','movbe','pclmulqdq','rdrand',
+            /* FSGSBASE instructions */
+            'rdfsbase','rdgsbase','wrfsbase','wrgsbase',
+            /* BMI1 instructions */
+            'andn','bextr','blsi','blsmk','blsr',
+            /* BMI2 instructions */
+            'bzhi','mulx','pdep','pext','rorx','sarx','shlx','shrx',
+            /* TBM instructions */
+            'blcfill','blci','blcic','blcmsk','blcs','blsfill','blsic','t1mskc','tzmsk',
+            /* Legacy instructions */
+            'arpl','ud2','lds','les','lfs','lgs','lss','lsl','verr','verw',
+            /* Privileged instructions */
+            'cli','sti','clts','hlt','rsm','in','insb','insw','insd',
+            'out','outsb','outsw','outsd','clflush','invd','invlpg','invpcid','wbinvd',
+            'iret','iretd','iretq','sysexit','sysret','lidt','lgdt','lldt','lmsw','ltr',
+            'monitor','mwait','rdmsr','wrmsr','swapgs',
+            'fxsave','fxsave64','fxrstor','fxrstor64',
+            'xsave','xsaveopt','xrstor','xsetbv','getsec',
+            /* VMX instructions */
+            'invept','invvpid','vmcall','vmclear','vmlaunch','vmresume',
+            'vmptrld','vmptrst','vmread','vmwrite','vmxoff','vmxon',
+            /* SVM (AMD-V) instructions */
+            'invlpga','skinit','clgi','stgi','vmload','vmsave','vmmcall','vmrun'
             ),
         /*FPU*/
         2 => array(
@@ -87,56 +173,350 @@ $language_data = array (
             'fsavew','fscale','fsqrt','fst','fstcw','fstenv','fstenvw','fstp','fstsw','fsub','fsubp',
             'fsubr','fsubrp','ftst','fwait','fxam','fxch','fxtract','fyl2x','fyl2xp1',
             'fsetpm','fcos','fldenvd','fnsaved','fnstenvd','fprem1','frstord','fsaved','fsin','fsincos',
-            'fstenvd','fucom','fucomp','fucompp'
+            'fstenvd','fucom','fucomp','fucompp','ffreep',
+            /* FCMOV instructions */
+            'fcomi','fcomip','fucomi','fucomip',
+            'fcmovb','fcmove','fcmovbe','fcmovu','fcmovnb','fcmovne','fcmovnbe','fcmovnu',
+            /* SSE3 instructions */
+            'fisttp'
             ),
-        /*registers*/
+        /*SIMD*/
         3 => array(
-            'ah','al','ax','bh','bl','bp','bx','ch','cl','cr0','cr2','cr3','cs','cx','dh','di','dl',
-            'dr0','dr1','dr2','dr3','dr6','dr7','ds','dx','eax','ebp','ebx','ecx','edi','edx',
-            'es','esi','esp','fs','gs','si','sp','ss','st','tr3','tr4','tr5','tr6','tr7'
+            /* MMX instructions */
+            'movd','movq',
+            'paddb','paddw','paddd','paddsb','paddsw','paddusb','paddusw',
+            'psubb','psubw','psubd','psubsb','psubsw','psubusb','psubusw',
+            'pand','pandn','por','pxor',
+            'pcmpeqb','pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
+            'pmaddwd','pmulhw','pmullw',
+            'psllw','pslld','psllq','psrlw','psrld','psrlq','psraw','psrad',
+            'packuswb','packsswb','packssdw',
+            'punpcklbw','punpcklwd','punpckldq','punpckhbw','punpckhwd','punpckhdq',
+            'emms',
+            /* MMX+ instructions */
+            'pavgb','pavgw',
+            'pextrw','pinsrw','pmovmskb',
+            'pmaxsw','pmaxub','pminsw','pminub',
+            'pmulhuw','psadbw','pshufw',
+            'prefetchnta','prefetcht0','prefetcht1','prefetcht2',
+            'maskmovq','movntq','sfence',
+            /* EMMX instructions (only available on Cyrix MediaGXm) */
+            'paddsiw','psubsiw',
+            /*'pmulhrw',*/'pmachriw','pmulhriw', /* PMULHRW conflicts with the 3dnow! instruction of the same name */
+            'pmagw','pdistib','paveb',
+            'pmvzb','pmvnzb','pmvlzb','pmvgezb',
+            /* 3dnow! instructions! */
+            'pfacc','pfadd','pfsub','pfsubr','pfmul',
+            'pfcmpeq','pfcmpge','pfcmpgt',
+            'pfmax','pfmin',
+            'pfrcp','pfrcpit1','pfrcpit2','pfrsqit1','pfrsqrt',
+            'pi2fd','pf2id',
+            'pavgusb','pmulhrw',
+            'femms',
+            /* 3dnow!+ instructions */
+            'pfnacc','pfpnacc','pi2fw','pf2iw','pswapd',
+            /* 3dnow! Geode instructions */
+            'pfrsqrtv','pfrcpv',
+            /* 3dnow! Prefetch instructions */
+            'prefetch','prefetchw',
+            /* SSE instructions */
+            'addss','addps','subss','subps',
+            'mulss','mulps','divss','divps','sqrtss','sqrtps',
+            'rcpss','rcpps','rsqrtss','rsqrtps',
+            'maxss','maxps','minss','minps',
+            'cmpss','comiss','ucomiss','cmpps',
+            'cmpeqss','cmpltss','cmpless','cmpunordss','cmpneqss','cmpnltss','cmpnless','cmpordss',
+            'cmpeqps','cmpltps','cmpleps','cmpunordps','cmpneqps','cmpnltps','cmpnleps','cmpordps',
+            'andnps','andps','orps','xorps',
+            'cvtsi2ss','cvtss2si','cvttss2si',
+            'cvtpi2ps','cvtps2pi','cvttps2pi',
+            'movss','movlps','movhps','movlhps','movhlps','movaps','movups','movntps','movmskps',
+            'shufps','unpckhps','unpcklps',
+            'ldmxcsr','stmxcsr',
+            /* SSE2 instructions */
+            'addpd','addsd','subpd','subsd',
+            'mulsd','mulpd','divsd','divpd','sqrtsd','sqrtpd',
+            'maxsd','maxpd','minsd','minpd',
+            'cmpsd','comisd','ucomisd','cmppd',
+            'cmpeqsd','cmpltsd','cmplesd','cmpunordsd','cmpneqsd','cmpnltsd','cmpnlesd','cmpordsd',
+            'cmpeqpd','cmpltpd','cmplepd','cmpunordpd','cmpneqpd','cmpnltpd','cmpnlepd','cmpordpd',
+            'andnpd','andpd','orpd','xorpd',
+            'cvtsd2ss','cvtpd2ps','cvtss2sd','cvtps2pd',
+            'cvtdq2ps','cvtps2dq','cvttps2dq',
+            'cvtdq2pd','cvtpd2dq','cvttpd2dq',
+            'cvtsi2sd','cvtsd2si','cvttsd2si',
+            'cvtpi2pd','cvtpd2pi','cvttpd2pi',
+            'movsd','movlpd','movhpd','movapd','movupd','movntpd','movmskpd',
+            'shufpd','unpckhpd','unpcklpd',
+            'movnti','movdqa','movdqu','movntdq','maskmovdqu',
+            'movdq2q','movq2dq',
+            'paddq','psubq','pmuludq',
+            'pslldq','psrldq',
+            'punpcklqdq','punpckhqdq',
+            'pshufhw','pshuflw','pshufd',
+            'lfence','mfence',
+            /* SSE3 instructions */
+            'addsubps','addsubpd',
+            'haddps','haddpd','hsubps','hsubpd',
+            'movsldup','movshdup','movddup',
+            'lddqu',
+            /* SSSE3 instructions */
+            'psignb','psignw','psignd',
+            'pabsb','pabsw','pabsd',
+            'palignr','pshufb',
+            'pmulhrsw','pmaddubsw',
+            'phaddw','phaddd','phaddsw',
+            'phsubw','phsubd','phsubsw',
+            /* SSE4A instructions */
+            'extrq','insertq','movntsd','movntss',
+            /* SSE4.1 instructions */
+            'mpsadbw','phminposuw',
+            'pmuldq','pmulld',
+            'dpps','dppd',
+            'blendps','blendpd','blendvps','blendvpd','pblendvb','pblendw',
+            'pmaxsb','pmaxuw','pmaxsd','pmaxud','pminsb','pminuw','pminsd','pminud',
+            'roundps','roundss','roundpd','roundsd',
+            'insertps','pinsrb','pinsrd','pinsrq',
+            'extractps','pextrb','pextrd','pextrq',
+            'pmovsxbw','pmovsxbd','pmovsxbq','pmovsxwd','pmovsxwq','pmovsxdq',
+            'pmovzxbw','pmovzxbd','pmovzxbq','pmovzxwd','pmovzxwq','pmovzxdq',
+            'ptest',
+            'pcmpeqq',
+            'packusdw',
+            'movntdqa',
+            /* SSE4.2 instructions */
+            'pcmpgtq',
+            'pcmpestri','pcmpestrm','pcmpistri','pcmpistrm',
+            /* AES instructions */
+            'aesenc','aesenclast','aesdec','aesdeclast','aeskeygenassist','aesimc',
+            /* VIA Padlock instructions */
+            'xcryptcbc','xcryptcfb','xcryptctr','xcryptecb','xcryptofb',
+            'xsha1','xsha256','montmul','xstore',
+            /* AVX instructions */
+            'vaddss','vaddps','vaddsd','vaddpd','vsubss','vsubps','vsubsd','vsubpd',
+            'vaddsubps','vaddsubpd',
+            'vhaddps','vhaddpd','vhsubps','vhsubpd',
+            'vmulss','vmulps','vmulsd','vmulpd',
+            'vmaxss','vmaxps','vmaxsd','vmaxpd','vminss','vminps','vminsd','vminpd',
+            'vandps','vandpd','vandnps','vandnpd','vorps','vorpd','vxorps','vxorpd',
+            'vblendps','vblendpd','vblendvps','vblendvpd',
+            'vcmpss','vcomiss','vucomiss','vcmpsd','vcomisd','vucomisd','vcmpps','vcmppd',
+            'vcmpeqss','vcmpltss','vcmpless','vcmpunordss','vcmpneqss','vcmpnltss','vcmpnless','vcmpordss',
+            'vcmpeq_uqss','vcmpngess','vcmpngtss','vcmpfalsess','vcmpneq_oqss','vcmpgess','vcmpgtss','vcmptruess',
+            'vcmpeq_osss','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',
+            'vcmpeqps','vcmpltps','vcmpleps','vcmpunordps','vcmpneqps','vcmpnltps','vcmpnleps','vcmpordps',
+            'vcmpeq_uqps','vcmpngeps','vcmpngtps','vcmpfalseps','vcmpneq_oqps','vcmpgeps','vcmpgtps','vcmptrueps',
+            'vcmpeq_osps','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',
+            'vcmpeqsd','vcmpltsd','vcmplesd','vcmpunordsd','vcmpneqsd','vcmpnltsd','vcmpnlesd','vcmpordsd',
+            'vcmpeq_uqsd','vcmpngesd','vcmpngtsd','vcmpfalsesd','vcmpneq_oqsd','vcmpgesd','vcmpgtsd','vcmptruesd',
+            'vcmpeq_ossd','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',
+            'vcmpeqpd','vcmpltpd','vcmplepd','vcmpunordpd','vcmpneqpd','vcmpnltpd','vcmpnlepd','vcmpordpd',
+            'vcmpeq_uqpd','vcmpngepd','vcmpngtpd','vcmpfalsepd','vcmpneq_oqpd','vcmpgepd','vcmpgtpd','vcmptruepd',
+            'vcmpeq_ospd','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',
+            'vcvtsd2ss','vcvtpd2ps','vcvtss2sd','vcvtps2pd',
+            'vcvtsi2ss','vcvtss2si','vcvttss2si',
+            'vcvtpi2ps','vcvtps2pi','vcvttps2pi',
+            'vcvtdq2ps','vcvtps2dq','vcvttps2dq',
+            'vcvtdq2pd','vcvtpd2dq','vcvttpd2dq',
+            'vcvtsi2sd','vcvtsd2si','vcvttsd2si',
+            'vcvtpi2pd','vcvtpd2pi','vcvttpd2pi',
+            'vdivss','vdivps','vdivsd','vdivpd','vsqrtss','vsqrtps','vsqrtsd','vsqrtpd',
+            'vdpps','vdppd',
+            'vmaskmovps','vmaskmovpd',
+            'vmovss','vmovsd','vmovaps','vmovapd','vmovups','vmovupd','vmovntps','vmovntpd',
+            'vmovhlps','vmovlhps','vmovlps','vmovlpd','vmovhps','vmovhpd',
+            'vmovsldup','vmovshdup','vmovddup',
+            'vmovmskps','vmovmskpd',
+            'vroundss','vroundps','vroundsd','vroundpd',
+            'vrcpss','vrcpps','vrsqrtss','vrsqrtps',
+            'vunpcklps','vunpckhps','vunpcklpd','vunpckhpd',
+            'vbroadcastss','vbroadcastsd','vbroadcastf128',
+            'vextractps','vinsertps','vextractf128','vinsertf128',
+            'vshufps','vshufpd','vpermilps','vpermilpd','vperm2f128',
+            'vtestps','vtestpd',
+            'vpaddb','vpaddusb','vpaddsb','vpaddw','vpaddusw','vpaddsw','vpaddd','vpaddq',
+            'vpsubb','vpsubusb','vpsubsb','vpsubw','vpsubusw','vpsubsw','vpsubd','vpsubq',
+            'vphaddw','vphaddsw','vphaddd','vphsubw','vphsubsw','vphsubd',
+            'vpsllw','vpslld','vpsllq','vpsrlw','vpsrld','vpsrlq','vpsraw','vpsrad',
+            'vpand','vpandn','vpor','vpxor',
+            'vpblendwb','vpblendw',
+            'vpsignb','vpsignw','vpsignd',
+            'vpavgb','vpavgw',
+            'vpabsb','vpabsw','vpabsd',
+            'vmovd','vmovq','vmovdqa','vmovdqu','vlddqu','vmovntdq','vmovntdqa','vmaskmovdqu',
+            'vpmovsxbw','vpmovsxbd','vpmovsxbq','vpmovsxwd','vpmovsxwq','vpmovsxdq',
+            'vpmovzxbw','vpmovzxbd','vpmovzxbq','vpmovzxwd','vpmovzxwq','vpmovzxdq',
+            'vpackuswb','vpacksswb','vpackusdw','vpackssdw',
+            'vpcmpeqb','vpcmpeqw','vpcmpeqd','vpcmpeqq','vpcmpgtb','vpcmpgtw','vpcmpgtd','vpcmpgtq',
+            'vpmaddubsw','vpmaddwd',
+            'vpmullw','vpmulhuw','vpmulhw','vpmulhrsw','vpmulld','vpmuludq','vpmuldq',
+            'vpmaxub','vpmaxsb','vpmaxuw','vpmaxsw','vpmaxud','vpmaxsd',
+            'vpminub','vpminsb','vpminuw','vpminsw','vpminud','vpminsd',
+            'vpmovmskb','vptest',
+            'vpunpcklbw','vpunpcklwd','vpunpckldq','vpunpcklqdq',
+            'vpunpckhbw','vpunpckhwd','vpunpckhdq','vpunpckhqdq',
+            'vpslldq','vpsrldq','vpalignr',
+            'vpshufb','vpshuflw','vpshufhw','vpshufd',
+            'vpextrb','vpextrw','vpextrd','vpextrq','vpinsrb','vpinsrw','vpinsrd','vpinsrq',
+            'vpsadbw','vmpsadbw','vphminposuw',
+            'vpcmpestri','vpcmpestrm','vpcmpistri','vpcmpistrm',
+            'vpclmulqdq','vaesenc','vaesenclast','vaesdec','vaesdeclast','vaeskeygenassist','vaesimc',
+            'vldmxcsr','vstmxcsr','vzeroall','vzeroupper',
+            /* AVX2 instructions */
+            'vbroadcasti128','vpbroadcastb','vpbroadcastw','vpbroadcastd','vpbroadcastq',
+            'vpblendd',
+            'vpermd','vpermq','vperm2i128',
+            'vextracti128','vinserti128',
+            'vpmaskmovd','vpmaskmovq',
+            'vpsllvd','vpsllvq','vpsravd','vpsrlvd',
+            'vpgatherdd','vpgatherqd','vgatherdq','vgatherqq',
+            'vpermps','vpermpd',
+            'vgatherdpd','vgatherqpd','vgatherdps','vgatherqps',
+            /* XOP instructions */
+            'vfrczss','vfrczps','vfrczsd','vfrczpd',
+            'vpermil2ps','vperlil2pd',
+            'vpcomub','vpcomb','vpcomuw','vpcomw','vpcomud','vpcomd','vpcomuq','vpcomq',
+            'vphaddubw','vphaddbw','vphaddubd','vphaddbd','vphaddubq','vphaddbq',
+            'vphadduwd','vphaddwd','vphadduwq','vphaddwq','vphaddudq','vphadddq',
+            'vphsubbw','vphsubwd','vphsubdq',
+            'vpmacsdd','vpmacssdd','vpmacsdql','vpmacssdql','vpmacsdqh','vpmacssdqh',
+            'vpmacsww','vpmacssww','vpmacswd','vpmacsswd',
+            'vpmadcswd','vpmadcsswd',
+            'vpcmov','vpperm',
+            'vprotb','vprotw','vprotd','vprotq',
+            'vpshab','vpshaw','vpshad','vpshaq',
+            'vpshlb','vpshlw','vpshld','vpshlq',
+            /* CVT16 instructions */
+            'vcvtph2ps','vcvtps2ph',
+            /* FMA4 instructions */
+            'vfmaddss','vfmaddps','vfmaddsd','vfmaddpd',
+            'vfmsubss','vfmsubps','vfmsubsd','vfmsubpd',
+            'vnfmaddss','vnfmaddps','vnfmaddsd','vnfmaddpd',
+            'vnfmsubss','vnfmsubps','vnfmsubsd','vnfmsubpd',
+            'vfmaddsubps','vfmaddsubpd','vfmsubaddps','vfmsubaddpd',
+            /* FMA3 instructions */
+            'vfmadd132ss','vfmadd213ss','vfmadd231ss',
+            'vfmadd132ps','vfmadd213ps','vfmadd231ps',
+            'vfmadd132sd','vfmadd213sd','vfmadd231sd',
+            'vfmadd132pd','vfmadd213pd','vfmadd231pd',
+            'vfmaddsub132ps','vfmaddsub213ps','vfmaddsub231ps',
+            'vfmaddsub132pd','vfmaddsub213pd','vfmaddsub231pd',
+            'vfmsubadd132ps','vfmsubadd213ps','vfmsubadd231ps',
+            'vfmsubadd132pd','vfmsubadd213pd','vfmsubadd231pd',
+            'vfmsub132ss','vfmsub213ss','vfmsub231ss',
+            'vfmsub132ps','vfmsub213ps','vfmsub231ps',
+            'vfmsub132sd','vfmsub213sd','vfmsub231sd',
+            'vfmsub132pd','vfmsub213pd','vfmsub231pd',
+            'vfnmadd132ss','vfnmadd213ss','vfnmadd231ss',
+            'vfnmadd132ps','vfnmadd213ps','vfnmadd231ps',
+            'vfnmadd132sd','vfnmadd213sd','vfnmadd231sd',
+            'vfnmadd132pd','vfnmadd213pd','vfnmadd231pd',
+            'vfnmsub132ss','vfnmsub213ss','vfnmsub231ss',
+            'vfnmsub132ps','vfnmsub213ps','vfnmsub231ps',
+            'vfnmsub132sd','vfnmsub213sd','vfnmsub231sd',
+            'vfnmsub132pd','vfnmsub213pd','vfnmsub231pd'
             ),
-        /*Directive*/
+        /*registers*/
         4 => array(
-            '186','286','286c','286p','287','386','386c','386p','387','486','486p',
-            '8086','8087','alpha','break','code','const','continue','cref','data','data?',
-            'dosseg','else','elseif','endif','endw','err','err1','err2','errb',
-            'errdef','errdif','errdifi','erre','erridn','erridni','errnb','errndef',
-            'errnz','exit','fardata','fardata?','if','lall','lfcond','list','listall',
-            'listif','listmacro','listmacroall',' model','no87','nocref','nolist',
-            'nolistif','nolistmacro','radix','repeat','sall','seq','sfcond','stack',
-            'startup','tfcond','type','until','untilcxz','while','xall','xcref',
-            'xlist','alias','align','assume','catstr','comm','comment','db','dd','df','dq',
-            'dt','dup','dw','echo','elseif1','elseif2','elseifb','elseifdef','elseifdif',
-            'elseifdifi','elseife','elseifidn','elseifidni','elseifnb','elseifndef','end',
-            'endm','endp','ends','eq',' equ','even','exitm','extern','externdef','extrn','for',
-            'forc','ge','goto','group','high','highword','if1','if2','ifb','ifdef','ifdif',
-            'ifdifi','ife',' ifidn','ifidni','ifnb','ifndef','include','includelib','instr','invoke',
-            'irp','irpc','label','le','length','lengthof','local','low','lowword','lroffset',
-            'macro','mask','mod','msfloat','name','ne','offset','opattr','option','org','%out',
-            'page','popcontext','private','proc','proto','ptr','public','purge','pushcontext','record',
-            'rept','seg','segment','short','size','sizeof','sizestr','struc','struct',
-            'substr','subtitle','subttl','textequ','this','title','typedef','union','width',
-            '.model', '.stack', '.code', '.data'
+            /* General-Purpose Registers */
+            'al','ah','bl','bh','cl','ch','dl','dh','sil','dil','bpl','spl',
+            'r8b','r9b','r10b','r11b','r12b','r13b','r14b','r15b',
+            'ax','bx','cx','dx','si','di','bp','sp',
+            'r8w','r9w','r10w','r11w','r12w','r13w','r14w','r15w',
+            'eax','ebx','ecx','edx','esi','edi','ebp','esp',
+            'r8d','r9d','r10d','r11d','r12d','r13d','r14d','r15d',
+            'rax','rcx','rdx','rbx','rsp','rbp','rsi','rdi',
+            'r8','r9','r10','r11','r12','r13','r14','r15',
+            /* Debug Registers */
+            'dr0','dr1','dr2','dr3','dr6','dr7',
+            /* Control Registers */
+            'cr0','cr2','cr3','cr4','cr8',
+            /* Test Registers (Supported on Intel 486 only) */
+            'tr3','tr4','tr5','tr6','tr7',
+            /* Segment Registers */
+            'cs','ds','es','fs','gs','ss',
+            /* FPU Registers */
+            'st','st0','st1','st2','st3','st4','st5','st6','st7',
+            /* MMX Registers */
+            'mm0','mm1','mm2','mm3','mm4','mm5','mm6','mm7',
+            /* SSE Registers */
+            'xmm0','xmm1','xmm2','xmm3','xmm4','xmm5','xmm6','xmm7',
+            'xmm8','xmm9','xmm10','xmm11','xmm12','xmm13','xmm14','xmm15',
+            /* AVX Registers */
+            'ymm0','ymm1','ymm2','ymm3','ymm4','ymm5','ymm6','ymm7',
+            'ymm8','ymm9','ymm10','ymm11','ymm12','ymm13','ymm14','ymm15'
             ),
-        /*Operands*/
+        /*Directive*/
         5 => array(
-            '@b','@f','addr','basic','byte','c','carry?','dword',
-            'far','far16','fortran','fword','near','near16','overflow?','parity?','pascal','qword',
-            'real4',' real8','real10','sbyte','sdword','sign?','stdcall','sword','syscall','tbyte',
-            'vararg','word','zero?','flat','near32','far32',
-            'abs','all','assumes','at','casemap','common','compact',
-            'cpu','dotname','emulator','epilogue','error','export','expr16','expr32','farstack',
-            'forceframe','huge','language','large','listing','ljmp','loadds','m510','medium','memory',
-            'nearstack','nodotname','noemulator','nokeyword','noljmp','nom510','none','nonunique',
-            'nooldmacros','nooldstructs','noreadonly','noscoped','nosignextend','nothing',
-            'notpublic','oldmacros','oldstructs','os_dos','para','prologue',
-            'readonly','req','scoped','setif2','smallstack','tiny','use16','use32','uses'
+            'db','dw','dd','dq','dt','do','dy',
+            'resb','resw','resd','resq','rest','reso','resy','incbin','equ','times','safeseh',
+            '__utf16__','__utf32__',
+            'default','cpu','float','start','imagebase','osabi',
+            '..start','..imagebase','..gotpc','..gotoff','..gottpoff','..got','..plt','..sym','..tlsie',
+            'section','segment','__sect__','group','absolute',
+            '.bss','.comment','.data','.lbss','.ldata','.lrodata','.rdata','.rodata','.tbss','.tdata','.text',
+            'alloc','bss','code','exec','data','noalloc','nobits','noexec','nowrite','progbits','rdata','tls','write',
+            'private','public','common','stack','overlay','class',
+            'extern','global','import','export',
+            '%define','%idefine','%xdefine','%ixdefine','%assign','%undef',
+            '%defstr','%idefstr','%deftok','%ideftok',
+            '%strcat','%strlen','%substr',
+            '%macro','%imacro','%rmacro','%exitmacro','%endmacro','%unmacro',
+            '%if','%ifn','%elif','%elifn','%else','%endif',
+            '%ifdef','%ifndef','%elifdef','%elifndef',
+            '%ifmacro','%ifnmacro','%elifmacro','%elifnmacro',
+            '%ifctx','%ifnctx','%elifctx','%elifnctx',
+            '%ifidn','%ifnidn','%elifidn','%elifnidn',
+            '%ifidni','%ifnidni','%elifidni','%elifnidni',
+            '%ifid','%ifnid','%elifid','%elifnid',
+            '%ifnum','%ifnnum','%elifnum','%elifnnum',
+            '%ifstr','%ifnstr','%elifstr','%elifnstr',
+            '%iftoken','%ifntoken','%eliftoken','%elifntoken',
+            '%ifempty','%ifnempty','%elifempty','%elifnempty',
+            '%ifenv','%ifnenv','%elifenv','%elifnenv',
+            '%rep','%exitrep','%endrep',
+            '%while','%exitwhile','%endwhile',
+            '%include','%pathsearch','%depend','%use',
+            '%push','%pop','%repl','%arg','%local','%stacksize','flat','flat64','large','small',
+            '%error','%warning','%fatal',
+            '%00','.nolist','%rotate','%line','%!','%final','%clear',
+            'struc','endstruc','istruc','at','iend',
+            'align','alignb','sectalign',
+            'bits','use16','use32','use64',
+            '__nasm_major__','__nasm_minor__','__nasm_subminor__','___nasm_patchlevel__',
+            '__nasm_version_id__','__nasm_ver__',
+            '__file__','__line__','__pass__','__bits__','__output_format__',
+            '__date__','__time__','__date_num__','__time_num__','__posix_time__',
+            '__utc_date__','__utc_time__','__utc_date_num__','__utc_time_num__',
+            '__float_daz__','__float_round__','__float__',
+            /* Keywords from standard packages */
+            '__use_altreg__',
+            '__use_smartalign__','smartalign','__alignmode__',
+            '__use_fp__','__infinity__','__nan__','__qnan__','__snan__',
+            '__float8__','__float16__','__float32__','__float64__','__float80m__','__float80e__','__float128l__','__float128h__'
+            ),
+        /*Operands*/
+        6 => array(
+            'a16','a32','a64','o16','o32','o64','strict',
+            'byte','word','dword','qword','tword','oword','yword','nosplit',
+            '%0','%1','%2','%3','%4','%5','%6','%7','%8','%9',
+            'abs','rel',
+            'seg','wrt'
             )
         ),
     'SYMBOLS' => array(
-        '[', ']', '(', ')',
-        '+', '-', '*', '/', '%',
-        '.', ',', ';', ':'
+        1 => array(
+                '[', ']', '(', ')',
+                '+', '-', '*', '/', '%',
+                '.', ',', ';', ':'
+            ),
+        2 => array(
+                '$','$$','%+','%?','%??'
+            )
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -144,19 +524,21 @@ $language_data = array (
         2 => false,
         3 => false,
         4 => false,
-        5 => false
+        5 => false,
+        6 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #00007f; font-weight: bold;',
-            2 => 'color: #0000ff; font-weight: bold;',
-            3 => 'color: #00007f;',
-            4 => 'color: #000000; font-weight: bold;',
-            5 => 'color: #000000; font-weight: bold;'
+            2 => 'color: #0000ff;',
+            3 => 'color: #b00040;',
+            4 => 'color: #46aa03; font-weight: bold;',
+            5 => 'color: #0000ff; font-weight: bold;',
+            6 => 'color: #0000ff; font-weight: bold;'
             ),
         'COMMENTS' => array(
             1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #adadad; font-style: italic;',
+            2 => 'color: #adadad; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
@@ -168,16 +550,15 @@ $language_data = array (
             0 => 'color: #7f007f;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #0000ff;'
+            0 => 'color: #ff0000;'
             ),
         'METHODS' => array(
             ),
         'SYMBOLS' => array(
-            0 => 'color: #339933;'
+            1 => 'color: #339933;',
+            2 => 'color: #0000ff; font-weight: bold;'
             ),
         'REGEXPS' => array(
-//            0 => 'color: #0000ff;',
-//            1 => 'color: #0000ff;'
             ),
         'SCRIPT' => array(
             )
@@ -187,7 +568,8 @@ $language_data = array (
         2 => '',
         3 => '',
         4 => '',
-        5 => ''
+        5 => '',
+        6 => ''
         ),
     'NUMBERS' =>
         GESHI_NUMBER_BIN_PREFIX_PERCENT |
@@ -203,10 +585,6 @@ $language_data = array (
     'OBJECT_SPLITTERS' => array(
         ),
     'REGEXPS' => array(
-        //Hex numbers
-//        0 => /*  */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))",
-        //Binary numbers
-//        1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))"
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
@@ -222,4 +600,4 @@ $language_data = array (
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/asp.php b/wp-content/plugins/wp-syntax/geshi/geshi/asp.php
index 5f48f11bc39d7b863c960c0e6c57977495d3a4ca..0096a169cc5793325e6afd8dfad3635d74e48b2a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/asp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/asp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Amit Gupta (http://blog.igeek.info/)
  * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/13
  *
  * ASP language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/asymptote.php b/wp-content/plugins/wp-syntax/geshi/geshi/asymptote.php
new file mode 100644
index 0000000000000000000000000000000000000000..8683588e5f22949b8057245a20cded70510fea81
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/asymptote.php
@@ -0,0 +1,194 @@
+<?php
+/*************************************************************************************
+ * asymptote.php
+ * -------------
+ * Author: Manuel Yguel (manuel.yguel.robotics@gmail.com)
+ * Copyright: (c) 2012 Manuel Yguel (http://manuelyguel.eu)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/24
+ *
+ * asymptote language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/05/24 (1.0.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2012/05/24)
+ * -------------------------
+ * * Split to several files - php4, php5 etc
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'asymptote',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'and','controls','tension','atleast','curl','if','else','while','for','do','return','break','continue','struct','typedef','new','access','import','unravel','from','include','quote','static','public','private','restricted','this','explicit','true','false','null','cycle','newframe','operator'
+            ),
+        2 => array(
+            'Braid','FitResult','Label','Legend','Segment','Solution','TreeNode','abscissa','arc','arrowhead','binarytree','binarytreeNode','block','bool','bool3','bounds','bqe','circle','conic','coord','coordsys','cputime','ellipse','file','filltype','frame','grid3','guide','horner','hsv','hyperbola','indexedTransform','int','inversion','key','light','line','linefit','marginT','marker','mass','object','pair','parabola','path','path3','pen','picture','point','position','projection','real','revolution','scaleT','scientific','segment','side','slice','solution','splitface','string','surface','tensionSpecifier','ticklocate','ticksgridT','tickvalues','transform','transformation','tree','triangle','trilinear','triple','vector','vertex','void'),
+        3 => array(
+            'AND','Arc','ArcArrow','ArcArrows','Arrow','Arrows','Automatic','AvantGarde','BBox','BWRainbow','BWRainbow2','Bar','Bars','BeginArcArrow','BeginArrow','BeginBar','BeginDotMargin','BeginMargin','BeginPenMargin','Blank','Bookman','Bottom','BottomTop','Bounds','Break','Broken','BrokenLog','CLZ','CTZ','Ceil','Circle','CircleBarIntervalMarker','Cos','Courier','CrossIntervalMarker','DOSendl','DOSnewl','DefaultFormat','DefaultLogFormat','Degrees','Dir','DotMargin','DotMargins','Dotted','Draw','Drawline','Embed','EndArcArrow','EndArrow','EndBar','EndDotMargin','EndMargin','EndPenMargin','Fill','FillDraw','Floor','Format','Full','Gaussian','Gaussrand','Gaussrandpair',
+            'Gradient','Grayscale','Helvetica','Hermite','HookHead','InOutTicks','InTicks','Jn','Label','Landscape','Left','LeftRight','LeftTicks','Legend','Linear','Link','Log','LogFormat','Margin','Margins','Mark','MidArcArrow','MidArrow','NOT','NewCenturySchoolBook','NoBox','NoMargin','NoModifier','NoTicks','NoTicks3','NoZero','NoZeroFormat','None','OR','OmitFormat','OmitTick','OmitTickInterval','OmitTickIntervals','OutTicks','Ox','Oy','Palatino','PaletteTicks','Pen','PenMargin','PenMargins','Pentype','Portrait','RadialShade','RadialShadeDraw','Rainbow','Range','Relative','Right','RightTicks','Rotate','Round','SQR','Scale','ScaleX','ScaleY','ScaleZ','Seascape','Segment','Shift','Sin','Slant','Spline','StickIntervalMarker','Straight','Symbol','Tan','TeXify','Ticks','Ticks3','TildeIntervalMarker','TimesRoman','Top','TrueMargin','UnFill','UpsideDown','Wheel','X','XEquals','XOR','XY','XYEquals','XYZero','XYgrid','XZEquals','XZZero','XZero','XZgrid','Y','YEquals','YXgrid','YZ','YZEquals','YZZero','YZero','YZgrid','Yn','Z','ZX','ZXgrid','ZYgrid','ZapfChancery','ZapfDingbats','_begingroup3','_cputime','_draw','_eval','_image','_labelpath','_projection','_strokepath','_texpath','aCos','aSin','aTan','abort','abs','accel','acos','acosh','acot','acsc','activatequote','add',
+            'addArrow','addMargins','addSaveFunction','addpenarc','addpenline','adjust','alias','align','all','altitude','angabscissa','angle','angpoint','animate','annotate','anticomplementary','antipedal','apply','approximate','arc','arcarrowsize','arccircle','arcdir','arcfromcenter','arcfromfocus','arclength','arcnodesnumber','arcpoint','arcsubtended','arcsubtendedcenter','arctime','arctopath','array','arrow','arrow2','arrowbase','arrowbasepoints','arrowsize','asec','asin','asinh','ask','assert','asy','asycode','asydir','asyfigure','asyfilecode','asyinclude','asywrite','atan','atan2','atanh','atbreakpoint','atexit','attach','attract','atupdate','autoformat','autoscale','autoscale3','axes','axes3','axialshade','axis','axiscoverage','azimuth','babel','background','bangles','bar','barmarksize','barsize','basealign','baseline','bbox','beep','begin','beginclip','begingroup','beginpoint','between','bevel','bezier','bezierP','bezierPP','bezierPPP','bezulate','bibliography','bibliographystyle','binarytree','binarytreeNode','binomial','binput','bins','bisector','bisectorpoint','bispline','blend','blockconnector','boutput','box','bqe','breakpoint','breakpoints','brick','buildRestoreDefaults','buildRestoreThunk','buildcycle','bulletcolor','byte','calculateScaling','canonical','canonicalcartesiansystem','cartesiansystem','case1','case2','case3','case4','cbrt','cd','ceil','center','centerToFocus',
+            'centroid','cevian','change2','changecoordsys','checkSegment','checkconditionlength','checker','checkincreasing','checklengths','checkposition','checktriangle','choose','circle','circlebarframe','circlemarkradius','circlenodesnumber','circumcenter','circumcircle','clamped','clear','clip','clipdraw','close','cmyk','code','colatitude','collect','collinear','color','colorless','colors','colorspace','comma','compassmark','complement','complementary','concat','concurrent','cone','conic','conicnodesnumber','conictype','conj','connect','connected','connectedindex','containmentTree','contains','contour','contour3','contouredges','controlSpecifier','convert','coordinates','coordsys','copy','copyPairOrTriple','cos','cosh','cot','countIntersections','cputime','crop','cropcode','cross',
+            'crossframe','crosshatch','crossmarksize','csc','cubicroots','curabscissa','curlSpecifier','curpoint','currentarrow','currentexitfunction','currentmomarrow','currentpolarconicroutine','curve','cut','cutafter','cutbefore','cyclic','cylinder','deactivatequote','debugger','deconstruct','defaultdir','defaultformat','defaultpen','defined','degenerate','degrees','delete','deletepreamble','determinant','diagonal','diamond','diffdiv','dir','dirSpecifier','dirtime','display','distance',
+            'divisors','do_overpaint','dot','dotframe','dotsize','downcase','draw','drawAll','drawDoubleLine','drawFermion','drawGhost','drawGluon','drawMomArrow','drawPRCcylinder','drawPRCdisk','drawPRCsphere','drawPRCtube','drawPhoton','drawScalar','drawVertex','drawVertexBox','drawVertexBoxO','drawVertexBoxX','drawVertexO','drawVertexOX','drawVertexTriangle','drawVertexTriangleO','drawVertexX','drawarrow','drawarrow2','drawline','drawpixel','drawtick','duplicate','elle','ellipse','ellipsenodesnumber','embed','embed3','empty','enclose','end','endScript','endclip','endgroup','endgroup3','endl','endpoint','endpoints','eof','eol','equation','equations','erase','erasestep','erf','erfc','error','errorbar','errorbars','eval','excenter','excircle','exit','exitXasyMode','exitfunction','exp','expfactors','expi','expm1','exradius','extend','extension','extouch','fabs','factorial','fermat','fft','fhorner','figure','file','filecode','fill','filldraw','filloutside','fillrule','filltype','find','finite','finiteDifferenceJacobian','firstcut','firstframe','fit','fit2','fixedscaling','floor','flush','fmdefaults','fmod','focusToCenter','font','fontcommand','fontsize','foot','format','frac','frequency','fromCenter','fromFocus','fspline','functionshade','gamma','generate_random_backtrace','generateticks','gergonne','getc','getint','getpair','getreal','getstring','gettriple','gluon','gouraudshade','graph','graphic','gray','grestore','grid','grid3','gsave','halfbox','hatch','hdiffdiv','hermite','hex','histogram','history','hline','hprojection',
+            'hsv','hyperbola','hyperbolanodesnumber','hyperlink','hypot','identity','image','incenter','incentral','incircle','increasing','incrementposition','indexedTransform','indexedfigure','initXasyMode','initdefaults','input','inradius','insert','inside','integrate','interactive','interior','interp','interpolate','intersect','intersection','intersectionpoint','intersectionpoints','intersections','intouch','inverse','inversion','invisible','is3D','isCCW','isDuplicate','isogonal','isogonalconjugate','isotomic','isotomicconjugate','isparabola','italic','item','jobname','key','kurtosis','kurtosisexcess','label','labelaxis','labelmargin','labelpath','labels','labeltick','labelx','labelx3','labely','labely3','labelz','labelz3','lastcut','latex','latitude','latticeshade','layer','layout','ldexp','leastsquares','legend','legenditem','length','lexorder','lift','light','limits','line','linear','linecap','lineinversion','linejoin','linemargin','lineskip','linetype','linewidth','link','list','lm_enorm','lm_evaluate_default','lm_lmdif','lm_lmpar','lm_minimize','lm_print_default','lm_print_quiet','lm_qrfac','lm_qrsolv','locale','locate',
+            'locatefile','location','log','log10','log1p','logaxiscoverage','longitude','lookup','makeNode','makedraw','makepen','map','margin','markangle','markangleradius','markanglespace','markarc','marker','markinterval','marknodes','markrightangle','markuniform','mass','masscenter','massformat','math','max','max3','maxAfterTransform','maxbezier','maxbound','maxcoords','maxlength','maxratio','maxtimes','mean','medial','median','midpoint','min','min3','minAfterTransform','minbezier','minbound','minipage','minratio','mintimes','miterlimit','mktemp','momArrowPath','momarrowsize','monotonic','multifigure','nativeformat','natural','needshipout','newl','newpage','newslide','newton','newtree','nextframe','nextnormal','nextpage','nib','nodabscissa','none','norm','normalvideo','notaknot','nowarn','numberpage','nurb','object','offset','onpath','opacity','opposite','orientation','origin','orthic','orthocentercenter','outformat','outline','outname','outprefix','output','overloadedMessage','overwrite','pack','pad','pairs','palette','parabola','parabolanodesnumber','parallel','parallelogram','partialsum','path','path3','pattern','pause','pdf','pedal','periodic','perp','perpendicular','perpendicularmark','phantom','phi1','phi2','phi3','photon','piecewisestraight','point','polar','polarconicroutine','polargraph','polygon','postcontrol','postscript','pow10','ppoint','prc','prc0','precision','precontrol','prepend','printBytecode','print_random_addresses','project','projection','purge','pwhermite','quadrant','quadraticroots','quantize','quarticroots','quotient','radialshade','radians','radicalcenter','radicalline','radius','rand','randompath','rd','readline','realmult','realquarticroots','rectangle','rectangular','rectify','reflect','relabscissa','relative','relativedistance','reldir','relpoint','reltime','remainder','remark','removeDuplicates','rename','replace','report','resetdefaultpen','restore','restoredefaults','reverse','reversevideo','rf','rfind','rgb','rgba','rgbint','rms',
+            'rotate','rotateO','rotation','round','roundbox','roundedpath','roundrectangle','same','samecoordsys','sameside','sample','save','savedefaults','saveline','scale','scale3','scaleO','scaleT','scaleless','scientific','search','searchindex','searchtree','sec','secondaryX','secondaryY','seconds','section','sector','seek','seekeof','segment','sequence','setcontour','setpens','sgn','sgnd','sharpangle','sharpdegrees','shift','shiftless','shipout','shipout3','show','side','simeq','simpson','sin','sinh','size','size3','skewness','skip','slant','sleep','slope','slopefield','solve','solveBVP','sort','sourceline','sphere','split','sqrt','square','srand','standardizecoordsys','startScript','stdev','step','stickframe','stickmarksize','stickmarkspace','stop','straight','straightness','string','stripdirectory','stripextension','stripfile','stripsuffix','strokepath','subdivide','subitem','subpath','substr','sum','surface','symmedial','symmedian','system',
+            'tab','tableau','tan','tangent','tangential','tangents','tanh','tell','tensionSpecifier','tensorshade','tex','texcolor','texify','texpath','texpreamble','texreset','texshipout','texsize','textpath','thick','thin','tick','tickMax','tickMax3','tickMin','tickMin3','ticklabelshift','ticklocate','tildeframe','tildemarksize','tile','tiling','time','times','title','titlepage','topbox','transform','transformation','transpose','trembleFuzz','triangle','triangleAbc','triangleabc','triangulate','tricoef','tridiagonal','trilinear','trim','truepoint','tube','uncycle','unfill','uniform','unique','unit','unitrand','unitsize','unityroot','unstraighten','upcase','updatefunction','uperiodic','upscale','uptodate','usepackage','usersetting','usetypescript','usleep','value','variance','variancebiased','vbox','vector','vectorfield','verbatim','view','vline','vperiodic','vprojection','warn','warning','windingnumber','write','xaxis','xaxis3','xaxis3At','xaxisAt','xequals','xinput','xlimits','xoutput','xpart','xscale','xscaleO','xtick','xtick3','xtrans','yaxis','yaxis3','yaxis3At','yaxisAt','yequals','ylimits','ypart','yscale','yscaleO','ytick','ytick3','ytrans','zaxis3','zaxis3At','zero','zero3','zlimits','zpart','ztick','ztick3','ztrans'
+            ),
+        4 => array(
+            'AliceBlue','Align','Allow','AntiqueWhite','Apricot','Aqua','Aquamarine','Aspect','Azure','BeginPoint','Beige','Bisque','Bittersweet','Black','BlanchedAlmond','Blue','BlueGreen','BlueViolet','Both','Break','BrickRed','Brown','BurlyWood','BurntOrange','CCW','CW','CadetBlue','CarnationPink','Center','Centered','Cerulean','Chartreuse','Chocolate','Coeff','Coral','CornflowerBlue','Cornsilk','Crimson','Crop','Cyan','Dandelion','DarkBlue','DarkCyan','DarkGoldenrod','DarkGray','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DefaultHead','DimGray','DodgerBlue','Dotted','Down','Draw','E','ENE','EPS','ESE','E_Euler','E_PC','E_RK2','E_RK3BS','Emerald','EndPoint','Euler','Fill','FillDraw','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','Goldenrod','Gray','Green','GreenYellow','Honeydew','HookHead','Horizontal','HotPink','I','IgnoreAspect','IndianRed','Indigo','Ivory','JOIN_IN','JOIN_OUT','JungleGreen','Khaki','LM_DWARF','LM_MACHEP','LM_SQRT_DWARF','LM_SQRT_GIANT','LM_USERTOL','Label','Lavender','LavenderBlush','LawnGreen','Left','LeftJustified','LeftSide','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenrodYellow',
+            'LightGreen','LightGrey','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSteelBlue','LightYellow','Lime','LimeGreen','Linear','Linen','Log','Logarithmic','Magenta','Mahogany','Mark','MarkFill','Maroon','Max','MediumAquamarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','Melon','MidPoint','MidnightBlue','Min','MintCream','MistyRose','Moccasin','Move','MoveQuiet','Mulberry','N','NE','NNE','NNW','NW','NavajoWhite','Navy','NavyBlue','NoAlign','NoCrop','NoFill','NoSide','OldLace','Olive','OliveDrab','OliveGreen','Orange','OrangeRed','Orchid','Ox','Oy','PC','PaleGoldenrod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','Peach','PeachPuff','Periwinkle','Peru','PineGreen','Pink','Plum','PowderBlue','ProcessBlue','Purple','RK2','RK3','RK3BS','RK4','RK5','RK5DP','RK5F','RawSienna','Red','RedOrange','RedViolet','Rhodamine','Right','RightJustified','RightSide','RosyBrown','RoyalBlue','RoyalPurple','RubineRed','S','SE','SSE','SSW','SW','SaddleBrown','Salmon','SandyBrown','SeaGreen','Seashell','Sepia','Sienna','Silver','SimpleHead','SkyBlue','SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Suppress','SuppressQuiet','Tan','TeXHead','Teal','TealBlue','Thistle','Ticksize','Tomato',
+            'Turquoise','UnFill','Up','VERSION','Value','Vertical','Violet','VioletRed','W','WNW','WSW','Wheat','White','WhiteSmoke','WildStrawberry','XYAlign','YAlign','Yellow','YellowGreen','YellowOrange','addpenarc','addpenline','align','allowstepping','angularsystem','animationdelay','appendsuffix','arcarrowangle','arcarrowfactor','arrow2sizelimit','arrowangle','arrowbarb','arrowdir','arrowfactor','arrowhookfactor','arrowlength','arrowsizelimit','arrowtexfactor','authorpen','axis','axiscoverage','axislabelfactor','background','backgroundcolor','backgroundpen','barfactor','barmarksizefactor','basealign','baselinetemplate','beveljoin','bigvertexpen','bigvertexsize','black','blue','bm','bottom','bp','brown','bullet','byfoci','byvertices','camerafactor','chartreuse','circlemarkradiusfactor','circlenodesnumberfactor','circleprecision','circlescale','cm','codefile','codepen','codeskip','colorPen','coloredNodes','coloredSegments',
+            'conditionlength','conicnodesfactor','count','cputimeformat','crossmarksizefactor','currentcoordsys','currentlight','currentpatterns','currentpen','currentpicture','currentposition','currentprojection','curvilinearsystem','cuttings','cyan','darkblue','darkbrown','darkcyan','darkgray','darkgreen','darkgrey','darkmagenta','darkolive','darkred','dashdotted','dashed','datepen','dateskip','debuggerlines','debugging','deepblue','deepcyan','deepgray','deepgreen','deepgrey','deepmagenta','deepred','default','defaultControl','defaultS','defaultbackpen','defaultcoordsys','defaultexcursion','defaultfilename','defaultformat','defaultmassformat','defaultpen','diagnostics','differentlengths','dot','dotfactor','dotframe','dotted','doublelinepen','doublelinespacing','down','duplicateFuzz','edge','ellipsenodesnumberfactor','eps','epsgeo','epsilon','evenodd','expansionfactor','extendcap','exterior','fermionpen','figureborder','figuremattpen','file3','firstnode','firststep','foregroundcolor','fuchsia','fuzz','gapfactor','ghostpen','gluonamplitude','gluonpen','gluonratio','gray','green','grey','hatchepsilon','havepagenumber','heavyblue','heavycyan','heavygray','heavygreen','heavygrey','heavymagenta','heavyred','hline','hwratio','hyperbola','hyperbolanodesnumberfactor','identity4','ignore','inXasyMode','inch','inches','includegraphicscommand','inf','infinity','institutionpen','intMax','intMin','interior','invert','invisible','itempen','itemskip','itemstep','labelmargin','landscape','lastnode','left','legendhskip','legendlinelength',
+            'legendmargin','legendmarkersize','legendmaxrelativewidth','legendvskip','lightblue','lightcyan','lightgray','lightgreen','lightgrey','lightmagenta','lightolive','lightred','lightyellow','line','linemargin','lm_infmsg','lm_shortmsg','longdashdotted','longdashed','magenta','magneticRadius','mantissaBits','markangleradius','markangleradiusfactor','markanglespace','markanglespacefactor','mediumblue','mediumcyan','mediumgray','mediumgreen','mediumgrey','mediummagenta','mediumred','mediumyellow','middle','minDistDefault','minblockheight','minblockwidth','mincirclediameter','minipagemargin','minipagewidth','minvertexangle','miterjoin','mm','momarrowfactor','momarrowlength','momarrowmargin','momarrowoffset','momarrowpen','monoPen','morepoints','nCircle','newbulletcolor','ngraph','nil','nmesh','nobasealign','nodeMarginDefault','nodesystem','nomarker','nopoint','noprimary','nullpath','nullpen','numarray','ocgindex','oldbulletcolor','olive','orange','origin','overpaint','page','pageheight','pagemargin','pagenumberalign','pagenumberpen','pagenumberposition','pagewidth','paleblue','palecyan','palegray','palegreen','palegrey',
+            'palemagenta','palered','paleyellow','parabolanodesnumberfactor','perpfactor','phi','photonamplitude','photonpen','photonratio','pi','pink','plain','plain_bounds','plain_scaling','plus','preamblenodes','pt','purple','r3','r4a','r4b','randMax','realDigits','realEpsilon','realMax','realMin','red','relativesystem','reverse','right','roundcap','roundjoin','royalblue','salmon','saveFunctions','scalarpen','sequencereal','settings','shipped','signedtrailingzero','solid','springgreen','sqrtEpsilon','squarecap','squarepen','startposition','stdin','stdout','stepfactor','stepfraction','steppagenumberpen','stepping','stickframe','stickmarksizefactor','stickmarkspacefactor','swap','textpen','ticksize','tildeframe','tildemarksizefactor','tinv','titlealign','titlepagepen','titlepageposition','titlepen','titleskip','top','trailingzero','treeLevelStep','treeMinNodeWidth','treeNodeStep','trembleAngle','trembleFrequency','trembleRandom','undefined','unitcircle','unitsquare','up','urlpen','urlskip','version','vertexpen','vertexsize','viewportmargin','viewportsize','vline','white','wye','xformStack','yellow','ylabelwidth','zerotickfuzz','zerowinding'
+            )
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '(', ')', '{', '}', '[', ']'
+            ),
+        1 => array('<', '>','='),
+        2 => array('+', '-', '*', '/', '%'),
+        3 => array('!', '^', '&', '|'),
+        4 => array('?', ':', ';'),
+        5 => array('..')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #990000;',
+            4 => 'color: #009900; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            2 => 'color: #339900;',
+            'MULTI' => 'color: #ff0000; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #008000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #FF0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0000dd;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #007788;',
+            2 => 'color: #007788;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;',
+            1 => 'color: #000080;',
+            2 => 'color: #000040;',
+            3 => 'color: #000040;',
+            4 => 'color: #008080;',
+            5 => 'color: #009080;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
+            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
+            )
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/autoconf.php b/wp-content/plugins/wp-syntax/geshi/geshi/autoconf.php
index 3f35e8a596cb1db36f7de79ed10ce987bb653299..7a0f1ee9c41710184165b9181fca491ae6914dc9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/autoconf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/autoconf.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Mihai Vasilian (grayasm@gmail.com)
  * Copyright: (c) 2010 Mihai Vasilian
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/01/25
  *
  * autoconf language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/autohotkey.php b/wp-content/plugins/wp-syntax/geshi/geshi/autohotkey.php
index de2ad790716a19985cd61dd7e02fc9143d72e349..970684daf11e3222d501f8d7248c96e7eb8a34a0 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/autohotkey.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/autohotkey.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Naveen Garg (naveen.garg@gmail.com)
  * Copyright: (c) 2009 Naveen Garg and GeSHi
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/06/11
  *
  * Autohotkey language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/autoit.php b/wp-content/plugins/wp-syntax/geshi/geshi/autoit.php
index b51bd27a2e57352a166354f7b37050ab72dc38cf..ab401b4cd404bb9137835420b577efdae17e1edf 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/autoit.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/autoit.php
@@ -4,7 +4,7 @@
  * --------
  * Author: big_daddy (robert.i.anthony@gmail.com)
  * Copyright: (c) 2006 and to GESHi ;)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/01/26
  *
  * AutoIT language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/avisynth.php b/wp-content/plugins/wp-syntax/geshi/geshi/avisynth.php
index af11e9858a313df3ede56093be7d60fe4d0c42ea..88f662886513ae89b1e845ab0ea19b04db5254ae 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/avisynth.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/avisynth.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Ryan Jones (sciguyryan@gmail.com)
  * Copyright: (c) 2008 Ryan Jones
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/10/08
  *
  * AviSynth language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/awk.php b/wp-content/plugins/wp-syntax/geshi/geshi/awk.php
index 38d7de17420a3ca6e5883d606172481d0164dbd9..1ec239b70c853e991cbfe30801a728f64b46dbd9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/awk.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/awk.php
@@ -4,7 +4,7 @@
  * -------
  * Author: George Pollard (porges@porg.es)
  * Copyright: (c) 2009 George Pollard
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/01/28
  *
  * Awk language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/bascomavr.php b/wp-content/plugins/wp-syntax/geshi/geshi/bascomavr.php
new file mode 100644
index 0000000000000000000000000000000000000000..864f74e8d526535e802ce40b2123bca42115bbee
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/bascomavr.php
@@ -0,0 +1,185 @@
+<?php
+/*************************************************************************************
+ * bascomavr.php
+ * ---------------------------------
+ * Author: aquaticus.info
+ * Copyright: (c) 2008 aquaticus.info
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/09
+ *
+ * BASCOM AVR language file for GeSHi.
+ *
+ * You can find the BASCOM AVR Website at (www.mcselec.com/bascom-avr.htm)
+ *
+ * CHANGES
+ * -------
+ * 2008/01/09 (1.0.8.10)
+ *  -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'BASCOM AVR',
+    'COMMENT_SINGLE' => array(1 => "'"),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            // Navy Blue Bold Keywords
+            '1WRESET' , '1WREAD' , '1WWRITE' , '1WSEARCHFIRST' , '1WSEARCHNEXT' ,'1WVERIFY' , '1WIRECOUNT',
+            'CONFIG' , 'ACI' , 'ADC' , 'BCCARD' , 'CLOCK' , 'COM1' ,
+            'COM2' , 'PS2EMU' , 'ATEMU' , 'I2CSLAVE' ,
+            'INPUT', 'OUTPUT', 'GRAPHLCD' , 'KEYBOARD' , 'TIMER0' , 'TIMER1' ,
+            'LCDBUS' , 'LCDMODE' , '1WIRE' , 'LCD' , 'SERIALOUT' ,
+            'SERIALIN' , 'SPI' , 'LCDPIN' , 'SDA' , 'SCL' ,
+            'WATCHDOG' , 'PORT' , 'COUNTER0', 'COUNTER1' , 'TCPIP' , 'TWISLAVE' ,
+            'X10' , 'XRAM' , 'USB',
+            'BCD' , 'GRAY2BIN' , 'BIN2GRAY' , 'BIN' , 'MAKEBCD' , 'MAKEDEC' , 'MAKEINT' , 'FORMAT' , 'FUSING' , 'BINVAL' ,
+            'CRC8' , 'CRC16' , 'CRC16UNI' , 'CRC32' , 'HIGH' , 'HIGHW' , 'LOW',
+            'DATE' , 'TIME'  , 'DATE$' , 'TIME$' , 'DAYOFWEEK' , 'DAYOFYEAR' , 'SECOFDAY' , 'SECELAPSED' , 'SYSDAY' , 'SYSSEC' , 'SYSSECELAPSED',
+            'WAIT'  , 'WAITMS' , 'WAITUS' , 'DELAY',
+            'BSAVE' , 'BLOAD' , 'GET' , 'VER' , 'DISKFREE' , 'DIR' , 'DriveReset' , 'DriveInit' , 'LINE' , 'INITFILESYSTEM' ,
+            'EOF' , 'WRITE' , 'FLUSH' , 'FREEFILE' , 'FILEATTR' , 'FILEDATE' , 'FILETIME' , 'FILEDATETIME' , 'FILELEN' , 'SEEK' ,
+            'KILL' , 'DriveGetIdentity' , 'DriveWriteSector' , 'DriveReadSector' , 'LOC' , 'LOF' , 'PUT' , 'OPEN' , 'CLOSE',
+            'GLCDCMD' , 'GLCDDATA' , 'SETFONT' , 'PSET' , 'SHOWPIC' , 'SHOWPICE' , 'CIRCLE' , 'BOX',
+            'I2CINIT' , 'I2CRECEIVE' , 'I2CSEND' , 'I2CSTART','I2CSTOP','I2CRBYTE','I2CWBYTE',
+            'ALIAS' , 'BITWAIT' , 'TOGGLE' , 'RESET' , 'SET' , 'SHIFTIN' , 'SHIFTOUT' , 'DEBOUNCE' , 'PULSEIN' , 'PULSEOUT',
+            'IDLE' , 'POWERDOWN' , 'POWERSAVE' , 'ON', 'INTERRUPT' , 'ENABLE' , 'DISABLE' , 'START' , 'VERSION' , 'CLOCKDIVISION' , 'CRYSTAL' , 'STOP',
+            'ADR' , 'ADR2' , 'WRITEEEPROM' , 'CPEEK' , 'CPEEKH' , 'PEEK' , 'POKE' , 'OUT' , 'READEEPROM' , 'DATA' , 'INP' , 'READ' , 'RESTORE' , 'LOOKDOWN' , 'LOOKUP' , 'LOOKUPSTR' , 'LOAD' , 'LOADADR' , 'LOADLABEL' , 'LOADWORDADR' , 'MEMCOPY',
+            'RC5SEND' , 'RC6SEND' , 'GETRC5' , 'SONYSEND',
+            'BAUD' , 'BAUD1', 'BUFSPACE' , 'CLEAR', 'ECHO' , 'WAITKEY' , 'ISCHARWAITING' , 'INKEY' , 'INPUTBIN' , 'INPUTHEX' , 'PRINT', 'PRINT1','PRINT0', 'PRINTBIN' , 'SERIN' , 'SEROUT' , 'SPC' , 'MAKEMODBUS',
+            'SPIIN' , 'SPIINIT' , 'SPIMOVE' , 'SPIOUT', 'SINGLE',
+            'ASC' , 'UCASE' , 'LCASE' , 'TRIM' , 'SPLIT' , 'LTRIM' , 'INSTR' , 'SPACE' , 'RTRIM' , 'LEFT' , 'LEN' , 'MID' , 'RIGHT' , 'VAL' , 'STR' , 'CHR' , 'CHECKSUM' , 'HEX' , 'HEXVAL',
+            'BASE64DEC' , 'BASE64ENC' , 'IP2STR' , 'UDPREAD' , 'UDPWRITE' , 'UDPWRITESTR' , 'TCPWRITE' , 'TCPWRITESTR' , 'TCPREAD' , 'GETDSTIP' , 'GETDSTPORT' , 'SOCKETSTAT' , 'SOCKETCONNECT' , 'SOCKETLISTEN' , 'GETSOCKET' , 'CLOSESOCKET' ,
+            'SETTCP' , 'GETTCPREGS' , 'SETTCPREGS' , 'SETIPPROTOCOL' , 'TCPCHECKSUM',
+            'HOME' , 'CURSOR' , 'UPPERLINE' , 'THIRDLINE' , 'INITLCD' , 'LOWERLINE' , 'LCDAT' , 'FOURTHLINE' , 'DISPLAY' , 'LCDCONTRAST' , 'LOCATE' , 'SHIFTCURSOR' , 'DEFLCDCHAR' , 'SHIFTLCD' , 'CLS',
+            'ACOS' , 'ASIN' , 'ATN' , 'ATN2' , 'EXP' , 'RAD2DEG' , 'FRAC' , 'TAN' , 'TANH' , 'COS' , 'COSH' , 'LOG' , 'LOG10' , 'ROUND' , 'ABS' , 'INT' , 'MAX' , 'MIN' , 'SQR' , 'SGN' , 'POWER' , 'SIN' , 'SINH' , 'FIX' , 'INCR' , 'DECR' , 'DEG2RAD',
+            'DBG' , 'DEBUG', 'DTMFOUT' , 'ENCODER' , 'GETADC' , 'GETKBD' , 'GETATKBD' , 'GETRC' , 'VALUE' , 'POPALL' , 'PS2MOUSEXY' , 'PUSHALL' ,
+            'RETURN'  , 'RND' , 'ROTATE' , 'SENDSCAN' , 'SENDSCANKBD' , 'SHIFT' , 'SOUND' , 'STCHECK' , 'SWAP' , 'VARPTR' , 'X10DETECT' , 'X10SEND' , 'READMAGCARD' , 'REM' , 'BITS' , 'BYVAL' , 'CALL' , 'READHITAG',
+            'Buffered', 'Size', 'Dummy', 'Parity', 'None', 'Stopbits', 'Databits', 'Clockpol', 'Synchrone', 'Prescaler', 'Reference', 'int0', 'int1', 'Interrupts',
+            'Auto', 'avcc', 'ack', 'nack', 'Pin', 'Db4', 'Db3', 'Db2', 'Db1', 'Db7', 'Db6', 'Db5', 'Db0',  'e', 'rs', 'twi',
+            ),
+        2 => array(
+            // Red Lowercase Keywords
+            '$ASM' , '$BAUD' , '$BAUD1' , '$BGF' , '$BOOT' , '$CRYSTAL' , '$DATA' , '$DBG' , '$DEFAULT' , '$EEPLEAVE' , '$EEPROM' ,
+            '$EEPROMHEX' , '$EXTERNAL' , '$HWSTACK' , '$INC' , '$INCLUDE' , '$INITMICRO' , '$LCD' , '$LCDRS' , '$LCDPUTCTRL' ,
+            '$LCDPUTDATA' , '$LCDVFO' , '$LIB' , '$LOADER' , '$LOADERSIZE' , '$MAP' , '$NOCOMPILE' , '$NOINIT' , '$NORAMCLEAR' ,
+            '$PROG' , '$PROGRAMMER' , '$REGFILE' , '$RESOURCE' , '$ROMSTART', '$SERIALINPUT', '$SERIALINPUT1' , '$SERIALINPUT2LCD' ,
+            '$SERIALOUTPUT' , '$SERIALOUTPUT1' , '$SIM' , '$SWSTACK' , '$TIMEOUT' , '$TINY' , '$WAITSTATE' , '$XRAMSIZE' , '$XRAMSTART', '$XA',
+            '#IF' , '#ELSE' , '#ENDIF', '$framesize'
+            ),
+        3 => array(
+            // Blue Lowercase Keywords
+            'IF', 'THEN', 'ELSE', 'END', 'WHILE', 'WEND', 'DO', 'LOOP', 'SELECT', 'CASE', 'FOR', 'NEXT',
+            'GOSUB' , 'GOTO' , 'LOCAL' , 'SUB' , 'DEFBIT', 'DEFBYTE', 'DEFINT', 'DEFWORD', 'DEFLNG', 'DEFSNG', 'DEFDBL',
+            'CONST', 'DECLARE', 'FUNCTION', 'DIM', 'EXIT', 'LONG', 'INTEGER', 'BYTE', 'AS', 'STRING', 'WORD'
+            ),
+        4 => array(
+            //light blue
+            'PINA.0', 'PINA.1', 'PINA.2', 'PINA.3', 'PINA.4', 'PINA.5', 'PINA.6', 'PINA.7',
+            'PINB.0', 'PINB.1', 'PINB.2', 'PINB.3', 'PINB.4', 'PINB.5', 'PINB.6', 'PINB.7',
+            'PINC.0', 'PINC.1', 'PINC.2', 'PINC.3', 'PINC.4', 'PINC.5', 'PINC.6', 'PINC.7',
+            'PIND.0', 'PIND.1', 'PIND.2', 'PIND.3', 'PIND.4', 'PIND.5', 'PIND.6', 'PIND.7',
+            'PINE.0', 'PINE.1', 'PINE.2', 'PINE.3', 'PINE.4', 'PINE.5', 'PINE.6', 'PINE.7',
+            'PINF.0', 'PINF.1', 'PINF.2', 'PINF.3', 'PINF.4', 'PINF.5', 'PINF.6', 'PINF.7',
+
+            'PORTA.0', 'PORTA.1', 'PORTA.2', 'PORTA.3', 'PORTA.4', 'PORTA.5', 'PORTA.6', 'PORTA.7',
+            'PORTB.0', 'PORTB.1', 'PORTB.2', 'PORTB.3', 'PORTB.4', 'PORTB.5', 'PORTB.6', 'PORTB.7',
+            'PORTC.0', 'PORTC.1', 'PORTC.2', 'PORTC.3', 'PORTC.4', 'PORTC.5', 'PORTC.6', 'PORTC.7',
+            'PORTD.0', 'PORTD.1', 'PORTD.2', 'PORTD.3', 'PORTD.4', 'PORTD.5', 'PORTD.6', 'PORTD.7',
+            'PORTE.0', 'PORTE.1', 'PORTE.2', 'PORTE.3', 'PORTE.4', 'PORTE.5', 'PORTE.6', 'PORTE.7',
+            'PORTF.0', 'PORTF.1', 'PORTF.2', 'PORTF.3', 'PORTF.4', 'PORTF.5', 'PORTF.6', 'PORTF.7',
+
+            'DDRA.0', 'DDRA.1', 'DDRA.2', 'DDRA.3', 'DDRA.4', 'DDRA.5', 'DDRA.6', 'DDRA.7',
+            'DDRB.0', 'DDRB.1', 'DDRB.2', 'DDRB.3', 'DDRB.4', 'DDRB.5', 'DDRB.6', 'DDRB.7',
+            'DDRC.0', 'DDRC.1', 'DDRC.2', 'DDRC.3', 'DDRC.4', 'DDRC.5', 'DDRC.6', 'DDRC.7',
+            'DDRD.0', 'DDRD.1', 'DDRD.2', 'DDRD.3', 'DDRD.4', 'DDRD.5', 'DDRD.6', 'DDRD.7',
+            'DDRE.0', 'DDRE.1', 'DDRE.2', 'DDRE.3', 'DDRE.4', 'DDRE.5', 'DDRE.6', 'DDRE.7',
+            'DDRF.0', 'DDRF.1', 'DDRF.2', 'DDRF.3', 'DDRF.4', 'DDRF.5', 'DDRF.6', 'DDRF.7',
+
+            'DDRA','DDRB','DDRC','DDRD','DDRE','DDRF',
+            'PORTA','PORTB','PORTC','PORTD','PORTE','PORTF',
+            'PINA','PINB','PINC','PIND','PINE','PINF',
+            )
+        ),
+    'SYMBOLS' => array(
+        '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']',  ';', ':', '$', '&H'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000080; font-weight: bold;',
+            2 => 'color: #FF0000;',
+            3 => 'color: #0000FF;',
+            4 => 'color: #0080FF;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #657CC4; font-style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000080;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #008000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000080; font-weight: bold;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #0000FF;'
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/bash.php b/wp-content/plugins/wp-syntax/geshi/geshi/bash.php
index 658111a05d1921d734070202e0a7bee87ccf3db7..c69f0054fc6e7991be83bba5b0ea788ab0bef780 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/bash.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/bash.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org)
  * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/20
  *
  * BASH language file for GeSHi.
@@ -65,7 +65,10 @@ $language_data = array (
         //BASH-style Heredoc
         2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
         //Escaped String Starters
-        3 => "/\\\\['\"]/siU"
+        3 => "/\\\\['\"]/siU",
+        // Single-Line Shell usage: Hide the prompt at the beginning
+        /* 4 => "/\A(?!#!)\s*(?>[\w:@\\/\\-\\._~]*[$#]\s?)?(?=[^\n]+\n?\Z)|^(?!#!)(\w+@)?[\w\\-\\.]+(:~?)[\w\\/\\-\\._]*?[$#]\s?/ms" */
+        4 => "/\A(?!#!)(?:(?>[\w:@\\/\\-\\._~]*)[$#]\s?)(?=(?>[^\n]+)\n?\Z)|^(?!#!)(?:\w+@)?(?>[\w\\-\\.]+)(?>:~?[\w\\/\\-\\._]*?)?[$#]\s?/sm"
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
@@ -90,10 +93,44 @@ $language_data = array (
             'if', 'in', 'select', 'set', 'then', 'until', 'while', 'time'
             ),
         2 => array(
-            'aclocal', 'aconnect', 'aplay', 'apm', 'apmsleep', 'apropos',
-            'apt-cache', 'apt-file', 'apt-get', 'apt-key', 'apt-src', 'aptitude',
-            'ar', 'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf',
-            'autoheader', 'automake', 'awk',
+            'aclocal', 'aconnect', 'apachectl', 'apache2ctl', 'aplay', 'apm',
+            'apmsleep', 'apropos', 'apt-cache', 'apt-cdrom', 'apt-config',
+            'apt-file', 'apt-ftparchive', 'apt-get', 'apt-key', 'apt-listbugs',
+            'apt-listchanges', 'apt-mark', 'apt-mirror', 'apt-sortpkgs',
+            'apt-src', 'apticron', 'aptitude', 'aptsh', 'apxs', 'apxs2', 'ar',
+            'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf', 'autoheader',
+            'automake', 'awk',
+
+            'apachectl start', 'apachectl stop', 'apachectl restart',
+            'apachectl graceful', 'apachectl graceful-stop',
+            'apachectl configtest', 'apachectl status', 'apachectl fullstatus',
+            'apachectl help', 'apache2ctl start', 'apache2ctl stop',
+            'apache2ctl restart', 'apache2ctl graceful',
+            'apache2ctl graceful-stop', 'apache2ctl configtest',
+            'apache2ctl status', 'apache2ctl fullstatus', 'apache2ctl help',
+
+            'apt-cache add', 'apt-cache depends', 'apt-cache dotty',
+            'apt-cache dump', 'apt-cache dumpavail', 'apt-cache gencaches',
+            'apt-cache pkgnames', 'apt-cache policy', 'apt-cache rdepends',
+            'apt-cache search', 'apt-cache show', 'apt-cache showauto',
+            'apt-cache showpkg', 'apt-cache showsrc', 'apt-cache stats',
+            'apt-cache unmet', 'apt-cache xvcg', 'apt-cdrom add',
+            'apt-cdrom ident', 'apt-config dump', 'apt-config shell',
+            'apt-file find', 'apt-file list', 'apt-file purge',
+            'apt-file search', 'apt-file shot', 'apt-file update',
+            'apt-get autoclean', 'apt-get autoremove', 'apt-get build-dep',
+            'apt-get check', 'apt-get clean', 'apt-get dist-upgrade',
+            'apt-get dselect-upgrade', 'apt-get install', 'apt-get markauto',
+            'apt-get purge', 'apt-get remove', 'apt-get source',
+            'apt-get unmarkauto', 'apt-get update', 'apt-get upgrade',
+            'apt-key add', 'apt-key adv', 'apt-key del', 'apt-key export',
+            'apt-key exportall', 'apt-key finger', 'apt-key list',
+            'apt-key net-update', 'apt-key update', 'apt-listbugs apt',
+            'apt-listbugs list', 'apt-listbugs rss', 'apt-src build',
+            'apt-src clean', 'apt-src import', 'apt-src install',
+            'apt-src list', 'apt-src location', 'apt-src name',
+            'apt-src remove', 'apt-src update', 'apt-src upgrade',
+            'apt-src version',
 
             'basename', 'bash', 'bc', 'bison', 'bunzip2', 'bzcat',
             'bzcmp', 'bzdiff', 'bzegrep', 'bzfgrep', 'bzgrep',
@@ -104,6 +141,14 @@ $language_data = array (
             'chown', 'chroot', 'chsh', 'chvt', 'clear', 'cmp', 'comm', 'co',
             'col', 'cp', 'cpio', 'cpp', 'csh', 'cut', 'cvs', 'cvs-pserver',
 
+            'cvs add', 'cvs admin', 'cvs annotate', 'cvs checkout',
+            'cvs commit', 'cvs diff', 'cvs edit', 'cvs editors', 'cvs export',
+            'cvs history', 'cvs import', 'cvs init', 'cvs log', 'cvs login',
+            'cvs logout', 'cvs ls', 'cvs pserver', 'cvs rannotate',
+            'cvs rdiff', 'cvs release', 'cvs remove', 'cvs rlog', 'cvs rls',
+            'cvs rtag', 'cvs server', 'cvs status', 'cvs tag', 'cvs unedit',
+            'cvs update', 'cvs version', 'cvs watch', 'cvs watchers',
+
             'dash', 'date', 'dc', 'dch', 'dcop', 'dd', 'ddate', 'ddd',
             'deallocvt', 'debconf', 'defoma', 'depmod', 'df', 'dh',
             'dialog', 'diff', 'diff3', 'dig', 'dir', 'dircolors', 'directomatic',
@@ -112,15 +157,55 @@ $language_data = array (
 
             'ed', 'egrep', 'env', 'expr',
 
-            'false', 'fbset', 'ffmpeg', 'fgconsole','fgrep', 'file', 'find',
-            'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
+            'false', 'fbset', 'fdisk', 'ffmpeg', 'fgconsole','fgrep', 'file',
+            'find', 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser',
 
             'g++', 'gawk', 'gc','gcc', 'gdb', 'getent', 'getkeycodes',
             'getopt', 'gettext', 'gettextize', 'gimp', 'gimp-remote',
             'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip',
             'gzexe', 'gzip',
 
-            'git', 'gitaction', 'git-add', 'git-add--interactive', 'git-am',
+            'git', 'git add', 'git add--interactive', 'git am', 'git annotate',
+            'git apply', 'git archive', 'git bisect', 'git bisect--helper',
+            'git blame', 'git branch', 'git bundle', 'git cat-file',
+            'git check-attr', 'git checkout', 'git checkout-index',
+            'git check-ref-format', 'git cherry', 'git cherry-pick',
+            'git clean', 'git clone', 'git commit', 'git commit-tree',
+            'git config', 'git count-objects', 'git daemon', 'git describe',
+            'git diff', 'git diff-files', 'git diff-index', 'git difftool',
+            'git difftool--helper', 'git diff-tree', 'git fast-export',
+            'git fast-import', 'git fetch', 'git fetch-pack',
+            'git filter-branch', 'git fmt-merge-msg', 'git for-each-ref',
+            'git format-patch', 'git fsck', 'git fsck-objects', 'git gc',
+            'git get-tar-commit-id', 'git grep', 'git hash-object', 'git help',
+            'git http-backend', 'git http-fetch', 'git http-push',
+            'git imap-send', 'git index-pack', 'git init', 'git init-db',
+            'git instaweb', 'git log', 'git lost-found', 'git ls-files',
+            'git ls-remote', 'git ls-tree', 'git mailinfo', 'git mailsplit',
+            'git merge', 'git merge-base', 'git merge-file', 'git merge-index',
+            'git merge-octopus', 'git merge-one-file', 'git merge-ours',
+            'git merge-recursive', 'git merge-resolve', 'git merge-subtree',
+            'git mergetool', 'git merge-tree', 'git mktag', 'git mktree',
+            'git mv', 'git name-rev', 'git notes', 'git pack-objects',
+            'git pack-redundant', 'git pack-refs', 'git patch-id',
+            'git peek-remote', 'git prune', 'git prune-packed', 'git pull',
+            'git push', 'git quiltimport', 'git read-tree', 'git rebase',
+            'git rebase--interactive', 'git receive-pack', 'git reflog',
+            'git relink', 'git remote', 'git remote-ftp', 'git remote-ftps',
+            'git remote-http', 'git remote-https', 'git remote-testgit',
+            'git repack', 'git replace', 'git repo-config', 'git request-pull',
+            'git rerere', 'git reset', 'git revert', 'git rev-list',
+            'git rev-parse', 'git rm', 'git send-pack', 'git shell',
+            'git shortlog', 'git show', 'git show-branch', 'git show-index',
+            'git show-ref', 'git stage', 'git stash', 'git status',
+            'git stripspace', 'git submodule', 'git symbolic-ref', 'git tag',
+            'git tar-tree', 'git unpack-file', 'git unpack-objects',
+            'git update-index', 'git update-ref', 'git update-server-info',
+            'git upload-archive', 'git upload-pack', 'git var',
+            'git verify-pack', 'git verify-tag', 'git web--browse',
+            'git whatchanged', 'git write-tree',
+
+            'gitaction', 'git-add', 'git-add--interactive', 'git-am',
             'git-annotate', 'git-apply', 'git-archive', 'git-bisect',
             'git-bisect--helper', 'git-blame', 'git-branch', 'git-bundle',
             'git-cat-file', 'git-check-attr', 'git-checkout',
@@ -166,6 +251,9 @@ $language_data = array (
 
             'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install',
 
+            'ip', 'ip addr', 'ip addrlabel', 'ip link', 'ip maddr', 'ip mroute',
+            'ip neigh', 'ip route', 'ip rule', 'ip tunnel', 'ip xfrm',
+
             'join',
 
             'kbd_mode','kbdrate', 'kdialog', 'kfile', 'kill', 'killall',
@@ -200,6 +288,20 @@ $language_data = array (
             'svnadmin', 'svndumpfilter', 'svnlook', 'svnmerge', 'svnmucc',
             'svnserve', 'svnshell', 'svnsync', 'svnversion', 'svnwrap', 'sync',
 
+            'svn add', 'svn ann', 'svn annotate', 'svn blame', 'svn cat',
+            'svn changelist', 'svn checkout', 'svn ci', 'svn cl', 'svn cleanup',
+            'svn co', 'svn commit', 'svn copy', 'svn cp', 'svn del',
+            'svn delete', 'svn di', 'svn diff', 'svn export', 'svn h',
+            'svn help', 'svn import', 'svn info', 'svn list', 'svn lock',
+            'svn log', 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir',
+            'svn move', 'svn mv', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit',
+            'svn pg', 'svn pget', 'svn pl', 'svn plist', 'svn praise',
+            'svn propdel', 'svn propedit', 'svn propget', 'svn proplist',
+            'svn propset', 'svn ps', 'svn pset', 'svn remove', 'svn ren',
+            'svn rename', 'svn resolve', 'svn resolved', 'svn revert', 'svn rm',
+            'svn st', 'svn stat', 'svn status', 'svn sw', 'svn switch',
+            'svn unlock', 'svn up', 'svn update',
+
             'tac', 'tail', 'tar', 'tee', 'tempfile', 'touch', 'tr', 'tree',
             'true',
 
@@ -216,7 +318,14 @@ $language_data = array (
 
             'xargs', 'xhost', 'xmodmap', 'xset',
 
-            'yacc', 'yes', 'ypdomainname',
+            'yacc', 'yes', 'ypdomainname', 'yum',
+
+            'yum check-update', 'yum clean', 'yum deplist', 'yum erase',
+            'yum groupinfo', 'yum groupinstall', 'yum grouplist',
+            'yum groupremove', 'yum groupupdate', 'yum info', 'yum install',
+            'yum list', 'yum localinstall', 'yum localupdate', 'yum makecache',
+            'yum provides', 'yum remove', 'yum resolvedep', 'yum search',
+            'yum shell', 'yum update', 'yum upgrade', 'yum whatprovides',
 
             'zcat', 'zcmp', 'zdiff', 'zdump', 'zegrep', 'zfgrep', 'zforce',
             'zgrep', 'zip', 'zipgrep', 'zipinfo', 'zless', 'zmore', 'znew',
@@ -252,7 +361,8 @@ $language_data = array (
             0 => 'color: #666666; font-style: italic;',
             1 => 'color: #800000;',
             2 => 'color: #cc0000; font-style: italic;',
-            3 => 'color: #000000; font-weight: bold;'
+            3 => 'color: #000000; font-weight: bold;',
+            4 => 'color: #666666;'
             ),
         'ESCAPE_CHAR' => array(
             1 => 'color: #000099; font-weight: bold;',
@@ -318,10 +428,13 @@ $language_data = array (
             'DISALLOWED_BEFORE' => '$'
         ),
         'KEYWORDS' => array(
-            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
-            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%=\\/])"
+            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#:])",
+            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%=\\/:])",
+            2 => array(
+                'SPACE_AS_WHITESPACE' => false
+                )
+            )
         )
-    )
 );
 
 ?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/basic4gl.php b/wp-content/plugins/wp-syntax/geshi/geshi/basic4gl.php
index ee25ca78b3940340735898a8b2b4ba50dcd1c169..35c927406de0339c18d36742444c337883c3ff24 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/basic4gl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/basic4gl.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
  * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/09/15
  *
  * Basic4GL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/bf.php b/wp-content/plugins/wp-syntax/geshi/geshi/bf.php
index dd831216ce445577a863b1621f301f89385da1ce..c06ca5bf68bceec2cef01589a5b43b98de9bd58c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/bf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/bf.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/31
  *
  * Brainfuck language file for GeSHi.
@@ -63,7 +63,7 @@ $language_data = array (
             1 => 'color: #666666; font-style: italic;'
             ),
         'BRACKETS' => array(
-            0 => 'color: #66cc66;'
+            0 => 'color: #660000;'
             ),
         'STRINGS' => array(
             0 => 'color: #ff0000;'
@@ -76,8 +76,8 @@ $language_data = array (
             0 => 'color: #006600;',
             1 => 'color: #660000;',
             2 => 'color: #000066;',
-            3 => 'color: #660066;',
-            4 => 'color: #666600;'
+            3 => 'color: #666600;',
+            4 => 'color: #660066;'
             ),
         'ESCAPE_CHAR' => array(
             ),
@@ -102,8 +102,9 @@ $language_data = array (
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
             'STRINGS' => GESHI_NEVER,
-            'NUMBERS' => GESHI_NEVER
-            ),
+            'NUMBERS' => GESHI_NEVER,
+            'BRACKETS' => GESHI_NEVER
+        ),
         'KEYWORDS' => array(
             'DISALLOW_BEFORE' => '',
             'DISALLOW_AFTER' => ''
@@ -111,4 +112,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/bibtex.php b/wp-content/plugins/wp-syntax/geshi/geshi/bibtex.php
index 9a6af63b5168fa871298888e57d5328622a64120..51cb4cebdc530d6e7267eda9f5ed19cc33e8a814 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/bibtex.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/bibtex.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Quinn Taylor (quinntaylor@mac.com)
  * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/04/29
  *
  * BibTeX language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/blitzbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/blitzbasic.php
index e431d3af09d754632e0f8df6418d65da2f65cde2..1d3c08d05e8d44d362173cd338ef31e533656927 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/blitzbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/blitzbasic.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: P�draig O`Connel (info@moonsword.info)
  * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 16.10.2005
  *
  * BlitzBasic language file for GeSHi.
@@ -56,7 +56,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         1 => array(
-            'If','EndIf','ElseIf','Else If','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select',
+            'If','EndIf','ElseIf','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select',
             'Type','Forever','For','Or','And','AppTitle','Case','Goto','Gosub','Step','Stop','Int','Last','False','Then','To','True','Until','Float',
             'String','Before','Not'
             ),
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/bnf.php b/wp-content/plugins/wp-syntax/geshi/geshi/bnf.php
index 13341f75663d69767b612f30c8116f2e99c3731e..ca15cf9ebe35d2dce68dbdcb617f0900cbc0ec7d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/bnf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/bnf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
  * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/09/28
  *
  * BNF (Backus-Naur form) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/boo.php b/wp-content/plugins/wp-syntax/geshi/geshi/boo.php
index 37c63048f45bb8b19caf666a6e4080d1af8bc89c..b68d442f7bed6935a96f279089ee2c107f5b4b97 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/boo.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/boo.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
  * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/09/10
  *
  * Boo language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/c.php b/wp-content/plugins/wp-syntax/geshi/geshi/c.php
index 1cdc24f17974f35d61fd1fa93cf704be9304e027..35d5b019d6a8c94cdd99f56559c8b321e70b9742 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/c.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/c.php
@@ -7,7 +7,7 @@
  *  - Jack Lloyd (lloyd@randombit.net)
  *  - Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * C language file for GeSHi.
@@ -92,7 +92,85 @@ $language_data = array (
             'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
             ),
         3 => array(
-            'printf', 'cout'
+            // assert.h
+            'assert',
+
+            //complex.h
+            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
+            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
+            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
+
+            //ctype.h
+            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
+            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
+            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
+
+            //inttypes.h
+            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
+            'wcstoumax',
+
+            //locale.h
+            'localeconv', 'setlocale',
+
+            //math.h
+            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
+            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
+            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
+
+            //setjmp.h
+            'longjmp', 'setjmp',
+
+            //signal.h
+            'raise',
+
+            //stdarg.h
+            'va_arg', 'va_copy', 'va_end', 'va_start',
+
+            //stddef.h
+            'offsetof',
+
+            //stdio.h
+            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
+            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
+            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
+            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
+            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
+            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
+            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
+            'vsprintf', 'vsscanf',
+
+            //stdlib.h
+            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
+            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
+            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
+            'strtol', 'strtoul', 'system',
+
+            //string.h
+            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
+            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
+            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
+            'strspn', 'strstr', 'strtok', 'strxfrm',
+
+            //time.h
+            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
+            'mktime', 'strftime', 'time',
+
+            //wchar.h
+            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
+            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
+            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
+            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
+            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
+            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
+            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
+            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
+            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
+
+            //wctype.h
+            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
+            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
+            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
+            'wctrans', 'wctype'
             ),
         4 => array(
             'auto', 'char', 'const', 'double',  'float', 'int', 'long',
@@ -111,7 +189,8 @@ $language_data = array (
             'int8_t', 'int16_t', 'int32_t', 'int64_t',
             'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
 
-            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
+            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t',
+            'size_t', 'off_t'
             ),
         ),
     'SYMBOLS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/c_loadrunner.php b/wp-content/plugins/wp-syntax/geshi/geshi/c_loadrunner.php
new file mode 100644
index 0000000000000000000000000000000000000000..42b3d77211d4c5d5ec30794c026dba4180e7bea8
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/c_loadrunner.php
@@ -0,0 +1,323 @@
+<?php
+/*************************************************************************************
+ * c_loadrunner.php
+ * ---------------------------------
+ * Author: Stuart Moncrieff (stuart at myloadtest dot com)
+ * Copyright: (c) 2010 Stuart Moncrieff (http://www.myloadtest.com/loadrunner-syntax-highlighter/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010-07-25
+ *
+ * C (for LoadRunner) language file for GeSHi.
+ *
+ * Based on LoadRunner 9.52.
+ *
+ * CHANGES
+ * -------
+ * 2010-08-01 (1.0.8.9)
+ *  -  Added highlighting support for LoadRunner {parameters}.
+ * 2010-07-25 (1.0.8.8)
+ *  -  First Release. Syntax highlighting support for lr_, web_, and sapgui_ functions only.
+ *
+ * TODO (updated 2010-07-25)
+ * -------------------------
+ *  - Add support for other vuser types: MMS, FTP, etc.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * ************************************************************************************/
+
+$language_data = array (
+    // The First Indices
+    'LANG_NAME' => 'C (LoadRunner)',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    // Escape characters within strings (like \\) are not highlighted differently in LoadRunner, so
+    // I am using GeSHi escape characters (or regular expressions) to highlight LoadRunner {parameters}.
+    // LoadRunner {parameters} must begin with a letter and contain only alphanumeric characters and '_'
+    'ESCAPE_REGEXP' => array(
+        0 => "#\{[a-zA-Z]{1}[a-zA-Z_]{0,}\}#",
+    ),
+
+    // Keywords
+    'KEYWORDS' => array(
+        // Keywords from http://en.wikipedia.org/wiki/C_syntax
+        1 => array(
+            'auto', 'break', 'case', 'char', 'const', 'continue', 'default',
+            'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto',
+            'if', 'inline', 'int', 'long', 'register', 'restrict', 'return',
+            'short', 'signed', 'sizeof', 'static', 'struct', 'switch',
+            'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
+            '_Bool', '_Complex', '_Imaginary'
+            ),
+        // C preprocessor directives from http://en.wikipedia.org/wiki/C_preprocessor
+        2 => array(
+            '#define', '#if', '#ifdef', '#ifndef', '#include', '#else', '#elif', '#endif', '#pragma', '#undef'
+            ),
+        // Functions from lrun.h
+        3 => array(
+            'lr_start_transaction', 'lr_start_sub_transaction', 'lr_start_transaction_instance', 'lr_end_transaction',
+            'lr_end_sub_transaction', 'lr_end_transaction_instance', 'lr_stop_transaction', 'lr_stop_transaction_instance',
+            'lr_resume_transaction', 'lr_resume_transaction_instance', 'lr_wasted_time', 'lr_set_transaction', 'lr_user_data_point',
+            'lr_user_data_point_instance', 'lr_user_data_point_ex', 'lr_user_data_point_instance_ex', 'lr_get_transaction_duration',
+            'lr_get_trans_instance_duration', 'lr_get_transaction_think_time', 'lr_get_trans_instance_think_time',
+            'lr_get_transaction_wasted_time', 'lr_get_trans_instance_wasted_time', 'lr_get_transaction_status',
+            'lr_get_trans_instance_status', 'lr_set_transaction_status', 'lr_set_transaction_status_by_name',
+            'lr_set_transaction_instance_status', 'lr_start_timer', 'lr_end_timer', 'lr_rendezvous', 'lr_rendezvous_ex',
+            'lr_get_vuser_ip', 'lr_whoami', 'lr_get_host_name', 'lr_get_master_host_name', 'lr_get_attrib_long',
+            'lr_get_attrib_string', 'lr_get_attrib_double', 'lr_paramarr_idx', 'lr_paramarr_random', 'lr_paramarr_len',
+            'lr_param_unique', 'lr_param_sprintf', 'lr_load_dll', 'lr_continue_on_error', 'lr_decrypt', 'lr_abort', 'lr_exit',
+            'lr_peek_events', 'lr_think_time', 'lr_debug_message', 'lr_log_message', 'lr_message', 'lr_error_message',
+            'lr_output_message', 'lr_vuser_status_message', 'lr_fail_trans_with_error', 'lr_next_row', 'lr_advance_param',
+            'lr_eval_string', 'lr_eval_string_ext', 'lr_eval_string_ext_free', 'lr_param_increment', 'lr_save_var',
+            'lr_save_string', 'lr_save_int', 'lr_save_datetime', 'lr_save_searched_string', 'lr_set_debug_message',
+            'lr_get_debug_message', 'lr_enable_ip_spoofing', 'lr_disable_ip_spoofing', 'lr_convert_string_encoding'
+            ),
+        // Constants from lrun.h
+        4 => array(
+            'DP_FLAGS_NO_LOG', 'DP_FLAGS_STANDARD_LOG', 'DP_FLAGS_EXTENDED_LOG', 'merc_timer_handle_t', 'LR_EXIT_VUSER',
+            'LR_EXIT_ACTION_AND_CONTINUE', 'LR_EXIT_ITERATION_AND_CONTINUE', 'LR_EXIT_VUSER_AFTER_ITERATION',
+            'LR_EXIT_VUSER_AFTER_ACTION', 'LR_EXIT_MAIN_ITERATION_AND_CONTINUE', 'LR_MSG_CLASS_DISABLE_LOG',
+            'LR_MSG_CLASS_STANDARD_LOG', 'LR_MSG_CLASS_RETURNED_DATA', 'LR_MSG_CLASS_PARAMETERS', 'LR_MSG_CLASS_ADVANCED_TRACE',
+            'LR_MSG_CLASS_EXTENDED_LOG', 'LR_MSG_CLASS_SENT_DATA', 'LR_MSG_CLASS_JIT_LOG_ON_ERROR', 'LR_SWITCH_OFF', 'LR_SWITCH_ON',
+            'LR_SWITCH_DEFAULT', 'ONE_DAY', 'ONE_HOUR', 'ONE_MIN', 'DATE_NOW', 'TIME_NOW', 'LR_MSG_CLASS_BRIEF_LOG',
+            'LR_MSG_CLASS_RESULT_DATA', 'LR_MSG_CLASS_FULL_TRACE', 'LR_MSG_CLASS_AUTO_LOG', 'LR_MSG_OFF', 'LR_MSG_ON',
+            'LR_MSG_DEFAULT'
+            ),
+        // Functions from web_api.h
+        5 => array(
+            'web_reg_add_cookie', 'web_report_data_point', 'web_text_link', 'web_element', 'web_image_link', 'web_static_image',
+            'web_image_submit', 'web_button', 'web_edit_field', 'web_radio_group', 'web_check_box', 'web_list', 'web_text_area',
+            'web_map_area', 'web_eval_java_script', 'web_reg_dialog', 'web_reg_cross_step_download', 'web_browser',
+            'web_set_rts_key', 'web_save_param_length', 'web_save_timestamp_param', 'web_load_cache', 'web_dump_cache',
+            'web_add_cookie_ex'
+            ),
+        // Constants from web_api.h
+        6 => array(
+            'DESCRIPTION', 'ACTION', 'VERIFICATION', 'LR_NOT_FOUND', 'HTTP_INFO_TOTAL_REQUEST_STAT',
+            'HTTP_INFO_TOTAL_RESPONSE_STAT', 'LRW_OPT_STOP_VUSER_ON_ERROR', 'LRW_OPT_DISPLAY_IMAGE_BODY'
+            ),
+        // Functions from as_web.h
+        7 => array(
+            'web_add_filter', 'web_add_auto_filter', 'web_add_auto_header', 'web_add_header', 'web_add_cookie',
+            'web_cleanup_auto_headers', 'web_cleanup_cookies', 'web_concurrent_end', 'web_concurrent_start', 'web_create_html_param',
+            'web_create_html_param_ex', 'web_custom_request', 'web_disable_keep_alive', 'web_enable_keep_alive', 'web_find',
+            'web_get_int_property', 'web_image', 'web_image_check', 'web_link', 'web_global_verification', 'web_reg_find',
+            'web_reg_save_param', 'web_convert_param', 'web_remove_auto_filter', 'web_remove_auto_header', 'web_revert_auto_header',
+            'web_remove_cookie', 'web_save_header', 'web_set_certificate', 'web_set_certificate_ex', 'web_set_connections_limit',
+            'web_set_max_html_param_len', 'web_set_max_retries', 'web_set_proxy', 'web_set_proxy_bypass', 'web_set_secure_proxy',
+            'web_set_sockets_option', 'web_set_option', 'web_set_timeout', 'web_set_user', 'web_sjis_to_euc_param',
+            'web_submit_data', 'web_submit_form', 'web_url', 'web_set_proxy_bypass_local', 'web_cache_cleanup',
+            'web_create_html_query', 'web_create_radio_button_param', 'web_switch_net_layer'
+            ),
+        // Constants from as_web.h
+        8 => array(
+            'ENDFORM', 'LAST', 'ENDITEM', 'EXTRARES', 'ITEMDATA', 'STARTHIDDENS', 'ENDHIDDENS', 'CONNECT', 'RECEIVE', 'RESOLVE',
+            'STEP', 'REQUEST', 'RESPONSE', 'STARTQUERY', 'ENDQUERY', 'INPROPS', 'OUTPROPS', 'ENDPROPS', 'RAW_BODY_START',
+            'RAW_BODY_END', 'HTTP_INFO_RETURN_CODE', 'HTTP_INFO_DOWNLOAD_SIZE', 'HTTP_INFO_DOWNLOAD_TIME',
+            'LRW_NET_SOCKET_OPT_LOAD_VERIFY_FILE', 'LRW_NET_SOCKET_OPT_DEFAULT_VERIFY_PATH', 'LRW_NET_SOCKET_OPT_SSL_VERSION',
+            'LRW_NET_SOCKET_OPT_SSL_CIPHER_LIST', 'LRW_NET_SOCKET_OPT_SO_REUSE_ADDRESS', 'LRW_NET_SOCKET_OPT_USER_IP_ADDRESS',
+            'LRW_NET_SOCKET_OPT_IP_ADDRESS_BY_INDEX', 'LRW_NET_SOCKET_OPT_HELP', 'LRW_NET_SOCKET_OPT_PRINT_USER_IP_ADDRESS_LIST',
+            'LRW_OPT_HTML_CHAR_REF_BACKWARD_COMPATIBILITY', 'LRW_OPT_VALUE_YES', 'LRW_OPT_VALUE_NO'
+            ),
+        // Functions from as_sapgui.h
+        9 => array(
+            'sapgui_open_connection', 'sapgui_open_connection_ex', 'sapgui_logon', 'sapgui_create_session',
+            'sapgui_create_new_session', 'sapgui_call_method', 'sapgui_call_method_ex', 'sapgui_set_property',
+            'sapgui_get_property', 'sapgui_set_collection_property', 'sapgui_active_object_from_parent_method',
+            'sapgui_active_object_from_parent_property', 'sapgui_call_method_of_active_object',
+            'sapgui_call_method_of_active_object_ex', 'sapgui_set_property_of_active_object', 'sapgui_get_property_of_active_object',
+            'sapgui_select_active_connection', 'sapgui_select_active_session', 'sapgui_select_active_window ',
+            'sapgui_status_bar_get_text', 'sapgui_status_bar_get_param', 'sapgui_status_bar_get_type', 'sapgui_get_status_bar_text',
+            'sapgui_get_active_window_title', 'sapgui_is_object_available', 'sapgui_is_tab_selected', 'sapgui_is_object_changeable',
+            'sapgui_set_ok_code', 'sapgui_send_vkey', 'sapgui_resize_window', 'sapgui_window_resize', 'sapgui_window_maximize',
+            'sapgui_window_close', 'sapgui_window_restore', 'sapgui_window_scroll_to_row', 'sapgui_press_button',
+            'sapgui_select_radio_button', 'sapgui_set_password', 'sapgui_set_text', 'sapgui_select_menu', 'sapgui_select_tab',
+            'sapgui_set_checkbox', 'sapgui_set_focus', 'sapgui_select_combobox_entry', 'sapgui_get_ok_code',
+            'sapgui_is_radio_button_selected', 'sapgui_get_text', 'sapgui_is_checkbox_selected', 'sapgui_table_set_focus',
+            'sapgui_table_press_button', 'sapgui_table_select_radio_button', 'sapgui_table_set_password', 'sapgui_table_set_text',
+            'sapgui_table_set_checkbox', 'sapgui_table_select_combobox_entry', 'sapgui_table_set_row_selected',
+            'sapgui_table_set_column_selected', 'sapgui_table_set_column_width', 'sapgui_table_reorder', 'sapgui_table_fill_data',
+            'sapgui_table_get_text', 'sapgui_table_is_radio_button_selected', 'sapgui_table_is_checkbox_selected',
+            'sapgui_table_is_row_selected', 'sapgui_table_is_column_selected', 'sapgui_table_get_column_width',
+            'sapgui_grid_clear_selection', 'sapgui_grid_select_all', 'sapgui_grid_selection_changed',
+            'sapgui_grid_press_column_header', 'sapgui_grid_select_cell', 'sapgui_grid_select_rows', 'sapgui_grid_select_column',
+            'sapgui_grid_deselect_column', 'sapgui_grid_select_columns', 'sapgui_grid_select_cells', 'sapgui_grid_select_cell_row',
+            'sapgui_grid_select_cell_column', 'sapgui_grid_set_column_order', 'sapgui_grid_set_column_width',
+            'sapgui_grid_scroll_to_row', 'sapgui_grid_double_click', 'sapgui_grid_click', 'sapgui_grid_press_button',
+            'sapgui_grid_press_total_row', 'sapgui_grid_set_cell_data', 'sapgui_grid_set_checkbox',
+            'sapgui_grid_double_click_current_cell', 'sapgui_grid_click_current_cell', 'sapgui_grid_press_button_current_cell',
+            'sapgui_grid_press_total_row_current_cell', 'sapgui_grid_press_F1', 'sapgui_grid_press_F4', 'sapgui_grid_press_ENTER',
+            'sapgui_grid_press_toolbar_button', 'sapgui_grid_press_toolbar_context_button', 'sapgui_grid_open_context_menu',
+            'sapgui_grid_select_context_menu', 'sapgui_grid_select_toolbar_menu', 'sapgui_grid_fill_data',
+            'sapgui_grid_get_current_cell_row', 'sapgui_grid_get_current_cell_column', 'sapgui_grid_get_rows_count',
+            'sapgui_grid_get_columns_count', 'sapgui_grid_get_cell_data', 'sapgui_grid_is_checkbox_selected',
+            'sapgui_tree_scroll_to_node', 'sapgui_tree_set_hierarchy_header_width', 'sapgui_tree_set_selected_node',
+            'sapgui_tree_double_click_node', 'sapgui_tree_press_key', 'sapgui_tree_press_button', 'sapgui_tree_set_checkbox',
+            'sapgui_tree_double_click_item', 'sapgui_tree_click_link', 'sapgui_tree_open_default_context_menu',
+            'sapgui_tree_open_node_context_menu', 'sapgui_tree_open_header_context_menu', 'sapgui_tree_open_item_context_menu',
+            'sapgui_tree_select_context_menu', 'sapgui_tree_select_item', 'sapgui_tree_select_node', 'sapgui_tree_unselect_node',
+            'sapgui_tree_unselect_all', 'sapgui_tree_select_column', 'sapgui_tree_unselect_column', 'sapgui_tree_set_column_order',
+            'sapgui_tree_collapse_node', 'sapgui_tree_expand_node', 'sapgui_tree_scroll_to_item', 'sapgui_tree_set_column_width',
+            'sapgui_tree_press_header', 'sapgui_tree_is_checkbox_selected', 'sapgui_tree_get_node_text', 'sapgui_tree_get_item_text',
+            'sapgui_calendar_scroll_to_date', 'sapgui_calendar_focus_date', 'sapgui_calendar_select_interval',
+            'sapgui_apogrid_select_all', 'sapgui_apogrid_clear_selection', 'sapgui_apogrid_select_cell',
+            'sapgui_apogrid_deselect_cell', 'sapgui_apogrid_select_row', 'sapgui_apogrid_deselect_row',
+            'sapgui_apogrid_select_column', 'sapgui_apogrid_deselect_column', 'sapgui_apogrid_scroll_to_row',
+            'sapgui_apogrid_scroll_to_column', 'sapgui_apogrid_double_click', 'sapgui_apogrid_set_cell_data',
+            'sapgui_apogrid_get_cell_data', 'sapgui_apogrid_is_cell_changeable', 'sapgui_apogrid_get_cell_format',
+            'sapgui_apogrid_get_cell_tooltip', 'sapgui_apogrid_press_ENTER', 'sapgui_apogrid_open_cell_context_menu',
+            'sapgui_apogrid_select_context_menu_item', 'sapgui_text_edit_scroll_to_line', 'sapgui_text_edit_set_selection_indexes',
+            'sapgui_text_edit_set_unprotected_text_part', 'sapgui_text_edit_get_first_visible_line',
+            'sapgui_text_edit_get_selection_index_start', 'sapgui_text_edit_get_selection_index_end',
+            'sapgui_text_edit_get_number_of_unprotected_text_parts', 'sapgui_text_edit_double_click',
+            'sapgui_text_edit_single_file_dropped', 'sapgui_text_edit_multiple_files_dropped', 'sapgui_text_edit_press_F1',
+            'sapgui_text_edit_press_F4', 'sapgui_text_edit_open_context_menu', 'sapgui_text_edit_select_context_menu',
+            'sapgui_text_edit_modified_status_changed', 'sapgui_htmlviewer_send_event', 'sapgui_htmlviewer_dom_get_property',
+            'sapgui_toolbar_press_button', 'sapgui_toolbar_press_context_button', 'sapgui_toolbar_select_menu_item',
+            'sapgui_toolbar_select_menu_item_by_text', 'sapgui_toolbar_select_context_menu_item',
+            'sapgui_toolbar_select_context_menu_item_by_text'
+            ),
+        // Constants from as_sapgui.h
+        10 => array(
+            'BEGIN_OPTIONAL', 'END_OPTIONAL', 'al-keys', 'ENTER', 'HELP', 'F2', 'BACK', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9',
+            'F10', 'F11', 'ESC', 'SHIFT_F1', 'SHIFT_F2', 'SHIFT_F3', 'SHIFT_F4', 'SHIFT_F5', 'SHIFT_F6', 'SHIFT_F7', 'SHIFT_F8',
+            'SHIFT_F9', 'SHIFT_F10', 'SHIFT_F11', 'SHIFT_F12', 'CTRL_F1', 'CTRL_F2', 'CTRL_F3', 'CTRL_F4', 'CTRL_F5', 'CTRL_F6',
+            'CTRL_F7', 'CTRL_F8', 'CTRL_F9', 'CTRL_F10', 'CTRL_F11', 'CTRL_F12', 'CTRL_SHIFT_F1', 'CTRL_SHIFT_F2', 'CTRL_SHIFT_F3',
+            'CTRL_SHIFT_F4', 'CTRL_SHIFT_F5', 'CTRL_SHIFT_F6', 'CTRL_SHIFT_F7', 'CTRL_SHIFT_F8', 'CTRL_SHIFT_F9', 'CTRL_SHIFT_F10',
+            'CTRL_SHIFT_F11', 'CTRL_SHIFT_F12', 'CANCEL', 'CTRL_F', 'CTRL_PAGE_UP', 'PAGE_UP', 'PAGE_DOWN', 'CTRL_PAGE_DOWN',
+            'CTRL_G', 'CTRL_P'
+            ),
+        ),
+
+    // Symbols and Case Sensitivity
+    // Symbols from: http://en.wikipedia.org/wiki/C_syntax
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', '[', ']',
+        '+', '-', '*', '/', '%',
+        '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true, // Standard C reserved keywords
+        2 => true, // C preprocessor directives
+        3 => true, // Functions from lrun.h
+        4 => true, // Constants from lrun.h
+        5 => true, // Functions from web_api.h
+        6 => true, // Constants from web_api.h
+        7 => true, // Functions from as_web.h
+        8 => true, // Constants from as_web.h
+        9 => true, // Functions from as_sapgui.h
+        10 => true, // Constants from as_sapgui.h
+        ),
+
+    // Styles
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            // Functions are brown, constants and reserved words are blue
+            1 => 'color: #0000ff;', // Standard C reserved keywords
+            2 => 'color: #0000ff;', // C preprocessor directives
+            3 => 'color: #8a0000;', // Functions from lrun.h
+            4 => 'color: #0000ff;', // Constants from lrun.h
+            5 => 'color: #8a0000;', // Functions from web_api.h
+            6 => 'color: #0000ff;', // Constants from web_api.h
+            7 => 'color: #8a0000;', // Functions from as_web.h
+            8 => 'color: #0000ff;', // Constants from as_web.h
+            9 => 'color: #8a0000;', // Functions from as_sapgui.h
+            10 => 'color: #0000ff;', // Constants from as_sapgui.h
+            ),
+        'COMMENTS' => array(
+            // Comments are grey
+            1 => 'color: #9b9b9b;',
+            'MULTI' => 'color: #9b9b9b;'
+            ),
+        'ESCAPE_CHAR' => array(
+            // GeSHi cannot define a separate style for ESCAPE_REGEXP. The style for ESCAPE_CHAR also applies to ESCAPE_REGEXP.
+            // This is used for LoadRunner {parameters}
+            // {parameters} are pink
+            0 => 'color: #c000c0;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            // Strings are green
+            0 => 'color: #008080;'
+            ),
+        'NUMBERS' => array(
+            // Numbers are green
+            0 => 'color: #008080;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #008080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #008080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #008080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#008080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#008080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#008080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#008080;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #000000;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+
+    // URLs for Functions
+    'URLS' => array(
+        1 => '', // Standard C reserved keywords
+        2 => '', // C preprocessor directives
+        3 => '', // Functions from lrun.h
+        4 => '', // Constants from lrun.h
+        5 => '', // Functions from web_api.h
+        6 => '', // Constants from web_api.h
+        7 => '', // Functions from as_web.h
+        8 => '', // Constants from as_web.h
+        9 => '', // Functions from as_sapgui.h
+        10 => '', // Constants from as_sapgui.h
+        ),
+
+    // Object Orientation
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+
+    // Regular Expressions
+    // Note that REGEXPS are not applied within strings.
+    'REGEXPS' => array(
+        ),
+
+    // Contextual Highlighting and Strict Mode
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+
+    // Tabs
+    // Note that if you are using <pre> tags for your code, then the browser chooses how many spaces your tabs will translate to.
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/c_mac.php b/wp-content/plugins/wp-syntax/geshi/geshi/c_mac.php
index 3e735190b24646377f483c27e13e88118255ec96..41c21ce5434252987cd2769479d5c26a8c043d28 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/c_mac.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/c_mac.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * C for Macs language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/caddcl.php b/wp-content/plugins/wp-syntax/geshi/geshi/caddcl.php
index c09c84a754c5abc5ffcf0ab7749afc77e7ffa84c..8b8b2f248e930e6f60ddfd5d76e6eedd261882cd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/caddcl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/caddcl.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * CAD DCL (Dialog Control Language) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cadlisp.php b/wp-content/plugins/wp-syntax/geshi/geshi/cadlisp.php
index d56e5711055edb7d8cd0a9f198f853f1175ca2f8..3fa7ead0977d84a446f802715ed8fb3c2936d743 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cadlisp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cadlisp.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * AutoCAD/IntelliCAD Lisp language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cfdg.php b/wp-content/plugins/wp-syntax/geshi/geshi/cfdg.php
index 27ade0cf74bec4cdd976da9af2a8b8245264b2d8..e40963f060ab065e1cda89d6c5d7d45f3abe4ae0 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cfdg.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cfdg.php
@@ -4,7 +4,7 @@
  * --------
  * Author: John Horigan <john@glyphic.com>
  * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/03/11
  *
  * CFDG language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cfm.php b/wp-content/plugins/wp-syntax/geshi/geshi/cfm.php
index 80a7f72e77d6665b77d06dfd5885946572561603..2d165bd68bd5d17dc5dc391713ebbd94b9bd9478 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cfm.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cfm.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Diego
  * Copyright: (c) 2006 Diego
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/02/25
  *
  * ColdFusion language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/chaiscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/chaiscript.php
index a4dc43180b91a0276787a34780e88588e0edce16..f9d0a8681307237e16ed2ddc1023f29ecf2e664f 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/chaiscript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/chaiscript.php
@@ -6,7 +6,7 @@
  * Copyright: (c) 2010 Jason Turner (lefticus@gmail.com),
  *            (c) 2009 Jonathan Turner,
  *            (c) 2004 Ben Keen (ben.keen@gmail.com), Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/07/03
  *
  * ChaiScript language file for GeSHi.
@@ -52,7 +52,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'break', 'else', 'else if', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
+            'break', 'else', 'elseif', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
             ),
         2 => array(
             'def', 'false', 'fun', 'true', 'var', 'attr',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cil.php b/wp-content/plugins/wp-syntax/geshi/geshi/cil.php
index 58bd42bc249a118385b804fc1035d2ed1dd178b2..9872e755fc4dbc15ae9dd5bddbb11e8d8531c443 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cil.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cil.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
  * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/10/24
  *
  * CIL (Common Intermediate Language) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/clojure.php b/wp-content/plugins/wp-syntax/geshi/geshi/clojure.php
index 4494fb2b4f68622b93c69facc52e5100eea86a80..0ad4e4ad72df58a71c1b3b82b914251f5551f736 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/clojure.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/clojure.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jess Johnson (jess@grok-code.com)
  * Copyright: (c) 2009 Jess Johnson (http://grok-code.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/09/20
  *
  * Clojure language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cmake.php b/wp-content/plugins/wp-syntax/geshi/geshi/cmake.php
index 00143bf852816a06ad19540008db1e2dd3dd0055..67277aa9cdc61e404d80f56c79eaf4c144d74ab2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cmake.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cmake.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Daniel Nelson (danieln@eng.utah.edu)
  * Copyright: (c) 2009 Daniel Nelson
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/04/06
  *
  * CMake language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cobol.php b/wp-content/plugins/wp-syntax/geshi/geshi/cobol.php
index 9263370ae005321bdebecfaa761f12ff9e91a6fd..b07be48a135efd1e7066e4842a2fc02f870d287c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cobol.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cobol.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: BenBE (BenBE@omorphia.org)
  * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/07/02
  *
  * COBOL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/coffeescript.php b/wp-content/plugins/wp-syntax/geshi/geshi/coffeescript.php
new file mode 100644
index 0000000000000000000000000000000000000000..194aecd086c568b9aa25c29e684e9f349d321668
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/coffeescript.php
@@ -0,0 +1,146 @@
+<?php
+/*************************************************************************************
+ * coffeescript.php
+ * ----------
+ * Author: Trevor Burnham (trevorburnham@gmail.com)
+ * Copyright: (c) 2010 Trevor Burnham (http://iterative.ly)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/06/08
+ *
+ * CoffeeScript language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2010/06/08 (1.0.8.9)
+ *  -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'CoffeeScript',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array('###' => '###'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    //Longest quotemarks ALWAYS first
+    'QUOTEMARKS' => array('"""', "'''", '"', "'"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+
+        /*
+        ** Set 1: control keywords
+        */
+        1 => array(
+            'break', 'by', 'catch', 'continue', 'else', 'finally', 'for', 'in', 'of', 'if',
+            'return', 'switch', 'then', 'throw', 'try', 'unless', 'when', 'while', 'until'
+            ),
+
+        /*
+        ** Set 2: logic keywords
+        */
+        2 => array(
+            'and', 'or', 'is', 'isnt', 'not'
+            ),
+
+        /*
+        ** Set 3: other keywords
+        */
+        3 => array(
+            'instanceof', 'new', 'delete', 'typeof',
+            'class', 'super', 'this', 'extends'
+            ),
+
+        /*
+        ** Set 4: constants
+        */
+        4 => array(
+            'true', 'false', 'on', 'off', 'yes', 'no',
+            'Infinity', 'NaN', 'undefined', 'null'
+            )
+        ),
+    'SYMBOLS' => array(
+            '(', ')', '[', ']', '{', '}', '*', '&', '|', '%', '!', ',', ';', '<', '>', '?', '`',
+            '+', '-', '*', '/', '->', '=>', '<<', '>>', '@', ':', '^'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #ff7700;font-weight:bold;',
+            2 => 'color: #008000;',
+            3 => 'color: #dc143c;',
+            4 => 'color: #0000cd;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #483d8b;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff4500;'
+            ),
+        'METHODS' => array(
+            1 => 'color: black;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        0 => array(
+            '<script type="text/coffeescript">' => '</script>'
+            )
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cpp-qt.php b/wp-content/plugins/wp-syntax/geshi/geshi/cpp-qt.php
index 07f0cf28203534e2d58246d679a349c4bdbe0fa6..36626c90d4cb50066851d584280ba0b9934bc7c2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cpp-qt.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cpp-qt.php
@@ -4,10 +4,10 @@
  * -------
  * Author: Iulian M
  * Copyright: (c) 2006 Iulian M
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/09/27
  *
- * C++ (with QT extensions) language file for GeSHi.
+ * C++ (with Qt extensions) language file for GeSHi.
  *
  * CHANGES
  * -------
@@ -41,7 +41,7 @@
  ************************************************************************************/
 
 $language_data = array (
-    'LANG_NAME' => 'C++ (QT)',
+    'LANG_NAME' => 'C++ (Qt)',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
     'COMMENT_MULTI' => array('/*' => '*/'),
     'COMMENT_REGEXP' => array(
@@ -55,7 +55,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'ESCAPE_REGEXP' => array(
         //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+        1 => "#\\\\[abfnrtv\\\'\"?\n]#i",
         //Hexadecimal Char Specs
         2 => "#\\\\x[\da-fA-F]{2}#",
         //Hexadecimal Char Specs
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cpp.php b/wp-content/plugins/wp-syntax/geshi/geshi/cpp.php
index 48b77269872b1bd8bee81bb97a047f7e25c47ccf..42ab311cc534202e3e2d56a98d7630cb320b68da 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cpp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cpp.php
@@ -7,7 +7,7 @@
  *  - M. Uli Kusterer (witness.of.teachtext@gmx.net)
  *  - Jack Lloyd (lloyd@randombit.net)
  * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/09/27
  *
  * C++ language file for GeSHi.
@@ -63,7 +63,7 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'ESCAPE_REGEXP' => array(
         //Simple Single Char Escapes
-        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+        1 => "#\\\\[abfnrtv\\\'\"?\n]#i",
         //Hexadecimal Char Specs
         2 => "#\\\\x[\da-fA-F]{2}#",
         //Hexadecimal Char Specs
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/csharp.php b/wp-content/plugins/wp-syntax/geshi/geshi/csharp.php
index 1c7eea06d1858f4f21553af80d3a31586c3aa1e0..26024e91ab12ed89df7beaf35a3097c465f85db1 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/csharp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/csharp.php
@@ -5,13 +5,15 @@
  * Author: Alan Juden (alan@judenware.org)
  * Revised by: Michael Mol (mikemol@gmail.com)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * C# language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2012/06/18 (1.0.8.11)
+ *  -  Added missing keywords (Christian Stelzmann)
  * 2009/04/03 (1.0.8.6)
  *  -  Added missing keywords identified by Rosetta Code users.
  * 2008/05/25 (1.0.7.22)
@@ -60,14 +62,15 @@ $language_data = array (
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue',
+            'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue',
             'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
-            'finally', 'fixed', 'for', 'foreach', 'from', 'goto', 'if',
-            'implicit', 'in', 'internal', 'lock', 'namespace', 'null',
+            'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if',
+            'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null',
             'operator', 'out', 'override', 'params', 'partial', 'private',
-            'protected', 'public', 'readonly', 'ref', 'return', 'sealed',
-            'select', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
-            'try', 'unsafe', 'using', 'virtual', 'where', 'while', 'yield'
+            'protected', 'public', 'readonly', 'remove', 'ref', 'return', 'sealed',
+            'select', 'set', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
+            'try', 'unsafe', 'using', 'var', 'value', 'virtual', 'volatile', 'where',
+            'while', 'yield'
             ),
         2 => array(
             '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
@@ -78,7 +81,7 @@ $language_data = array (
             ),
         4 => array(
             'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
-            'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
+            'dynamic', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
             'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void'
             ),
         5 => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/css.php b/wp-content/plugins/wp-syntax/geshi/geshi/css.php
index 2cb3f34256ec412bf463967afa89b7d67168f0dd..d09bea7daa2c9611694505772cb3e3c131d9af3a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/css.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/css.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/18
  *
  * CSS language file for GeSHi.
@@ -58,12 +58,22 @@ $language_data = array (
         ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"', "'"),
-    'ESCAPE_CHAR' => '\\',
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        //1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\[\da-fA-F]{1,6}\s?#i",
+        //Unicode Char Specs
+        //3 => "#\\\\u[\da-fA-F]{1,8}#i",
+        ),
     'KEYWORDS' => array(
         1 => array(
             'aqua', 'azimuth', 'background-attachment', 'background-color',
             'background-image', 'background-position', 'background-repeat',
             'background', 'black', 'blue', 'border-bottom-color',
+            'border-radius', 'border-top-left-radius', 'border-top-right-radius',
+            'border-bottom-right-radius', 'border-bottom-left-radius',
             'border-bottom-style', 'border-bottom-width', 'border-left-color',
             'border-left-style', 'border-left-width', 'border-right',
             'border-right-color', 'border-right-style', 'border-right-width',
@@ -153,7 +163,10 @@ $language_data = array (
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            //1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #000099; font-weight: bold;'
+            //3 => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
             0 => 'color: #00AA00;'
@@ -204,7 +217,8 @@ $language_data = array (
     'TAB_WIDTH' => 4,
     'PARSER_CONTROL' => array(
         'KEYWORDS' => array(
-            'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])'
+            'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])',
+            'DISALLOWED_BEFORE' => '(?<![\-a-zA-Z0-9_\|%\\~&\.])'
         )
     )
 );
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/cuesheet.php b/wp-content/plugins/wp-syntax/geshi/geshi/cuesheet.php
index 2820b04782ef9413d0d63d8ae222650d90826943..ebaca955f584dd4789a47fce21f7cccc9a494576 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/cuesheet.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/cuesheet.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (benbe@geshi.org)
  * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/12/21
  *
  * Cuesheet language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/d.php b/wp-content/plugins/wp-syntax/geshi/geshi/d.php
index af0468ae9b0388167a631944fbe6953127d5b60f..7f3e9857a86825ad5cef98bcee0090c073605fed 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/d.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/d.php
@@ -3,14 +3,18 @@
  * d.php
  * -----
  * Author: Thomas Kuehne (thomas@kuehne.cn)
+ * Contributors:
+ *  - Jimmy Cao
  * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/04/22
  *
  * D language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2011/06/28 (0.0.3) (Jimmy Cao)
+ *  -  added D2 features
  * 2005/04/22 (0.0.2)
  *  -  added _d_* and sizeof/ptrdiff_t
  * 2005/04/20 (0.0.1)
@@ -45,7 +49,7 @@
 $language_data = array (
     'LANG_NAME' => 'D',
     'COMMENT_SINGLE' => array(2 => '///', 1 => '//'),
-    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_MULTI' => array('/*' => '*/', '/+' => '+/'),
     'COMMENT_REGEXP' => array(
         // doxygen comments
         3 => '#/\*\*(?![\*\/]).*\*/#sU',
@@ -126,63 +130,39 @@ $language_data = array (
         1 => array(
                 'break', 'case', 'continue', 'do', 'else',
                 'for', 'foreach', 'goto', 'if', 'return',
-                'switch', 'while'
+                'switch', 'while', 'foreach_reverse'
             ),
         2 => array(
                 'alias', 'asm', 'assert', 'body', 'cast',
                 'catch', 'default', 'delegate', 'delete',
                 'extern', 'false', 'finally', 'function',
-                'import', 'in', 'inout', 'interface',
-                'invariant', 'is', 'mixin', 'module', 'new',
+                'import', 'in', 'inout',
+                'invariant', 'is', 'lazy', 'mixin', 'module', 'new',
                 'null', 'out', 'pragma', 'ref', 'super', 'this',
-                'throw', 'true', 'try', 'typedef', 'typeid',
-                'typeof', 'union', 'with'
+                'throw', 'true', 'try', 'typeid',
+                'typeof', 'union', 'with', 'scope'
             ),
         3 => array(
-                'ArrayBoundsError', 'AssertError',
                 'ClassInfo', 'Error', 'Exception',
-                'Interface', 'ModuleInfo', 'Object',
-                'OutOfMemoryException', 'SwitchError',
-                'TypeInfo', '_d_arrayappend',
-                '_d_arrayappendb', '_d_arrayappendc',
-                '_d_arrayappendcb', '_d_arraycast',
-                '_d_arraycast_frombit', '_d_arraycat',
-                '_d_arraycatb', '_d_arraycatn',
-                '_d_arraycopy', '_d_arraycopybit',
-                '_d_arraysetbit', '_d_arraysetbit2',
-                '_d_arraysetlength', '_d_arraysetlengthb',
-                '_d_callfinalizer',
-                '_d_create_exception_object',
-                '_d_criticalenter', '_d_criticalexit',
-                '_d_delarray', '_d_delclass',
-                '_d_delinterface', '_d_delmemory',
-                '_d_dynamic_cast', '_d_exception',
-                '_d_exception_filter', '_d_framehandler',
-                '_d_interface_cast', '_d_interface_vtbl',
-                '_d_invariant', '_d_isbaseof',
-                '_d_isbaseof2', '_d_local_unwind',
-                '_d_monitorenter', '_d_monitorexit',
-                '_d_monitorrelease', '_d_monitor_epilog',
-                '_d_monitor_handler', '_d_monitor_prolog',
-                '_d_new', '_d_newarrayi', '_d_newbitarray',
-                '_d_newclass', '_d_obj_cmp', '_d_obj_eq',
-                '_d_OutOfMemory', '_d_switch_dstring',
-                '_d_switch_string', '_d_switch_ustring',
-                '_d_throw',
+                'Interface', 'Object', 'IMonitor',
+                'OffsetTypeInfo', 'Throwable',
+                'TypeInfo_Class', 'TypeInfo', '__traits',
+                '__EOF__', '__FILE__', '__LINE__',
             ),
         4 => array(
                 'abstract', 'align', 'auto', 'bit', 'bool',
-                'byte', 'cdouble', 'cent', 'cfloat', 'char',
-                'class', 'const', 'creal', 'dchar', 'debug',
+                'byte', 'cdouble', 'cfloat', 'char',
+                'class', 'const', 'creal', 'dchar', 'dstring', 'debug',
                 'deprecated', 'double', 'enum', 'export',
-                'final', 'float', 'idouble', 'ifloat', 'int',
-                'ireal', 'long', 'override', 'package',
-                'private', 'protected', 'ptrdiff_t',
-                'public', 'real', 'short', 'size_t',
-                'static', 'struct', 'synchronized',
+                'final', 'float', 'idouble', 'ifloat', 'immutable', 'int',
+                'interface', 'ireal', 'long', 'nothrow', 'override',
+                'package', 'private', 'protected', 'ptrdiff_t',
+                'public', 'real', 'short', 'shared', 'size_t',
+                'static', 'string', 'struct', 'synchronized',
                 'template', 'ubyte', 'ucent', 'uint',
                 'ulong', 'unittest', 'ushort', 'version',
-                'void', 'volatile', 'wchar'
+                'void', 'volatile', 'wchar', 'wstring',
+                '__gshared', '@disable', '@property', 'pure', 'safe'
             )
         ),
     'SYMBOLS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/dcl.php b/wp-content/plugins/wp-syntax/geshi/geshi/dcl.php
new file mode 100644
index 0000000000000000000000000000000000000000..db12a4c4eff61f6042cd7269686679e606d2c95a
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/dcl.php
@@ -0,0 +1,192 @@
+<?php
+/*************************************************************************************
+ * dcl.php
+ * --------
+ * Author: Petr Hendl (petr@hendl.cz)
+ * Copyright: (c) 2011 Petr Hendl http://hendl.cz/geshi/
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/02/17
+ *
+ * DCL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011-02-17 (1.0.8.11)
+ *   - First Release
+ *
+ * TODO
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'DCL',
+    'COMMENT_SINGLE' => array('$!', '!'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        2 => '/(?<=\$)\s*sql\s+.*?(?:quit|exit);?\s*?$/sim' // do not highlight inline sql
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'HARDESCAPE' => array(),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        1 => "/''[a-zA-Z\\-_]+'/"
+        ),
+    'KEYWORDS' => array(
+        1 => array( // commands
+            'ACCOUNTING', 'ALLOCATE', 'ANALYZE', 'APPEND', 'ASSIGN', 'ATTACH', 'BACKUP',
+            'CALL', 'CANCEL', 'CHECKSUM', 'CLOSE', 'CONNECT', 'CONTINUE', 'CONVERT',
+            'COPY', 'CREATE', 'DEALLOCATE', 'DEASSIGN', 'DEBUG', 'DECK',
+            'DECRYPT', 'DEFINE', 'DELETE', 'DEPOSIT', 'DIFFERENCES', 'DIRECTORY',
+            'DISABLE',  'AUTOSTART', 'DISCONNECT', 'DISMOUNT', 'DUMP', 'EDIT', 'ENABLE',
+            'ENCRYPT', 'ENDSUBROUTINE', 'EOD', 'EOJ', 'EXAMINE', 'EXCHANGE',
+            'EXIT', 'FONT', 'GOSUB', 'GOTO', 'HELP', 'IF', 'THEN', 'ELSE', 'ENDIF', 'INITIALIZE', 'INQUIRE',
+            'INSTALL', 'JAVA', 'JOB', 'LIBRARY', 'LICENSE', 'LINK', 'LOGIN', 'LOGOUT',
+            'MACRO', 'MAIL', 'MERGE', 'MESSAGE', 'MONITOR', 'MOUNT', 'NCS', 'ON', 'OPEN',
+            'PASSWORD', 'PATCH', 'PHONE', 'PIPE', 'PPPD', 'PRINT', 'PRODUCT', 'PURGE',
+            'READ', 'RECALL', 'RENAME', 'REPLY', 'REQUEST', 'RETURN', 'RMU', 'RUN', 'RUNOFF',
+            'SEARCH', 'SET', 'SET AUDIT', 'SET BOOTBLOCK', 'SET BROADCAST',
+            'SET CACHE', 'SET CARD_READER', 'SET CLUSTER', 'SET COMMAND', 'SET CONTROL',
+            'SET CPU', 'SET DAY', 'SET DEFAULT', 'SET DEVICE', 'SET DIRECTORY',
+            'SET DISPLAY', 'SET ENTRY', 'SET FILE', 'SET HOST', 'SET IMAGE', 'SET KEY',
+            'SET LOGINS', 'SET MAGTAPE', 'SET MESSAGE', 'SET NETWORK', 'SET ON', 'SET OUTPUT_RATE',
+            'SET PASSWORD', 'SET PREFERRED_PATH', 'SET PREFIX', 'SET PRINTER', 'SET PROCESS',
+            'SET PROMPT', 'SET PROTECTION', 'SET QUEUE', 'SET RESTART_VALUE',
+            'SET RIGHTS_LIST', 'SET RMS_DEFAULT', 'SET ROOT', 'SET SECURITY',
+            'SET SERVER ACME_SERVER', 'SET SERVER REGISTRY_SERVER', 'SET SERVER SECURITY_SERVER',
+            'SET SHADOW', 'SET SYMBOL', 'SET TERMINAL', 'SET TIME', 'SET VERIFY',
+            'SET VOLUME', 'SET WORKING_SET', 'SHOW', 'SHOW AUDIT',
+            'SHOW BROADCAST', 'SHOW CLUSTER', 'SHOW CPU', 'SHOW DEFAULT', 'SHOW DEVICES',
+            'SHOW DISPLAY', 'SHOW ENTRY', 'SHOW ERROR', 'SHOW FASTPATH', 'SHOW IMAGE',
+            'SHOW INTRUSION', 'SHOW KEY', 'SHOW LICENSE', 'SHOW LOGICAL', 'SHOW MEMORY',
+            'SHOW NETWORK', 'SHOW PRINTER', 'SHOW PROCESS', 'SHOW PROTECTION', 'SHOW QUEUE',
+            'SHOW QUOTA', 'SHOW RMS_DEFAULT', 'SHOW ROOT', 'SHOW SECURITY',
+            'SHOW SERVER ACME_SERVER', 'SHOW SERVER REGISTRY_SERVER', 'SHOW SHADOW',
+            'SHOW STATUS', 'SHOW SYMBOL', 'SHOW SYSTEM', 'SHOW TERMINAL', 'SHOW TIME',
+            'SHOW TRANSLATION', 'SHOW USERS', 'SHOW WORKING_SET', 'SHOW ZONE', 'SORT',
+            'SPAWN', 'START', 'STOP', 'SUBMIT', 'SUBROUTINE', 'SYNCHRONIZE', 'TYPE',
+            'UNLOCK', 'VIEW', 'WAIT', 'WRITE', 'XAUTH'
+            ),
+        2 => array( // lexical functions
+            'F$CONTEXT', 'F$CSID', 'F$CUNITS', 'F$CVSI', 'F$CVTIME', 'F$CVUI',
+            'F$DELTA_TIME', 'F$DEVICE', 'F$DIRECTORY', 'F$EDIT', 'F$ELEMENT',
+            'F$ENVIRONMENT', 'F$EXTRACT', 'F$FAO', 'F$FID_TO_NAME', 'F$FILE_ATTRIBUTES',
+            'F$GETDVI', 'F$GETENV', 'F$GETJPI', 'F$GETQUI', 'F$GETSYI', 'F$IDENTIFIER',
+            'F$INTEGER', 'F$LENGTH', 'F$LICENSE', 'F$LOCATE', 'F$MATCH_WILD', 'F$MESSAGE',
+            'F$MODE', 'F$MULTIPATH', 'F$PARSE', 'F$PID', 'F$PRIVILEGE', 'F$PROCESS',
+            'F$SEARCH', 'F$SETPRV', 'F$STRING', 'F$TIME', 'F$TRNLNM', 'F$TYPE', 'F$UNIQUE',
+            'F$USER', 'F$VERIFY'
+            ),
+        3 => array( // special variables etc
+            'sql$database', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9',
+            '$status', '$severity', 'sys$login', 'sys$system',
+            'sys$input', 'sys$output', 'sys$pipe'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '@', '&', '|', '<', '>', '-',
+        '.eqs.', '.eq.', '.lt.', '.lts.', '.gt.', '.gts.', '.ne.', '.nes.',
+        '.le.', '.ge.', '.ges.', '.les.',
+        '.EQS.', '.EQ.', '.LT.', '.LTS.', '.GT.', '.GTS.', '.NE.', '.NES.',
+        '.LE.', '.GE.', '.GES.', '.LES.',
+        '.and.', '.or.', '.not.',
+        '.AND.', '.OR.', '.NOT.',
+        '==', ':==', '=', ':='
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #0066FF;',
+            3 => 'color: #993300;'
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #666666; font-style: italic;',
+            1 => 'color: #666666; font-style: italic;',
+            2 => 'color: #9999FF; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #006666;',
+            1 => 'color: #0099FF;',
+            2 => 'color: red;',
+            3 => 'color: #007800;',
+            4 => 'color: #007800;',
+            5 => 'color: #780078;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #7a0874; font-weight: bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #009900;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #000000;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000000; font-weight: bold;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0099FF;',                     // variables
+            1 => 'color: #0000FF;',                     // qualifiers
+            2 => 'color: #FF6600; font-weight: bold;'   // labels
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        // variables
+        0 => "'[a-zA-Z_\\-$]+'",
+        // qualifiers and parameters
+        1 => "(?:\/[a-zA-Z_\/]+)[\s=]",
+        // labels
+        2 => '(?<=\$)\s*[a-zA-Z\-_]+:'
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'COMMENTS' => array(
+        ),
+        'KEYWORDS' => array(
+        )
+    )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/dcpu16.php b/wp-content/plugins/wp-syntax/geshi/geshi/dcpu16.php
new file mode 100644
index 0000000000000000000000000000000000000000..5fcb25e51808675ae72fb008412682e0da130430
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/dcpu16.php
@@ -0,0 +1,131 @@
+<?php
+/*************************************************************************************
+ * dcpu16.php
+ * -------
+ * Author: Benny Baumann (BenBE@omorphia.de)
+ * Copyright: (c) 2007-2012 Benny Baumann (http://geshi.org/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/04/12
+ *
+ * DCPU/16 Assembly language file for GeSHi.
+ * Syntax definition based on http://0x10c.com/doc/dcpu-16.txt
+ *
+ * CHANGES
+ * -------
+ * 2012/04/12 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2012/04/12)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'DCPU-16 Assembly',
+    'COMMENT_SINGLE' => array(1 => ';'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX,
+    'KEYWORDS' => array(
+        /*CPU*/
+        1 => array(
+            'set','add','sub','mul','div','mod','shl','shr','and','bor','xor',
+            'ife','ifn','ifg','ifb',
+            'jsr'
+            ),
+        /*registers*/
+        2 => array(
+            'a','b','c','x','y','z','i','j',
+            'pc','sp','o',
+            'pop','peek','push' //Special cases with DCPU-16
+            ),
+        ),
+    'SYMBOLS' => array(
+        '[', ']', '+', '-', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000088; font-weight:bold;',
+            2 => 'color: #0000ff;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #adadad; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000088;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #7f007f;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #880000;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;'
+            ),
+        'REGEXPS' => array(
+            2 => 'color: #993333;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://0x10c.com/doc/dcpu-16.txt',
+        2 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        //Hex numbers
+        //0 => '0[0-9a-fA-F]{1,32}[hH]',
+        //Binary numbers
+        //1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
+        //Labels
+        2 => '^:[_a-zA-Z][_a-zA-Z0-9]?(?=\s|$)'
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#\/])",
+            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
+            )
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/dcs.php b/wp-content/plugins/wp-syntax/geshi/geshi/dcs.php
index 05f2d31f1d063af3da5310aac28f61485082f9d6..d32cfc5b94d09b62ddd952436d073b919d912912 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/dcs.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/dcs.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Stelio Passaris (GeSHi@stelio.net)
  * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/01/20
  *
  * DCS language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/delphi.php b/wp-content/plugins/wp-syntax/geshi/geshi/delphi.php
index 1c252e3f6b0929f5c40769c39ef781174e39cbd0..d5596e0cd047f738cd7d508a9aeed79f8a70867d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/delphi.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/delphi.php
@@ -4,13 +4,17 @@
  * ----------
  * Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/26
  *
  * Delphi (Object Pascal) language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2012/06/27 (1.0.8.11)
+ *   -  Added some keywords
+ *   -  fixed hex numbers and hex char literals (including WideChar)
+ *   -  Added support for FPC-Style generics
  * 2008/05/23 (1.0.7.22)
  *   -  Added description of extra language features (SF#1970248)
  * 2005/11/19 (1.0.3)
@@ -51,27 +55,28 @@ $language_data = array (
     'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
     //Compiler directives
     'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
-    'CASE_KEYWORDS' => 0,
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'"),
     'ESCAPE_CHAR' => '',
+
     'KEYWORDS' => array(
         1 => array(
             'Abstract', 'And', 'Array', 'As', 'Asm', 'At', 'Begin', 'Case',
-            'Class', 'Const', 'Constructor', 'Contains', 'Destructor',
+            'Class', 'Const', 'Constructor', 'Contains', 'Default', 'delayed', 'Destructor',
             'DispInterface', 'Div', 'Do', 'DownTo', 'Else', 'End', 'Except',
-            'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally',
-            'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
-            'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library',
-            'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
+            'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally', 'For',
+            'Function', 'Generic', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
+            'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library', 'Message',
+            'Mod', 'Nil', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
             'Package', 'Packed', 'Private', 'Procedure', 'Program', 'Property',
-            'Protected', 'Public', 'Published', 'Raise', 'Record', 'Register',
-            'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Then',
-            'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
-            'Virtual', 'While', 'With', 'Xor', 'assembler', 'far',
+            'Protected', 'Public', 'Published', 'Read', 'Raise', 'Record', 'Register',
+            'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Specialize', 'Stored',
+            'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
+            'Virtual', 'While', 'With', 'Write', 'Xor', 'assembler', 'far',
             'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs'
             ),
         2 => array(
-            'nil', 'false', 'self', 'true', 'var', 'type', 'const'
+            'false', 'self', 'true',
             ),
         3 => array(
             'Abs', 'AcquireExceptionObject', 'Addr', 'AnsiToUtf8', 'Append', 'ArcTan',
@@ -250,7 +255,7 @@ $language_data = array (
             1 => 'color: #006600;'
             ),
         'REGEXPS' => array(
-            0 => 'color: #9ac;',
+            0 => 'color: #0000cc;',
             1 => 'color: #ff0000;'
             ),
         'SYMBOLS' => array(
@@ -274,16 +279,23 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         //Hex numbers
-        0 => '\$[0-9a-fA-F]+',
+        0 => '(?<!\#)\$[0-9a-fA-F]+(?!\w)',
         //Characters
-        1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
+        1 => '\#(?:\$[0-9a-fA-F]{1,4}|\d{1,5})'
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         ),
-    'TAB_WIDTH' => 2
+    'TAB_WIDTH' => 2,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            3 => array(
+                'DISALLOWED_AFTER' => '(?=\s*[(;])'
+                )
+            )
+        )
 );
 
-?>
\ No newline at end of file
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/diff.php b/wp-content/plugins/wp-syntax/geshi/geshi/diff.php
index bcf0c1d5912faf72aab48c2131a904e4c9cb3b5b..5b68171788204d0711b4b316a492f6d316592cf5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/diff.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/diff.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu)
  * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/12/29
  *
  * Diff-output language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/div.php b/wp-content/plugins/wp-syntax/geshi/geshi/div.php
index 2bfa24df45038e2d73e2044073b36caea5099023..aa11795ac8313e743b2835b179a64e99891b1b23 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/div.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/div.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Gabriel Lorenzo (ermakina@gmail.com)
  * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/06/19
  *
  * DIV language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/dos.php b/wp-content/plugins/wp-syntax/geshi/geshi/dos.php
index 75fee1ca0720416ffadd7f01d21d54ec5239faf8..36d99836bd00235625ea0c15e5bcf0b2f427d2b5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/dos.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/dos.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Alessandro Staltari (staltari@geocities.com)
  * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/07/05
  *
  * DOS language file for GeSHi.
@@ -171,7 +171,7 @@ $language_data = array (
         /* Variable assignement */
         1 => array(
 /*            GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
-            GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\n]+)([\s]*=)',
+            GESHI_SEARCH => '(SET\s+(?si:\\/A\s+|\\/P\s+)?)([^=\n]+)(\s*=)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'si',
             GESHI_BEFORE => '\\1',
@@ -180,7 +180,7 @@ $language_data = array (
         /* Arguments or variable evaluation */
         2 => array(
 /*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
-            GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
+            GESHI_SEARCH => '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?<!%\d)%|)(?!!>)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'si',
             GESHI_BEFORE => '\\1',
@@ -189,7 +189,7 @@ $language_data = array (
         /* Arguments or variable evaluation */
         3 => array(
 /*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
-            GESHI_SEARCH => '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?<!%\d)%|)(?!!>)',
+            GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'si',
             GESHI_BEFORE => '\\1',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/dot.php b/wp-content/plugins/wp-syntax/geshi/geshi/dot.php
index 698cf13c61f2d88a421548d78cdb948684952d0c..bdf240a1f071c49e9240ecf351cde1d7e0f89a0e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/dot.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/dot.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Adrien Friggeri (adrien@friggeri.net)
  * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/05/30
  *
  * dot language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/e.php b/wp-content/plugins/wp-syntax/geshi/geshi/e.php
index fb80fca4787833737949e16adfebc787e53b0462..319bee0167821d8c683ab3fb977735f6a8c184b8 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/e.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/e.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Kevin Reid (kpreid@switchb.org)
  * Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/04/16
  *
  * E language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ecmascript.php b/wp-content/plugins/wp-syntax/geshi/geshi/ecmascript.php
index 2d3f09fa86fb47d5b4415d98722635b449fd31cb..69a55c9aa4a1853796dfd7bb843d512dd19f69fc 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ecmascript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ecmascript.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Michel Mariani (http://www.tonton-pixel.com/site/)
  * Copyright: (c) 2010 Michel Mariani (http://www.tonton-pixel.com/site/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/01/08
  *
  * ECMAScript language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/eiffel.php b/wp-content/plugins/wp-syntax/geshi/geshi/eiffel.php
index 57e00b99f9c2c5654e791cd75d15154014eef797..baa13c31900553906951eb3db9941d19c5bace27 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/eiffel.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/eiffel.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Zoran Simic (zsimic@axarosenberg.com)
  * Copyright: (c) 2005 Zoran Simic
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/06/30
  *
  * Eiffel language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/email.php b/wp-content/plugins/wp-syntax/geshi/geshi/email.php
index 6becb1ff6329bd02bb6e1083f0e66b64f5e26b05..8a313d4837a1d40fcea459aa731d30a7f5d955d4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/email.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/email.php
@@ -4,7 +4,7 @@
  * ---------------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/10/19
  *
  * Email (mbox \ eml \ RFC format) language file for GeSHi.
@@ -51,14 +51,14 @@ $language_data = array (
             'HTTP', 'SMTP', 'ASMTP', 'ESMTP'
             ),
         2 => array(
-            'Authentication-Results','Content-Description','Content-Type',
+            'Authentication-Results','Comment','Content-Description','Content-Type',
             'Content-Disposition','Content-Transfer-Encoding','Delivered-To',
             'Dkim-Signature','Domainkey-Signature','In-Reply-To','Message-Id',
             'MIME-Version','OpenPGP','Received','Received-SPF','References',
-            'Resend-From','Resend-To','Return-Path','User-Agent'
+            'Reply-To', 'Resend-From','Resend-To','Return-Path','User-Agent'
             ),
         3 => array(
-            'Date','From','Subject','To',
+            'Date','From','Sender','Subject','To','CC'
             ),
         4 => array(
             'by', 'for', 'from', 'id', 'with'
@@ -132,7 +132,7 @@ $language_data = array (
             ),
         //Email-Adresses or Mail-IDs
         2 => array(
-            GESHI_SEARCH => "\b[\w\.\-]+@\w+(?:(?:\.\w+)*\.\w{2,4})?",
+            GESHI_SEARCH => "\b(?<!\\/)(?P<q>\"?)[\w\.\-]+\k<q>@(?!-)[\w\-]+(?<!-)(?:(?:\.(?!-)[\w\-]+(?<!-))*)?",
             GESHI_REPLACE => "\\0",
             GESHI_MODIFIERS => "mi",
             GESHI_BEFORE => "",
@@ -152,7 +152,19 @@ $language_data = array (
         4 => array(
             GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
                 "(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
-                "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)",
+                "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)|".
+
+                "(?<=\s)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\s)|".
+                "(?<=\[)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\])|".
+                "(?<==)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=<)|".
+
+                "(?<=\s)\:(?:\:[a-f\d]{1,4})+(?=\s)|".
+                "(?<=\[)\:(?:\:[a-f\d]{1,4})+(?=\])|".
+                "(?<==)\:(?:\:[a-f\d]{1,4})+(?=<)|".
+
+                "(?<=\s)(?:[a-f\d]{1,4}\:)+\:(?=\s)|".
+                "(?<=\[)(?:[a-f\d]{1,4}\:)+\:(?=\])|".
+                "(?<==)(?:[a-f\d]{1,4}\:)+\:(?=<)",
             GESHI_REPLACE => "\\0",
             GESHI_MODIFIERS => "i",
             GESHI_BEFORE => "",
@@ -178,7 +190,7 @@ $language_data = array (
         ),
     'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
     'SCRIPT_DELIMITERS' => array(
-        0 => "/(?P<start>^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P<end>$)/m"
+        0 => "/(?P<start>^)[A-Za-z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P<end>$)/m"
     ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         0 => true,
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/epc.php b/wp-content/plugins/wp-syntax/geshi/geshi/epc.php
new file mode 100644
index 0000000000000000000000000000000000000000..c575c0c63085c860d6fd57a8f8827ffb9ceca717
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/epc.php
@@ -0,0 +1,154 @@
+<?php
+/*************************************************************************************
+ * epc.php
+ * --------
+ * Author: Thorsten Muehlfelder (muehlfelder@enertex.de)
+ * Copyright: (c) 2010 Enertex Bayern GmbH
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/08/26
+ *
+ * Enerscript language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2010/08/26 (1.0.8.10)
+ *   -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'EPC',
+    'COMMENT_SINGLE' => array('//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //[Sections]
+        //1 => "/^\\[.*\\]/"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(
+        0 => '"',
+        1 => '$'
+        ),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'if', 'then', 'else', 'endif',
+            'and', 'or', 'xor', 'hysteresis'
+            ),
+        2 => array(
+            'read', 'write', 'event',
+            'gettime', 'settime', 'getdate', 'setdate', 'gettimedate', 'settimedate',
+            'hour', 'minute', 'second', 'changehour', 'changeminute', 'changesecond',
+            'date', 'month', 'day', 'dayofweek', 'sun', 'azimuth', 'elevation',
+            'sunrisehour', 'sunriseminute', 'sunsethour', 'sunsetminute',
+            'wtime', 'htime', 'mtime', 'stime',
+            'cwtime', 'chtime', 'cmtime', 'cstime',
+            'delay', 'after', 'cycle',
+            'readflash', 'writeflash',
+            'abs', 'acos', 'asin', 'atan', 'cos', 'ceil', 'average', 'exp', 'floor',
+            'log', 'max', 'min', 'mod', 'pow', 'sqrt', 'sin', 'tan', 'change', 'convert',
+            'eval', 'systemstart', 'random', 'comobject', 'sleep', 'scene', 'storescene', 'callscene',
+            'find', 'stringcast', 'stringset', 'stringformat', 'split', 'size',
+            'readrs232'. 'sendrs232', 'address', 'readknx',
+            'readudp', 'sendudp', 'connecttcp', 'closetcp', 'readtcp', 'sendtcp',
+            'resolve', 'sendmail',
+            'button', 'webbutton', 'chart', 'webchart', 'webdisplay', 'getslider', 'pshifter', 'mpshifter',
+            'getpslider', 'mbutton', 'mbbutton', 'mchart', 'mpchart', 'mpbutton', 'pdisplay', 'pchart',
+            'pbutton', 'setslider', 'setpslider', 'slider', 'pslider', 'page', 'line', 'header',
+            'footer', 'none', 'plink', 'link', 'frame', 'dframe'
+            )
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '%', 'b01',
+            ),
+        1 => array(
+            '+', '-', '==', '>=', '=<',
+            ),
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #e63ec3;',
+            2 => 'color: #e63ec3;'
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #0000ff;'
+            //1 => 'color: #ffa500;'
+            ),
+        'ESCAPE_CHAR' => array(
+            1 => 'color: #000099;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #8a0808;',
+            1 => 'color: #6e6e6e;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0b610b;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #0b610b;',
+            1 => 'color: #e63ec3;'
+            ),
+        'REGEXPS' => array(
+            1 => 'color: #0b610b;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        // Numbers, e.g. 255u08
+        1 => "[0-9]*[subf][0136][12468]"
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'COMMENTS' => array(
+            'DISALLOWED_BEFORE' => '$'
+        ),
+        'KEYWORDS' => array(
+            'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
+            'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%=\\/])"
+        )
+    )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/erlang.php b/wp-content/plugins/wp-syntax/geshi/geshi/erlang.php
index 1d4bccf4fa76029c36950a0af965ee001b538bfe..4b8d406b0eafc1d338d822e32e4d0099adabd554 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/erlang.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/erlang.php
@@ -7,7 +7,7 @@
  * - Uwe Dauernheim (uwe@dauernheim.net)
  * - Dan Forest-Barbier (dan@twisted.in)
  * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008-09-27
  *
  * Erlang language file for GeSHi.
@@ -355,7 +355,7 @@ $language_data = array(
         2 => ':'
         ),
     'REGEXPS' => array(
-        //�Macro definitions
+        //�Macro definitions
         0 => array(
             GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)',
             GESHI_REPLACE => '\2',
@@ -403,7 +403,7 @@ $language_data = array(
             GESHI_BEFORE => '\1',
             GESHI_AFTER => ''
             ),
-        // ASCII�codes
+        // ASCII�codes
         6 => '(\$[a-zA-Z0-9_])',
         // Records
         7 => array(
@@ -423,8 +423,8 @@ $language_data = array(
     'PARSER_CONTROL' => array(
         'KEYWORDS' => array(
             3 => array(
-                'DISALLOWED_BEFORE' => '',
-                'DISALLOWED_AFTER' => '(?=\s*\()'
+                'DISALLOWED_BEFORE' => '(?<![\w])',
+                'DISALLOWED_AFTER' => ''//'(?=\s*\()'
             ),
             5 => array(
                 'DISALLOWED_BEFORE' => '(?<=\'|)',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/euphoria.php b/wp-content/plugins/wp-syntax/geshi/geshi/euphoria.php
new file mode 100644
index 0000000000000000000000000000000000000000..7bbf88460ea032842838e86c32cc72591beb0e35
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/euphoria.php
@@ -0,0 +1,140 @@
+<?php
+/*************************************************************************************
+ * euphoria.php
+ * ---------------------------------
+ * Author: Nicholas Koceja (nerketur@hotmail.com)
+ * Copyright: (c) 2010 Nicholas Koceja
+ * Release Version: 1.0.8.11
+ * Date Started: 11/24/2010
+ *
+ * Euphoria language file for GeSHi.
+ *
+ * Author's note:  The colors are based off of the Euphoria Editor (ed.ex) colors.
+ * Also, I added comments in places so I could remember a few things about Euphoria.
+ *
+ *
+ * CHANGES
+ * -------
+ * <date-of-release> (1.0.8.9)
+ *  -  First Release
+ *
+ * TODO (updated <date-of-release>)
+ * -------------------------
+ * seperate the funtions from the procedures, and have a slight color change for each.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Euphoria',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array(), //Euphoria doesn't support multi-line comments
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array( // keywords
+            'and', 'by', 'constant', 'do', 'else', 'elsif', 'end', 'exit',
+            'for', 'function', 'global', 'if', 'include', 'not', 'or',
+            'procedure', 'return', 'then', 'to', 'type', 'while', 'with',
+            'without', 'xor'
+            ),
+        2 => array( // built-ins
+            'abort', 'and_bits', 'append', 'arctan', 'atom', 'c_func', 'call',
+            'c_proc', 'call_func', 'call_proc', 'clear_screen', 'close', 'compare',
+            'command_line', 'cos', 'date', 'equal', 'find', 'find_from', 'floor',
+            'getc', 'getenv', 'gets', 'get_key', 'get_pixel', 'integer', 'length',
+            'log', 'machine_func', 'machine_proc', 'match', 'match_from',
+            'mem_copy', 'mem_set', 'not_bits', 'object', 'open', 'or_bits', 'peek',
+            'peek4s', 'peek4u', 'pixel', 'platform', 'poke', 'poke4', 'position',
+            'power', 'prepend', 'print', 'printf', 'profile', 'puts', 'rand',
+            'remainder', 'repeat', 'routine_id', 'sequence', 'sin', 'sprintf',
+            'sqrt', 'system', 'system_exec', 'tan', 'task_clock_stop',
+            'task_clock_start', 'task_create', 'task_list', 'task_schedule',
+            'task_self', 'task_status', 'task_suspend', 'task_yield', 'time',
+            'trace', 'xor_bits'
+            ),
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '(', ')', '{', '}', '[', ']'
+            ),
+        1 => array(
+            '+', '-', '*', '/', '=', '&', '^'
+            ),
+        2 => array(
+            '&', '?', ','
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000ff; font-weight: bold;', // keywords
+            2 => 'color: #cc33ff; font-weight: bold;', // builtins
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #ff0000; font-style: italic;',
+            'MULTI' => '' // doesn't exist
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #009900; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #999900; font-weight: bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #00cc00;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc33cc; font-style: italic'
+            ),
+        'METHODS' => array( // Doesn't exist in Euphoria.  Everything is a function =)
+            0 => ''
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #999900;', // brackets
+            1 => 'color: #333333;', // operators
+            2 => 'color: #333333; font-style: bold' // print+concat
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array( // Never included in scripts.
+            )
+        ),
+    'REGEXPS' => array(
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/f1.php b/wp-content/plugins/wp-syntax/geshi/geshi/f1.php
index dd3a812fd5559c77620cc8b205be3fd82b656925..7d7676085f1ea92d09c3497ac78f2d8a8a4494b2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/f1.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/f1.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Juro Bystricky (juro@f1compiler.com)
  * Copyright: K2 Software Corp.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/07/06
  *
  * Formula One language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/falcon.php b/wp-content/plugins/wp-syntax/geshi/geshi/falcon.php
new file mode 100644
index 0000000000000000000000000000000000000000..2111d9e8e5d603bae55d82fb822a3d900419ad05
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/falcon.php
@@ -0,0 +1,218 @@
+<?php
+/*************************************************************************************
+ * falcon.php
+ * ---------------------------------
+ * Author: billykater (billykater+geshi@gmail.com)
+ * Copyright: (c) 2010 billykater (http://falconpl.org/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/06/07
+ *
+ * Falcon language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * <2010/8/1> (1.0.8.10)
+ *  -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Falcon',
+    'COMMENT_SINGLE' => array( 1 => '//' ),
+    'COMMENT_MULTI' => array( '/*' => '*/' ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array( "'", '"' ),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'break','case','catch','class','const','continue','def','default',
+            'dropping','elif','else','end','enum','for','forfirst','forlast',
+            'formiddle','from','function','global','if','init','innerfunc',
+            'launch','loop','object','raise','return','select','state','static',
+            'switch','try','while'
+        ),
+        2 => array(
+            'false','nil','true',
+        ),
+        3 => array(
+            'and','as','eq','fself','in','not','notin','or','provides','self','to'
+        ),
+        4 => array(
+            'directive','export','import','load','macro'
+        ),
+        5 => array(
+            'ArrayType','BooleanType','ClassMethodType','ClassType','DictionaryType',
+            'FunctionType','MemBufType','MethodType','NilType','NumericType','ObjectType',
+            'RangeType','StringType','LBindType'
+        ),
+        6 => array(
+            "CurrentTime","IOStream","InputStream","MemBufFromPtr","OutputStream",
+            "PageDict","ParseRFC2822","abs","acos","all",
+            "allp","any","anyp","argd","argv",
+            "arrayAdd","arrayBuffer","arrayCompact","arrayDel","arrayDelAll",
+            "arrayFill","arrayFind","arrayHead","arrayIns","arrayMerge",
+            "arrayNM","arrayRemove","arrayResize","arrayScan","arraySort",
+            "arrayTail","asin","assert","atan","atan2",
+            "attributes","baseClass","beginCritical","bless","brigade",
+            "broadcast","cascade","ceil","choice","chr",
+            "className","clone","combinations","compare","consume",
+            "cos","deg2rad","deoob","derivedFrom","describe",
+            "deserialize","dictBack","dictBest","dictClear","dictFill",
+            "dictFind","dictFront","dictGet","dictKeys","dictMerge",
+            "dictRemove","dictSet","dictValues","dirChange","dirCurrent",
+            "dirMake","dirMakeLink","dirReadLink","dirRemove","dolist",
+            "endCritical","epoch","eval","exit","exp",
+            "factorial","fileChgroup","fileChmod","fileChown","fileCopy",
+            "fileExt","fileMove","fileName","fileNameMerge","filePath",
+            "fileRemove","fileType","fileUnit","filter","fint",
+            "firstOf","floop","floor","fract","getAssert",
+            "getEnviron","getProperty","getSlot","getSystemEncoding","getenv",
+            "iff","include","input","inspect","int",
+            "isBound","isCallable","isoob","lbind","len",
+            "let","lit","log","map","max",
+            "metaclass","min","numeric","oob","ord",
+            "paramCount","paramIsRef","paramSet","parameter","passvp",
+            "permutations","pow","print","printl","properties",
+            "rad2deg","random","randomChoice","randomDice","randomGrab",
+            "randomPick","randomSeed","randomWalk","readURI","reduce",
+            "retract","round","seconds","serialize","set",
+            "setProperty","setenv","sin","sleep","stdErr",
+            "stdErrRaw","stdIn","stdInRaw","stdOut","stdOutRaw",
+            "strBack","strBackFind","strBackTrim","strBuffer","strCmpIgnoreCase",
+            "strEndsWith","strEscape","strEsq","strFill","strFind",
+            "strFromMemBuf","strFront","strFrontTrim","strLower","strMerge",
+            "strReplace","strReplicate","strSplit","strSplitTrimmed","strStartsWith",
+            "strToMemBuf","strTrim","strUnescape","strUnesq","strUpper",
+            "strWildcardMatch","subscribe","systemErrorDescription","tan","times",
+            "toString","transcodeFrom","transcodeTo","typeOf","unsetenv",
+            "unsubscribe","valof","vmFalconPath","vmIsMain","vmModuleName",
+            "vmModuleVersionInfo","vmSearchPath","vmSystemType","vmVersionInfo","vmVersionName",
+            "writeURI","xmap","yield","yieldOut"
+        ),
+        7 => array(
+            "AccessError","Array","BOM","Base64","Class",
+            "ClassMethod","CloneError","CmdlineParser","CodeError","Continuation",
+            "Dictionary","Directory","Error","FileStat","Format",
+            "Function","GarbagePointer","GenericError","Integer","InterruptedError",
+            "IoError","Iterator","LateBinding","List","MathError",
+            "MemoryBuffer","MessageError","Method","Numeric","Object",
+            "ParamError","ParseError","Path","Range","Semaphore",
+            "Sequence","Set","Stream","String","StringStream",
+            "SyntaxError","Table","TableError","TimeStamp","TimeZone",
+            "Tokenizer","TypeError","URI","VMSlot"
+        ),
+        8 => array(
+            "args","scriptName","scriptPath"
+        ),
+        9 => array(
+            "GC"
+        ),
+    ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => 'http://falconpl.org/project_docs/core/functions.html#typeOf',
+        6 => 'http://falconpl.org/project_docs/core/functions.html#{FNAME}',
+        7 => 'http://falconpl.org/project_docs/core/class_{FNAME}.html',
+        8 => 'http://falconpl.org/project_docs/core/globals.html#{FNAME}',
+        9 => 'http://falconpl.org/project_docs/core/object_{FNAME}.html)'
+    ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true
+    ),
+    'SYMBOLS' => array(
+        '(',')','$','%','&','/','{','[',']','=','}','?','+','-','#','*','@',
+        '<','>','|',',',':',';','\\','^'
+    ),
+    'REGEXPS' => array(
+        0 => array(
+            GESHI_SEARCH => '(\[)([a-zA-Z_]|\c{C})(?:[a-zA-Z0-9_]|\p{C})*(\])',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '\\3',
+
+        ),
+    ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        0 => array( '<?' => '?>' )
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true
+    ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #000080;font-weight:bold;',
+            2 => 'color: #800000;font-weight:bold;',
+            3 => 'color: #800000;font-weight:bold;',
+            4 => 'color: #000080;font-weight:bold;',
+            5 => 'color: #000000;font-weight:bold;',
+            6 => 'font-weight:bold;',
+            7 => 'font-weight:bold;',
+            8 => 'font-weight:bold;'
+        ),
+        'COMMENTS' => array(
+            1 => 'color: #29B900;',
+            'MULTI' => 'color: #008080'
+        ),
+        'STRINGS' => array(
+            0 => 'color: #800000'
+        ),
+        'BRACKETS' => array(
+            0 => 'color: #000000'
+        ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #800000'
+        ),
+        'NUMBERS' => array(
+            0 => 'color: #000000'
+        ),
+        'METHODS' => array(
+            0 => 'color: #000000'
+        ),
+        'SYMBOLS' => array(
+            0 => 'color: #8B0513'
+        ),
+        'SCRIPT' => array(
+            0 => ''
+        ),
+        'REGEXPS' => array(
+            0 => 'color: #FF00FF'
+        )
+    ),
+
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        '.'
+    )
+);
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/fo.php b/wp-content/plugins/wp-syntax/geshi/geshi/fo.php
index 9e08b9cfdcad5172959ef5a60b369bdb3f4d095f..ba4a5924450a2adb9c31b15c6e96e3458fcd4ce9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/fo.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/fo.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Tan-Vinh Nguyen (tvnguyen@web.de)
  * Copyright: (c) 2009 Tan-Vinh Nguyen
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/03/23
  *
  * fo language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/fortran.php b/wp-content/plugins/wp-syntax/geshi/geshi/fortran.php
index d8b104a7882c77b07178a2a943a3ceb8e2e91f9b..c21ccd19274e740c8fd2a20df69eb69523742ad7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/fortran.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/fortran.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr)
  * Copyright: (C) 2006 Cetric Arrabie
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/04/22
  *
  * Fortran language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/freebasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/freebasic.php
index 77f75b5c74e7356d8cb5f272b0ed12801eae44ff..b23f39bc7686f1bde75e5a20db4af4ffc83b50bd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/freebasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/freebasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/08/19
  *
  * FreeBasic (http://www.freebasic.net/) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/freeswitch.php b/wp-content/plugins/wp-syntax/geshi/geshi/freeswitch.php
new file mode 100644
index 0000000000000000000000000000000000000000..c6fff2767e1d359437453d560a7fd589b5a74cae
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/freeswitch.php
@@ -0,0 +1,168 @@
+<?php
+/*************************************************************************************
+ * freeswitch.php
+ * --------
+ * Author: James Rose (james.gs@stubbornroses.com)
+ * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
+ * Release Version: 1.0.8.11n/a
+ * Date Started: 2011/11/18
+ *
+ * FreeSWITCH language file for GeSHi.
+ *
+ * This file is based on robots.php
+ *
+ * 2011/11/18 (1.0.0)
+ *   -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'FreeSWITCH',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(1 => "/^Comment:.*?$/m"),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+//        1 => array(
+//            'Disallow', 'Request-rate', 'Robot-version',
+//            'Sitemap', 'User-agent', 'Visit-time'
+//            )
+        ),
+    'SYMBOLS' => array(
+//        ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false
+        ),
+
+//order is important. regexes will overwrite most things....
+    'STYLES' => array(
+        'KEYWORDS' => array(
+//            1 => 'color: #FF0000; font-weight: bold;',//red
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+//            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+//            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+//            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+//            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: firebrick; font-weight: bold;',
+            1 => 'color: cornflowerblue; font-weight: bold;',
+            2 => 'color: goldenrod; font-weight: bold;',
+            3 => 'color: green; font-weight: bold;',
+            4 => 'color: dimgrey; font-style: italic;',
+            5 => 'color: green; font-weight: bold;',
+            6 => 'color: firebrick; font-weight: bold;',
+            7 => 'color: indigo; font-weight: italic;'
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+//        1 => 'http://www.robotstxt.org/wc/norobots.html'
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        0 => array(
+            GESHI_SEARCH => '(^.*ERROR.*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'im',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        1 => array(
+            GESHI_SEARCH => '(^.*NOTICE.*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'im',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        2 => array(
+            GESHI_SEARCH => '(^.*DEBUG.*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'm',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        3 => array(
+            GESHI_SEARCH => '(^.*INFO.*|.*info\(.*|^Channel.*|^Caller.*|^variable.*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'm',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        4 => array(
+            GESHI_SEARCH => '(^Dialplan.*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'im',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        5 => array(
+            GESHI_SEARCH => '(Regex\ \(PASS\))',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        6 => array(
+            GESHI_SEARCH => '(Regex\ \(FAIL\))',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            ),
+        7 => array(
+            GESHI_SEARCH => '(\d{7,15})',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            )
+        ),
+
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/fsharp.php b/wp-content/plugins/wp-syntax/geshi/geshi/fsharp.php
index afff9dc472b7a8016660eb749618f70dc9b82d56..d85a7c7570efdf744ec0f9a743c70db2de86c166 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/fsharp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/fsharp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: julien ortin (jo_spam-divers@yahoo.fr)
  * Copyright: (c) 2009 julien ortin
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/09/20
  *
  * F# language file for GeSHi.
@@ -43,7 +43,8 @@
 $language_data = array(
     'LANG_NAME' => 'F#',
     'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-    'COMMENT_MULTI' => array('(*' => '*)', '/*' => '*/'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(3 => '/\(\*(?!\)).*?\*\)/s'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'HARDQUOTE' => array('@"', '"'),
@@ -153,7 +154,8 @@ $language_data = array(
         'COMMENTS' => array(
             'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
             1 => 'color: #5d478b; font-style: italic;',
-            2 => 'color: #5d478b; font-style: italic;' /* light purple */
+            2 => 'color: #5d478b; font-style: italic;', /* light purple */
+            3 => 'color: #5d478b; font-style: italic;' /* light purple */
             ),
         'ESCAPE_CHAR' => array(
             ),
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gambas.php b/wp-content/plugins/wp-syntax/geshi/geshi/gambas.php
index a4dd43f8c85e12282c8e093f5373359dc845fb32..352830ebbabeed7b52e4eca236a26bf53b458f81 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gambas.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gambas.php
@@ -5,7 +5,7 @@
  * Author: Jesus Guardon (jguardon@telefonica.net)
  * Copyright: (c) 2009 Jesus Guardon (http://gambas-es.org),
  *                     Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/20
  *
  * GAMBAS language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gdb.php b/wp-content/plugins/wp-syntax/geshi/geshi/gdb.php
index be94fa8e5e26b815225d60dc939424d5e36ca18f..0a5e32c303e30ef3ba076d0849b22e397a3afcfa 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gdb.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gdb.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2009 Milian Wolff
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/06/24
  *
  * GDB language file for GeSHi.
@@ -43,7 +43,7 @@ $language_data = array (
     'COMMENT_MULTI' => array(),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => '',
+    'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         0 => array(
             'Application',
@@ -54,8 +54,7 @@ $language_data = array (
             '[KCrash Handler]',
             ),
         ),
-    'NUMBERS' =>
-        GESHI_NUMBER_INT_BASIC,
+    'NUMBERS' => false,
     'SYMBOLS' => array(
         ),
     'CASE_SENSITIVE' => array(
@@ -79,7 +78,6 @@ $language_data = array (
             0 => 'color: #933;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #cc66cc;',
             ),
         'METHODS' => array(
             ),
@@ -88,12 +86,14 @@ $language_data = array (
         'REGEXPS' => array(
             0 => 'color: #000066; font-weight:bold;',
             1 => 'color: #006600;',
-            2 => 'color: #000066;',
-            3 => 'color: #0066FF; text-style:italic;',
-            4 => 'color: #80B5FF; text-style:italic;',
-            5 => 'color: #A3007D;',
-            6 => 'color: #FF00BF;',
-            7 => 'font-weight: bold;'
+            2 => 'color: #B07E00;',
+            3 => 'color: #0057AE; text-style:italic;',
+            4 => 'color: #0057AE; text-style:italic;',
+            5 => 'color: #442886;',
+            6 => 'color: #442886; font-weight:bold;',
+            7 => 'color: #FF0000; font-weight:bold;',
+            8 => 'color: #006E26;',
+            9 => 'color: #555;',
             ),
         'SCRIPT' => array(
             )
@@ -132,7 +132,7 @@ $language_data = array (
             ),
         //Files with linenumbers
         3 => array(
-            GESHI_SEARCH => '(at )(.+)(:\d+\s*)$',
+            GESHI_SEARCH => '(at\s+)(.+)(:\d+\s*)$',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
             GESHI_BEFORE => '\\1',
@@ -140,16 +140,14 @@ $language_data = array (
             ),
         //Libs without linenumbers
         4 => array(
-            GESHI_SEARCH => '(from )(.+)(\s*)$',
+            GESHI_SEARCH => '(from\s+)(.+)(\s*)$',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
             GESHI_BEFORE => '\\1',
             GESHI_AFTER => '\\3'
             ),
-        //Hex mem address
-        5 => '0x[a-f0-9]+',
         //Line numbers
-        6 => array(
+        5 => array(
             GESHI_SEARCH => '(:)(\d+)(\s*)$',
             GESHI_REPLACE => '\\2',
             GESHI_MODIFIERS => 'm',
@@ -157,19 +155,44 @@ $language_data = array (
             GESHI_AFTER => '\\3'
             ),
         //Location
+        6 => array(
+            GESHI_SEARCH => '(\s+)(in\s+)?([^ 0-9][^ ]*)([ \n]+\()',
+            GESHI_REPLACE => '\\3',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1\\2',
+            GESHI_AFTER => '\\4'
+            ),
+        // interesting parts: abort, qFatal, assertions, null ptrs, ...
         7 => array(
-            GESHI_SEARCH => '( in )([^ \(\)]+)( \()',
-            GESHI_REPLACE => '\\2',
+            GESHI_SEARCH => '\b((?:\*__GI_)?(?:__assert_fail|abort)|qFatal|0x0)\b([^\.]|$)',
+            GESHI_REPLACE => '\\1',
             GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '\\1',
-            GESHI_AFTER => '\\3'
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '\\2'
+            ),
+        // Namespace / Classes
+        8 => array(
+            GESHI_SEARCH => '\b(\w+)(::)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => 'U',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '\\2'
             ),
+        // make ptr adresses and <value optimized out> uninteresting
+        9 => '\b(?:0x[a-f0-9]{2,}|value\s+optimized\s+out)\b'
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'NUMBERS' => false
+            ),
         )
 );
 
+// kate: replace-tabs on; indent-width 4;
+
 ?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/genero.php b/wp-content/plugins/wp-syntax/geshi/geshi/genero.php
index 5f752b80e9bbaa6e1836c740d4bab9eae3d4023e..e1b20b3e8007224b84e6ff69202fb1ef13337c4b 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/genero.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/genero.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/07/01
  *
  * Genero (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/genie.php b/wp-content/plugins/wp-syntax/geshi/geshi/genie.php
index 3c354ad645713010659c107a3182450567f4449a..db05ec062647a43c92f615d716d05fa070326da4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/genie.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/genie.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
  * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/04/29
  *
  * Genie language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gettext.php b/wp-content/plugins/wp-syntax/geshi/geshi/gettext.php
index 90c34a8fba7582b2afc2b582d6dec27d4ffb66d5..80b531c109bc2b3416b19efd68b9d4f3294a846d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gettext.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gettext.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/05/25
  *
  * GNU Gettext .po/.pot language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/glsl.php b/wp-content/plugins/wp-syntax/geshi/geshi/glsl.php
index dbb7ff62c3e74f36be7b8ca2fff690bad9cbc7fd..3615cfe71fe4deaa94b917ff8a3ccb2da96d8d85 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/glsl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/glsl.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/03/20
  *
  * glSlang language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gml.php b/wp-content/plugins/wp-syntax/geshi/geshi/gml.php
index 9d0d88d8582dc85514cfa6f624c844f9883d75a2..999251b223bf850940a96c002a4179e67a8ac00f 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gml.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gml.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net)
  * Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/06/21
  *
  * GML language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gnuplot.php b/wp-content/plugins/wp-syntax/geshi/geshi/gnuplot.php
index 05e2601558e644ff4d1e6e6661a2cc835a0b6b84..d8445eabbb9f032c33eba1c13b0865ee7075b177 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gnuplot.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gnuplot.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/07/07
  *
  * Gnuplot script language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/go.php b/wp-content/plugins/wp-syntax/geshi/geshi/go.php
index 941b74a003acfad5669fe582e0c33a9dd459a7d4..5b7a47db6204097c598ee67cac37b62768a18895 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/go.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/go.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Markus Jarderot (mizardx at gmail dot com)
  * Copyright: (c) 2010 Markus Jarderot
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/05/20
  *
  * Go language file for GeSHi.
@@ -55,6 +55,14 @@ $language_data = array(
         4 => "#\\\\u[0-9a-fA-F]{4}#",
         5 => "#\\\\U[0-9a-fA-F]{8}#"
         ),
+    'NUMBERS' => array(
+        # integer literals (possibly imaginary)
+        0 => '\b([1-9][0-9]*i?|0[0-7]*|0[xX][0-9a-f]+|0[0-9]*i)\b',
+        # real floating point literals
+        1 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+\b)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?)\b',
+        # imaginary floating point literals
+        2 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?i)\b'
+        ),
     'KEYWORDS' => array(
         # statements
         1 => array(
@@ -334,11 +342,11 @@ $language_data = array(
         'REGEXPS' => array(
             # If CSS classes are enabled, these would be highlighted as numbers (nu0)
             # integer literals (possibly imaginary)
-            0 => 'color: #cc66cc;',
+            //0 => 'color: #cc66cc;',
             # real floating point literals
-            1 => 'color: #cc66cc;',
+            //1 => 'color: #cc66cc;',
             # imaginary floating point literals
-            2 => 'color: #cc66cc;'
+            //2 => 'color: #cc66cc;'
             ),
         'SCRIPT' => array(
             )
@@ -351,36 +359,8 @@ $language_data = array(
         5 => 'http://golang.org/search?q={FNAME}'
         ),
     'REGEXPS' => array(
-        # integer literals (possibly imaginary)
-        0 => array(
-            GESHI_SEARCH => '\b([1-9][0-9]+i?|0[0-7]*|0[xX][0-9a-f]+|0[0-9]*i)\b',
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            GESHI_CLASS => 'nu0'
-            ),
-        # real floating point literals
-        1 => array(
-            GESHI_SEARCH => '((?:\b\d+\.\d*(?:[Ee][+-]?\d+\b)?|\.\d+(?:[Ee][+-]?\d+)?\b|\b\d+[Ee][+-]?\d+\b)?)',
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            GESHI_CLASS => 'nu0'
-            ),
-        # imaginary floating point literals
-        2 => array(
-            GESHI_SEARCH => '((?:\b\d+\.\d*(?:[Ee][+-]?\d+)?|\.\d+(?:[Ee][+-]?\d+)?|\b\d+[Ee][+-]?\d+)?i\b)',
-            GESHI_REPLACE => '\0',
-            GESHI_MODIFIERS => '',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => '',
-            GESHI_CLASS => 'nu0'
-            )
-        # NB. "08" is an invalid number (octal), but "08i" is valid (complex).
         ),
-'OOLANG' => true,
+    'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(1 => '.'),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(),
@@ -388,7 +368,6 @@ $language_data = array(
     'PARSER_CONTROL' => array(
         'ENABLE_FLAGS' => array(
             'BRACKETS' => GESHI_NEVER, # handled by symbols
-            'NUMBERS' => GESHI_NEVER,  # handled by regexp
             )
         )
 );
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/groovy.php b/wp-content/plugins/wp-syntax/geshi/geshi/groovy.php
index e6f8ae033c7c1da865b806bc3822b60b196c6cf1..45290d2fc1d8022237c88b656bff60a6a48681e7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/groovy.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/groovy.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com)
  * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/04/29
  *
  * Groovy language file for GeSHi.
@@ -983,15 +983,15 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}',
-        2 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}',
+        1 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
+        2 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
         3 => 'http://www.google.de/search?as_q={FNAME}&amp;num=100&amp;hl=en&amp;as_occt=url&amp;as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F',
-        4 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}',
-        5 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}',
-        6 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}',
-        7 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}',
-        8 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}',
-        9 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}'
+        4 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
+        5 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
+        6 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
+        7 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
+        8 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
+        9 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}'
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/gwbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/gwbasic.php
index 4b2b27228a6c30777bff87001d4b53313758045e..ecc16341d3e6b333920f4900df86b5981e333410 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/gwbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/gwbasic.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: José Gabriel Moya Yangüela (josemoya@gmail.com)
  * Copyright: (c) 2010 José Gabriel Moya Yangüela (http://doc.apagada.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/01/30
  *
  * GwBasic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/haskell.php b/wp-content/plugins/wp-syntax/geshi/geshi/haskell.php
index d4594707c7986c01b5cfdca615706275ca7a94e1..adae1116896c9642157da1914745468deea8410b 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/haskell.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/haskell.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/08/27
  *
  * Haskell language file for GeSHi.
@@ -46,8 +46,8 @@ $language_data = array (
         3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
         ),
     'CASE_KEYWORDS' => 0,
-    'QUOTEMARKS' => array('"'),
-    'ESCAPE_CHAR' => "\\",
+    'QUOTEMARKS' => array('"',"'"),
+    'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         /* main haskell keywords */
         1 => array(
@@ -95,7 +95,7 @@ $language_data = array (
             'product', 'concat', 'concatMap', 'maximum',
             'minimum', 'scanl', 'scanl1', 'scanr', 'scanr1',
             'iterate', 'repeat', 'cycle', 'take', 'drop',
-            'splitAt', 'teakWhile', 'dropWhile', 'span',
+            'splitAt', 'takeWhile', 'dropWhile', 'span',
             'break', 'elem', 'notElem', 'lookup', 'zip',
             'zip3', 'zipWith', 'zipWith3', 'unzip', 'unzip3',
             'lines', 'words', 'unlines',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/haxe.php b/wp-content/plugins/wp-syntax/geshi/geshi/haxe.php
new file mode 100644
index 0000000000000000000000000000000000000000..778637e2b30245376835b29f3cbc52f5dbb04087
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/haxe.php
@@ -0,0 +1,161 @@
+<?php
+/*************************************************************************************
+ * haxe.php
+ * --------
+ * Author: Andy Li (andy@onthewings.net)
+ *         John Liao (colorhook@gmail.com)
+ * Copyright: (c) 2012 onthewings (http://www.onthewings.net/)
+ *                2010 colorhook (http://colorhook.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/10/05
+ *
+ * Haxe language file for GeSHi.
+ * Haxe version: 2.10
+ *************************************************************************************
+ *
+ *   This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Haxe',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Import and Package directives (Basic Support only)
+        2 => '/(?:(?<=import[\\n\\s])|(?<=using[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
+        // Haxe comments
+        3 => '#/\*\*(?![\*\/]).*\*/#sU',
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            //http://haxe.org/ref/keywords
+            'break', 'callback', 'case', 'cast', 'catch', 'class', 'continue', 'default', 'do', 'dynamic',
+            'else', 'enum', 'extends', 'extern', /*'false',*/ 'for', 'function', 'here', 'if',
+            'implements', 'import', 'in', 'inline', 'interface', 'never', 'new', /*'null',*/ 'override',
+            'package', 'private', 'public', 'return', 'static', 'super', 'switch', 'this', 'throw',
+            'trace', /*'true',*/ 'try', 'typedef', 'untyped', 'using', 'var', 'while',
+            'macro', '$type',
+            ),
+        2 => array(
+            //primitive values
+            'null', 'false', 'true',
+            ),
+        3 => array(
+            //global types
+            'Array', 'ArrayAccess', /*'Bool',*/ 'Class', 'Date', 'DateTools', 'Dynamic',
+            'EReg', 'Enum', 'EnumValue', /*'Float',*/ 'Hash', /*'Int',*/ 'IntHash', 'IntIter',
+            'Iterable', 'Iterator', 'Lambda', 'List', 'Math', 'Null', 'Reflect', 'Std',
+            /*'String',*/ 'StringBuf', 'StringTools', 'Sys', 'Type', /*'UInt',*/ 'ValueType',
+            /*'Void',*/ 'Xml', 'XmlType',
+            ),
+        4 => array(
+            //primitive types
+            'Void', 'Bool', 'Int', 'Float', 'UInt', 'String',
+            ),
+        5 => array(
+            //compiler switches
+            "#if", "#elseif", "#else", "#end", "#error",
+            ),
+        ),
+    'SYMBOLS' => array(
+        //http://haxe.org/manual/operators
+        '++', '--',
+        '%',
+        '*', '/',
+        '+', '-',
+        '<<', '>>', '>>>',
+        '|', '&', '^',
+        '==', '!=', '>', '>=', '<', '<=',
+        '...',
+        '&&',
+        '||',
+        '?', ':',
+        '=', '+=', '-=', '/=', '*=', '<<=', '>>=', '>>>=', '|=', '&=', '^=',
+        '(', ')', '[', ']', '{', '}', ';',
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #6699cc; font-weight: bold;',
+            2 => 'color: #000066; font-weight: bold;',
+            3 => 'color: #03F; ',
+            4 => 'color: #000033; font-weight: bold;',
+            5 => 'color: #330000; font-weight: bold;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            2 => 'color: #006699;',
+            3 => 'color: #008000; font-style: italic; font-weight: bold;',
+            3 => 'color: #008000; font-style: italic; font-weight: bold;',
+            'MULTI' => 'color: #666666; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;',
+            ),
+        'STRINGS' => array(
+            0 => 'color: #FF0000;',
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;',
+            ),
+        'METHODS' => array(
+            1 => 'color: #006633;',
+            2 => 'color: #006633;',
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;',
+            ),
+        'SCRIPT' => array(
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/hicest.php b/wp-content/plugins/wp-syntax/geshi/geshi/hicest.php
index 532c83afed5967306757b0f76ccd26c29ec6c1e2..78a2bc206393ed0873d4eb114b20d06f0466ea92 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/hicest.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/hicest.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Georg Petrich (spt@hicest.com)
  * Copyright: (c) 2010 Georg Petrich (http://www.HicEst.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/03/15
  *
  * HicEst language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/hq9plus.php b/wp-content/plugins/wp-syntax/geshi/geshi/hq9plus.php
index a06fdc8d03a55a67c7d4059819f83995af3e5ae1..7ba1a73c1c25f788b98ebc9ec345f47139d000a7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/hq9plus.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/hq9plus.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/31
  *
  * HQ9+ language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/html4strict.php b/wp-content/plugins/wp-syntax/geshi/geshi/html4strict.php
index 6e0e2f0d426bb1bf20d5cd17070a8d3dd06d20bc..97392fa84b49a46cdc756b46d1ad831fac06c2c7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/html4strict.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/html4strict.php
@@ -4,7 +4,7 @@
  * ---------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/10
  *
  * HTML 4.01 strict language file for GeSHi.
@@ -58,42 +58,24 @@ $language_data = array (
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         2 => array(
-            'a', 'abbr', 'acronym', 'address', 'applet',
-
+            'a', 'abbr', 'acronym', 'address', 'applet', 'area',
             'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
-
             'caption', 'center', 'cite', 'code', 'colgroup', 'col',
-
             'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
-
             'em',
-
             'fieldset', 'font', 'form', 'frame', 'frameset',
-
             'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
-
             'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
-
             'kbd',
-
             'label', 'legend', 'link', 'li',
-
             'map', 'meta',
-
             'noframes', 'noscript',
-
             'object', 'ol', 'optgroup', 'option',
-
             'param', 'pre', 'p',
-
             'q',
-
             'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
-
             'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
-
             'ul', 'u',
-
             'var',
             ),
         3 => array(
@@ -151,6 +133,7 @@ $language_data = array (
             0 => 'color: #66cc66;'
             ),
         'SCRIPT' => array(
+            -2 => 'color: #404040;', // CDATA
             -1 => 'color: #808080; font-style: italic;', // comments
             0 => 'color: #00bbdd;',
             1 => 'color: #ddbb00;',
@@ -170,6 +153,9 @@ $language_data = array (
         ),
     'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
     'SCRIPT_DELIMITERS' => array(
+        -2 => array(
+            '<![CDATA[' => ']]>'
+            ),
         -1 => array(
             '<!--' => '-->'
             ),
@@ -184,6 +170,7 @@ $language_data = array (
             )
     ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        -2 => false,
         -1 => false,
         0 => false,
         1 => false,
@@ -200,4 +187,4 @@ $language_data = array (
     )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/html5.php b/wp-content/plugins/wp-syntax/geshi/geshi/html5.php
new file mode 100644
index 0000000000000000000000000000000000000000..0d9755945e78a361e09c3bc419468d1889da8c34
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/html5.php
@@ -0,0 +1,212 @@
+<?php
+/*************************************************************************************
+ * html5.php
+ * ---------------
+ * Author: Nigel McNie (nigel@geshi.org)
+ * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2004/07/10
+ *
+ * HTML 5 language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2005/12/28 (1.0.4)
+ *   -  Removed escape character for strings
+ * 2004/11/27 (1.0.3)
+ *   -  Added support for multiple object splitters
+ * 2004/10/27 (1.0.2)
+ *   -  Added support for URLs
+ * 2004/08/05 (1.0.1)
+ *   -  Added INS and DEL
+ *   -  Removed the background colour from tags' styles
+ * 2004/07/14 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2004/11/27)
+ * -------------------------
+ * * Check that only HTML4 strict attributes are highlighted
+ * * Eliminate empty tags that aren't allowed in HTML4 strict
+ * * Split to several files - html4trans, xhtml1 etc
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'HTML5',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        2 => array(
+            'a', 'abbr', 'address', 'article', 'area', 'aside', 'audio',
+
+            'base', 'bdo', 'blockquote', 'body', 'br', 'button', 'b',
+
+            'caption', 'cite', 'code', 'colgroup', 'col', 'canvas', 'command', 'datalist', 'details',
+
+            'dd', 'del', 'dfn', 'div', 'dl', 'dt',
+
+            'em', 'embed',
+
+            'fieldset', 'form', 'figcaption', 'figure', 'footer',
+
+            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html', 'header', 'hgroup',
+
+            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
+
+            'kbd', 'keygen',
+
+            'label', 'legend', 'link', 'li',
+
+            'map', 'meta', 'mark', 'meter',
+
+            'noscript', 'nav',
+
+            'object', 'ol', 'optgroup', 'option', 'output',
+
+            'param', 'pre', 'p', 'progress',
+
+            'q',
+
+            'rp', 'rt', 'ruby',
+
+            'samp', 'script', 'select', 'small', 'span', 'strong', 'style', 'sub', 'sup', 's', 'section', 'source', 'summary',
+
+            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'time',
+
+            'ul',
+
+            'var', 'video',
+
+            'wbr',
+            ),
+        3 => array(
+            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', 'autocomplete', 'autofocus',
+            'background', 'bgcolor', 'border',
+            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', 'contenteditable', 'contextmenu',
+            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', 'draggable', 'dropzone',
+            'enctype',
+            'face', 'for', 'frame', 'frameborder', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget',
+            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', 'hidden',
+            'id', 'ismap',
+            'label', 'lang', 'language', 'link', 'longdesc',
+            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', 'min', 'max',
+            'name', 'nohref', 'noresize', 'noshade', 'nowrap', 'novalidate',
+            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onselect', 'onsubmit', 'onunload', 'onafterprint', 'onbeforeprint', 'onbeforeonload', 'onerror', 'onhaschange', 'onmessage', 'onoffline', 'ononline', 'onpagehide', 'onpageshow', 'onpopstate', 'onredo', 'onresize', 'onstorage', 'onundo', 'oncontextmenu', 'onformchange', 'onforminput', 'oninput', 'oninvalid', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onmousewheel', 'onscroll', 'oncanplay', 'oncanplaythrough', 'ondurationchange', 'onemptied', 'onended', 'onloadeddata', 'onloadedmetadata', 'onloadstart', 'onpause', 'onplay', 'onplaying', 'onprogress', 'onratechange', 'onreadystatechange', 'onseeked', 'onseeking', 'onstalled', 'onsuspend', 'ontimeupdate', 'onvolumechange', 'onwaiting',
+            'profile', 'prompt', 'pattern', 'placeholder',
+            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', 'required',
+            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', 'spellcheck', 'step',
+            'tabindex', 'target', 'text', 'title', 'type',
+            'usemap',
+            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
+            'width'
+            )
+        ),
+    'SYMBOLS' => array(
+        '/', '='
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        2 => false,
+        3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;'
+            ),
+        'COMMENTS' => array(
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'SCRIPT' => array(
+            -2 => 'color: #404040;', // CDATA
+            -1 => 'color: #808080; font-style: italic;', // comments
+            0 => 'color: #00bbdd;',
+            1 => 'color: #ddbb00;',
+            2 => 'color: #009900;'
+            ),
+        'REGEXPS' => array(
+            )
+        ),
+    'URLS' => array(
+        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
+        3 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
+    'SCRIPT_DELIMITERS' => array(
+        -2 => array(
+            '<![CDATA[' => ']]>'
+            ),
+        -1 => array(
+            '<!--' => '-->'
+            ),
+        0 => array(
+            '<!DOCTYPE' => '>'
+            ),
+        1 => array(
+            '&' => ';'
+            ),
+        2 => array(
+            '<' => '>'
+            )
+    ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        -2 => false,
+        -1 => false,
+        0 => false,
+        1 => false,
+        2 => true
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
+                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
+            )
+        )
+    )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/icon.php b/wp-content/plugins/wp-syntax/geshi/geshi/icon.php
index 8852e77a3efa8be1e006d07cf8075e766651cfa0..06383ea5db1299aa0f7df40486e4ec41097fd602 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/icon.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/icon.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Matt Oates (mattoates@gmail.com)
  * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/04/24
  *
  * Icon language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/idl.php b/wp-content/plugins/wp-syntax/geshi/geshi/idl.php
index 5e730274a3afaea0b72b2923c5b096cc49612d80..69bd14ff4fedb4694ba25e3e14ad908ec684f451 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/idl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/idl.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org)
  * Copyright: (c) 2006 Cedric Bosdonnat
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/08/20
  *
  * Unoidl language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ini.php b/wp-content/plugins/wp-syntax/geshi/geshi/ini.php
index 692a1aa7b87161c90e43ac41fd9724a193f68152..8e6ca76dbd08bbb1bd13d8bfd880bb9dc49905fb 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ini.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ini.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br)
  * Copyright: (c) 2005 deguix
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/03/27
  *
  * INI language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/inno.php b/wp-content/plugins/wp-syntax/geshi/geshi/inno.php
index af2aab56520841d4bd14f8e2fd30cd76f337e99c..1e2ee8befbdb890e7d348c6e1205da47294508bb 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/inno.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/inno.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu)
  * Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/07/29
  *
  * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/intercal.php b/wp-content/plugins/wp-syntax/geshi/geshi/intercal.php
index e123dae4cf6874d24734dbdc790d65d04829aa6a..3c81b81cc1e2247038b40fdd8e7f60be726f2e82 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/intercal.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/intercal.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/31
  *
  * INTERCAL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/io.php b/wp-content/plugins/wp-syntax/geshi/geshi/io.php
index b6fcb81ff1083999e9eb2a2c5b7c28f26958fbeb..51fad43a715ee17d058ea5fb1b441d45b0642777 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/io.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/io.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/09/23
  *
  * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/j.php b/wp-content/plugins/wp-syntax/geshi/geshi/j.php
index 184385b32194a9e1f5aa86dd0e5d59082fb19602..5565bb499de70b298b134fd695de6f2977dfcd7b 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/j.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/j.php
@@ -4,13 +4,15 @@
  * --------
  * Author: Ric Sherlock (tikkanz@gmail.com)
  * Copyright: (c) 2009 Ric Sherlock
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/11/10
  *
  * J language file for GeSHi.
  *
  * CHANGES
  * -------
+ *  2010/07/18 (1.0.8.10)
+ *   - Infinity and negative infinity recognized as numbers
  *  2010/03/01 (1.0.8.8)
  *   - Add support for label_xyz. and goto_xyz.
  *   - Fix highlighting of for_i.
@@ -29,7 +31,6 @@
  *  2009/11/12 (1.0.0)
  *   -  First Release
  *
- *
  * TODO (updated 2010/01/27)
  * -------------------------
  *  * combine keyword categories by using conditional regex statement in PARSER CONTROL?
@@ -53,7 +54,7 @@
  *
  ************************************************************************************/
 
-$language_data = array (
+$language_data = array(
     'LANG_NAME' => 'J',
     'COMMENT_SINGLE' => array(),
     'COMMENT_MULTI' => array(),
@@ -69,12 +70,7 @@ $language_data = array (
     'HARDESCAPE' => array("'"),
     'HARDCHAR' => "'",
     'NUMBERS' => array(
-        //Some instances of infinity are not correctly handled by GeSHi NUMBERS currently
-        //There are two solutions labelled "infinity Method A" and "infinity Method B"
-        //infinity Method B - requires following adjustment to line 3349 of geshi.php
-        //   preg_match('#\d#'  becomes  preg_match('#[\d_]#'
-        0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?)(?![\w\.\:])',       //infinity Method A
-        //0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])', //infinity Method B
+        0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])',
         ),
     'KEYWORDS' => array(
         //Control words
@@ -87,40 +83,6 @@ $language_data = array (
         2 => array(
             'm', 'n', 'u', 'v', 'x', 'y'
             ),
-/*
-Commented out for now due to conflicts with Lang Check
-        //Primitives beginning with a symbol (except . or :)
-        6 => array(
-            '=', '&lt;', '&lt;.', '&lt;:',                  //verbs
-            '_:','&gt;', '&gt;.', '&gt;:',
-            '+', '+.', '+:', '*', '*.', '*:', '-', '-.', '-:', '%', '%.', '%:',
-            '^', '^.', '$', '$.', '$:', '~.', '~:', '\|', '|.', '|:',
-            ',', ',.', ',:', ';', ';:', '#', '#.', '#:', '!', '/:', '\:',
-            '[', '[:', ']', '{', '{.', '{:', '{::', '}.', '}:',
-            '&quot;.', '&quot;:', '?', '?.',
-            '~', '\/;', '\\', '/.', '\\.', '}',             //adverbs
-            '^:', ';.', '!.', '!:',                         //conj
-            '&quot;', '`', '`:', '@', '@.', '@:',
-            '&amp;', '&amp;.', '&amp;:', '&amp;.:',
-            '_.',                                           //nouns
-            '=.', '=:',                                     //other
-            ),
-        //Primitives beginning with a letter or number
-        7 => array(
-            'A.', 'c.', 'C.', 'e.', 'E.',                   //verbs
-            'i.', 'i:', 'I.', 'j.', 'L.', 'o.',
-            'p.', 'p..', 'p:', 'q:', 'r.', 's:', 'u:', 'x:',
-            '_9:', '_8:', '_7:', '_6:', '_5:', '_4:', '_3:', '_2:', '_1:',
-            '0:', '1:', '2:', '3:', '4:', '5:', '6:', '7:', '8:', '9:',
-            'b.', 'f.', 'M.', 't.', 't:',                   //adverbs
-            'd.', 'D.', 'D:', 'H.', 'L:', 'S:', 'T.',       //conj
-            'a.', 'a:',                                     //nouns
-            ),
-        //Primitives beginning with symbol . or :
-        8 => array(
-            '..', '.:', '.', ':.', '::', ':',               //conj
-            ),
-*/
         ),
     'SYMBOLS' => array(
         //Punctuation
@@ -132,17 +94,17 @@ Commented out for now due to conflicts with Lang Check
         GESHI_COMMENTS => false,
         1 => true,
         2 => true,
-//        6 => true,
-//        7 => true,
-//        8 => true,
+        //6 => true,
+        //7 => true,
+        //8 => true,
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #0000ff; font-weight: bold;',
             2 => 'color: #0000cc; font-weight: bold;',
-//            6 => 'color: #000000; font-weight: bold;',
-//            7 => 'color: #000000; font-weight: bold;',
-//            8 => 'color: #000000; font-weight: bold;',
+            //6 => 'color: #000000; font-weight: bold;',
+            //7 => 'color: #000000; font-weight: bold;',
+            //8 => 'color: #000000; font-weight: bold;',
             ),
         'COMMENTS' => array(
             1 => 'color: #666666; font-style: italic;',
@@ -171,7 +133,6 @@ Commented out for now due to conflicts with Lang Check
             ),
         'REGEXPS' => array(
             0 => 'color: #0000ff; font-weight: bold;',   //for_xyz. - same as kw1
-            1 => 'color: #009999; font-weight: bold;'    //infinity - same as nu0
             ),
         'SCRIPT' => array(
             )
@@ -179,16 +140,15 @@ Commented out for now due to conflicts with Lang Check
     'URLS' => array(
         1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm',
         2 => '',
-//        6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
-//        7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
-//        8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
+        //6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
+        //7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
+        //8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
         ),
     'REGEXPS' => array(
         0 => '\b(for|goto|label)_[a-zA-Z]\w*\.',   //for_xyz. - should be kw1
-        1 => '\b__?(?![\w\.\:])'                   //infinity - should be nu0
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
@@ -199,6 +159,9 @@ Commented out for now due to conflicts with Lang Check
         'ENABLE_FLAGS' => array(
             'BRACKETS' => GESHI_NEVER,
             ),
+        'NUMBERS' => array(
+            'PRECHECK_RX' => '#[\d_]#',            // underscore is valid number
+            ),
         'KEYWORDS' => array(
             //Control words
             2 => array(
@@ -224,4 +187,4 @@ Commented out for now due to conflicts with Lang Check
         )
 );
 
-?>
\ No newline at end of file
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/java.php b/wp-content/plugins/wp-syntax/geshi/geshi/java.php
index 7fcc2e873f82d5fd5c5223c0300b91369ff683b2..652b8ddd382c1001e7a8f79a8d6b5fb00bcb1525 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/java.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/java.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
@@ -964,7 +964,7 @@ $language_data = array (
     'URLS' => array(
         1 => '',
         2 => '',
-        3 => 'http://www.google.com/search?hl=en&amp;q=allinurl%3A{FNAMEL}+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky',
+        3 => 'http://www.google.com/search?hl=en&amp;q=allinurl%3Adocs.oracle.com+javase+docs+api+{FNAMEL}',
         4 => ''
         ),
     'OOLANG' => true,
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/java5.php b/wp-content/plugins/wp-syntax/geshi/geshi/java5.php
index b51edab58127daa1952ebad4ce57333a4305edb1..af16bd1e63760d779e449959a0e2c8746a6746a0 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/java5.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/java5.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/10
  *
  * Java language file for GeSHi.
@@ -850,169 +850,169 @@ $language_data = array (
         2 => '',
         3 => '',
         4 => '',
-        5 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/applet/{FNAME}.html',
-        6 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/{FNAME}.html',
-        7 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/color/{FNAME}.html',
-        8 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/datatransfer/{FNAME}.html',
-        9 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/dnd/{FNAME}.html',
-        10 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/event/{FNAME}.html',
-        11 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/font/{FNAME}.html',
-        12 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/geom/{FNAME}.html',
-        13 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/{FNAME}.html',
-        14 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/spi/{FNAME}.html',
-        15 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/{FNAME}.html',
-        16 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/renderable/{FNAME}.html',
-        17 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/print/{FNAME}.html',
-        18 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/{FNAME}.html',
-        19 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/beancontext/{FNAME}.html',
-        20 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/io/{FNAME}.html',
-        21 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/{FNAME}.html',
-        22 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/annotation/{FNAME}.html',
-        23 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/instrument/{FNAME}.html',
-        24 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/management/{FNAME}.html',
-        25 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/ref/{FNAME}.html',
-        26 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/reflect/{FNAME}.html',
-        27 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/math/{FNAME}.html',
-        28 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/net/{FNAME}.html',
-        29 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/{FNAME}.html',
-        30 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/{FNAME}.html',
-        31 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/spi/{FNAME}.html',
-        32 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/{FNAME}.html',
-        33 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/spi/{FNAME}.html',
-        34 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/{FNAME}.html',
-        35 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/activation/{FNAME}.html',
-        36 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/dgc/{FNAME}.html',
-        37 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/registry/{FNAME}.html',
-        38 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/server/{FNAME}.html',
-        39 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/{FNAME}.html',
-        40 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/acl/{FNAME}.html',
-        41 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/cert/{FNAME}.html',
-        42 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/interfaces/{FNAME}.html',
-        43 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/spec/{FNAME}.html',
-        44 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/sql/{FNAME}.html',
-        45 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/text/{FNAME}.html',
-        46 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/{FNAME}.html',
-        47 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/{FNAME}.html',
-        48 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/atomic/{FNAME}.html',
-        49 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/locks/{FNAME}.html',
-        50 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/jar/{FNAME}.html',
-        51 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/logging/{FNAME}.html',
-        52 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/prefs/{FNAME}.html',
-        53 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/regex/{FNAME}.html',
-        54 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/zip/{FNAME}.html',
-        55 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/accessibility/{FNAME}.html',
-        56 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/activity/{FNAME}.html',
-        57 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/{FNAME}.html',
-        58 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/interfaces/{FNAME}.html',
-        59 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/spec/{FNAME}.html',
-        60 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/{FNAME}.html',
-        61 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/event/{FNAME}.html',
-        62 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/metadata/{FNAME}.html',
-        63 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
-        64 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
-        65 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/spi/{FNAME}.html',
-        66 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/stream/{FNAME}.html',
-        67 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/{FNAME}.html',
-        68 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/loading/{FNAME}.html',
-        69 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/modelmbean/{FNAME}.html',
-        70 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/monitor/{FNAME}.html',
-        71 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/openmbean/{FNAME}.html',
-        72 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/relation/{FNAME}.html',
-        73 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/{FNAME}.html',
-        74 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/rmi/{FNAME}.html',
-        75 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/timer/{FNAME}.html',
-        76 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/{FNAME}.html',
-        77 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/directory/{FNAME}.html',
-        78 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/event/{FNAME}.html',
-        79 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/ldap/{FNAME}.html',
-        80 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/spi/{FNAME}.html',
-        81 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/{FNAME}.html',
-        82 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/ssl/{FNAME}.html',
-        83 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/{FNAME}.html',
-        84 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/{FNAME}.html',
-        85 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/standard/{FNAME}.html',
-        86 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/event/{FNAME}.html',
-        87 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/{FNAME}.html',
-        88 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/CORBA/{FNAME}.html',
-        89 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/ssl/{FNAME}.html',
-        90 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/{FNAME}.html',
-        91 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/callback/{FNAME}.html',
-        92 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/kerberos/{FNAME}.html',
-        93 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/login/{FNAME}.html',
-        94 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/spi/{FNAME}.html',
-        95 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/x500/{FNAME}.html',
-        96 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/sasl/{FNAME}.html',
-        97 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/{FNAME}.html',
-        98 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/spi/{FNAME}.html',
-        99 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/{FNAME}.html',
-        100 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/spi/{FNAME}.html',
-        101 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/{FNAME}.html',
-        102 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/{FNAME}.html',
-        103 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/serial/{FNAME}.html',
-        104 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/spi/{FNAME}.html',
-        105 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/{FNAME}.html',
-        106 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/border/{FNAME}.html',
-        107 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/colorchooser/{FNAME}.html',
-        108 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/event/{FNAME}.html',
-        109 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/filechooser/{FNAME}.html',
-        110 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/{FNAME}.html',
-        111 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/basic/{FNAME}.html',
-        112 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/metal/{FNAME}.html',
-        113 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/multi/{FNAME}.html',
-        114 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/synth/{FNAME}.html',
-        115 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/table/{FNAME}.html',
-        116 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/{FNAME}.html',
-        117 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/{FNAME}.html',
-        118 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/parser/{FNAME}.html',
-        119 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/rtf/{FNAME}.html',
-        120 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/tree/{FNAME}.html',
-        121 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/undo/{FNAME}.html',
-        122 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/{FNAME}.html',
-        123 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/xa/{FNAME}.html',
-        124 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/{FNAME}.html',
-        125 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/datatype/{FNAME}.html',
-        126 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/namespace/{FNAME}.html',
-        127 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/parsers/{FNAME}.html',
-        128 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/{FNAME}.html',
-        129 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/dom/{FNAME}.html',
-        130 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/sax/{FNAME}.html',
-        131 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/stream/{FNAME}.html',
-        132 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/validation/{FNAME}.html',
-        133 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/xpath/{FNAME}.html',
-        134 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/ietf/jgss/{FNAME}.html',
-        135 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/{FNAME}.html',
-        136 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
-        137 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
-        138 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/portable/{FNAME}.html',
-        139 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/{FNAME}.html',
-        140 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
-        141 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
-        142 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Dynamic/{FNAME}.html',
-        143 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/{FNAME}.html',
-        144 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
-        145 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
-        146 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/{FNAME}.html',
-        147 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
-        148 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
-        149 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Messaging/{FNAME}.html',
-        150 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
-        151 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
-        152 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/{FNAME}.html',
-        153 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
-        154 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
-        155 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
-        156 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
-        157 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/SendingContext/{FNAME}.html',
-        158 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
-        159 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/{FNAME}.html',
-        160 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
-        161 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/events/{FNAME}.html',
-        162 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/ls/{FNAME}.html',
-        163 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/{FNAME}.html',
-        164 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/ext/{FNAME}.html',
-        165 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/helpers/{FNAME}.html',
+        5 => 'http://docs.oracle.com/javase/7/docs/api/java/applet/{FNAME}.html',
+        6 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/{FNAME}.html',
+        7 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/color/{FNAME}.html',
+        8 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/datatransfer/{FNAME}.html',
+        9 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/dnd/{FNAME}.html',
+        10 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/event/{FNAME}.html',
+        11 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/font/{FNAME}.html',
+        12 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/geom/{FNAME}.html',
+        13 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/{FNAME}.html',
+        14 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/spi/{FNAME}.html',
+        15 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/{FNAME}.html',
+        16 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/renderable/{FNAME}.html',
+        17 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/print/{FNAME}.html',
+        18 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/{FNAME}.html',
+        19 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/beancontext/{FNAME}.html',
+        20 => 'http://docs.oracle.com/javase/7/docs/api/java/io/{FNAME}.html',
+        21 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/{FNAME}.html',
+        22 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/{FNAME}.html',
+        23 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/{FNAME}.html',
+        24 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/management/{FNAME}.html',
+        25 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/ref/{FNAME}.html',
+        26 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/{FNAME}.html',
+        27 => 'http://docs.oracle.com/javase/7/docs/api/java/math/{FNAME}.html',
+        28 => 'http://docs.oracle.com/javase/7/docs/api/java/net/{FNAME}.html',
+        29 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/{FNAME}.html',
+        30 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/{FNAME}.html',
+        31 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/spi/{FNAME}.html',
+        32 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/{FNAME}.html',
+        33 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/spi/{FNAME}.html',
+        34 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/{FNAME}.html',
+        35 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/activation/{FNAME}.html',
+        36 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/dgc/{FNAME}.html',
+        37 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/registry/{FNAME}.html',
+        38 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/server/{FNAME}.html',
+        39 => 'http://docs.oracle.com/javase/7/docs/api/java/security/{FNAME}.html',
+        40 => 'http://docs.oracle.com/javase/7/docs/api/java/security/acl/{FNAME}.html',
+        41 => 'http://docs.oracle.com/javase/7/docs/api/java/security/cert/{FNAME}.html',
+        42 => 'http://docs.oracle.com/javase/7/docs/api/java/security/interfaces/{FNAME}.html',
+        43 => 'http://docs.oracle.com/javase/7/docs/api/java/security/spec/{FNAME}.html',
+        44 => 'http://docs.oracle.com/javase/7/docs/api/java/sql/{FNAME}.html',
+        45 => 'http://docs.oracle.com/javase/7/docs/api/java/text/{FNAME}.html',
+        46 => 'http://docs.oracle.com/javase/7/docs/api/java/util/{FNAME}.html',
+        47 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/{FNAME}.html',
+        48 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/{FNAME}.html',
+        49 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/{FNAME}.html',
+        50 => 'http://docs.oracle.com/javase/7/docs/api/java/util/jar/{FNAME}.html',
+        51 => 'http://docs.oracle.com/javase/7/docs/api/java/util/logging/{FNAME}.html',
+        52 => 'http://docs.oracle.com/javase/7/docs/api/java/util/prefs/{FNAME}.html',
+        53 => 'http://docs.oracle.com/javase/7/docs/api/java/util/regex/{FNAME}.html',
+        54 => 'http://docs.oracle.com/javase/7/docs/api/java/util/zip/{FNAME}.html',
+        55 => 'http://docs.oracle.com/javase/7/docs/api/javax/accessibility/{FNAME}.html',
+        56 => 'http://docs.oracle.com/javase/7/docs/api/javax/activity/{FNAME}.html',
+        57 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/{FNAME}.html',
+        58 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/interfaces/{FNAME}.html',
+        59 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/{FNAME}.html',
+        60 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/{FNAME}.html',
+        61 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/event/{FNAME}.html',
+        62 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/metadata/{FNAME}.html',
+        63 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
+        64 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
+        65 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/spi/{FNAME}.html',
+        66 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/stream/{FNAME}.html',
+        67 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/{FNAME}.html',
+        68 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/loading/{FNAME}.html',
+        69 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/modelmbean/{FNAME}.html',
+        70 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/monitor/{FNAME}.html',
+        71 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/openmbean/{FNAME}.html',
+        72 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/relation/{FNAME}.html',
+        73 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/{FNAME}.html',
+        74 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/rmi/{FNAME}.html',
+        75 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/timer/{FNAME}.html',
+        76 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/{FNAME}.html',
+        77 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/directory/{FNAME}.html',
+        78 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/event/{FNAME}.html',
+        79 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/ldap/{FNAME}.html',
+        80 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/{FNAME}.html',
+        81 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/{FNAME}.html',
+        82 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/{FNAME}.html',
+        83 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/{FNAME}.html',
+        84 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/{FNAME}.html',
+        85 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/standard/{FNAME}.html',
+        86 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/event/{FNAME}.html',
+        87 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/{FNAME}.html',
+        88 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/CORBA/{FNAME}.html',
+        89 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/ssl/{FNAME}.html',
+        90 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/{FNAME}.html',
+        91 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/callback/{FNAME}.html',
+        92 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/kerberos/{FNAME}.html',
+        93 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/login/{FNAME}.html',
+        94 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/spi/{FNAME}.html',
+        95 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/x500/{FNAME}.html',
+        96 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/{FNAME}.html',
+        97 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/{FNAME}.html',
+        98 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/spi/{FNAME}.html',
+        99 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/{FNAME}.html',
+        100 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/spi/{FNAME}.html',
+        101 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/{FNAME}.html',
+        102 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/{FNAME}.html',
+        103 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/serial/{FNAME}.html',
+        104 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/spi/{FNAME}.html',
+        105 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/{FNAME}.html',
+        106 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/border/{FNAME}.html',
+        107 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/colorchooser/{FNAME}.html',
+        108 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/event/{FNAME}.html',
+        109 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/{FNAME}.html',
+        110 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/{FNAME}.html',
+        111 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/{FNAME}.html',
+        112 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/metal/{FNAME}.html',
+        113 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/multi/{FNAME}.html',
+        114 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/synth/{FNAME}.html',
+        115 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/table/{FNAME}.html',
+        116 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/{FNAME}.html',
+        117 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/{FNAME}.html',
+        118 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/{FNAME}.html',
+        119 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/rtf/{FNAME}.html',
+        120 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/{FNAME}.html',
+        121 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/undo/{FNAME}.html',
+        122 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/{FNAME}.html',
+        123 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/xa/{FNAME}.html',
+        124 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/{FNAME}.html',
+        125 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/{FNAME}.html',
+        126 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/namespace/{FNAME}.html',
+        127 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/{FNAME}.html',
+        128 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/{FNAME}.html',
+        129 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/dom/{FNAME}.html',
+        130 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/sax/{FNAME}.html',
+        131 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/{FNAME}.html',
+        132 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/validation/{FNAME}.html',
+        133 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/xpath/{FNAME}.html',
+        134 => 'http://docs.oracle.com/javase/7/docs/api/org/ietf/jgss/{FNAME}.html',
+        135 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/{FNAME}.html',
+        136 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
+        137 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
+        138 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/portable/{FNAME}.html',
+        139 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/{FNAME}.html',
+        140 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
+        141 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
+        142 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Dynamic/{FNAME}.html',
+        143 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/{FNAME}.html',
+        144 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
+        145 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
+        146 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/{FNAME}.html',
+        147 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
+        148 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
+        149 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Messaging/{FNAME}.html',
+        150 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
+        151 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
+        152 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/{FNAME}.html',
+        153 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
+        154 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
+        155 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
+        156 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
+        157 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/SendingContext/{FNAME}.html',
+        158 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
+        159 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/{FNAME}.html',
+        160 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
+        161 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/events/{FNAME}.html',
+        162 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/ls/{FNAME}.html',
+        163 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/{FNAME}.html',
+        164 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/ext/{FNAME}.html',
+        165 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/{FNAME}.html',
         /* ambiguous class names (appear in more than one package) */
-        166 => 'http://www.google.com/search?sitesearch=java.sun.com&amp;q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}'
+        166 => 'http://www.google.com/search?sitesearch=docs.oracle.com&amp;q=allinurl%3Ajavase+docs+api+{FNAME}'
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
@@ -1034,4 +1034,4 @@ $language_data = array (
         )
 );
 
-?>
\ No newline at end of file
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/javascript.php b/wp-content/plugins/wp-syntax/geshi/geshi/javascript.php
index f250e50c90696c72f5fa814a240cc95d8343af1e..b96d1b5b6f69c00ccac205b6609552280fde16b3 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/javascript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/javascript.php
@@ -4,13 +4,15 @@
  * --------------
  * Author: Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/20
  *
  * JavaScript language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2012/06/27 (1.0.8.11)
+ *  -  Reordered Keyword Groups to reflect syntactical meaning of keywords
  * 2008/05/23 (1.0.7.22)
  *  -  Added description of extra language features (SF#1970248)
  * 2004/11/27 (1.0.1)
@@ -45,30 +47,47 @@ $language_data = array (
     'LANG_NAME' => 'Javascript',
     'COMMENT_SINGLE' => array(1 => '//'),
     'COMMENT_MULTI' => array('/*' => '*/'),
-    //Regular Expressions
-    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
+    'COMMENT_REGEXP' => array(
+        //Regular Expressions
+        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU"
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '\\',
     'KEYWORDS' => array(
         1 => array(
-            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
-            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
-            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
-            'while', 'write', 'with'
+            //reserved/keywords; also some non-reserved keywords
+            'break','case','catch','const','continue',
+            'default','delete','do',
+            'else',
+            'finally','for','function',
+            'get','goto',
+            'if','in','instanceof',
+            'new',
+            'prototype',
+            'return',
+            'set','static','switch',
+            'this','throw','try','typeof',
+            'var','void'
             ),
         2 => array(
-            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
-            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
-            'protected', 'public', 'super', 'true', 'use', 'var'
+            //reserved/non-keywords; metaconstants
+            'false','null','true','undefined','NaN','Infinity'
             ),
         3 => array(
-            // common functions for Window object
-            'alert', 'back', 'blur', 'close', 'confirm', 'focus', 'forward', 'home',
-            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
-            'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'status',
-            'stop',
-            )
+            //magic properties/functions
+            '__proto__','__defineGetter__','__defineSetter__','hasOwnProperty','hasProperty'
+            ),
+        4 => array(
+            //type constructors
+            'Object', 'Function', 'Date', 'Math', 'String', 'Number', 'Boolean', 'Array'
+            ),
+        5 => array(
+            //reserved, but invalid in language
+            'abstract','boolean','byte','char','class','debugger','double','enum','export','extends',
+            'final','float','implements','import','int','interface','long','native',
+            'short','super','synchronized','throws','transient','volatile'
+            ),
         ),
     'SYMBOLS' => array(
         '(', ')', '[', ']', '{', '}',
@@ -79,15 +98,18 @@ $language_data = array (
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => false,
-        2 => false,
-        3 => false
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #000066; font-weight: bold;',
             2 => 'color: #003366; font-weight: bold;',
-            3 => 'color: #000066;'
+            3 => 'color: #000066;',
+            5 => 'color: #FF0000;'
             ),
         'COMMENTS' => array(
             1 => 'color: #006600; font-style: italic;',
@@ -124,8 +146,10 @@ $language_data = array (
     'URLS' => array(
         1 => '',
         2 => '',
-        3 => ''
-        ),
+        3 => '',
+        4 => '',
+        5 => ''
+    ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
         1 => '.'
@@ -147,4 +171,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/jquery.php b/wp-content/plugins/wp-syntax/geshi/geshi/jquery.php
index bd7cd5c31471984b2846f80a57e58236cd463b87..a75320d5c3050c300bff4b386dc22bec987b0e49 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/jquery.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/jquery.php
@@ -4,7 +4,7 @@
  * --------------
  * Author: Rob Loach (http://www.robloach.net)
  * Copyright: (c) 2009 Rob Loach (http://www.robloach.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/07/20
  *
  * jQuery 1.3 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/kixtart.php b/wp-content/plugins/wp-syntax/geshi/geshi/kixtart.php
index e2d71746cd38bb4c0c2495d5117fd9be7a32aff5..5b90919892e391a2c31504c322c784042133d3b7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/kixtart.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/kixtart.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Riley McArdle (riley@glyff.net)
  * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/08/31
  *
  * PHP language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/klonec.php b/wp-content/plugins/wp-syntax/geshi/geshi/klonec.php
index 9a33499b59d9e1341d61c59d2e41526cb108fb6c..5f86e78dca32c0344848825c1bce1def2e0e155d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/klonec.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/klonec.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/04/16
  *
  * KLone with C language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/klonecpp.php b/wp-content/plugins/wp-syntax/geshi/geshi/klonecpp.php
index 9018b78129ae6020e6eecfd32ab5fbc0a964adad..6564c6b7b805d32de3d28325295b47ee4be140c1 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/klonecpp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/klonecpp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: AUGER Mickael
  * Copyright: Synchronic
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/04/16
  *
  * KLone with C++ language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/latex.php b/wp-content/plugins/wp-syntax/geshi/geshi/latex.php
index 51ca73fe64d4545f19be33c0816689fdd6904f9d..386a0b98948141cfd2edffa71ec009135819e4e2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/latex.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/latex.php
@@ -4,7 +4,7 @@
  * -----
  * Author: efi, Matthias Pospiech (matthias@pospiech.eu)
  * Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/09/23
  *
  * LaTeX language file for GeSHi.
@@ -67,7 +67,7 @@ $language_data = array (
             'colorbox','date','dedication','def','definecolor','documentclass',
             'edef','else','email','emph','eqref','extratitle','fbox','fi',
             'flushleft','flushright','footnote','frac','frontmatter',
-            'graphicspath','hfill','hline','hspace','huge','ifx','include',
+            'graphicspath','hfil','hfill','hfilll','hline','hspace','huge','ifx','include',
             'includegraphics','infty','input','int','item','itemsep',
             'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits',
             'listfiles','listoffigures','listoftables','lowertitleback',
@@ -81,7 +81,7 @@ $language_data = array (
             'table','tableofcontents','textbf','textcolor','textit',
             'textnormal','textsuperscript','texttt','textwidth','thanks','title',
             'titlehead','today','ttfamily','uppertitleback','urlstyle',
-            'usepackage','vspace'
+            'usepackage','vfil','vfill','vfilll','vspace'
             )
         ),
     'SYMBOLS' => array(
@@ -185,7 +185,7 @@ $language_data = array (
         8 => "\\\\(?:end|begin)(?=[^a-zA-Z])",
         // {parameters}
         9 => array(
-            GESHI_SEARCH => "(?<=\\{)(?!<\|!REG3XP5!>).*(?=\\})",
+            GESHI_SEARCH => "(?<=\\{)(?!<\|!REG3XP5!>).*?(?=\\})",
             GESHI_REPLACE => '\0',
             GESHI_MODIFIERS => 'Us',
             GESHI_BEFORE => '',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lb.php b/wp-content/plugins/wp-syntax/geshi/geshi/lb.php
index 6c93268a1788af4fd85cc777a0d5054919dd3d12..6c2882894caa412413d625c54b732d6f9803c970 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lb.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lb.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Chris Iverson (cj.no.one@gmail.com)
  * Copyright: (c) 2010 Chris Iverson
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/07/18
  *
  * Liberty BASIC language file for GeSHi.
@@ -14,7 +14,10 @@
  * 2010/07/22
  *  -  First Release
  *
- * TODO (updated 2010/07/22)
+ * 2010/08/23
+ *  -  Added missing default variables
+ *
+ * TODO (updated 2010/07/20)
  * -------------------------
  * Prevent highlighting numbers in handle names(constants beginning with #)
  * Allow number highlighting after a single period(e.g.  .9 = 0.9, should be
@@ -80,12 +83,13 @@ $language_data = array(
             'winstring', 'word$'
             ),
         3 => array(
-            'BackgroundColor$', 'ComboboxColor$', 'CommandLine$', 'DefaultDir$',
+            'BackgroundColor$', 'Com', 'ComboboxColor$', 'ComError', 'ComErrorNumber',
+            'CommandLine$', 'ComPortNumber', 'DefaultDir$',
             'DisplayHeight', 'DisplayWidth', 'Drives$', 'Err', 'Err$',
             'ForegroundColor$', 'Inkey$', 'Joy1x', 'Joy1y', 'Joy1z',
             'Joy1button1', 'Joy1button2', 'Joy2x', 'Joy2y', 'Joy2z',
-            'Joy2button1', 'Joy2button2', 'ListboxColor$', 'Platform$',
-            'PrintCollate', 'PrintCopies', 'PrinterFont$', 'PrinterName$',
+            'Joy2button1', 'Joy2button2', 'ListboxColor$', 'MouseX', 'MouseY', 'Platform$',
+            'PrintCollate', 'PrintCopies', 'PrinterFont$', 'PrinterName$', 'StartupDir$',
             'TextboxColor$', 'TexteditorColor$', 'Version$', 'WindowHeight',
             'WindowWidth', 'UpperLeftX', 'UpperLeftY'
             )
@@ -150,9 +154,9 @@ $language_data = array(
                 //and their names should not be highlighted unless being used
                 //as a function name.
                 'DISALLOWED_AFTER' => '(?=\s*\()'
+                )
             )
         )
-    )
 );
 
 ?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ldif.php b/wp-content/plugins/wp-syntax/geshi/geshi/ldif.php
new file mode 100644
index 0000000000000000000000000000000000000000..424818380296d016f69ebda97b04177327f9f641
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ldif.php
@@ -0,0 +1,116 @@
+<?php
+/*************************************************************************************
+ * ldif.php
+ * --------
+ * Author: Bruno Harbulot (Bruno.Harbulot@manchester.ac.uk)
+ * Copyright: (c) 2005 deguix, (c) 2010 Bruno Harbulot
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/03/01
+ *
+ * LDIF language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2010/03/01 (1.0.8.11)
+ *   -  First Release
+ *   -  Derived from ini.php (INI language), (c) 2005 deguix
+ *
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'LDIF',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        ),
+    'SYMBOLS' => array(
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+            ),
+        'BRACKETS' => array(
+            0 => ''
+            ),
+        'STRINGS' => array(
+            0 => 'color: #933;'
+            ),
+        'NUMBERS' => array(
+            0 => ''
+            ),
+        'METHODS' => array(
+            0 => ''
+            ),
+        'SYMBOLS' => array(
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #000066; font-weight: bold;',
+            1 => 'color: #FF0000;'
+            ),
+        'SCRIPT' => array(
+            0 => ''
+            )
+        ),
+    'URLS' => array(
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        0 => array(
+            GESHI_SEARCH => '([a-zA-Z0-9_]+):(.+)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ':\\2'
+            ),
+        1 => array(
+            // Evil hackery to get around GeSHi bug: <>" and ; are added so <span>s can be matched
+            // Explicit match on variable names because if a comment is before the first < of the span
+            // gets chewed up...
+            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+):(.+)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1:',
+            GESHI_AFTER => ''
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lisp.php b/wp-content/plugins/wp-syntax/geshi/geshi/lisp.php
index c80ce23eef04f482ea8128b0f24ccce2e42a3bec..be823a4052006482e1db83da986a764c27fea0b2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lisp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lisp.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * Generic Lisp language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/llvm.php b/wp-content/plugins/wp-syntax/geshi/geshi/llvm.php
new file mode 100644
index 0000000000000000000000000000000000000000..580099b52976213dee27dcf623ec4c2f302e39a9
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/llvm.php
@@ -0,0 +1,385 @@
+<?php
+/*************************************************************************************
+ * llvm.php
+ * --------
+ * Author: Benny Baumann (BenBE@geshi.org), Azriel Fasten (azriel.fasten@gmail.com)
+ * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/), Azriel Fasten (azriel.fasten@gmail.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/10/14
+ *
+ * LLVM language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2010/10/14 (1.0.8.10)
+ *  -  First Release
+ *
+ * TODO (updated 2010/10/14)
+ * -------------------------
+ * * Check if all links aren't broken
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'LLVM Intermediate Representation',
+    'COMMENT_SINGLE' => array(1 => ';'),
+    'COMMENT_MULTI' => array(),
+    'HARDQUOTE' => array("\"", "\""),
+    'HARDESCAPE' => array("\"", "\\"),
+    'HARDCHAR' => "\\",
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        // 1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+        //Hexadecimal Char Specs
+        // 2 => "#\\\\x[\da-fA-F]{1,2}#i",
+        //Octal Char Specs
+        // 3 => "#\\\\[0-7]{1,3}#",
+        //String Parsing of Variable Names
+        // 4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
+        //Experimental extension supporting cascaded {${$var}} syntax
+        // 5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
+        //Format String support in ""-Strings
+        // 6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
+        ),
+    'NUMBERS' =>
+    GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        0 => array(
+            'to', 'nuw', 'nsw', 'align', 'inbounds', 'entry', 'return'
+            ),
+        //Terminator Instructions
+        1 => array(
+            'ret', 'br', 'switch', 'indirectbr', 'invoke', 'unwind', 'unreachable'
+            ),
+        //Binary Operations
+        2 => array(
+            'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'frem', 'srem'
+            ),
+        //Bitwise Binary Operations
+        3 => array(
+            'shl', 'lshr', 'ashr', 'and', 'or', 'xor'
+            ),
+        //Vector Operations
+        4 => array(
+            'extractelement', 'insertelement', 'shufflevector'
+            ),
+        //Aggregate Operations
+        5 => array(
+            'extractvalue', 'insertvalue'
+            ),
+        //Memory Access and Addressing Operations
+        6 => array(
+            'alloca', 'load', 'store', 'getelementptr'
+            ),
+        //Conversion Operations
+        7 => array(
+            'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'fptoui', 'fptosi',
+            'uitofp', 'sitofp', 'ptrtoint', 'inttoptr', 'bitcast'
+            ),
+        //Other Operations
+        8 => array(
+            'icmp', 'fcmp', 'phi', 'select', 'call', 'va_arg'
+            ),
+        //Linkage Types
+        9 => array(
+            'private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto',
+            'internal', 'available_externally', 'linkonce', 'common', 'weak', 'appending',
+            'extern_weak', 'linkonce_odr', 'weak_odr', 'externally visible', 'dllimport', 'dllexport',
+            ),
+        //Calling Conventions
+        10 => array(
+            'ccc', 'fastcc', 'coldcc', 'cc 10'
+            ),
+        //Named Types
+        11 => array(
+            'type'
+            ),
+        //Parameter Attributes
+        12 => array(
+            'zeroext', 'signext', 'inreg', 'byval', 'sret', 'noalias', 'nocapture', 'nest'
+            ),
+        //Function Attributes
+        13 => array(
+            'alignstack', 'alwaysinline', 'inlinehint', 'naked', 'noimplicitfloat', 'noinline', 'noredzone', 'noreturn',
+            'nounwind', 'optsize', 'readnone', 'readonly', 'ssp', 'sspreq',
+            ),
+        //Module-Level Inline Assembly
+        14 => array(
+            'module asm'
+            ),
+        //Data Layout
+        15 => array(
+            'target datalayout'
+            ),
+        //Primitive Types
+        16 => array(
+            'x86mmx',
+            'void',
+            'label',
+            'metadata',
+            'opaque'
+            ),
+        //Floating Point Types
+        17 => array(
+            'float', 'double', 'fp128', 'x86_fp80', 'ppc_fp128',
+            ),
+        //Simple Constants
+        18 => array(
+            'false', 'true', 'null'
+            ),
+        //Global Variable and Function Addresses
+        19 => array(
+            'global', 'addrspace', 'constant', 'section'
+            ),
+        //Functions
+        20 => array(
+            'declare', 'define'
+            ),
+        //Complex Constants
+        21 => array(
+            'zeroinitializer'
+            ),
+        //Undefined Values
+        22 => array(
+            'undef'
+            ),
+        //Addresses of Basic Blocks
+        23 => array(
+            'blockaddress'
+            ),
+        //Visibility Styles
+        24 => array(
+            'default', 'hidden', 'protected'
+            ),
+        25 => array(
+            'volatile'
+            ),
+        26 => array(
+            'tail'
+            ),
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '(', ')', '[', ']', '{', '}',
+            '!', '@', '%', '&', '|', '/',
+            '<', '>',
+            '=', '-', '+', '*',
+            '.', ':', ',', ';'
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true,
+        10 => true,
+        11 => true,
+        12 => true,
+        13 => true,
+        14 => true,
+        15 => true,
+        16 => true,
+        17 => true,
+        18 => true,
+        19 => true,
+        20 => true,
+        21 => true,
+        22 => true,
+        23 => true,
+        24 => true,
+        25 => true,
+        26 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            0 => 'color: #209090;',
+            1 => 'color: #0000F0;',
+            2 => 'color: #00F000; font-weight: bold;',
+            3 => 'color: #F00000;',
+            4 => 'color: #00F0F0; font-weight: bold;',
+            5 => 'color: #F000F0; font-weight: bold;',
+            6 => 'color: #403020; font-weight: bold;',
+            7 => 'color: #909090; font-weight: bold;',
+            8 => 'color: #009090; font-weight: bold;',
+            9 => 'color: #900090; font-weight: bold;',
+            10 => 'color: #909000; font-weight: bold;',
+            11 => 'color: #000090; font-weight: bold;',
+            12 => 'color: #900000; font-weight: bold;',
+            13 => 'color: #009000; font-weight: bold;',
+            14 => 'color: #F0F090; font-weight: bold;',
+            15 => 'color: #F090F0; font-weight: bold;',
+            16 => 'color: #90F0F0; font-weight: bold;',
+            17 => 'color: #9090F0; font-weight: bold;',
+            18 => 'color: #90F090; font-weight: bold;',
+            19 => 'color: #F09090; font-weight: bold;',
+            20 => 'color: #4040F0; font-weight: bold;',
+            21 => 'color: #40F040; font-weight: bold;',
+            22 => 'color: #F04040; font-weight: bold;',
+            23 => 'color: #F0F040; font-weight: bold;',
+            24 => 'color: #F040F0; font-weight: bold;',
+            25 => 'color: #40F0F0; font-weight: bold;',
+            26 => 'color: #904040; font-weight: bold;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #006699; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold; font-style: italic;',
+            6 => 'color: #009933; font-weight: bold;',
+            'HARD' => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #0000ff;',
+            'HARD' => 'color: #0000ff;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            ),
+        'METHODS' => array(
+            1 => 'color: #004000;',
+            2 => 'color: #004000;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;',
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #007088;',
+            1 => 'color: #007088;',
+            // 2 => 'color: #000088;',
+            3 => 'color: #700088;',
+            4 => 'color: #010088;',
+            // 5 => 'color: #610088;',
+            // 6 => 'color: #616088;',
+            // 7 => 'color: #616988;',
+            // 8 => 'color: #616908;',
+            9 => 'color: #6109F8;',
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            1 => '',
+            2 => '',
+            3 => '',
+            4 => '',
+            5 => ''
+            )
+        ),
+    'URLS' => array(
+        0 => '',
+        1 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        2 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        3 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        4 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        5 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        6 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        7 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        8 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
+        9 => 'http://llvm.org/docs/LangRef.html#linkage_{FNAME}',
+        10 => 'http://llvm.org/docs/LangRef.html#callingconv',
+        11 => 'http://llvm.org/docs/LangRef.html#namedtypes',
+        12 => 'http://llvm.org/docs/LangRef.html#paramattrs',
+        13 => 'http://llvm.org/docs/LangRef.html#fnattrs',
+        14 => 'http://llvm.org/docs/LangRef.html#moduleasm',
+        15 => 'http://llvm.org/docs/LangRef.html#datalayout',
+        16 => 'http://llvm.org/docs/LangRef.html#t_{FNAME}',
+        17 => 'http://llvm.org/docs/LangRef.html#t_floating',
+        18 => 'http://llvm.org/docs/LangRef.html#simpleconstants',
+        19 => 'http://llvm.org/docs/LangRef.html#globalvars',
+        20 => 'http://llvm.org/docs/LangRef.html#functionstructure',
+        21 => 'http://llvm.org/docs/LangRef.html#complexconstants',
+        22 => 'http://llvm.org/docs/LangRef.html#undefvalues',
+        23 => 'http://llvm.org/docs/LangRef.html#blockaddress',
+        24 => 'http://llvm.org/docs/LangRef.html#visibility',
+        25 => 'http://llvm.org/docs/LangRef.html#volatile',
+        26 => 'http://llvm.org/docs/LangRef.html#i_call',
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        //Variables
+        0 => '%[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
+        //Labels
+        // 1 => '[-a-zA-Z$\._0-9]+:',
+        1 => '(?<!\w)[\-\w\$\.]+:(?![^">]*<)',
+        //Strings
+        // 2 => '"[^"]+"',
+        //Unnamed variable slots
+        3 => '%[-]?[0-9]+',
+        //Integer Types
+        4 => array(
+            GESHI_SEARCH => '(?<!\w)i\d+(?!\w)',
+            GESHI_REPLACE => '\\0',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '<a href="http://llvm.org/docs/LangRef.html#t_integer">',
+            GESHI_AFTER => '</a>'
+            ),
+        //Comments
+        // 5 => ';.*',
+        //Integer literals
+        // 6 => '\\b[-]?[0-9]+\\b',
+        //Floating point constants
+        // 7 => '\\b[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?\\b',
+        //Hex constants
+        // 8 => '\\b0x[0-9A-Fa-f]+\\b',
+        //Global variables
+        9 => array(
+            GESHI_SEARCH => '@[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
+            GESHI_REPLACE => '\\0',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '<a href="http://llvm.org/docs/LangRef.html#globalvars">',
+            GESHI_AFTER => '</a>'
+            ),
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true
+        ),
+    'SCRIPT_DELIMITERS' => array(),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/locobasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/locobasic.php
index 1bc88c8b4a0519146039fb166e078afc3cbfbf61..61c8a3c8341dbb706d9e2b36eb27d24acc3f5605 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/locobasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/locobasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Nacho Cabanes
  * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/03/22
  *
  * Locomotive Basic (Amstrad CPC series) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/logtalk.php b/wp-content/plugins/wp-syntax/geshi/geshi/logtalk.php
index 90355ff0b02ffd05624d0fb8521d8c89e17f7822..05734663e04b405162c075209bdfde169e407a20 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/logtalk.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/logtalk.php
@@ -4,14 +4,25 @@
  * -----------
  *
  * Author: Paulo Moura (pmoura@logtalk.org)
- * Copyright: (c) 2009 Paulo Moura (http://logtalk.org/)
- * Release Version: 1.0.8.9
+ * Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/24
  *
  * Logtalk language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2011/01/18 (1.1.4)
+ *  -  Added syntax coloring of ignore/1
+ * 2010/11/28 (1.1.3)
+ *  -  Added syntax coloring of conforms_to_protocol/2-3
+ * 2010/09/14 (1.1.2)
+ *  -  Added syntax coloring of coinductive/1
+ * 2010/06/23 (1.1.1)
+ *  -  Added syntax coloring of e/0 and pi/0
+ *  -  Added syntax coloring of ground/1, numbervars/3, keysort/2, and sort/2
+ * 2010/05/15 (1.1.0)
+ *  -  Added syntax coloring of callable/1 and compare/3
  * 2009/10/28 (1.0.0)
  *  -  First Release
  *
@@ -76,7 +87,7 @@ $language_data = array(
             // entity directives
             'calls', 'initialization', 'op', 'uses',
             // predicate directives
-            'alias', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
+            'alias', 'coinductive', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
             // module directives
             'export', 'module', 'reexport', 'use_module'
             ),
@@ -111,7 +122,7 @@ $language_data = array(
             'current_category', 'current_object', 'current_protocol',
             'category_property', 'object_property', 'protocol_property',
             // entity relations
-            'complements_object',
+            'complements_object', 'conforms_to_protocol',
             'extends_category', 'extends_object', 'extends_protocol',
             'implements_protocol', 'imports_category',
             'instantiates_class', 'specializes_class',
@@ -125,7 +136,7 @@ $language_data = array(
             // database
             'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall',
             // control
-            'call', 'catch', 'once', 'throw',
+            'call', 'catch', 'ignore', 'once', 'throw',
             // all solutions predicates
             'bagof', 'findall', 'forall', 'setof',
             // multi-threading meta-predicates
@@ -139,9 +150,11 @@ $language_data = array(
             'number_chars', 'number_codes',
             'char_code',
             // term creation and decomposition
-            'arg', 'copy_term', 'functor',
+            'arg', 'copy_term', 'functor', 'numbervars',
             // term testing
-            'atom', 'atomic', 'compound', 'float', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
+            'atom', 'atomic', 'callable', 'compound', 'float', 'ground', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
+            // term comparison
+            'compare',
             // stream selection and control
             'current_input', 'current_output', 'set_input', 'set_output',
             'open', 'close', 'flush_output', 'stream_property',
@@ -156,8 +169,10 @@ $language_data = array(
             'write', 'writeq', 'write_canonical', 'write_term',
             'read', 'read_term',
             'char_conversion', 'current_char_conversion',
-            //
-            'halt'
+            // hooks
+            'halt',
+            // sorting
+            'keysort', 'sort'
             ),
         // Built-in predicates (no arguments)
         5 => array(
@@ -180,7 +195,7 @@ $language_data = array(
             ),
         // Evaluable functors (no arguments)
         7 => array(
-            'mod', 'rem'
+            'e', 'pi', 'mod', 'rem'
             ),
         ),
     'SYMBOLS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lolcode.php b/wp-content/plugins/wp-syntax/geshi/geshi/lolcode.php
index f161ff3e43409012ec8b6c01e9295475a7b8b607..ab6088b187c5ada92daa22937128caa94d679852 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lolcode.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lolcode.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/31
  *
  * LOLcode language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lotusformulas.php b/wp-content/plugins/wp-syntax/geshi/geshi/lotusformulas.php
index 6542375fb683505d25fbfd1df030cb57fe475b81..12257d74882079b37a0f14cbacd7a01d92b4a5ec 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lotusformulas.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lotusformulas.php
@@ -4,7 +4,7 @@
  * ------------------------
  * Author: Richard Civil (info@richardcivil.net)
  * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/04/12
  *
  * @Formula/@Command language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lotusscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/lotusscript.php
index 412e6e4ab110b768b9cd0cbb044b27f95c629a80..b8b65f206e9d209908e7a043134d9c4ea32e9877 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lotusscript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lotusscript.php
@@ -4,7 +4,7 @@
  * ------------------------
  * Author: Richard Civil (info@richardcivil.net)
  * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/04/12
  *
  * LotusScript language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/lscript.php
index fb16d35c3e6f7c86a4ae02b5dd15212607d198d9..298af618c0f525aaa7764a5d10ec51b8f7a835fd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lscript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lscript.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Arendedwinter (admin@arendedwinter.com)
  * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 15/11/2008
  *
  * Lightwave Script language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lsl2.php b/wp-content/plugins/wp-syntax/geshi/geshi/lsl2.php
index 5e50d1f080a61020c45dc0ef38c4fe56b1ab8583..f80cf4f29f4c74c9137368a71a21b7cc956969bd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lsl2.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lsl2.php
@@ -4,7 +4,7 @@
  * --------
  * Author: William Fry (william.fry@nyu.edu)
  * Copyright: (c) 2009 William Fry
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/02/04
  *
  * Linden Scripting Language (LSL2) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/lua.php b/wp-content/plugins/wp-syntax/geshi/geshi/lua.php
index 2d43b84d6962deeb08b193a5f97a7d92caaa0d3a..8a09ba20e8fc9ce1aaf09fbafae1a16fdfb5a15c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/lua.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/lua.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/10
  *
  * LUA language file for GeSHi.
@@ -46,13 +46,29 @@ $language_data = array (
     'LANG_NAME' => 'Lua',
     'COMMENT_SINGLE' => array(1 => "--"),
     'COMMENT_MULTI' => array('--[[' => ']]'),
+    'COMMENT_REGEXP' => array(2 => '/\[(=*)\[.*?\]\1\]/s'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
-    'ESCAPE_CHAR' => '\\',
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[\\\\abfnrtv\'\"]#i",
+        //Octal Char Specs
+        2 => "#\\\\\\d{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F |
+        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
-            'and','break','do','else','elseif','end','false','for','function','if',
-            'in','local','nil','not','or','repeat','return','then','true','until','while',
+            'break','do','else','elseif','end','for','function','if',
+            'local','repeat','return','then','until','while'
+            ),
+        2 => array(
+            'and','in','not','or'
+            ),
+        3 => array(
             '_VERSION','assert','collectgarbage','dofile','error','gcinfo','loadfile','loadstring',
             'print','tonumber','tostring','type','unpack',
             '_ALERT','_ERRORMESSAGE','_INPUT','_PROMPT','_OUTPUT',
@@ -79,37 +95,57 @@ $language_data = array (
             'os.clock','os.date','os.difftime','os.execute','os.exit','os.getenv','os.remove','os.rename',
             'os.setlocale','os.time','os.tmpname',
             'string','table','math','coroutine','io','os','debug'
+            ),
+        4 => array(
+            'nil', 'false', 'true'
+            ),
+        5 => array(
+            'Nil', 'Boolean', 'Number', 'String', 'Userdata', 'Thread', 'Table'
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '=', ';'
+        '+', '-', '*', '/', '%', '^', '#',
+        '==', '~=', '<=', '>=', '<', '>', '=',
+        '(', ')', '{', '}', '[', ']',
+        ';', ':', ',', '.', '..', '...'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
-        1 => true
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #b1b100;'
+            1 => 'color: #aa9900; font-weight: bold;',
+            2 => 'color: #aa9900; font-weight: bold;',
+            3 => 'color: #0000aa;',
+            4 => 'color: #aa9900;',
+            5 => 'color: #aa9900;'
             ),
         'COMMENTS' => array(
             1 => 'color: #808080; font-style: italic;',
+            2 => 'color: #ff0000;',
             'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;'
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #000099; font-weight: bold;'
             ),
         'BRACKETS' => array(
             0 => 'color: #66cc66;'
             ),
         'STRINGS' => array(
-            0 => 'color: #ff0000;'
+            0 => 'color: #ff6666;'
             ),
         'NUMBERS' => array(
             0 => 'color: #cc66cc;'
             ),
         'METHODS' => array(
-            0 => 'color: #b1b100;'
+            0 => 'color: #aa9900;'
             ),
         'SYMBOLS' => array(
             0 => 'color: #66cc66;'
@@ -120,7 +156,11 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => ''
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => ''
         ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/m68k.php b/wp-content/plugins/wp-syntax/geshi/geshi/m68k.php
index 3c0dfc207cb65bb8d0a8a0d331727bb97dca413f..98321577b3c927df37a0889b2bfd0ac83114df5f 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/m68k.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/m68k.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/02/06
  *
  * Motorola 68000 Assembler language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/magiksf.php b/wp-content/plugins/wp-syntax/geshi/geshi/magiksf.php
index 5cb21af47ba0d7de5ec15b2d33a695570e0a1127..612e1603e1e3eb29a5c240ad9812d9fb79bc0a33 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/magiksf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/magiksf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Sjoerd van Leent (svanleent@gmail.com)
  * Copyright: (c) 2010 Sjoerd van Leent
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/02/15
  *
  * MagikSF language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/make.php b/wp-content/plugins/wp-syntax/geshi/geshi/make.php
index fe495838335b68ab753b91ab1c8aa42e721f376f..885fa17653e3b5995092e030fd9887fb177fedd8 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/make.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/make.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Neil Bird <phoenix@fnxweb.com>
  * Copyright: (c) 2008 Neil Bird
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/08/26
  *
  * make language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mapbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/mapbasic.php
index c8cf0e196d6ab5eb56ab232b6a4135053edfa28e..8859c48313859f20436512c0c68e1d76e1c83ab9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mapbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mapbasic.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Tomasz Berus (t.berus@gisodkuchni.pl)
  * Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/11/25
  *
  * MapBasic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/matlab.php b/wp-content/plugins/wp-syntax/geshi/geshi/matlab.php
index 3922f50c878d730338118b59c0875a1867fee6cc..7cdd50e5e81c66773350715f1cb11564831fef7f 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/matlab.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/matlab.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Florian Knorn (floz@gmx.de)
  * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/02/09
  *
  * Matlab M-file language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mirc.php b/wp-content/plugins/wp-syntax/geshi/geshi/mirc.php
index d6d8e294e2b57d8aaf29c11279852bd64e8cbbc4..fa2f307ee19f4200f62a389a232930e35fca6d35 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mirc.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mirc.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com)
  * Copyright: (c) 2006 Alberto de Areba
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/05/29
  *
  * mIRC Scripting language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mmix.php b/wp-content/plugins/wp-syntax/geshi/geshi/mmix.php
index 75b69c2b7efdca4e4030fc323ebcd7ca18eb6c69..60b6e28ceac7b014fc80730934e916d1963d25dd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mmix.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mmix.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/16
  *
  * MMIX Assembler language file for GeSHi.
@@ -41,13 +41,21 @@
 
 $language_data = array (
     'LANG_NAME' => 'MMIX',
-    'COMMENT_SINGLE' => array(1 => ';'),
+    'COMMENT_SINGLE' => array(1 => ';', 2 => '%'),
     'COMMENT_MULTI' => array(),
     //Line address prefix suppression
-    'COMMENT_REGEXP' => array(2 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"),
+    'COMMENT_REGEXP' => array(
+        3 => "/^\s*(?!\s)[^\w].*$/m",
+        4 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '',
+    'NUMBERS' => array(
+        1 => '(?<![\d\$#\w])[\da-fA-F]+(?!\w)',
+        2 => '#[\da-fA-F]+',
+        3 => '\$\d+'
+        ),
     'KEYWORDS' => array(
         /*CPU*/
         1 => array(
@@ -57,54 +65,61 @@ $language_data = array (
             'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV',
             'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM',
             'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH',
-            'INCML','JMP','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT','LDTU',
-            'LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR','NAND',
-            'NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH','ORML',
-            'ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ','POP',
-            'PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
+            'INCML','JMP','LDA','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT',
+            'LDTU','LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR',
+            'NAND','NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH',
+            'ORML','ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ',
+            'POP','PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
             'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU',
             'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT',
             'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD',
             'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN',
             'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ'
             ),
+        2 => array(
+            'BSPEC','BYTE','ESPEC','GREG','IS','LOC','LOCAL','OCTA',
+            'PREFIX','SET','TETRA','WYDE'
+            ),
         /*registers*/
         3 => array(
             'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM',
             'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ',
             'rBB','rTT','rWW','rXX','rYY','rZZ'
             ),
-        /*Directive*/
-        4 => array(
-            ),
-        /*Operands*/
-        5 => array(
-            )
+//        /*Directive*/
+//        4 => array(
+//            ),
+//        /*Operands*/
+//        5 => array(
+//            )
         ),
     'SYMBOLS' => array(
         '[', ']', '(', ')',
         '+', '-', '*', '/', '%',
-        '.', ',', ';', ':'
+        '.', ',', ';', ':',
+        '<<','>>'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => true,
         2 => false,
         3 => true,
-        4 => false,
-        5 => false
+//        4 => false,
+//        5 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #00007f; font-weight: bold;',
             2 => 'color: #0000ff; font-weight: bold;',
             3 => 'color: #00007f;',
-            4 => 'color: #000000; font-weight: bold;',
-            5 => 'color: #000000; font-weight: bold;'
+//            4 => 'color: #000000; font-weight: bold;',
+//            5 => 'color: #000000; font-weight: bold;'
             ),
         'COMMENTS' => array(
             1 => 'color: #666666; font-style: italic;',
-            2 => 'color: #adadad; font-style: italic;',
+            2 => 'color: #666666; font-style: italic;',
+            3 => 'color: #666666; font-style: italic;',
+            4 => 'color: #adadad; font-style: italic;',
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #000099; font-weight: bold;'
@@ -116,7 +131,10 @@ $language_data = array (
             0 => 'color: #7f007f;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #0000ff;'
+            0 => 'color: #0000ff;',
+            1 => 'color: #0000ff;',
+            2 => 'color: #0000ff;',
+            3 => 'color: #00007f;'
             ),
         'METHODS' => array(
             ),
@@ -134,9 +152,10 @@ $language_data = array (
         1 => '',
         2 => '',
         3 => '',
-        4 => '',
-        5 => ''
+//        4 => '',
+//        5 => ''
         ),
+/*
     'NUMBERS' =>
         GESHI_NUMBER_BIN_PREFIX_PERCENT |
         GESHI_NUMBER_BIN_SUFFIX |
@@ -147,6 +166,7 @@ $language_data = array (
         GESHI_NUMBER_FLT_NONSCI |
         GESHI_NUMBER_FLT_NONSCI_F |
         GESHI_NUMBER_FLT_SCI_ZERO,
+*/
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
         ),
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/modula2.php b/wp-content/plugins/wp-syntax/geshi/geshi/modula2.php
index 0e3a9aeacac057b38f70bbd61db0271075d4e973..18508340bf1ed90def3430d035f5e3b2c34ad685 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/modula2.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/modula2.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Benjamin Kowarsch (benjamin@modula2.net)
  * Copyright: (c) 2009 Benjamin Kowarsch (benjamin@modula2.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/11/05
  *
  * Modula-2 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/modula3.php b/wp-content/plugins/wp-syntax/geshi/geshi/modula3.php
index e6a9a07f8d71b52e26006462948ccedae21b97fb..ae08dcf9749fce9c49fc15d1db28775efe23ffa0 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/modula3.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/modula3.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: mbishop (mbishop@esoteriq.org)
  * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/01/21
  *
  * Modula-3 language file for GeSHi.
@@ -50,7 +50,7 @@ $language_data = array (
             'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION',
             'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN',
             'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF',
-            'OR', 'OVERRIDE', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
+            'OR', 'OVERRIDES', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
             'REPEAT', 'RETURN', 'REVEAL', 'ROOT', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE',
             'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH'
             ),
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mpasm.php b/wp-content/plugins/wp-syntax/geshi/geshi/mpasm.php
index e57f2c3f6cee9da86cb4f4735273268e431f6152..f724a9414d1ea4bbd07699de3fcd00c9f4fe9f13 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mpasm.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mpasm.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Bakalex (bakalex@gmail.com)
  * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/12/6
  *
  * Microchip Assembler language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mxml.php b/wp-content/plugins/wp-syntax/geshi/geshi/mxml.php
index fc1c4247103528c6e2b258c8c0d0f87df02219f4..0cc8287a2b1bc67e0baf69e1789a3c09190258aa 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mxml.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mxml.php
@@ -4,7 +4,7 @@
  * -------
  * Author: David Spurr
  * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/10/04
  *
  * MXML language file for GeSHi. Based on the XML file by Nigel McNie
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/mysql.php b/wp-content/plugins/wp-syntax/geshi/geshi/mysql.php
index 873cff3db662eb2568c6f5638e4007dd1ca4e098..507da2d099509376cc9addffb618b41c78e52801 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/mysql.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/mysql.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Marjolein Katsma (marjolein.is.back@gmail.com)
  * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008-12-12
  *
  * MySQL language file for GeSHi.
@@ -74,9 +74,9 @@ $language_data = array (
             // category, or have multiple usage/meanings
             'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY',
             'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL',
-            'CASCADED','CASCADE','CHAIN','CHECK','COLUMNS','COLUMN','COMMENT',
-            'COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL','CONSISTENT',
-            'CONVERT','CREATE','CROSS','DATA','DATABASES',
+            'CASCADED','CASCADE','CHAIN','CHANGE','CHECK','COLUMNS','COLUMN',
+            'COMMENT','COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL',
+            'CONSISTENT','CONVERT','CREATE','CROSS','DATA','DATABASES',
             'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC',
             'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO',
             'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE',
@@ -90,10 +90,10 @@ $language_data = array (
             'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA',
             'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON',
             'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT',
-            'PARTIAL','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE','PURGE',
-            'QUICK','READS SQL DATA','READ','REFERENCES','RELEASE','RENAME',
-            'REPEATABLE','REQUIRE','RESTRICT','RETURNS','REVOKE',
-            'ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
+            'PARTIAL','PARTITION','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE',
+            'PURGE','QUICK','READS SQL DATA','READ','REFERENCES','RELEASE',
+            'RENAME','REORGANIZE','REPEATABLE','REQUIRE','RESTRICT','RETURNS',
+            'REVOKE','ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
             'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE',
             'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT',
             'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS',
@@ -391,15 +391,15 @@ $language_data = array (
             )
         ),
     'URLS' => array(
-        1 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        2 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        3 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        4 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        5 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        6 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        7 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        8 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
-        9 => 'http://search.mysql.com/search?site=refman-%35%31&amp;q={FNAME}',
+        1 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        2 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        3 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        4 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        5 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        6 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        7 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        8 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
+        9 => 'http://search.oracle.com/search/search?group=MySQL&amp;q={FNAME}',
 
         10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
         11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/nagios.php b/wp-content/plugins/wp-syntax/geshi/geshi/nagios.php
new file mode 100644
index 0000000000000000000000000000000000000000..32cbaef9ecb3b7fe1130992fe3d2be55743820f5
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/nagios.php
@@ -0,0 +1,225 @@
+<?php
+/*************************************************************************************
+ * nagios.php
+ * --------
+ * Author: Albéric de Pertat <alberic@depertat.net>
+ * Copyright: (c) 2012 Albéric de Pertat (https://github.com/adepertat/geshi-nagios)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/01/19
+ *
+ * Nagios language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/01/19 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2012/01/19)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'Nagios',
+    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'HARDQUOTE' => array("'", "'"),
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\'',
+    'KEYWORDS' => array(
+        1 => array(
+            'define'
+            ),
+        2 => array(
+            'command', 'contact', 'contactgroup', 'host', 'hostdependency',
+            'hostescalation', 'hostextinfo', 'hostgroup', 'service',
+            'servicedependency', 'serviceescalation',
+            'serviceextinfo', 'servicegroup', 'timeperiod'
+            ),
+        3 => array(
+            'active_checks_enabled', 'passive_checks_enabled', 'alias',
+            'display_name', 'host_name', 'address', 'hostgroups', 'parents',
+            'hostgroup_members', 'members', 'service_description',
+            'servicegroups', 'is_volatile', 'servicegroup_name',
+            'servicegroup_members', 'contact_name', 'contactgroups', 'email',
+            'pager', 'can_submit_commands', 'contactgroup_name',
+            'contactgroup_members', 'host_notifications_enabled',
+            'service_notifications_enabled', 'host_notification_period',
+            'service_notification_period', 'host_notification_options',
+            'service_notification_options', 'host_notification_commands',
+            'service_notification_commands', 'check_command',
+            'check_freshness', 'check_interval', 'check_period', 'contacts',
+            'contact_groups', 'event_handler', 'event_handler_enabled',
+            'flap_detection_enabled', 'flap_detection_options',
+            'freshness_threshold', 'initial_state', 'low_flap_threshold',
+            'high_flap_threshold', 'max_check_attempts',
+            'notification_interval', 'first_notification_delay',
+            'notification_period', 'notification_options',
+            'notifications_enabled', 'stalking_options', 'notes', 'notes_url',
+            'action_url', 'icon_image', 'icon_image_alt', 'vrml_image',
+            'statusmap_image', '2d_coords', '3d_coords', 'obsess_over_host',
+            'obsess_over_hostver_service', 'process_perf_data',
+            'retain_status_information', 'retain_nonstatus_information',
+            'retry_interval', 'register', 'use', 'name', 'timeperiod_name',
+            'exclude', 'command_name', 'command_line', 'dependent_host_name',
+            'dependent_hostgroup_name', 'dependent_service_description',
+            'inherits_parent', 'execution_failure_criteria',
+            'notification_failure_criteria', 'dependency_period',
+            'first_notification', 'last_notification', 'escalation_period',
+            'escalation_options'
+            ),
+        4 => array(
+            'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday',
+            'sunday', 'january', 'february', 'march', 'april', 'may', 'june',
+            'july', 'august', 'september', 'october', 'november', 'december',
+            'day'
+            )
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '{', '}', ',', '+'
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'font-weight:bold;color:#FFDCA8;',
+            2 => 'font-weight:bold;color #FFA858;',
+            3 => 'font-weight:bold;color:#00C0C0;',
+            4 => 'font-weight:bold;color:#C0C0FF;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'font-weight:bold;color:#000000;'
+            ),
+        'NUMBERS' => array(
+            0 => ''
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #AAAAAA; font-style: italic;',
+            1 => 'color: #AAAAAA; font-style: italic;',
+            2 => 'color: #AAAAAA; font-style: italic;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #660066;',
+            'HARD' => 'color: #660066;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #006600;'
+            ),
+        'REGEXPS' => array(
+            0 => 'font-weight:bold;color:#808080;',
+            1 => 'font-weight:bold;color:#000080;',
+            2 => 'font-weight:bold;color:red;',
+            3 => 'font-weight:bold;color:#808000;',
+            4 => 'font-weight:bold;color:blue;',
+            5 => 'font-weight:bold;color:#C0FFC0;',
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            )
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        1 => '\\'
+        ),
+    'REGEXPS' => array(
+        // Custom macros
+        0 => array(
+            GESHI_SEARCH => '(\$[a-zA-Z_]+\$)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '',
+            ),
+        // Custom macro definitions
+        1 => array(
+            GESHI_SEARCH => '(\A|\s)(_[a-zA-Z_]+)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '',
+            ),
+        // $USERxx$
+        2 => array(
+            GESHI_SEARCH => '(\$USER[0-9]+\$)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '',
+            ),
+        // $ARGxx$
+        3 => array(
+            GESHI_SEARCH => '(\$ARG[1-9]\$)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '',
+            ),
+        // register 0
+        4 => array(
+            GESHI_SEARCH => '(\bregister[\\x20\\t]+[01])',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => '',
+            ),
+        // use
+        5 => array(
+            GESHI_SEARCH => '(use[\\x20\\t]+[^\\x20\\t]+)([\\x20\\t]*[$;#])',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '',
+            ),
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => false
+        ),
+    'TAB_WIDTH' => 4,
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'NUMBERS' => GESHI_NEVER
+            )
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/netrexx.php b/wp-content/plugins/wp-syntax/geshi/geshi/netrexx.php
new file mode 100644
index 0000000000000000000000000000000000000000..14a2d23fddcd4fdd13d0f2b35b5d92ed24084991
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/netrexx.php
@@ -0,0 +1,163 @@
+<?php
+/*************************************************************************************
+ * netrexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ *    - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * NetRexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ *    -  tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ *   -  Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ *      This file is part of GeSHi.
+ *
+ *    GeSHi is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    GeSHi is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with GeSHi; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'NetRexx',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'class', 'do', 'exit', 'if', 'import', 'iterate', 'leave',
+            'loop', 'nop', 'numeric', 'package', 'parse', 'properties',
+            'return', 'say', 'select', 'signal', 'trace'
+            ),
+        2 => array(
+            'abstract', 'adapter', 'all', 'ask', 'binary', 'case',
+            'constant', 'dependent', 'deprecated', 'extends', 'final',
+            'implements', 'inheritable', 'interface', 'label', 'methods',
+            'native', 'off', 'private', 'protect', 'public', 'results',
+            'returns', 'shared', 'signals', 'source', 'static',
+            'transient', 'unused', 'uses', 'version', 'volatile'
+            ),
+        3 => array(
+            'catch', 'else', 'end', 'finally', 'otherwise', 'then', 'when'
+            ),
+        4 => array(
+            'rc', 'result', 'self', 'sigl', 'super'
+            ),
+        5 => array(
+            'placeholderforoorexxdirectives'
+            ),
+        6 => array(
+            'abbrev', 'abs', 'b2x', 'c2d', 'c2x', 'center', 'centre',
+            'changestr', 'compare', 'copies', 'copyindexed', 'countstr',
+            'd2c', 'd2x', 'datatype', 'delstr', 'delword', 'exists',
+            'formword', 'hashcode', 'insert', 'lastpos', 'left', 'lower',
+            'max', 'min', 'noteq', 'noteqs', 'opadd', 'opand', 'opcc',
+            'opccblank', 'opdiv', 'opdivi', 'opeq', 'opeqs', 'opgt',
+            'opgteq', 'opgteqs', 'opgts', 'oplt', 'oplteq', 'oplteqs',
+            'oplts', 'opminus', 'opmult', 'opnot', 'opor', 'opplus',
+            'oppow', 'oprem', 'opsub', 'opxor', 'overlay', 'pos position',
+            'reverse', 'right', 'sequence', 'setdigits', 'setform',
+            'sign', 'space', 'strip', 'substr', 'subword', 'toboolean',
+            'tobyte', 'tochar', 'todouble', 'tofloat', 'toint', 'tolong',
+            'toshort', 'tostring', 'translate', 'trunc', 'upper',
+            'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
+            'words', 'x2b', 'x2c', 'x2d'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
+        '<', '>'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #ff0000; font-weight: bold;',
+            3 => 'color: #00ff00; font-weight: bold;',
+            4 => 'color: #0000ff; font-weight: bold;',
+            5 => 'color: #880088; font-weight: bold;',
+            6 => 'color: #888800; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            'MULTI' => 'color: #808080;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;',
+            2 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/newlisp.php b/wp-content/plugins/wp-syntax/geshi/geshi/newlisp.php
index b2e0f6008e4e98563dc22b24b34b0e878f6938cf..0dc6c16198dddd9c6f4d9a236e0d1f73285ab803 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/newlisp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/newlisp.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: cormullion (cormullion@mac.com) Sept 2009
  * Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/09/30
  *
  * newLISP language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/nsis.php b/wp-content/plugins/wp-syntax/geshi/geshi/nsis.php
index 2079169d6518cd2bb466503a8e718b57a95a558c..35df9b4b8113daf38271420215b734daf7b2055e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/nsis.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/nsis.php
@@ -4,7 +4,7 @@
  * --------
  * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/)
  * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/12/03
  *
  * Nullsoft Scriptable Install System language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oberon2.php b/wp-content/plugins/wp-syntax/geshi/geshi/oberon2.php
index 1fd99e2791bedf4b44022bc3d6730e9f651b210b..b43f8140844256c95970a3dc348e2f20ffdc6cfc 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oberon2.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oberon2.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: mbishop (mbishop@esoteriq.org)
  * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/02/10
  *
  * Oberon-2 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/objc.php b/wp-content/plugins/wp-syntax/geshi/geshi/objc.php
index a6a8b23668d58a47e64e10c47d88b72d578d35ae..2f5162d76f69e000404631905b3d6bf08a74546a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/objc.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/objc.php
@@ -5,7 +5,7 @@
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
  * Contributors: Quinn Taylor (quinntaylor@mac.com)
  * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * Objective-C language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/objeck.php b/wp-content/plugins/wp-syntax/geshi/geshi/objeck.php
index 6bf17de149dd7f8dcf2ed6927ba25c120f905444..bf9dab564750df2d3030c8f759d10c89d52a4db1 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/objeck.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/objeck.php
@@ -4,13 +4,15 @@
  * --------
  * Author: Randy Hollines (objeck@gmail.com)
  * Copyright: (c) 2010 Randy Hollines (http://code.google.com/p/objeck-lang/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/07/01
  *
  * Objeck Programming Language language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2010/07/26 (1.0.8.10)
+ *  -  Added new and missing keywords and symbols: 'String', 'each', '+=', '-=', '*=' and '/='.
  * 2010/07/01 (1.0.8.9)
  *  -  First Release
  *
@@ -45,10 +47,10 @@ $language_data = array(
         1 => array(
             'virtual', 'if', 'else', 'do', 'while', 'use', 'bundle', 'native',
             'static', 'public', 'private', 'class', 'function', 'method',
-            'select', 'other', 'enum', 'for', 'label', 'return', 'from'
+            'select', 'other', 'enum', 'for', 'each', 'label', 'return', 'from'
             ),
         2 => array(
-            'Byte', 'Int', 'Nil', 'Float', 'Char', 'Bool'
+            'Byte', 'Int', 'Nil', 'Float', 'Char', 'Bool', 'String'
             ),
         3 => array(
             'true', 'false'
@@ -56,7 +58,7 @@ $language_data = array(
         ),
     'SYMBOLS' => array(
         1 => array(
-            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '&', '|', ':', ';', ','
+            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '&', '|', ':', ';', ',', '+=', '-=', '*=', '/=',
             )
         ),
     'CASE_SENSITIVE' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ocaml-brief.php b/wp-content/plugins/wp-syntax/geshi/geshi/ocaml-brief.php
index f4503422e3232e54845b5903e8ea92e8016cc6f5..b518adf8775016f46f92410fb5ad7f9284ac73bc 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ocaml-brief.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ocaml-brief.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ocaml.php b/wp-content/plugins/wp-syntax/geshi/geshi/ocaml.php
index 67d8a766a8973d91c81054951cba62821e0a20dd..ac6c29bcc250764072fda923d58558a5caf821af 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ocaml.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ocaml.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Flaie (fireflaie@gmail.com)
  * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/08/27
  *
  * OCaml (Objective Caml) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/octave.php b/wp-content/plugins/wp-syntax/geshi/geshi/octave.php
new file mode 100644
index 0000000000000000000000000000000000000000..ccffcd97aa466070464f06b225428b52d1193ac4
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/octave.php
@@ -0,0 +1,515 @@
+<?php
+/*************************************************************************************
+ * octave.php
+ * -----------
+ * Author: Carnë Draug (carandraug+dev@gmail.com)
+ *         Juan Pablo Carbajal (carbajal@ifi.uzh.ch)
+ * Copyright: (c) 2012 Carnë Draug
+ *            (c) 2012 Juan Pablo Carbajal
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/22
+ *
+ * GNU Octave M-file language file for GeSHi.
+ *
+ * This file was heavily based on octave.lang from gtksourceview. If bugs are
+ * found and/or fixed on this file, please send them to the gtksourceview
+ * project or e-mail them to this file authors. Thanks in advance
+ *
+ * CHANGES
+ * -------
+ * 2012/05/22 (1.0.8.11)
+ *   -  First Release
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'GNU Octave',
+    'COMMENT_SINGLE' => array(1 => '#', 2 => '%'),
+    // we can't use COMMENT_MULTI since start and end of block comments need to
+    // be alone on the line (optionally, with whitespace). See COMMENT_REGEXP
+    'COMMENT_MULTI' => array(),
+    // we can't use QUOTEMARKS, not even HARDQUOTE, see COMMENT_REGEXP
+    'QUOTEMARKS' => array(),
+    'ESCAPE_CHAR' => '',
+    'COMMENT_REGEXP' => array(
+        // Single quote strings: we can't use QUOTEMARKS here since new
+        // lines will break the string. Plus, single quote strings do not even
+        // allow for continuation markers, only double quote strings allow it.
+        // Also, to do not misdetect the transpose operator ' as the start of a
+        // string we assert to not follow a variable name (letters, digits and
+        // underscores) or a closing bracket (round, square or curly) or a dot
+        // (to form the array transpose operator ".'" ).
+        3 => "/(?<![0-9a-zA-Z_\)\]}\.])'.*?'/",
+        // Double quote strings: we also can't use QUOTEMARKS here (see single
+        // line quotes). However, with double quote strings both \ and ... can
+        // be used to make multiline strings. Continuation markers can be
+        // followed by whitespace
+        4 => '/"(.|(\.\.\.|\\\)(\s)*?\n)*?(?<!\\\)"/',
+        // Block comments: the ms modifiers treat strings as multiple lines (to
+        // be able to use ^ and $ instead of newline and thus support block
+        // comments on the first and last line of source) and make . also match
+        // a newline
+        5 => "/^\s*?[%#]{\s*?$.*?^\s*?[%#]}\s*?$/ms",
+        // Packaging system: comes here so that pkg can also be used in the
+        // function form. The list of pkg commands is optional to the match so
+        // that at least pkg is highlighted if new commands are implemented
+        6 => "/\bpkg(?!\s*\()\s+((un)?install|update|(un)?load|list|(global|local)_list|describe|prefix|(re)?build)?\b/",
+        // Function handles
+        7 => "/@([a-z_][a-z1-9_]*)?/i",
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC |
+        GESHI_NUMBER_OCT_PREFIX |
+        GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_SCI_ZERO,
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'KEYWORDS' => array(
+        // Data types
+        1 => array(
+            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
+            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
+            ),
+        // Storage type
+        2 => array(
+            'global', 'persistent', 'static'
+            ),
+        // Internal variable
+        3 => array(
+            'ans'
+            ),
+        // Reserved words
+        4 => array(
+            'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
+            'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
+            'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
+            'if', 'otherwise', 'parfor', 'return',
+            'switch', 'try', 'until', 'unwind_protect',
+            'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
+            ),
+        // Built in
+        5 => array(
+            'P_tmpdir', 'abs', 'acos', 'acosh',
+            'add_input_event_hook', 'addlistener', 'addpath', 'addproperty',
+            'all', 'allow_noninteger_range_as_index', 'and', 'angle', 'any',
+            'arg', 'argnames', 'argv', 'asin', 'asinh', 'assignin', 'atan',
+            'atan2', 'atanh', 'atexit', 'autoload', 'available_graphics_toolkits',
+            'beep_on_error', 'bitand', 'bitmax', 'bitor', 'bitshift', 'bitxor',
+            'builtin', 'canonicalize_file_name', 'cat', 'cbrt', 'cd', 'ceil',
+            'cell2struct', 'cellstr', 'chdir', 'class', 'clc',
+            'clear', 'columns', 'command_line_path', 'completion_append_char',
+            'completion_matches', 'complex', 'confirm_recursive_rmdir', 'conj',
+            'cos', 'cosh', 'cputime', 'crash_dumps_octave_core', 'ctranspose',
+            'cumprod', 'cumsum', 'dbclear', 'dbcont', 'dbdown', 'dbnext',
+            'dbquit', 'dbstack', 'dbstatus', 'dbstep', 'dbstop', 'dbtype', 'dbup',
+            'dbwhere', 'debug_on_error', 'debug_on_interrupt', 'debug_on_warning',
+            'default_save_options', 'dellistener', 'diag', 'diary', 'diff',
+            'disp', 'do_braindead_shortcircuit_evaluation', 'do_string_escapes',
+            'doc_cache_file', 'drawnow', 'dup2', 'echo',
+            'echo_executing_commands', 'edit_history','eq', 'erf', 'erfc',
+            'erfcx', 'erfinv', 'errno', 'errno_list', 'error', 'eval', 'evalin',
+            'exec', 'exist', 'exit', 'exp', 'expm1', 'eye', 'fclear',
+            'fclose', 'fcntl', 'fdisp', 'feof', 'ferror', 'feval', 'fflush',
+            'fgetl', 'fgets', 'fieldnames', 'file_in_loadpath', 'file_in_path',
+            'filemarker', 'filesep', 'find_dir_in_path', 'finite', 'fix',
+            'fixed_point_format', 'floor', 'fmod', 'fnmatch', 'fopen', 'fork',
+            'format', 'formula', 'fprintf', 'fputs', 'fread', 'freport',
+            'frewind', 'fscanf', 'fseek', 'fskipl', 'ftell', 'full', 'func2str',
+            'functions', 'fwrite', 'gamma', 'gammaln', 'ge', 'genpath', 'get',
+            'get_help_text', 'get_help_text_from_file', 'getegid', 'getenv',
+            'geteuid', 'getgid', 'gethostname', 'getpgrp', 'getpid', 'getppid',
+            'getuid', 'glob', 'gt', 'history', 'history_control', 'history_file',
+            'history_size', 'history_timestamp_format_string', 'home', 'horzcat',
+            'hypot', 'ifelse', 'ignore_function_time_stamp', 'imag',
+            'inferiorto', 'info_file', 'info_program', 'inline', 'input',
+            'intmax', 'intmin', 'ipermute',
+            'is_absolute_filename', 'is_dq_string', 'is_function_handle',
+            'is_rooted_relative_filename', 'is_sq_string', 'isalnum', 'isalpha',
+            'isargout', 'isascii', 'isbool', 'iscell', 'iscellstr', 'ischar',
+            'iscntrl', 'iscomplex', 'isdebugmode', 'isdigit', 'isempty',
+            'isfield', 'isfinite', 'isfloat', 'isglobal', 'isgraph', 'ishandle',
+            'isieee', 'isindex', 'isinf', 'isinteger', 'iskeyword', 'islogical',
+            'islower', 'ismatrix', 'ismethod', 'isna', 'isnan', 'isnull',
+            'isnumeric', 'isobject', 'isprint', 'ispunct', 'isreal', 'issorted',
+            'isspace', 'issparse', 'isstruct', 'isupper', 'isvarname', 'isxdigit',
+            'kbhit', 'keyboard', 'kill', 'lasterr', 'lasterror', 'lastwarn',
+            'ldivide', 'le', 'length', 'lgamma', 'link', 'linspace',
+            'list_in_columns', 'load', 'loaded_graphics_toolkits', 'log', 'log10',
+            'log1p', 'log2', 'lower', 'lstat', 'lt',
+            'make_absolute_filename', 'makeinfo_program', 'max_recursion_depth',
+            'merge', 'methods', 'mfilename', 'minus', 'mislocked',
+            'missing_function_hook', 'mkdir', 'mkfifo', 'mkstemp', 'mldivide',
+            'mlock', 'mod', 'more', 'mpower', 'mrdivide', 'mtimes', 'munlock',
+            'nargin', 'nargout', 'native_float_format', 'ndims', 'ne',
+            'nfields', 'nnz', 'norm', 'not', 'nth_element', 'numel', 'nzmax',
+            'octave_config_info', 'octave_core_file_limit',
+            'octave_core_file_name', 'octave_core_file_options',
+            'octave_tmp_file_name', 'onCleanup', 'ones',
+            'optimize_subsasgn_calls', 'or', 'output_max_field_width',
+            'output_precision', 'page_output_immediately', 'page_screen_output',
+            'path', 'pathsep', 'pause', 'pclose', 'permute', 'pipe', 'plus',
+            'popen', 'popen2', 'power', 'print_empty_dimensions',
+            'print_struct_array_contents', 'printf', 'prod',
+            'program_invocation_name', 'program_name', 'putenv', 'puts', 'pwd',
+            'quit', 'rats', 'rdivide', 're_read_readline_init_file',
+            'read_readline_init_file', 'readdir', 'readlink', 'real', 'realmax',
+            'realmin', 'register_graphics_toolkit', 'rehash', 'rem',
+            'remove_input_event_hook', 'rename', 'repelems', 'reset', 'reshape',
+            'resize', 'restoredefaultpath', 'rethrow', 'rmdir', 'rmfield',
+            'rmpath', 'round', 'roundb', 'rows', 'run_history', 'save',
+            'save_header_format_string', 'save_precision', 'saving_history',
+            'scanf', 'set', 'setenv', 'sighup_dumps_octave_core', 'sign',
+            'sigterm_dumps_octave_core', 'silent_functions', 'sin',
+            'sinh', 'size', 'size_equal', 'sizemax', 'sizeof', 'sleep', 'sort',
+            'source', 'spalloc', 'sparse', 'sparse_auto_mutate',
+            'split_long_rows', 'sprintf', 'sqrt', 'squeeze', 'sscanf', 'stat',
+            'stderr', 'stdin', 'stdout', 'str2func', 'strcmp', 'strcmpi',
+            'string_fill_char', 'strncmp', 'strncmpi', 'struct2cell',
+            'struct_levels_to_print', 'strvcat', 'subsasgn', 'subsref', 'sum',
+            'sumsq', 'superiorto', 'suppress_verbose_help_message', 'symlink',
+            'system', 'tan', 'tanh', 'terminal_size', 'tic', 'tilde_expand',
+            'times', 'tmpfile', 'tmpnam', 'toascii', 'toc', 'tolower', 'toupper',
+            'transpose', 'typeinfo',
+            'umask', 'uminus', 'uname', 'undo_string_escapes', 'unlink',
+            'uplus', 'upper', 'usage', 'usleep', 'vec', 'vectorize', 'vertcat',
+            'waitfor', 'waitpid', 'warning', 'warranty', 'who', 'whos',
+            'whos_line_format', 'yes_or_no', 'zeros'
+            ),
+        // Octave functions
+        6 => array(
+            'accumarray', 'accumdim', 'acosd', 'acot', 'acotd', 'acoth', 'acsc',
+            'acscd', 'acsch', 'addpref', 'addtodate', 'allchild', 'amd',
+            'ancestor', 'anova', 'arch_fit', 'arch_rnd', 'arch_test',
+            'area', 'arma_rnd', 'asctime', 'asec', 'asecd', 'asech', 'asind',
+            'assert', 'atand', 'autoreg_matrix', 'autumn',
+            'axes', 'axis', 'balance', 'bar', 'barh', 'bartlett', 'bartlett_test',
+            'base2dec', 'beep', 'bessel', 'besselj', 'beta', 'betacdf',
+            'betainc', 'betainv', 'betaln', 'betapdf', 'betarnd', 'bicg',
+            'bicgstab', 'bicubic', 'bin2dec', 'bincoeff', 'binocdf', 'binoinv',
+            'binopdf', 'binornd', 'bitcmp', 'bitget', 'bitset', 'blackman',
+            'blanks', 'blkdiag', 'bone', 'box', 'brighten', 'bsxfun',
+            'bug_report', 'bunzip2', 'bzip2', 'calendar', 'cart2pol', 'cart2sph',
+            'cast', 'cauchy_cdf', 'cauchy_inv', 'cauchy_pdf', 'cauchy_rnd',
+            'caxis', 'ccolamd', 'cell2mat', 'celldisp', 'cellfun',
+            'center', 'cgs', 'chi2cdf', 'chi2inv', 'chi2pdf', 'chi2rnd',
+            'chisquare_test_homogeneity', 'chisquare_test_independence', 'chol',
+            'chop', 'circshift', 'cla', 'clabel', 'clf', 'clock',
+            'cloglog', 'close', 'closereq', 'colamd', 'colloc', 'colon',
+            'colorbar', 'colormap', 'colperm', 'colstyle', 'comet', 'comet3',
+            'comma', 'common_size', 'commutation_matrix', 'compan',
+            'compare_versions', 'compass', 'computer', 'cond', 'condest',
+            'contour', 'contour3', 'contourc', 'contourf', 'contrast', 'conv',
+            'conv2', 'convhull', 'convhulln', 'cool', 'copper', 'copyfile',
+            'cor_test', 'corr', 'cosd', 'cot', 'cotd', 'coth', 'cov',
+            'cplxpair', 'cross', 'csc', 'cscd', 'csch', 'cstrcat',
+            'csvread', 'csvwrite', 'ctime', 'cumtrapz', 'curl', 'cylinder',
+            'daspect', 'daspk', 'dasrt', 'dassl', 'date', 'datenum', 'datestr',
+            'datetick', 'datevec', 'dblquad', 'deal', 'deblank', 'debug',
+            'dec2base', 'dec2bin', 'dec2hex', 'deconv', 'del2', 'delaunay',
+            'delaunay3', 'delaunayn', 'delete', 'demo', 'det', 'detrend',
+            'diffpara', 'diffuse', 'dir', 'discrete_cdf', 'discrete_inv',
+            'discrete_pdf', 'discrete_rnd', 'display', 'divergence',
+            'dlmread', 'dlmwrite', 'dmperm', 'doc', 'dos', 'dot', 'dsearch',
+            'dsearchn', 'dump_prefs', 'duplication_matrix', 'durbinlevinson',
+            'edit', 'eig', 'eigs', 'ellipsoid', 'empirical_cdf', 'empirical_inv',
+            'empirical_pdf', 'empirical_rnd', 'eomday', 'errorbar',
+            'etime', 'etreeplot', 'example', 'expcdf', 'expinv', 'expm', 'exppdf',
+            'exprnd', 'ezcontour', 'ezcontourf', 'ezmesh', 'ezmeshc', 'ezplot',
+            'ezplot3', 'ezpolar', 'ezsurf', 'ezsurfc', 'f_test_regression',
+            'fact', 'factor', 'factorial', 'fail', 'fcdf', 'feather', 'fft',
+            'fft2', 'fftconv', 'fftfilt', 'fftn', 'fftshift', 'fftw', 'figure',
+            'fileattrib', 'fileparts', 'fileread', 'fill', 'filter', 'filter2',
+            'find', 'findall', 'findobj', 'findstr', 'finv', 'flag', 'flipdim',
+            'fliplr', 'flipud', 'fminbnd', 'fminunc', 'fpdf', 'fplot',
+            'fractdiff', 'freqz', 'freqz_plot', 'frnd', 'fsolve',
+            'fullfile', 'fzero', 'gamcdf', 'gaminv', 'gammainc',
+            'gampdf', 'gamrnd', 'gca', 'gcbf', 'gcbo', 'gcd', 'gcf',
+            'gen_doc_cache', 'genvarname', 'geocdf', 'geoinv', 'geopdf', 'geornd',
+            'get_first_help_sentence', 'getappdata', 'getfield', 'getgrent',
+            'getpref', 'getpwent', 'getrusage', 'ginput', 'givens', 'glpk',
+            'gls', 'gmap40', 'gmres', 'gnuplot_binary', 'gplot',
+            'gradient', 'graphics_toolkit', 'gray', 'gray2ind', 'grid',
+            'griddata', 'griddata3', 'griddatan', 'gtext', 'guidata',
+            'guihandles', 'gunzip', 'gzip', 'hadamard', 'hamming', 'hankel',
+            'hanning', 'help', 'hess', 'hex2dec', 'hex2num', 'hggroup', 'hidden',
+            'hilb', 'hist', 'histc', 'hold', 'hot', 'hotelling_test',
+            'hotelling_test_2', 'housh', 'hsv', 'hsv2rgb', 'hurst', 'hygecdf',
+            'hygeinv', 'hygepdf', 'hygernd', 'idivide', 'ifftshift', 'image',
+            'imagesc', 'imfinfo', 'imread', 'imshow', 'imwrite', 'ind2gray',
+            'ind2rgb', 'index', 'info', 'inpolygon', 'inputname', 'int2str',
+            'interp1', 'interp1q', 'interp2', 'interp3', 'interpft', 'interpn',
+            'intersect', 'inv', 'invhilb', 'iqr',
+            'is_leap_year', 'is_valid_file_id',
+            'isa', 'isappdata', 'iscolumn', 'isdefinite', 'isdeployed', 'isdir',
+            'isequal', 'isequalwithequalnans', 'isfigure', 'ishermitian',
+            'ishghandle', 'ishold', 'isletter', 'ismac', 'ismember', 'isocolors',
+            'isonormals', 'isosurface', 'ispc', 'ispref', 'isprime', 'isprop',
+            'isrow', 'isscalar', 'issquare', 'isstrprop', 'issymmetric',
+            'isunix', 'isvector', 'jet', 'kendall', 'kolmogorov_smirnov_cdf',
+            'kolmogorov_smirnov_test', 'kolmogorov_smirnov_test_2', 'kron',
+            'kruskal_wallis_test', 'krylov', 'kurtosis', 'laplace_cdf',
+            'laplace_inv', 'laplace_pdf', 'laplace_rnd', 'lcm', 'legend',
+            'legendre', 'license', 'lin2mu', 'line', 'linkprop', 'list_primes',
+            'loadaudio', 'loadobj', 'logistic_cdf', 'logistic_inv',
+            'logistic_pdf', 'logistic_regression', 'logistic_rnd', 'logit',
+            'loglog', 'loglogerr', 'logm', 'logncdf', 'logninv', 'lognpdf',
+            'lognrnd', 'logspace', 'lookfor', 'lookup', 'ls', 'ls_command',
+            'lsode', 'lsqnonneg', 'lu', 'luinc', 'magic', 'mahalanobis', 'manova',
+            'mat2str', 'matlabroot', 'matrix_type', 'max', 'mcnemar_test',
+            'md5sum', 'mean', 'meansq', 'median', 'menu', 'mesh', 'meshc',
+            'meshgrid', 'meshz', 'mex', 'mexext', 'mgorth', 'mkoctfile', 'mkpp',
+            'mode', 'moment', 'movefile', 'mpoles', 'mu2lin', 'namelengthmax',
+            'nargchk', 'narginchk', 'nargoutchk', 'nbincdf', 'nbininv', 'nbinpdf',
+            'nbinrnd', 'nchoosek', 'ndgrid', 'newplot', 'news', 'nextpow2',
+            'nonzeros', 'normcdf', 'normest', 'norminv', 'normpdf', 'normrnd',
+            'now', 'nproc', 'nthargout', 'nthroot', 'ntsc2rgb', 'null', 'num2str',
+            'ocean', 'ols', 'onenormest', 'optimget', 'optimset', 'orderfields',
+            'orient', 'orth', 'pack', 'paren', 'pareto', 'parseparams', 'pascal',
+            'patch', 'pathdef', 'pbaspect', 'pcg', 'pchip', 'pcolor', 'pcr',
+            'peaks', 'periodogram', 'perl', 'perms', 'pie', 'pie3',
+            'pink', 'pinv', 'pkg', 'planerot', 'playaudio', 'plot', 'plot3',
+            'plotmatrix', 'plotyy', 'poisscdf', 'poissinv', 'poisspdf',
+            'poissrnd', 'pol2cart', 'polar', 'poly', 'polyaffine', 'polyarea',
+            'polyder', 'polyfit', 'polygcd', 'polyint', 'polyout',
+            'polyreduce', 'polyval', 'polyvalm', 'postpad', 'pow2', 'powerset',
+            'ppder', 'ppint', 'ppjumps', 'ppplot', 'ppval', 'pqpnonneg',
+            'prctile', 'prepad', 'primes', 'print', 'printAllBuiltins',
+            'print_usage', 'prism', 'probit', 'profexplore', 'profile',
+            'profshow', 'prop_test_2', 'python', 'qp', 'qqplot', 'qr', 'quad',
+            'quadcc', 'quadgk', 'quadl', 'quadv', 'quantile', 'quiver', 'quiver3',
+            'qz', 'qzhess', 'rainbow', 'rand', 'randi', 'range', 'rank', 'ranks',
+            'rat', 'rcond', 'reallog', 'realpow', 'realsqrt', 'record',
+            'rectangle', 'rectint', 'recycle', 'refresh', 'refreshdata', 'regexp',
+            'regexptranslate', 'repmat', 'residue', 'rgb2hsv',
+            'rgb2ind', 'rgb2ntsc', 'ribbon', 'rindex', 'rmappdata', 'rmpref',
+            'roots', 'rose', 'rosser', 'rot90', 'rotdim', 'rref', 'run',
+            'run_count', 'run_test', 'rundemos', 'runlength', 'runtests',
+            'saveas', 'saveaudio', 'saveobj', 'savepath', 'scatter',
+            'scatter3', 'schur', 'sec', 'secd', 'sech', 'semicolon', 'semilogx',
+            'semilogxerr', 'semilogy', 'semilogyerr', 'setappdata', 'setaudio',
+            'setdiff', 'setfield', 'setpref', 'setxor', 'shading',
+            'shg', 'shift', 'shiftdim', 'sign_test', 'sinc', 'sind',
+            'sinetone', 'sinewave', 'skewness', 'slice', 'sombrero', 'sortrows',
+            'spaugment', 'spconvert', 'spdiags', 'spearman', 'spectral_adf',
+            'spectral_xdf', 'specular', 'speed', 'spencer', 'speye', 'spfun',
+            'sph2cart', 'sphere', 'spinmap', 'spline', 'spones', 'spparms',
+            'sprand', 'sprandn', 'sprandsym', 'spring', 'spstats', 'spy', 'sqp',
+            'sqrtm', 'stairs', 'statistics', 'std', 'stdnormal_cdf',
+            'stdnormal_inv', 'stdnormal_pdf', 'stdnormal_rnd', 'stem', 'stem3',
+            'stft', 'str2double', 'str2num', 'strcat', 'strchr',
+            'strfind', 'strjust', 'strmatch', 'strread', 'strsplit', 'strtok',
+            'strtrim', 'strtrunc', 'structfun', 'sub2ind',
+            'subplot', 'subsindex', 'subspace', 'substr', 'substruct', 'summer',
+            'surf', 'surface', 'surfc', 'surfl', 'surfnorm', 'svd', 'svds',
+            'swapbytes', 'syl', 'symbfact', 'symrcm',
+            'symvar', 'synthesis', 't_test', 't_test_2', 't_test_regression',
+            'table', 'tand', 'tar', 'tcdf', 'tempdir', 'tempname', 'test', 'text',
+            'textread', 'textscan', 'time', 'tinv', 'title', 'toeplitz', 'tpdf',
+            'trace', 'trapz', 'treelayout', 'treeplot', 'tril', 'trimesh',
+            'triplequad', 'triplot', 'trisurf', 'trnd', 'tsearch', 'tsearchn',
+            'type', 'typecast', 'u_test', 'uicontextmenu', 'uicontrol',
+            'uigetdir', 'uigetfile', 'uimenu', 'uipanel', 'uipushtool',
+            'uiputfile', 'uiresume', 'uitoggletool', 'uitoolbar', 'uiwait',
+            'unidcdf', 'unidinv', 'unidpdf', 'unidrnd', 'unifcdf', 'unifinv',
+            'unifpdf', 'unifrnd', 'unimplemented', 'union', 'unique', 'unix',
+            'unmkpp', 'unpack', 'untabify', 'untar', 'unwrap', 'unzip',
+            'urlwrite', 'usejava', 'validatestring', 'vander', 'var',
+            'var_test', 'vech', 'ver', 'version', 'view', 'voronoi', 'voronoin',
+            'waitbar', 'waitforbuttonpress', 'warning_ids', 'wavread', 'wavwrite',
+            'wblcdf', 'wblinv', 'wblpdf', 'wblrnd', 'weekday',
+            'welch_test', 'what', 'which',
+            'white', 'whitebg', 'wienrnd', 'wilcoxon_test', 'wilkinson', 'winter',
+            'xlabel', 'xlim', 'xor', 'ylabel', 'ylim', 'yulewalker', 'z_test',
+            'z_test_2', 'zip', 'zlabel', 'zlim', 'zscore', 'airy', 'arrayfun',
+            'besselh', 'besseli', 'besselk', 'bessely', 'bitpack', 'bitunpack',
+            'blkmm', 'cellindexmat', 'cellslices', 'chol2inv', 'choldelete',
+            'cholinsert', 'cholinv', 'cholshift', 'cholupdate', 'convn',
+            'csymamd', 'cummax', 'cummin', 'daspk_options', 'dasrt_options',
+            'dassl_options', 'endgrent', 'endpwent', 'etree', 'getgrgid',
+            'getgrnam', 'getpwnam', 'getpwuid', 'gmtime', 'gui_mode', 'ifft',
+            'ifft2', 'ifftn', 'ind2sub', 'inverse', 'localtime', 'lsode_options',
+            'luupdate', 'mat2cell', 'min', 'mktime', 'mouse_wheel_zoom',
+            'num2cell', 'num2hex', 'qrdelete', 'qrinsert', 'qrshift', 'qrupdate',
+            'quad_options', 'rande', 'randg', 'randn', 'randp', 'randperm',
+            'regexpi', 'regexprep', 'rsf2csf', 'setgrent', 'setpwent', 'sprank',
+            'strftime', 'strptime', 'strrep', 'svd_driver', 'symamd', 'triu',
+            'urlread'
+            ),
+        // Private builtin
+        7 => array(
+            '__accumarray_max__', '__accumarray_min__', '__accumarray_sum__',
+            '__accumdim_sum__', '__builtins__', '__calc_dimensions__',
+            '__current_scope__', '__display_tokens__', '__dump_symtab_info__',
+            '__end__', '__get__', '__go_axes__', '__go_axes_init__',
+            '__go_delete__', '__go_execute_callback__', '__go_figure__',
+            '__go_figure_handles__', '__go_handles__', '__go_hggroup__',
+            '__go_image__', '__go_line__', '__go_patch__', '__go_surface__',
+            '__go_text__', '__go_uicontextmenu__', '__go_uicontrol__',
+            '__go_uimenu__', '__go_uipanel__', '__go_uipushtool__',
+            '__go_uitoggletool__', '__go_uitoolbar__', '__gud_mode__',
+            '__image_pixel_size__', '__is_handle_visible__', '__isa_parent__',
+            '__keywords__', '__lexer_debug_flag__', '__list_functions__',
+            '__operators__', '__parent_classes__', '__parser_debug_flag__',
+            '__pathorig__', '__profiler_data__', '__profiler_enable__',
+            '__profiler_reset__', '__request_drawnow__', '__sort_rows_idx__',
+            '__token_count__', '__varval__', '__version_info__', '__which__'
+        ),
+        // Private Octave functions
+        8 => array(
+            '__all_opts__', '__contourc__', '__delaunayn__', '__dispatch__',
+            '__dsearchn__', '__finish__', '__fltk_uigetfile__',
+            '__glpk__', '__gnuplot_drawnow__', '__init_fltk__',
+            '__init_gnuplot__', '__lin_interpn__', '__magick_read__',
+            '__makeinfo__', '__pchip_deriv__', '__plt_get_axis_arg__', '__qp__',
+            '__voronoi__', '__fltk_maxtime__', '__fltk_redraw__', '__ftp__',
+            '__ftp_ascii__', '__ftp_binary__', '__ftp_close__', '__ftp_cwd__',
+            '__ftp_delete__', '__ftp_dir__', '__ftp_mget__', '__ftp_mkdir__',
+            '__ftp_mode__', '__ftp_mput__', '__ftp_pwd__', '__ftp_rename__',
+            '__ftp_rmdir__', '__magick_finfo__', '__magick_format_list__',
+            '__magick_write__'
+            ),
+        // Builtin Global Variables
+        9 => array(
+            'EDITOR', 'EXEC_PATH', 'F_DUPFD', 'F_GETFD', 'F_GETFL', 'F_SETFD',
+            'F_SETFL', 'IMAGE_PATH', 'OCTAVE_HOME',
+            'OCTAVE_VERSION', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_EXCL',
+            'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SYNC', 'O_TRUNC', 'O_WRONLY',
+            'PAGER', 'PAGER_FLAGS', 'PS1', 'PS2', 'PS4', 'SEEK_CUR', 'SEEK_END',
+            'SEEK_SET', 'SIG', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO',
+            'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'WCONTINUE', 'WCOREDUMP',
+            'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED',
+            'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED'
+            ),
+        // Constant functions
+        10 => array (
+            'e', 'eps', 'inf', 'Inf', 'nan', 'NaN', 'NA', 'pi', 'i', 'I', 'j',
+            'J', 'true', 'false'
+            ),
+        ),
+    'SYMBOLS' => array(
+        // Comparison & logical
+        0 => array(
+            '!', '!=', '&', '&&','|', '||', '~', '~=',
+            '<', '<=', '==', '>', '>='
+            ),
+        // Aritmethical
+        1 => array(
+            '*', '**', '+', '++', '-', '--', '/', "\\","'"
+            ),
+        // Elementwise arithmetical
+        2 => array(
+            '.*', '.**','./', '.^', '^',".\\",".'"
+            ),
+        // Arithmetical & assignation
+        3 => array(
+            '*=','+=','-=','/=','\=','**=','^=',
+            '.*=','.+=','.-=','./=','.\=','.**=','.^=','='
+            ),
+        // Indexer
+        4 => array(
+            ':'
+            ),
+        // Delimiters
+        5 => array(
+            ',', '...', ';'
+            ),
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true,
+        10 => true,
+        ),
+    'URLS' => array(
+        1 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        6 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        7 => '',
+        8 => '',
+        9 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        10 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        ),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array(),
+    'STYLES' => array(
+        'COMMENTS' => array(
+            1 => 'color: #0000FF; font-style: italic;', // single quote strings
+            2 => 'color: #0000FF; font-style: italic;', // double quote strings
+            3 => 'color: #FF00FF; font-style: italic;', // single quote strings
+            4 => 'color: #FF00FF; font-style: italic;', // double quote strings
+            5 => 'color: #0000FF; font-style: italic;', // block comments
+            6 => 'color: #996600; font-weight:bold;',   // packaging system
+            7 => 'color: #006600; font-weight:bold;',   // function handles
+            'MULTI' => 'color: #0000FF; font-style: italic;',
+            ),
+        'KEYWORDS' => array(
+            1 => 'color: #2E8B57; font-weight:bold;',   // Data types
+            2 => 'color: #2E8B57;',                     // Storage type
+            3 => 'color: #0000FF; font-weight:bold;',   // Internal variable
+            4 => 'color: #990000; font-weight:bold;',   // Reserved words
+            5 => 'color: #008A8C; font-weight:bold;',   // Built-in
+            6 => 'color: #008A8C;',                     // Octave functions
+            9 => 'color: #000000; font-weight:bold;',   // Builtin Global Variables
+            10 => 'color: #008A8C; font-weight:bold;',  // Constant functions
+            ),
+        'ESCAPE_CHAR' => array(),
+        'BRACKETS' => array(
+            0 => 'color: #080;',
+            ),
+        'STRINGS' => array(
+            // strings were specified on the COMMENT_REGEXP section
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            ),
+        'METHODS' => array(),
+        'SYMBOLS' => array(
+            0 => 'color: #FF9696; font-weight:bold;',   // Comparison & logical
+            1 => 'color: #CC0000; font-weight:bold;',   // Aritmethical
+            2 => 'color: #993333; font-weight:bold;',   // Elementwise arithmetical
+            3 => 'color: #FF0000; font-weight:bold;',   // Arithmetical & assignation
+            4 => 'color: #33F;',                        // Indexer
+            5 => 'color: #33F;',                        // Delimiters
+            ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array(),
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oobas.php b/wp-content/plugins/wp-syntax/geshi/geshi/oobas.php
index 6418059dd30b92ac026d990a5a1d56db91458d00..ff75af65f3b376be3c4b9b85e88c4d16816910bc 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oobas.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oobas.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * OpenOffice.org Basic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oorexx.php b/wp-content/plugins/wp-syntax/geshi/geshi/oorexx.php
new file mode 100644
index 0000000000000000000000000000000000000000..62c6cc46341c8333140956df66828037184fdb54
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oorexx.php
@@ -0,0 +1,171 @@
+<?php
+/*************************************************************************************
+ * oorexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ *    - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * ooRexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ *    -  tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ *   -  Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ *      This file is part of GeSHi.
+ *
+ *    GeSHi is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    GeSHi is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with GeSHi; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'ooRexx',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'address', 'arg', 'attribute', 'call', 'constant', 'do',
+            'drop', 'exit', 'if',
+            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
+            'parse', 'procedure', 'pull', 'push', 'queue',
+            'raise', 'reply', 'return', 'say', 'select', 'signal',
+            'use'
+            ),
+        2 => array(
+            'abstract', 'any', 'arguments', 'array', 'by',
+            'continue', 'digits', 'engineering', 'error',
+            'expose', 'external', 'failure', 'for', 'forever',
+            'forward', 'get', 'guard', 'guarded', 'halt',
+            'inherit', 'library', 'lostdigits', 'message',
+            'metaclass', 'mixinclass', 'name', 'nomethod', 'nostring',
+            'notready', 'novalue', 'off', 'on', 'options', 'over',
+            'private', 'protected', 'public', 'scientific', 'set',
+            'source', 'subclass', 'syntax', 'to', 'unguarded',
+            'unprotected', 'until', 'user',
+            'version', 'while', 'with'
+            ),
+        3 => array(
+            'else', 'end', 'otherwise', 'then', 'when'
+            ),
+        4 => array(
+            'rc', 'result', 'self', 'sigl', 'super'
+            ),
+        5 => array(
+            '::attribute', '::class', '::constant', '::method',
+            '::optins', '::requires', '::routine'
+            ),
+        6 => array(
+            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
+            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
+            'charout', 'chars', 'compare', 'condition', 'copies',
+            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
+            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
+            'errortext', 'filespec', 'form', 'format', 'fuzz', 'insert',
+            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
+            'lower', 'max', 'min', 'overlay', 'pos', 'qualify', 'queued',
+            'random', 'reverse', 'right', 'rxfuncadd', 'rxfuncdrop',
+            'rxfuncquery', 'rxqueue', 'setlocal', 'sign', 'sourceline',
+            'space', 'stream', 'strip', 'substr', 'subword', 'symbol',
+            'time', 'trace', 'translate', 'trunc', 'upper', 'userid',
+            'value', 'var', 'verify', 'word', 'wordindex', 'wordlength',
+            'wordpos', 'words', 'xrange', 'x2b', 'x2c', 'x2d'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
+        '<', '>'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #ff0000; font-weight: bold;',
+            3 => 'color: #00ff00; font-weight: bold;',
+            4 => 'color: #0000ff; font-weight: bold;',
+            5 => 'color: #880088; font-weight: bold;',
+            6 => 'color: #888800; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            'MULTI' => 'color: #808080;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;',
+            2 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oracle11.php b/wp-content/plugins/wp-syntax/geshi/geshi/oracle11.php
index 8444d00420c6124df0b59d978090bbd55c4884b0..16259e6953065675a0dd992371e644ff615e85b4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oracle11.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oracle11.php
@@ -6,7 +6,7 @@
  * Contributions:
  * - Updated for 11i by Simon Redhead
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * Oracle 11i language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oracle8.php b/wp-content/plugins/wp-syntax/geshi/geshi/oracle8.php
index 7bd1343fc9b12267f8a2c8b537783dcfabb0355a..145bda407751b48350cffaaded565459f4fbd8b6 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oracle8.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oracle8.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: Guy Wicks (Guy.Wicks@rbs.co.uk)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * Oracle 8 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oxygene.php b/wp-content/plugins/wp-syntax/geshi/geshi/oxygene.php
index a079c8493cf7ab4e09e76652beaabb1fc5bc288b..bc2ee6563f964791aed61ca8b9a9eb363e806574 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oxygene.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oxygene.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Carlo Kok (ck@remobjects.com), J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/01/11
  *
  * Delphi Prism (Oxygene) language file for GeSHi.
@@ -12,6 +12,8 @@
  *
  * CHANGES
  * -------
+ * 2012/06/28 (1.0.8.11)
+ *   -  Added "write" keyword for properties
  * 2010/01/11 (1.0.0)
  *   -  First Release
  *
@@ -66,7 +68,7 @@ $language_data = array (
             'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take',
             'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params',
             'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect',
-            'volatile'
+            'volatile', 'write'
             ),
         3 => array(
             'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote'
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/oz.php b/wp-content/plugins/wp-syntax/geshi/geshi/oz.php
index 23be8d6746a7c27e25f7aa30e37c6c05b438049b..d24561bf0157b64b1885ce00d6c723bff3741cdd 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/oz.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/oz.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net)
  * Copyright: (c) 2010 Wolfgang Meyer
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/01/03
  *
  * Oz language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/parasail.php b/wp-content/plugins/wp-syntax/geshi/geshi/parasail.php
new file mode 100644
index 0000000000000000000000000000000000000000..864eba1e997d5c22c150366f54f539908369daca
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/parasail.php
@@ -0,0 +1,133 @@
+<?php
+/*************************************************************************************
+ * parasail.php
+ * -------
+ * Author: T. Taft (taft@adacore.com)
+ * Copyright: (c) 2012 AdaCore (http://adacore.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/08/02
+ *
+ * ParaSail language file for GeSHi.
+ *
+ * Words are from SciTe configuration file
+ *
+ * CHANGES
+ * -------
+ * 2012/08/02 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2012/08/02)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'ParaSail',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('{' => '}'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'all', 'block', 'case', 'continue', 'each',
+            'else', 'elsif', 'exit', 'for',
+            'forward', 'if', 'loop', 'return', 'reverse', 'some',
+            'then', 'until', 'while', 'with'
+            ),
+        2 => array(
+            'abs', 'and','in', 'mod', 'not', 'null', 'or', 'rem', 'xor'
+            ),
+        3 => array(
+            'abstract', 'class',
+            'concurrent', 'const', 
+            'end', 'extends', 'exports', 
+            'func', 'global', 'implements', 'import',
+            'interface', 'is', 'lambda', 'locked', 
+            'new', 'of', 'op', 'optional',
+            'private', 'queued', 'ref',
+            'separate', 'type', 'var',
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '<', '>'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #00007f;',
+            2 => 'color: #0000ff;',
+            3 => 'color: #46aa03; font-weight:bold;',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #adadad; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #7f007f;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/parigp.php b/wp-content/plugins/wp-syntax/geshi/geshi/parigp.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9c73095bdcf0c3adc7d10aa2536e9b04d593519
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/parigp.php
@@ -0,0 +1,277 @@
+<?php
+/*************************************************************************************
+ * parigp.php
+ * --------
+ * Author: Charles R Greathouse IV (charles@crg4.com)
+ * Copyright: 2011 Charles R Greathouse IV (http://math.crg4.com/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/05/11
+ *
+ * PARI/GP language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/07/09 (1.0.8.11)
+ *  -  First Release
+ *
+ * TODO (updated 2011/07/09)
+ * -------------------------
+ *
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'PARI/GP',
+    'COMMENT_SINGLE' => array(1 => '\\\\'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'NUMBERS' => array(
+        # Integers
+        1 => GESHI_NUMBER_INT_BASIC,
+        # Reals
+        2 => GESHI_NUMBER_FLT_SCI_ZERO
+        ),
+    'KEYWORDS' => array(
+        1 => array(
+            'addprimes','bestappr','bezout','bezoutres','bigomega','binomial',
+            'chinese','content','contfrac','contfracpnqn','core','coredisc',
+            'dirdiv','direuler','dirmul','divisors','eulerphi','factor',
+            'factorback','factorcantor','factorff','factorial','factorint',
+            'factormod','ffgen','ffinit','fflog','fforder','ffprimroot',
+            'fibonacci','gcd','hilbert','isfundamental','ispower','isprime',
+            'ispseudoprime','issquare','issquarefree','kronecker','lcm',
+            'moebius','nextprime','numbpart','numdiv','omega','partitions',
+            'polrootsff','precprime','prime','primepi','primes','qfbclassno',
+            'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw',
+            'qfbprimeform','qfbred','qfbsolve','quadclassunit','quaddisc',
+            'quadgen','quadhilbert','quadpoly','quadray','quadregulator',
+            'quadunit','removeprimes','sigma','sqrtint','stirling',
+            'sumdedekind','zncoppersmith','znlog','znorder','znprimroot',
+            'znstar','Col','List','Mat','Mod','Pol','Polrev','Qfb','Ser','Set',
+            'Str','Strchr','Strexpand','Strtex','Vec','Vecrev','Vecsmall',
+            'binary','bitand','bitneg','bitnegimply','bitor','bittest','bitxor',
+            'ceil','centerlift','component','conj','conjvec','denominator',
+            'floor','frac','imag','length','lift','norm','norml2','numerator',
+            'numtoperm','padicprec','permtonum','precision','random','real',
+            'round','simplify','sizebyte','sizedigit','truncate','valuation',
+            'variable','ellL1','elladd','ellak','ellan','ellanalyticrank',
+            'ellap','ellbil','ellchangecurve','ellchangepoint','ellconvertname',
+            'elldivpol','elleisnum','elleta','ellgenerators','ellglobalred',
+            'ellgroup','ellheight','ellheightmatrix','ellidentify','ellinit',
+            'ellisoncurve','ellj','elllocalred','elllog','elllseries',
+            'ellminimalmodel','ellmodulareqn','ellorder','ellordinate',
+            'ellpointtoz','ellpow','ellrootno','ellsearch','ellsigma','ellsub',
+            'elltaniyama','elltatepairing','elltors','ellweilpairing','ellwp',
+            'ellzeta','ellztopoint','bnfcertify','bnfcompress',
+            'bnfdecodemodule','bnfinit','bnfisintnorm','bnfisnorm',
+            'bnfisprincipal','bnfissunit','bnfisunit','bnfnarrow','bnfsignunit',
+            'bnfsunit','bnrL1','bnrclassno','bnrclassnolist','bnrconductor',
+            'bnrconductorofchar','bnrdisc','bnrdisclist','bnrinit',
+            'bnrisconductor','bnrisprincipal','bnrrootnumber','bnrstark',
+            'dirzetak','factornf','galoisexport','galoisfixedfield',
+            'galoisgetpol','galoisidentify','galoisinit','galoisisabelian',
+            'galoisisnormal','galoispermtopol','galoissubcyclo',
+            'galoissubfields','galoissubgroups','idealadd','idealaddtoone',
+            'idealappr','idealchinese','idealcoprime','idealdiv','idealfactor',
+            'idealfactorback','idealfrobenius','idealhnf','idealintersect',
+            'idealinv','ideallist','ideallistarch','ideallog','idealmin',
+            'idealmul','idealnorm','idealpow','idealprimedec','idealramgroups',
+            'idealred','idealstar','idealtwoelt','idealval','matalgtobasis',
+            'matbasistoalg','modreverse','newtonpoly','nfalgtobasis','nfbasis',
+            'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv',
+            'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul',
+            'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr',
+            'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor',
+            'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj',
+            'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl',
+            'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots',
+            'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','polcompositum',
+            'polgalois','polred','polredabs','polredord','poltschirnhaus',
+            'rnfalgtobasis','rnfbasis','rnfbasistoalg','rnfcharpoly',
+            'rnfconductor','rnfdedekind','rnfdet','rnfdisc','rnfeltabstorel',
+            'rnfeltdown','rnfeltreltoabs','rnfeltup','rnfequation',
+            'rnfhnfbasis','rnfidealabstorel','rnfidealdown','rnfidealhnf',
+            'rnfidealmul','rnfidealnormabs','rnfidealnormrel',
+            'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit',
+            'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer',
+            'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs',
+            'rnfpseudobasis','rnfsteinitz','subgrouplist','zetak','zetakinit',
+            'plot','plotbox','plotclip','plotcolor','plotcopy','plotcursor',
+            'plotdraw','ploth','plothraw','plothsizes','plotinit','plotkill',
+            'plotlines','plotlinetype','plotmove','plotpoints','plotpointsize',
+            'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline',
+            'plotrmove','plotrpoint','plotscale','plotstring','psdraw',
+            'psploth','psplothraw','O','deriv','diffop','eval','factorpadic',
+            'intformal','padicappr','padicfields','polchebyshev','polcoeff',
+            'polcyclo','poldegree','poldisc','poldiscreduced','polhensellift',
+            'polhermite','polinterpolate','polisirreducible','pollead',
+            'pollegendre','polrecip','polresultant','polroots','polrootsmod',
+            'polrootspadic','polsturm','polsubcyclo','polsylvestermatrix',
+            'polsym','poltchebi','polzagier','serconvol','serlaplace',
+            'serreverse','subst','substpol','substvec','taylor','thue',
+            'thueinit','break','for','fordiv','forell','forprime','forstep',
+            'forsubgroup','forvec','if','next','return','until','while',
+            'Strprintf','addhelp','alarm','alias','allocatemem','apply',
+            'default','error','extern','externstr','getheap','getrand',
+            'getstack','gettime','global','input','install','kill','print1',
+            'print','printf','printtex','quit','read','readvec','select',
+            'setrand','system','trap','type','version','warning','whatnow',
+            'write1','write','writebin','writetex','divrem','lex','max','min',
+            'shift','shiftmul','sign','vecmax','vecmin','derivnum','intcirc',
+            'intfouriercos','intfourierexp','intfouriersin','intfuncinit',
+            'intlaplaceinv','intmellininv','intmellininvshort','intnum',
+            'intnuminit','intnuminitgen','intnumromb','intnumstep','prod',
+            'prodeuler','prodinf','solve','sum','sumalt','sumdiv','suminf',
+            'sumnum','sumnumalt','sumnuminit','sumpos','Euler','I','Pi','abs',
+            'acos','acosh','agm','arg','asin','asinh','atan','atanh','bernfrac',
+            'bernreal','bernvec','besselh1','besselh2','besseli','besselj',
+            'besseljh','besselk','besseln','cos','cosh','cotan','dilog','eint1',
+            'erfc','eta','exp','gamma','gammah','hyperu','incgam','incgamc',
+            'lngamma','log','polylog','psi','sin','sinh','sqr','sqrt','sqrtn',
+            'tan','tanh','teichmuller','theta','thetanullk','weber','zeta',
+            'algdep','charpoly','concat','lindep','listcreate','listinsert',
+            'listkill','listpop','listput','listsort','matadjoint',
+            'matcompanion','matdet','matdetint','matdiagonal','mateigen',
+            'matfrobenius','mathess','mathilbert','mathnf','mathnfmod',
+            'mathnfmodid','matid','matimage','matimagecompl','matindexrank',
+            'matintersect','matinverseimage','matisdiagonal','matker',
+            'matkerint','matmuldiagonal','matmultodiagonal','matpascal',
+            'matrank','matrix','matrixqz','matsize','matsnf','matsolve',
+            'matsolvemod','matsupplement','mattranspose','minpoly','qfgaussred',
+            'qfjacobi','qflll','qflllgram','qfminim','qfperfection','qfrep',
+            'qfsign','setintersect','setisset','setminus','setsearch','cmp',
+            'setunion','trace','vecextract','vecsort','vector','vectorsmall',
+            'vectorv','ellheegner'
+            ),
+
+        2 => array(
+            'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol',
+            'vecsmall','vec','list','str','genstr','gen','typ'
+            ),
+
+        3 => array(
+            'TeXstyle','breakloop','colors','compatible','datadir','debug',
+            'debugfiles','debugmem','echo','factor_add_primes','factor_proven',
+            'format','graphcolormap','graphcolors','help','histfile','histsize',
+            'lines','linewrap',/*'log',*/'logfile','new_galois_format','output',
+            'parisize','path','prettyprinter','primelimit','prompt_cont',
+            'prompt','psfile','readline','realprecision','recover','secure',
+            'seriesprecision',/*'simplify',*/'strictmatch','timer'
+            ),
+
+        4 => array(
+            'alarmer','archer','errpile','gdiver','impl','syntaxer','invmoder',
+            'overflower','talker','typeer','user'
+            )
+        ),
+    'SYMBOLS' => array(
+        1 => array(
+            '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\''
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000ff;',
+            2 => 'color: #e07022;',
+            3 => 'color: #00d2d2;',
+            4 => 'color: #00d2d2;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008000;',
+            'MULTI' => 'color: #008000;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #111111; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #002222;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #800080;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #666666;',
+            1 => 'color: #666666;',
+            2 => 'color: #666666;'
+            ),
+        'METHODS' => array(
+            0 => 'color: #004000;'
+            ),
+        'SYMBOLS' => array(
+            1 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #e07022',    # Should be the same as keyword group 2
+            1 => 'color: #555555'
+            ),
+        'SCRIPT' => array()
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        0 => array( # types marked on variables
+            GESHI_SEARCH => '(?<!\\\\ )"(t_(?:INT|REAL|INTMOD|FRAC|FFELT|COMPLEX|PADIC|QUAD|POLMOD|POL|SER|RFRAC|QFR|QFI|VEC|COL|MAT|LIST|STR|VECSMALL|CLOSURE))"',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '"',
+            GESHI_AFTER => '"'
+            ),
+        1 => array( # literal variables
+            GESHI_SEARCH => '(?<!\\\\)(\'[a-zA-Z][a-zA-Z0-9_]*)',
+            GESHI_REPLACE => '\\1',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => ''
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        2 => array(
+            '[a-zA-Z][a-zA-Z0-9_]*:' => ''
+            ),
+        3 => array(
+            'default(' => ''
+            ),
+        4 => array(
+            'trap(' => ''
+            ),
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pascal.php b/wp-content/plugins/wp-syntax/geshi/geshi/pascal.php
index 769566f63370d83e19dcd6a242c280baa1584b53..de5ca87171b2f4871b700a311526686cd3b54ab3 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pascal.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pascal.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Tux (tux@inamil.cz)
  * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/26
  *
  * Pascal language file for GeSHi.
@@ -50,12 +50,13 @@
 $language_data = array (
     'LANG_NAME' => 'Pascal',
     'COMMENT_SINGLE' => array(1 => '//'),
-    'COMMENT_MULTI' => array('{' => '}','(*' => '*)'),
+    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
+    //Compiler directives
+    'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array('"'),
-    'HARDQUOTE' => array("'", "'"),
-    'HARDESCAPE' => array("''"),
-    'ESCAPE_CHAR' => '\\',
+    'QUOTEMARKS' => array("'"),
+    'ESCAPE_CHAR' => '',
+
     'KEYWORDS' => array(
         1 => array(
             'absolute','asm','assembler','begin','break','case','catch','cdecl',
@@ -67,7 +68,7 @@ $language_data = array (
             'or','overload','override','private','procedure','program',
             'property','protected','public','published','raise','repeat',
             'resourcestring','shl','shr','stdcall','stored','switch','then',
-            'to','try','type','unit','until','uses','var','while','xor'
+            'to','try','type','unit','until','uses','var','while','with','xor'
             ),
         2 => array(
             'nil', 'false', 'true',
@@ -83,9 +84,6 @@ $language_data = array (
             'record','set','shortint','smallint','string','union','word'
             ),
         ),
-    'SYMBOLS' => array(
-        ',', ':', '=', '+', '-', '*', '/'
-        ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => false,
@@ -93,6 +91,12 @@ $language_data = array (
         3 => false,
         4 => false,
         ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '[', ']'),
+        1 => array('.', ',', ':', ';'),
+        2 => array('@', '^'),
+        3 => array('=', '+', '-', '*', '/')
+        ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #000000; font-weight: bold;',
@@ -101,30 +105,35 @@ $language_data = array (
             4 => 'color: #000066; font-weight: bold;'
             ),
         'COMMENTS' => array(
-            1 => 'color: #666666; font-style: italic;',
-            'MULTI' => 'color: #666666; font-style: italic;'
+            1 => 'color: #808080; font-style: italic;',
+            2 => 'color: #008000; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #000099; font-weight: bold;',
-            'HARD' => 'color: #000099; font-weight: bold;'
+            0 => 'color: #ff0000; font-weight: bold;'
             ),
         'BRACKETS' => array(
             0 => 'color: #009900;'
             ),
         'STRINGS' => array(
             0 => 'color: #ff0000;',
-            'HARD' => 'color: #ff0000;'
+            //'HARD' => 'color: #ff0000;'
             ),
         'NUMBERS' => array(
             0 => 'color: #cc66cc;'
             ),
         'METHODS' => array(
-            1 => 'color: #0066ee;'
-            ),
-        'SYMBOLS' => array(
-            0 => 'color: #339933;'
+            1 => 'color: #006600;'
             ),
         'REGEXPS' => array(
+            0 => 'color: #0000cc;',
+            1 => 'color: #ff0000;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #000066;',
+            1 => 'color: #000066;',
+            2 => 'color: #000066;',
+            3 => 'color: #000066;'
             ),
         'SCRIPT' => array(
             )
@@ -140,6 +149,10 @@ $language_data = array (
         1 => '.'
         ),
     'REGEXPS' => array(
+        //Hex numbers
+        0 => '\$[0-9a-fA-F]+',
+        //Characters
+        1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
@@ -149,4 +162,4 @@ $language_data = array (
     'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pcre.php b/wp-content/plugins/wp-syntax/geshi/geshi/pcre.php
index b0bd297004fac93099bdf2ad204261421a343d3d..13a2e024dbe70e0642e94a516f2420af4798043d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pcre.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pcre.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/05/22
  *
  * PCRE language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/per.php b/wp-content/plugins/wp-syntax/geshi/geshi/per.php
index 797bcab905e921223993785ac0e7cdc1aa4aa2c2..c42ddb58a76e6b28054e978cb8ca4581fa995bc1 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/per.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/per.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lars Gersmann (lars.gersmann@gmail.com)
  * Copyright: (c) 2007 Lars Gersmann
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/06/03
  *
  * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/perl.php b/wp-content/plugins/wp-syntax/geshi/geshi/perl.php
index e66b52f664ed05af30b479a4803ea0f6e33b3299..309ebd86120fdccd1a3b1d6ec8199bc712e404e7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/perl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/perl.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/20
  *
  * Perl language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/perl6.php b/wp-content/plugins/wp-syntax/geshi/geshi/perl6.php
index 57b8514f2694eacc7f89bc46d7246435bf3e8320..706eabcb585bd490b68a004fe2217d02d2111e34 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/perl6.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/perl6.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Kodi Arfer (kodiarfer {at} warpmail {period} net); forked from perl.php 1.0.8 by Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
  * Copyright: (c) 2009 Kodi Arfer, (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/11/07
  *
  * Perl 6 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pf.php b/wp-content/plugins/wp-syntax/geshi/geshi/pf.php
index 26cfdcf56aff0d86c53722eabc6c239eedc7c810..818e11bcb2ac3d3e109acf4ba995bbd0fd67cf1f 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pf.php
@@ -4,7 +4,7 @@
  * --------
  * Author: David Berard (david@nfrance.com)
  * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/16
  * Based on bash.php
  *
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/php-brief.php b/wp-content/plugins/wp-syntax/geshi/geshi/php-brief.php
index 945ea8be2399f147bf145fec6d1035bc8fe7ae13..a4804b4da2ca09c7fb13566f87d17b691d5d867c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/php-brief.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/php-brief.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/02
  *
  * PHP (brief version) language file for GeSHi.
@@ -169,7 +169,7 @@ $language_data = array (
         ),
     'REGEXPS' => array(
         //Variables
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
+        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
         ),
     'STRICT_MODE_APPLIES' => GESHI_MAYBE,
     'SCRIPT_DELIMITERS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/php.php b/wp-content/plugins/wp-syntax/geshi/geshi/php.php
index a7e8a5842220ce16f4cd4228c6773e326f441d05..2827457b17db416b36ebf1f80a6e4da83e9de175 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/php.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/php.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/20
  *
  * PHP language file for GeSHi.
@@ -96,8 +96,9 @@ $language_data = array(
             ),
         2 => array(
             '&amp;new','&lt;/script&gt;','&lt;?php','&lt;script language',
-            'class','const','declare','extends','function','global','interface',
-            'namespace','new','private','protected','public','self','use','var'
+            'abstract','class','const','declare','extends','function','global',
+            'interface','namespace','new','private','protected','public','self',
+            'use','var'
             ),
         3 => array(
             'abs','acos','acosh','addcslashes','addslashes','aggregate',
@@ -1061,7 +1062,7 @@ $language_data = array(
         ),
     'REGEXPS' => array(
         //Variables
-        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
+        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
         ),
     'STRICT_MODE_APPLIES' => GESHI_MAYBE,
     'SCRIPT_DELIMITERS' => array(
@@ -1083,22 +1084,24 @@ $language_data = array(
             "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
             "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
             "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?$)|".
+            "\\/\\/(?>.*?(?:\\?>|$))|".
+            "#(?>.*?(?:\\?>|$))|".
             "\\/(?=[^*\\/])|".
             "<(?!<<)|".
             "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*(?P<end>\\?>|\Z)/sm",
+            ")*?(?P<end>\\?>|\Z)/sm",
         5 => "/(?P<start><%)(?:".
             "(?>[^\"'%\\/<]+)|".
             "%(?!>)|".
             "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
             "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
             "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
-            "\\/\\/(?>.*?$)|".
+            "\\/\\/(?>.*?(?:%>|$))|".
+            "#(?>.*?(?:%>|$))|".
             "\\/(?=[^*\\/])|".
             "<(?!<<)|".
             "<<<(?P<phpdoc>\w+)\s.*?\s\k<phpdoc>".
-            ")*(?P<end>%>)/sm",
+            ")*?(?P<end>%>|\Z)/sm",
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
         0 => true,
@@ -1111,4 +1114,4 @@ $language_data = array(
     'TAB_WIDTH' => 4
 );
 
-?>
\ No newline at end of file
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pic16.php b/wp-content/plugins/wp-syntax/geshi/geshi/pic16.php
index 776a86d2cea1a6afb5deba1a6b004ae57f0dd5c7..46d7ac94db2f3c8a697375a88daae7b47e7c2867 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pic16.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pic16.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Phil Mattison (mattison@ohmikron.com)
  * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/07/30
  *
  * PIC16 Assembler language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pike.php b/wp-content/plugins/wp-syntax/geshi/geshi/pike.php
index bc2843b0856bdb2f9fb1c031ac88013a79be1421..743f711b15b42e0b220dbc997ba039b478c9863e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pike.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pike.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Rick E. (codeblock@eighthbit.net)
  * Copyright: (c) 2009 Rick E.
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/12/10
  *
  * Pike language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pixelbender.php b/wp-content/plugins/wp-syntax/geshi/geshi/pixelbender.php
index 8cf0529d071dd761c7b5bb09aa3def39041737bb..7b29ee6c3d82bd40d2ff433b166ae6e686ca15c0 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/pixelbender.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pixelbender.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Richard Olsson (r@richardolsson.se)
  * Copyright: (c) 2008 Richard Olsson (richardolsson.se)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/11/16
  *
  * Pixel Bender 1.0 language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pli.php b/wp-content/plugins/wp-syntax/geshi/geshi/pli.php
new file mode 100644
index 0000000000000000000000000000000000000000..c2998514009abd164f937c9f8c29b40c780d4715
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pli.php
@@ -0,0 +1,200 @@
+<?php
+/*************************************************************************************
+ * pli.php
+ * --------
+ * Author: Robert AH Prins (robert@prino.org)
+ * Copyright: (c) 2011 Robert AH Prins (http://hitchwiki.org/en/User:Prino)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/02/09
+ *
+ * PL/I language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/02/09 (1.0.8.10)
+ *  -  First Release - machine(ish) generated by http://rosettacode.org/geshi/
+ *
+ * TODO (updated 2011/02/09)
+ * -------------------------
+ *
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'PL/I',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', '\''),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'abnormal', 'abs', 'acos', 'acosf', 'add', 'addbuff', 'addr',
+            'addrdata', 'alias', 'aligned', 'all', 'alloc', 'allocate',
+            'allocation', 'allocn', 'allocsize', 'any', 'anycondition', 'area',
+            'ascii', 'asin', 'asinf', 'asm', 'asmtdli', 'assembler',
+            'assignable', 'atan', 'atand', 'atanf', 'atanh', 'attach',
+            'attention', 'attn', 'auto', 'automatic', 'availablearea',
+            'backwards', 'based', 'begin', 'bigendian', 'bin', 'binary',
+            'binaryvalue', 'bind', 'binvalue', 'bit', 'bitloc', 'bitlocation',
+            'bkwd', 'blksize', 'bool', 'buf', 'buffered', 'buffers', 'bufnd',
+            'bufni', 'bufoff', 'bufsp', 'builtin', 'bx', 'by', 'byaddr', 'byte',
+            'byvalue', 'b4', 'call', 'cast', 'cds', 'ceil', 'center',
+            'centerleft', 'centerright', 'centre', 'centreleft', 'centreright',
+            'char', 'character', 'charg', 'chargraphic', 'charval', 'check',
+            'checkstg', 'close', 'cmpat', 'cobol', 'col', 'collate', 'column',
+            'comment', 'compare', 'compiledate', 'compiletime', 'completion',
+            'complex', 'cond', 'condition', 'conjg', 'conn', 'connected',
+            'consecutive', 'controlled', 'conv', 'conversion', 'copy', 'cos',
+            'cosd', 'cosf', 'cosh', 'count', 'counter', 'cpln', 'cplx', 'cs',
+            'cstg', 'ctl', 'ctlasa', 'ctl360', 'currentsize', 'currentstorage',
+            'data', 'datafield', 'date', 'datetime', 'days', 'daystodate',
+            'daystosecs', 'db', 'dcl', 'dec', 'decimal', 'declare', 'def',
+            'default', 'define', 'defined', 'delay', 'delete', 'descriptor',
+            'descriptors', 'detach', 'dft', 'dim', 'dimacross', 'dimension',
+            'direct', 'display', 'divide', 'do', 'downthru', 'edit', 'else',
+            'empty', 'end', 'endfile', 'endpage', 'entry', 'entryaddr', 'env',
+            'environment', 'epsilon', 'erf', 'erfc', 'error', 'event', 'excl',
+            'exclusive', 'exit', 'exp', 'expf', 'exponent', 'exports', 'ext',
+            'external', 'fb', 'fbs', 'fetch', 'file', 'fileddint', 'fileddtest',
+            'fileddword', 'fileid', 'fileopen', 'fileread', 'fileseek',
+            'filetell', 'filewrite', 'finish', 'first', 'fixed', 'fixedbin',
+            'fixeddec', 'fixedoverflow', 'float', 'floatbin', 'floatdec',
+            'floor', 'flush', 'fofl', 'format', 'fortran', 'free', 'from',
+            'fromalien', 'fs', 'gamma', 'generic', 'genkey', 'get', 'getenv',
+            'go', 'goto', 'graphic', 'gx', 'handle', 'hbound', 'hex', 'hexadec',
+            'heximage', 'high', 'huge', 'iand', 'ieee', 'ieor', 'if', 'ignore',
+            'imag', 'in', 'index', 'indexarea', 'indexed', 'init', 'initial',
+            'inline', 'inonly', 'inot', 'inout', 'input', 'int', 'inter',
+            'internal', 'into', 'invalidop', 'ior', 'irred', 'irreducible',
+            'isfinite', 'isigned', 'isinf', 'isll', 'ismain', 'isnan',
+            'isnormal', 'isrl', 'iszero', 'iunsigned', 'key', 'keyed',
+            'keyfrom', 'keylength', 'keyloc', 'keyto', 'label', 'last',
+            'lbound', 'leave', 'left', 'length', 'like', 'limited', 'line',
+            'lineno', 'linesize', 'linkage', 'list', 'littleendian', 'loc',
+            'locate', 'location', 'log', 'logf', 'loggamma', 'log10', 'log10f',
+            'log2', 'low', 'lowercase', 'lower2', 'maccol', 'maclmar',
+            'macname', 'macrmar', 'main', 'max', 'maxexp', 'maxlength',
+            'memconvert', 'memcu12', 'memcu14', 'memcu21', 'memcu24', 'memcu41',
+            'memcu42', 'memindex', 'memsearch', 'memsearchr', 'memverify',
+            'memverifyr', 'min', 'minexp', 'mod', 'mpstr', 'multiply', 'name',
+            'native', 'ncp', 'new', 'nocharg', 'nochargraphic', 'nocheck',
+            'nocmpat', 'noconv', 'noconversion', 'nodescriptor', 'noexecops',
+            'nofixedoverflow', 'nofofl', 'noinline', 'nolock', 'nomap',
+            'nomapin', 'nomapout', 'nonasgn', 'nonassignable', 'nonconnected',
+            'nonnative', 'noofl', 'nooverflow', 'norescan', 'normal', 'nosize',
+            'nostrg', 'nostringrange', 'nostringsize', 'nostrz', 'nosubrg',
+            'nosubscriptrange', 'noufl', 'nounderflow', 'nowrite', 'nozdiv',
+            'nozerodivide', 'null', 'offset', 'offsetadd', 'offsetdiff',
+            'offsetsubtract', 'offsetvalue', 'ofl', 'omitted', 'on', 'onarea',
+            'onchar', 'oncode', 'oncondcond', 'oncondid', 'oncount', 'onfile',
+            'ongsource', 'onkey', 'online', 'onloc', 'onoffset', 'onsource',
+            'onsubcode', 'onwchar', 'onwsource', 'open', 'optional', 'options',
+            'order', 'ordinal', 'ordinalname', 'ordinalpred', 'ordinalsucc',
+            'other', 'otherwise', 'outonly', 'output', 'overflow', 'package',
+            'packagename', 'page', 'pageno', 'pagesize', 'parameter', 'parmset',
+            'password', 'pending', 'pic', 'picspec', 'picture', 'places',
+            'pliascii', 'plicanc', 'plickpt', 'plidelete', 'plidump',
+            'pliebcdic', 'plifill', 'plifree', 'plimove', 'pliover', 'plirest',
+            'pliretc', 'pliretv', 'plisaxa', 'plisaxb', 'plisaxc', 'plisaxd',
+            'plisrta', 'plisrtb', 'plisrtc', 'plisrtd', 'plitdli', 'plitran11',
+            'plitran12', 'plitran21', 'plitran22', 'pointer', 'pointeradd',
+            'pointerdiff', 'pointersubtract', 'pointervalue', 'poly', 'pos',
+            'position', 'prec', 'precision', 'pred', 'present', 'print',
+            'priority', 'proc', 'procedure', 'procedurename', 'procname',
+            'prod', 'ptr', 'ptradd', 'ptrdiff', 'ptrsubtract', 'ptrvalue',
+            'put', 'putenv', 'quote', 'radix', 'raise2', 'random', 'range',
+            'rank', 'read', 'real', 'record', 'recsize', 'recursive', 'red',
+            'reducible', 'reentrant', 'refer', 'regional', 'reg12', 'release',
+            'rem', 'reorder', 'repattern', 'repeat', 'replaceby2', 'reply',
+            'reread', 'rescan', 'reserved', 'reserves', 'resignal', 'respec',
+            'retcode', 'return', 'returns', 'reuse', 'reverse', 'revert',
+            'rewrite', 'right', 'round', 'rounddec', 'samekey', 'scalarvarying',
+            'scale', 'search', 'searchr', 'secs', 'secstodate', 'secstodays',
+            'select', 'seql', 'sequential', 'serialize4', 'set', 'sign',
+            'signal', 'signed', 'sin', 'sind', 'sinf', 'sinh', 'sis', 'size',
+            'skip', 'snap', 'sourcefile', 'sourceline', 'sqrt', 'sqrtf',
+            'stackaddr', 'statement', 'static', 'status', 'stg', 'stmt', 'stop',
+            'storage', 'stream', 'strg', 'string', 'stringrange', 'stringsize',
+            'structure', 'strz', 'subrg', 'subscriptrange', 'substr',
+            'subtract', 'succ', 'sum', 'suppress', 'sysin', 'sysnull',
+            'sysparm', 'sysprint', 'system', 'sysversion', 'tally', 'tan',
+            'tand', 'tanf', 'tanh', 'task', 'then', 'thread', 'threadid',
+            'time', 'tiny', 'title', 'to', 'total', 'tpk', 'tpm', 'transient',
+            'translate', 'transmit', 'trim', 'trkofl', 'trunc', 'type', 'ufl',
+            'ulength', 'ulength16', 'ulength8', 'unal', 'unaligned',
+            'unallocated', 'unbuf', 'unbuffered', 'undefinedfile', 'underflow',
+            'undf', 'unlock', 'unsigned', 'unspec', 'until', 'update', 'upos',
+            'uppercase', 'upthru', 'usubstr', 'usurrogate', 'uvalid', 'uwidth',
+            'valid', 'validdate', 'value', 'var', 'varglist', 'vargsize',
+            'variable', 'varying', 'varyingz', 'vb', 'vbs', 'verify', 'verifyr',
+            'vs', 'vsam', 'wait', 'wchar', 'wcharval', 'weekday', 'when',
+            'whigh', 'while', 'widechar', 'wlow', 'write', 'xmlchar', 'y4date',
+            'y4julian', 'y4year', 'zdiv', 'zerodivide'
+            )
+        ),
+    'SYMBOLS' => array(
+        1 => array(
+            '+', '-', '*', '/', '=', '<', '>', '&', '^', '|', ':', '(', ')', ';', ','
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;'
+            ),
+        'COMMENTS' => array(
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #0000ff;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;',
+            ),
+        'METHODS' => array(
+            0 => 'color: #004000;'
+            ),
+        'SYMBOLS' => array(
+            1 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array()
+        ),
+    'URLS' => array(1 => ''),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(1 => '.'),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/plsql.php b/wp-content/plugins/wp-syntax/geshi/geshi/plsql.php
index 1a9378cdf98637c53f2dae3a6ec2cc4a84db7713..09f90a225c6c1f147afd2fe7b999474f4b220c96 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/plsql.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/plsql.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Victor Engmark <victor.engmark@gmail.com>
  * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/10/26
  *
  * Oracle 9.2 PL/SQL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/postgresql.php b/wp-content/plugins/wp-syntax/geshi/geshi/postgresql.php
index c0decd0c2f1f2c3f3a2ad4376077a9fb19facbec..662fdd7603bd06935b32bb65454ea2fdca7653ca 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/postgresql.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/postgresql.php
@@ -5,7 +5,7 @@
  * Author: Christophe Chauvet (christophe_at_kryskool_dot_org)
  * Contributors: Leif Biberg Kristensen <leif_at_solumslekt_dot_org> 2010-05-03
  * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/07/20
  *
  * PostgreSQL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/povray.php b/wp-content/plugins/wp-syntax/geshi/geshi/povray.php
index a0939bbd8da0d8feda43000bced400f75f7b3517..c0ce35ca1723720eaebcd1fcf3e89da101b43e1a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/povray.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/povray.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Carl Fürstenberg (azatoth@gmail.com)
  * Copyright: © 2007 Carl Fürstenberg
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/07/11
  *
  * Povray language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/powerbuilder.php b/wp-content/plugins/wp-syntax/geshi/geshi/powerbuilder.php
index c694bdb9ebba9dac8f92da7f225085372f86a9fc..d3fcf615f4885a54df010a98b289e208deff4d91 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/powerbuilder.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/powerbuilder.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Doug Porter (powerbuilder.geshi@gmail.com)
  * Copyright: (c) 2009 Doug Porter
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/07/13
  *
  * PowerBuilder (PowerScript) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/powershell.php b/wp-content/plugins/wp-syntax/geshi/geshi/powershell.php
index 37747af486849ac4b4af039535545551e0534fd6..bd78d7392697e5cb374b048edd401c4311dc4cd5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/powershell.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/powershell.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Frode Aarebrot (frode@aarebrot.net)
  * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/06/20
  *
  * PowerShell language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/proftpd.php b/wp-content/plugins/wp-syntax/geshi/geshi/proftpd.php
new file mode 100644
index 0000000000000000000000000000000000000000..330db4b2796a0106e4a0aa191cc91fe7c774c130
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/proftpd.php
@@ -0,0 +1,374 @@
+<?php
+/*************************************************************************************
+ * proftpd.php
+ * ----------
+ * Author: Benny Baumann (BenBE@geshi.org)
+ * Copyright: (c) 2010 Benny Baumann (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/01/25
+ *
+ * ProFTPd language file for GeSHi.
+ * Words are scraped from their documentation
+ *
+ * CHANGES
+ * -------
+ * 2004/08/05 (1.0.8.10)
+ *   -  First Release
+ *
+ * TODO (updated 2011/01/25)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'ProFTPd configuration',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        /*keywords*/
+        1 => array(
+            //mod_auth
+            'AccessDenyMsg', 'AccessGrantMsg', 'AnonRejectePasswords',
+            'AnonRequirePassword', 'AuthAliasOnly', 'AuthUsingAlias',
+            'CreateHome', 'DefaultChdir', 'DefaultRoot', 'GroupPassword',
+            'LoginPasswordPrompt', 'MaxClients', 'MaxClientsPerClass',
+            'MaxClientsPerHost', 'MaxClientsPerUser', 'MaxConnectionsPerHost',
+            'MaxHostsPerUser', 'MaxLoginAttempts', 'RequireValidShell',
+            'RootLogin', 'RootRevoke', 'TimeoutLogin', 'TimeoutSession',
+            'UseFtpUsers', 'UserAlias', 'UserDirRoot', 'UserPassword',
+
+            //mod_auth_file
+            'AuthGroupFile', 'AuthUserFile',
+
+            //mod_auth_pam
+            'AuthPAM', 'AuthPAMConfig',
+
+            //mod_auth_unix
+            'PersistentPasswd',
+
+            //mod_ban
+            'BanControlsACLs', 'BanEngine', 'BanLog', 'BanMessage', 'BanOnEvent',
+            'BanTable',
+
+            //mod_cap
+            'CapabilitiesEngine', 'CapabilitiesSet',
+
+            //mod_core
+            'Allow', 'AllowAll', 'AllowClass', 'AllowFilter',
+            'AllowForeignAddress', 'AllowGroup', 'AllowOverride',
+            'AllowRetrieveRestart', 'AllowStoreRestart', 'AllowUser',
+            'AnonymousGroup', 'AuthOrder', 'Bind', 'CDPath', 'Class', 'Classes',
+            'CommandBufferSize', 'DebugLevel', 'DefaultAddress',
+            'DefaultServer', 'DefaultTransferMode', 'DeferWelcome', 'Define',
+            'Deny', 'DenyAll', 'DenyClass', 'DenyFilter', 'DenyGroup',
+            'DenyUser', 'DisplayChdir', 'DisplayConnect', 'DisplayFirstChdir',
+            'DisplayGoAway', 'DisplayLogin', 'DisplayQuit', 'From', 'Group',
+            'GroupOwner', 'HideFiles', 'HideGroup', 'HideNoAccess', 'HideUser',
+            'IdentLookups', 'IgnoreHidden', 'Include', 'MasqueradeAddress',
+            'MaxConnectionRate', 'MaxInstances', 'MultilineRFC2228', 'Order',
+            'PassivePorts', 'PathAllowFilter', 'PathDenyFilter', 'PidFile',
+            'Port', 'RLimitCPU', 'RLimitMemory', 'RLimitOpenFiles', 'Satisfy',
+            'ScoreboardFile', 'ServerAdmin', 'ServerIdent', 'ServerName',
+            'ServerType', 'SetEnv', 'SocketBindTight', 'SocketOptions',
+            'SyslogFacility', 'SyslogLevel', 'tcpBackLog', 'tcpNoDelay',
+            'TimeoutIdle', 'TimeoutLinger', 'TimesGMT', 'TransferLog', 'Umask',
+            'UnsetEnv', 'UseIPv6', 'User', 'UseReverseDNS', 'UserOwner',
+            'UseUTF8', 'WtmpLog',
+
+            //mod_ctrls_admin
+            'AdminControlsACLs', 'AdminControlsEngine',
+
+            //mod_delay
+            'DelayEngine', 'DelayTable',
+
+            //mod_dynmasq
+            'DynMasqRefresh',
+
+            //mod_exec
+            'ExecBeforeCommand', 'ExecEngine', 'ExecEnviron', 'ExecLog',
+            'ExecOnCommand', 'ExecOnConnect', 'ExecOnError', 'ExecOnEvent',
+            'ExecOnExit', 'ExecOnRestart', 'ExecOptions', 'ExecTimeout',
+
+            //mod_ldap
+            'LDAPAliasDereference', 'LDAPAttr', 'LDAPAuthBinds',
+            'LDAPDefaultAuthScheme', 'LDAPDefaultGID', 'LDAPDefaultUID',
+            'LDAPDNInfo', 'LDAPDoAuth', 'LDAPDoGIDLookups',
+            'LDAPDoQuotaLookups', 'LDAPDoUIDLookups',
+            'LDAPForceGeneratedHomedir', 'LDAPForceHomedirOnDemand',
+            'LDAPGenerateHomedir', 'LDAPGenerateHomedirPrefix',
+            'LDAPGenerateHomedirPrefixNoUsername', 'LDAPHomedirOnDemand',
+            'LDAPHomedirOnDemandPrefix', 'LDAPHomedirOnDemandPrefixNoUsername',
+            'LDAPHomedirOnDemandSuffix', 'LDAPNegativeCache',
+            'LDAPProtocolVersion', 'LDAPQueryTimeout', 'LDAPSearchScope',
+            'LDAPServer',
+
+            //mod_load
+            'MaxLoad',
+
+            //mod_log
+            'AllowLogSymlinks', 'ExtendedLog', 'LogFormat', 'ServerLog',
+            'SystemLog',
+
+            //mod_ls'
+            'DirFakeGroup', 'DirFakeMode', 'DirFakeUser', 'ListOptions',
+            'ShowSymlinks', 'UseGlobbing',
+
+            //mod_quotatab
+            'QuotaDirectoryTally', 'QuotaDisplayUnits', 'QuotaEngine',
+            'QuotaExcludeFilter', 'QuotaLimitTable', 'QuotaLock', 'QuotaLog',
+            'QuotaOptions', 'QuotaShowQuotas', 'QuotaTallyTable',
+
+            //mod_quotatab_file
+
+            //mod_quotatab_ldap
+
+            //mod_quotatab_sql
+
+            //mod_radius
+            'RadiusAcctServer', 'RadiusAuthServer', 'RadiusEngine',
+            'RadiusGroupInfo', 'RadiusLog', 'RadiusNASIdentifier',
+            'RadiusQuotaInfo', 'RadiusRealm', 'RadiusUserInfo', 'RadiusVendor',
+
+            //mod_ratio
+            'AnonRatio', 'ByteRatioErrMsg', 'CwdRatioMsg', 'FileRatioErrMsg',
+            'GroupRatio', 'HostRatio', 'LeechRatioMsg', 'RatioFile', 'Ratios',
+            'RatioTempFile', 'SaveRatios', 'UserRatio',
+
+            //mod_readme
+            'DisplayReadme',
+
+            //mod_rewrite
+            'RewriteCondition', 'RewriteEngine', 'RewriteLock', 'RewriteLog',
+            'RewriteMap', 'RewriteRule',
+
+            //mod_sftp
+            'SFTPAcceptEnv', 'SFTPAuthMethods', 'SFTPAuthorizedHostKeys',
+            'SFTPAuthorizedUserKeys', 'SFTPCiphers', 'SFTPClientMatch',
+            'SFTPCompression', 'SFTPCryptoDevice', 'SFTPDHParamFile',
+            'SFTPDigests', 'SFTPDisplayBanner', 'SFTPEngine', 'SFTPExtensions',
+            'SFTPHostKey', 'SFTPKeyBlacklist', 'SFTPKeyExchanges', 'SFTPLog',
+            'SFTPMaxChannels', 'SFTPOptions', 'SFTPPassPhraseProvider',
+            'SFTPRekey', 'SFTPTrafficPolicy',
+
+            //mod_sftp_pam
+            'SFTPPAMEngine', 'SFTPPAMOptions', 'SFTPPAMServiceName',
+
+            //mod_sftp_sql
+
+            //mod_shaper
+            'ShaperAll', 'ShaperControlsACLs', 'ShaperEngine', 'ShaperLog',
+            'ShaperSession', 'ShaperTable',
+
+            //mod_sql
+            'SQLAuthenticate', 'SQLAuthTypes', 'SQLBackend', 'SQLConnectInfo',
+            'SQLDefaultGID', 'SQLDefaultHomedir', 'SQLDefaultUID', 'SQLEngine',
+            'SQLGroupInfo', 'SQLGroupWhereClause', 'SQLHomedirOnDemand',
+            'SQLLog', 'SQLLogFile', 'SQLMinID', 'SQLMinUserGID',
+            'SQLMinUserUID', 'SQLNamedQuery', 'SQLNegativeCache', 'SQLOptions',
+            'SQLRatios', 'SQLRatioStats', 'SQLShowInfo', 'SQLUserInfo',
+            'SQLUserWhereClause',
+
+            //mod_sql_passwd
+            'SQLPasswordEncoding', 'SQLPasswordEngine', 'SQLPasswordSaltFile',
+            'SQLPasswordUserSalt',
+
+            //mod_tls
+            'TLSCACertificateFile', 'TLSCACertificatePath',
+            'TLSCARevocationFile', 'TLSCARevocationPath',
+            'TLSCertificateChainFile', 'TLSCipherSuite', 'TLSControlsACLs',
+            'TLSCryptoDevice', 'TLSDHParamFile', 'TLSDSACertificateFile',
+            'TLSDSACertificateKeyFile', 'TLSEngine', 'TLSLog', 'TLSOptions',
+            'TLSPKCS12File', 'TLSPassPhraseProvider', 'TLSProtocol',
+            'TLSRandomSeed', 'TLSRenegotiate', 'TLSRequired',
+            'TLSRSACertificateFile', 'TLSRSACertificateKeyFile',
+            'TLSSessionCache', 'TLSTimeoutHandshake', 'TLSVerifyClient',
+            'TLSVerifyDepth', 'TLSVerifyOrder',
+
+            //mod_tls_shmcache
+
+            //mod_unique_id
+            'UniqueIDEngine',
+
+            //mod_wrap
+            'TCPAccessFiles', 'TCPAccessSyslogLevels', 'TCPGroupAccessFiles',
+            'TCPServiceName', 'TCPUserAccessFiles',
+
+            //mod_wrap2
+            'WrapAllowMsg', 'WrapDenyMsg', 'WrapEngine', 'WrapGroupTables',
+            'WrapLog', 'WrapServiceName', 'WrapTables', 'WrapUserTables',
+
+            //mod_wrap2_file
+
+            //mod_wrap2_sql
+
+            //mod_xfer
+            'AllowOverwrite', 'DeleteAbortedStores', 'DisplayFileTransfer',
+            'HiddenStor', 'HiddenStores', 'MaxRetrieveFileSize',
+            'MaxStoreFileSize', 'StoreUniquePrefix', 'TimeoutNoTransfer',
+            'TimeoutStalled', 'TransferRate', 'UseSendfile',
+
+            //unknown
+            'ScoreboardPath', 'ScoreboardScrub'
+            ),
+        /*keywords 3*/
+        3 => array(
+            //mod_core
+            'Anonymous',
+            'Class',
+            'Directory',
+            'IfDefine',
+            'IfModule',
+            'Limit',
+            'VirtualHost',
+
+            //mod_ifsession
+            'IfClass', 'IfGroup', 'IfUser',
+
+            //mod_version
+            'IfVersion'
+            ),
+        /*permissions*/
+        4 => array(
+            //mod_core
+            'ALL',
+            'CDUP',
+            'CMD',
+            'CWD',
+            'DELE',
+            'DIRS',
+            'LOGIN',
+            'MKD',
+            'READ',
+            'RETR',
+            'RMD',
+            'RNFR',
+            'RNTO',
+            'STOR',
+            'WRITE',
+            'XCWD',
+            'XMKD',
+            'XRMD',
+
+            //mod_copy
+            'SITE_CPFR', 'SITE_CPTO',
+
+            //mod_quotatab
+            'SITE_QUOTA',
+
+            //mod_site
+            'SITE_HELP', 'SITE_CHMOD', 'SITE_CHGRP',
+
+            //mod_site_misc
+            'SITE_MKDIR', 'SITE_RMDIR', 'SITE_SYMLINK', 'SITE_UTIME',
+            ),
+        /*keywords 2*/
+        2 => array(
+            'all','on','off','yes','no',
+            'standalone', 'inetd',
+            'default', 'auth', 'write',
+            'internet', 'local', 'limit', 'ip',
+            'from'
+            ),
+        ),
+    'SYMBOLS' => array(
+        '+', '-'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #00007f;',
+            2 => 'color: #0000ff;',
+            3 => 'color: #000000; font-weight:bold;',
+            4 => 'color: #000080; font-weight:bold;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #adadad; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #339933;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #7f007f;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:www.proftpd.org+inurl:docs&amp;btnI=I%27m%20Feeling%20Lucky',
+        2 => '',
+        3 => 'http://www.google.com/search?hl=en&amp;q={FNAMEL}+site:www.proftpd.org+inurl:docs&amp;btnI=I%27m%20Feeling%20Lucky',
+        4 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'ENABLE_FLAGS' => array(
+            'BRACKETS' => GESHI_NEVER,
+            'SYMBOLS' => GESHI_NEVER
+        ),
+        'KEYWORDS' => array(
+            2 => array(
+                'DISALLOWED_BEFORE' => '(?<=\s)(?<!=)',
+                'DISALLOWED_AFTER' => '(?!\+)(?!\w)',
+            ),
+            3 => array(
+                'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
+                'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
+            ),
+            4 => array(
+                'DISALLOWED_BEFORE' => '(?<=\s)(?<!=)',
+                'DISALLOWED_AFTER' => '(?!\+)(?=\/|(?:\s+\w+)*\s*&gt;)',
+            )
+        )
+    )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/progress.php b/wp-content/plugins/wp-syntax/geshi/geshi/progress.php
index 3816e5896cfeb16176732cfca535cdb8babdc079..79900261beda487bb806db014311d79aa06fccba 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/progress.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/progress.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Marco Aurelio de Pasqual (marcop@hdi.com.br)
  * Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/07/11
  *
  * Progress language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/prolog.php b/wp-content/plugins/wp-syntax/geshi/geshi/prolog.php
index 74884974ff0387a671cd842dd0b803480563f8c8..a106a4e4e797068647b5aacf5eaea707a9259580 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/prolog.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/prolog.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/10/02
  *
  * Prolog language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/properties.php b/wp-content/plugins/wp-syntax/geshi/geshi/properties.php
index ba91639f168197a11cad4b2cd54b81bd183d9cef..e1317b227aecb8015226c228adbbfd9fb022838e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/properties.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/properties.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Edy Hinzen
  * Copyright: (c) 2009 Edy Hinzen
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/04/03
  *
  * Property language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/providex.php b/wp-content/plugins/wp-syntax/geshi/geshi/providex.php
index d6aab00fc4ecfd244e101f81105f50fd885bd17f..1e735bd0f47fcb8da88ddd438b2ba2597fb6e0b4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/providex.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/providex.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jeff Wilder (jeff@coastallogix.com)
  * Copyright:  (c) 2008 Coastal Logix (http://www.coastallogix.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/10/18
  *
  * ProvideX language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/purebasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/purebasic.php
index c3cfc086b8d93e8f9ff5756b56ad47b0005106f9..d78ffe97b9914bcc8f478abac94e394dfd2139f7 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/purebasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/purebasic.php
@@ -4,7 +4,7 @@
  * -------
  * Author: GuShH
  * Copyright: (c) 2009 Gustavo Julio Fiorenza
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 13/06/2009
  *
  * PureBasic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pycon.php b/wp-content/plugins/wp-syntax/geshi/geshi/pycon.php
new file mode 100644
index 0000000000000000000000000000000000000000..ac2b34d077bd3f39d28a920118c3943ff99711df
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pycon.php
@@ -0,0 +1,64 @@
+<?php
+/*************************************************************************************
+ * python.php
+ * ----------
+ * Author: Roberto Rossi (rsoftware@altervista.org)
+ * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.11
+ * Date Started: 2004/08/30
+ *
+ * Python language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2008/12/18
+ *  -  Added missing functions and keywords. Also added two new Python 3.0 types. SF#2441839
+ * 2005/05/26
+ *  -  Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
+ * 2004/11/27 (1.0.1)
+ *  -  Added support for multiple object splitters
+ * 2004/08/30 (1.0.0)
+ *  -  First Release
+ *
+ * TODO (updated 2004/11/27)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+//This
+require(dirname(__FILE__).'/python.php');
+
+$language_data['LANG_NAME'] = 'Python (console mode)';
+
+$language_data['STRICT_MODE_APPLIES'] = GESHI_ALWAYS;
+$language_data['SCRIPT_DELIMITERS'][-1] = '/^(>>>).*?$(?:\n\.\.\..*?$)*($)/m';
+$language_data['HIGHLIGHT_STRICT_BLOCK'][-1] = true;
+
+$language_data['STYLES']['SCRIPT'][-1] = 'color: #222222;';
+
+if(!isset($language_data['COMMENT_REGEXP'])) {
+    $language_data['COMMENT_REGEXP'] = array();
+}
+
+$language_data['COMMENT_REGEXP'][-1] = '/(?:^|\A\s)(?:>>>|\.\.\.)/m';
+$language_data['STYLES']['COMMENTS'][-1] = 'color: #444444;';
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/pys60.php b/wp-content/plugins/wp-syntax/geshi/geshi/pys60.php
new file mode 100644
index 0000000000000000000000000000000000000000..59c67fac73f62c5cdfff370d9ee863c7a084116f
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/pys60.php
@@ -0,0 +1,273 @@
+<?php
+/**************************************************************************************
+ * pys60.php
+ * ----------
+ * Author: Sohan Basak (ronnie.basak96 @gmail.com)
+ * Copyright: (c) 2012 Sohan Basak (http://tothepower.tk),  Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
+ * Release Version: 1.0.8.11
+ * Date Started: 2012/05/03
+ *
+ * Python for S60 language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * No Changes Till Date
+ *
+ * The python.php file is extended to pys60.php with required modifications
+ *
+ * NOTES
+ *
+ * -I have kept the ":" in Reserved chars, so that it gets highlighted differently than brackets and/or symbols
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Python for S60',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'", '"""',"'''",'""','""'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+
+        /*
+         ** Set 1: reserved words
+         ** http://python.org/doc/current/ref/keywords.html
+         */
+        1 => array(
+            'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
+            'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
+            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', "<<", ">>", "as"
+            ),
+
+        /*
+         ** Set 2: builtins
+         ** http://python.org/doc/current/lib/built-in-funcs.html
+         */
+        2 => array(
+            '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
+            'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
+            'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
+            'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
+            'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
+            'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
+            'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
+            'vars', 'xrange', 'zip',
+            // Built-in constants: http://python.org/doc/current/lib/node35.html
+            'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
+            // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
+            'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
+            'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
+            'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
+            'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
+            'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
+            'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
+            'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
+            'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
+            'RuntimeWarning', 'FutureWarning',
+            //Symbian Errors
+            "SymbianError", "KernelError",
+            // self: this is a common python convention (but not a reserved word)
+            'self'
+            ),
+
+        /*
+         ** Set 3: standard library
+         ** http://python.org/doc/current/lib/modindex.html
+         */
+        3 => array(
+            '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
+            'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
+            'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
+            'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
+            'collections', 'colorsys', 'commands', 'compileall', 'compiler',
+            'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
+            'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
+            'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
+            'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
+            'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
+            'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
+            'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
+            'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
+            'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
+            'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
+            'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
+            'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
+            'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
+            'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
+            're', 'readline', 'resource', 'rexec', 'rgbimg', 'rlcompleter',
+            'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
+            'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
+            'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
+            'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
+            'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
+            'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
+            'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
+            'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
+            'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
+            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib', "os.path", "sys.path",
+
+            //PythonS60 Standard Library
+            //http://pys60.garage.maemo.org/doc/s60/
+            //These are the standard modules in the archive
+
+            "appuifw", "globalui","e32", "telephone", "aosocket", "btsocket",
+            "sysinfo","camera","graphics","keycapture","key_codes","topwindow", "gles",
+            "glcanvas","sensor", "audio","messaging", "inbox","location","positioning",
+            "contacts", "e32calendar", "e32db","e32dbm","logs","scriptext",
+            "series60_console",
+
+            //These are external but very often usable modules
+
+            "appuifw2","ArchetypeUI","elementtree","lightblue",
+            "activaprofile","Adjustor","akntextutils","aosocketnativenew",
+            "appreciation","applicationmanager","appswitch","atextit","bt_teror","btconsole",
+            "btswitch","cElementTree","cenrep","cerealizer","cl_gui","clipboard",
+            "clipboard_CHN","debugger","decompile2",
+            "dir_iter","download","easydb","ECenrep","Edit_find","efeature","elocation","envy",
+            "EProfile","erestart","error","esyagent","Execwap","exprofile","fastcamera",
+            "feature","fgimage","filebrowser","firmware","fold","fonts","fraction","FTP",
+            "ftplibnew","fy_manager","fy_menu","gles_utils","gps_location","hack",
+            "HTML2TXT","iapconnect","icon_image","image_decoder",
+            "ini","interactive_console","inting","key_modifiers","key_tricks","keypress",
+            "landmarks","lite_fm","locationacq","locationrequestor",
+            "logo","markupbase","mbm","mbm2","minidb","miniinfo","MISC",
+            "misty","Msg","ntpath","odict","Paintbox","pathinfo","pexif","pickcolor",
+            "powlite_fm","powlite_fm2","powlite_fm3","powlite_fme","prgbar","prodb",
+            "profileengine","progressbar","progressbartw","progressnotes",
+            "ProgressBarTW2","proshivka","py_upload","pyConnection","PyFileMan",
+            "pykeylock","PyPyc","pyqq","pys60crypto","pys60usb","rfc822",
+            "RUSOS","scmk","scrollpage","SISFIELDS","SISFIELD","sisfile",
+            "SISINFO","sisreader","Sistools","smidi","smsreject","speechy","sre_compile",
+            "sre_constants","sre_parse","sre","sysagent","syslang","TextMan",
+            "textrenderer","TextWrap","topwind","tsocket","uikludge","uikludges","uitricks",
+            "walkfile","wallpaper","wfm_lite",
+            "wif_keys","wif","window","wlanmgmt","wlantools","wt_color","wt_requesters",
+            "zhkey",
+
+            //These are recent additions
+            "miffile"
+            ),
+
+        /*
+         ** Set 4: special methods
+         ** http://python.org/doc/current/ref/specialnames.html
+         */
+        4 => array(
+            ///*
+            //// Iterator types: http://python.org/doc/current/lib/typeiter.html
+            //'__iter__', 'next',
+            //// String types: http://python.org/doc/current/lib/string-methods.html
+            //'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
+            //'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
+            //'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
+            //'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
+            //'translate', 'upper', 'zfill',
+            // */
+
+            // Basic customization: http://python.org/doc/current/ref/customization.html
+            '__new__', '__init__', '__del__', '__repr__', '__str__',
+            '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
+            '__hash__', '__nonzero__', '__unicode__', '__dict__',
+            // Attribute access: http://python.org/doc/current/ref/attribute-access.html
+            '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
+            '__delete__', '__slots__',
+            // Class creation, callable objects
+            '__metaclass__', '__call__',
+            // Container types: http://python.org/doc/current/ref/sequence-types.html
+            '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
+            '__getslice__', '__setslice__', '__delslice__',
+            // Numeric types: http://python.org/doc/current/ref/numeric-types.html
+            '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
+            '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
+            '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
+            '__long__','__lshift__',
+            '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
+            '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
+            '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
+            '__sub__','__xor__'
+            )
+
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #006000;font-weight:bold;',   // Reserved
+            2 => 'color: #800950;font-size:105%',                  // Built-ins + self
+            3 => 'color: #003399;font-size:106%',                  // Standard lib
+            4 => 'color: #0000cd;'                  // Special methods
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style:italic;font-size:92%',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #930; font-weight: bold;font-size:105%'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: maroon;font-size:102%;padding:2px'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #666;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #2356F8;'
+            ),
+        'METHODS' => array(
+            1 => 'color: navy;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66ccFF;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/python.php b/wp-content/plugins/wp-syntax/geshi/geshi/python.php
index 0db4632d4f103870680e2b84bbe6a172f0d252c8..ec9b17e6fefcdd48890912951674c84c296c3699 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/python.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/python.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * Python language file for GeSHi.
@@ -49,8 +49,13 @@ $language_data = array (
     'COMMENT_MULTI' => array(),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     //Longest quotemarks ALWAYS first
-    'QUOTEMARKS' => array('"""', '"', "'"),
+    'QUOTEMARKS' => array('"""', "'''", '"', "'"),
     'ESCAPE_CHAR' => '\\',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX_0O | GESHI_NUMBER_HEX_PREFIX |
+        GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F |
+        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
 
         /*
@@ -60,7 +65,7 @@ $language_data = array (
         1 => array(
             'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
             'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
-            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', 'with', 'as'
+            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', 'with', 'as', 'nonlocal'
             ),
 
         /*
@@ -172,7 +177,9 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-            '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
+        '<', '>', '=', '!', '<=', '>=',             //·comparison·operators
+        '~', '@',                                   //·unary·operators
+        ';', ','                                    //·statement·separator
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -234,4 +241,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/q.php b/wp-content/plugins/wp-syntax/geshi/geshi/q.php
index fa3717cf0d00aa6bb958682a5830854661f3d0dd..ade9928d0597ac56cccf95fa91e545e91d2ab5bb 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/q.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/q.php
@@ -4,7 +4,7 @@
  * -----
  * Author: Ian Roddis (ian.roddis@proteanmind.net)
  * Copyright: (c) 2008 Ian Roddis (http://proteanmind.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/01/21
  *
  * q/kdb+ language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/qbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/qbasic.php
index e7d12fff6719d8e7b18668338a9bdd319a5ae847..3345e3c69642dd5648a988f1d445083c5af3db34 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/qbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/qbasic.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/20
  *
  * QBasic/QuickBASIC language file for GeSHi.
@@ -62,6 +62,10 @@ $language_data = array (
     'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '',
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT |
+        GESHI_NUMBER_FLT_SCI_ZERO,
     'KEYWORDS' => array(
         1 => array(
             'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/rails.php b/wp-content/plugins/wp-syntax/geshi/geshi/rails.php
index 1982c6788e0a09c8e804a5cd26e4b5ab7c8fc65e..65ddee884e4bacffefb7c28dda00b700228e53f9 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/rails.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/rails.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Moises Deniz
  * Copyright: (c) 2005 Moises Deniz
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/03/21
  *
  * Ruby (with Ruby on Rails Framework) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/rebol.php b/wp-content/plugins/wp-syntax/geshi/geshi/rebol.php
index 02ec8deb766d48e924cf9f444928a61d4d8012d4..ea86c21cdcb8c7deb0c214cacb9f7e8822fd487d 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/rebol.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/rebol.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Lecanu Guillaume (Guillaume@LyA.fr)
  * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/12/22
  *
  * Rebol language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/reg.php b/wp-content/plugins/wp-syntax/geshi/geshi/reg.php
index 2e0dd33a74ca5f83ff09b12d981de698a80be3e9..157b2bd24b3a7ad072c400101985cf2316426378 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/reg.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/reg.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 03/15/2006
  *
  * Microsoft Registry Editor language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/rexx.php b/wp-content/plugins/wp-syntax/geshi/geshi/rexx.php
new file mode 100644
index 0000000000000000000000000000000000000000..b3cb932297e92dec8387d599ef0c723eb3f3e674
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/rexx.php
@@ -0,0 +1,162 @@
+<?php
+/*************************************************************************************
+ * rexx.php
+ * ---------------------------------
+ * Author: Jon Wolfers (sahananda@windhorse.biz)
+ * Contributors:
+ *    - Walter Pachl (pachl@chello.at)
+ * Copyright: (c) 2008 Jon Wolfers, (c) 2012 Walter Pachl
+ * Release Version: 1.0.8.11
+ * Date Started: 2008/01/07
+ *
+ * Rexx language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2012/07/29 (1.0.0)
+ *    -  tried to get it syntactically right
+ *
+ * TODO (updated 2012/07/29)
+ * -------------------------
+ *   -  Get it working on rosettacode.org
+ *
+ *************************************************************************************
+ *
+ *      This file is part of GeSHi.
+ *
+ *    GeSHi is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    GeSHi is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with GeSHi; if not, write to the Free Software
+ *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'rexx',
+    'COMMENT_SINGLE' => array(1 => '--'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'address', 'arg', 'attribute', 'call', 'constant', 'do',
+            'drop', 'exit', 'forward', 'if',
+            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
+            'options', 'parse', 'procedure', 'pull', 'push', 'queue',
+            'raise', 'return', 'say', 'select', 'signal', 'trace'
+            ),
+        2 => array(
+            'by', 'digits', 'engineering', 'error', 'expose',
+            'failure', 'for', 'forever', 'form', 'fuzz', 'halt',
+            'name', 'novalue', 'off', 'on', 'over', 'scientific', 'source',
+            'syntax', 'to', 'until', 'upper', 'version',
+            'while', 'with'
+            ),
+        3 => array(
+            'else', 'end', 'otherwise', 'then', 'when'
+            ),
+        4 => array(
+            'rc', 'result', 'sigl'
+            ),
+        5 => array(
+            'placeholderforoorexxdirectives'
+            ),
+        6 => array(
+            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
+            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
+            'charout', 'chars', 'compare', 'condition', 'copies',
+            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
+            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
+            'errortext', 'filespec', 'format', 'insert',
+            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
+            'lower', 'max', 'min', 'overlay', 'pos', 'queued', 'random',
+            'reverse', 'right', 'rxfuncadd', 'rxfuncdrop', 'rxfuncquery',
+            'rxqueue', 'setlocal', 'sign', 'sourceline', 'space',
+            'stream', 'strip', 'substr', 'subword', 'symbol', 'time',
+            'translate', 'trunc', 'userid', 'value',
+            'var', 'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
+            'words', 'xrange', 'x2b', 'x2c', 'x2d'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '<', '>', '=', '+', '-', '*', '**', '/', '|', '%', '^', '&', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #ff0000; font-weight: bold;',
+            3 => 'color: #00ff00; font-weight: bold;',
+            4 => 'color: #0000ff; font-weight: bold;',
+            5 => 'color: #880088; font-weight: bold;',
+            6 => 'color: #888800; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            'MULTI' => 'color: #808080;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;',
+            2 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/robots.php b/wp-content/plugins/wp-syntax/geshi/geshi/robots.php
index 838eddbc258803f9928824df7dcc146c475a11a8..0b75f7111dd2f4a1a9b3abe5a4a79ec6d43c34f5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/robots.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/robots.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Christian Lescuyer (cl@goelette.net)
  * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/02/17
  *
  * robots.txt language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/rpmspec.php b/wp-content/plugins/wp-syntax/geshi/geshi/rpmspec.php
index 7f2a8e5d4e9f4b4e2ae9f9a164c28cec352fc15d..fd6a561f83c5868bd41b4d2cee98ad5cde7198b4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/rpmspec.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/rpmspec.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Paul Grinberg (gri6507 TA unity-linux TOD org)
  * Copyright: (c) 2010 Paul Grinberg
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/04/27
  *
  * RPM Spec language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/rsplus.php b/wp-content/plugins/wp-syntax/geshi/geshi/rsplus.php
index ef09b238d20046de1cfc6fb4b45055677136bb89..e8a4e722bebe755c9280607b7a78ec0f0a3ac8ff 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/rsplus.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/rsplus.php
@@ -5,8 +5,9 @@
  * Author: Ron Fredericks (ronf@LectureMaker.com)
  * Contributors:
  *  - Benilton Carvalho (beniltoncarvalho@gmail.com)
+ *  - Fernando Henrique Ferraz Pereira da Rosa (mentus@gmail.com)
  * Copyright: (c) 2009 Ron Fredericks (http://www.LectureMaker.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/03/28
  *
  * R language file for GeSHi.
@@ -440,18 +441,17 @@ $language_data = array (
             0 => 'color:#A020F0;'
             ),
         'SCRIPT' => array(
-            0 => ''
-            )
+            0 => ''            )
         ),
     'URLS' => array(
         1 => '',
-        2 => 'http://astrostatistics.psu.edu/su07/R/html/graphics/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/graphics/html/{FNAME}.html
-        3 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/Normal.html', // http://sekhon.berkeley.edu/library/stats/html/Normal.html
-        4 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/stats/html/{FNAME}.html
-        5 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/summary.lm.html', // http://sekhon.berkeley.edu/library/stats/html/summary.lm.html
-        6 => 'http://astrostatistics.psu.edu/su07/R/html/base/html/Log.html', // http://sekhon.berkeley.edu/library/base/html/Log.html
-        7 => '',
-        8 => ''
+        2 => 'http://stat.ethz.ch/R-manual/R-devel/library/base/html/{FNAME}.html', // Base Package
+        3 => 'http://stat.ethz.ch/R-manual/R-devel/library/datasets/html/{FNAME}.html', // Datasets
+        4 => 'http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/{FNAME}.html', // Graphics Package
+        5 => 'http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/{FNAME}.html', // grDevices
+        6 => 'http://stat.ethz.ch/R-manual/R-devel/library/methods/html/{FNAME}.html', // methods
+        7 => 'http://stat.ethz.ch/R-manual/R-devel/library/stats/html/{FNAME}.html', // stats
+        8 => 'http://stat.ethz.ch/R-manual/R-devel/library/utils/html/{FNAME}.html' // utils
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/ruby.php b/wp-content/plugins/wp-syntax/geshi/geshi/ruby.php
index 69e395e1b2dcdab2b163b8ea2c7d272e648439d6..f6eb1b1e375c879dff39c4190e200e85cbc38b6e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/ruby.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/ruby.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Moises Deniz
  * Copyright: (c) 2007 Moises Deniz
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/03/21
  *
  * Ruby language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/sas.php b/wp-content/plugins/wp-syntax/geshi/geshi/sas.php
index ba1f85ad0513367d2e4d9ab052327fba31a25b23..dbf95a14e172d23074df1e018e901561e20fda0a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/sas.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/sas.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Galen Johnson (solitaryr@gmail.com)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/12/27
  *
  * SAS language file for GeSHi. Based on the sas vim file.
@@ -44,7 +44,7 @@
 $language_data = array (
     'LANG_NAME' => 'SAS',
     'COMMENT_SINGLE' => array(),
-    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_MULTI' => array('/*' => '*/', '*' => ';'),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array("'", '"'),
     'ESCAPE_CHAR' => '\\',
@@ -287,4 +287,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/scala.php b/wp-content/plugins/wp-syntax/geshi/geshi/scala.php
index 58e7d234b0062a4c7f5fd1512295da837b652b92..405f59de0b85d133b91050823f8016473bdfc6a4 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/scala.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/scala.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Franco Lombardo (franco@francolombardo.net)
  * Copyright: (c) 2008 Franco Lombardo, Benny Baumann
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/02/08
  *
  * Scala language file for GeSHi.
@@ -41,9 +41,20 @@ $language_data = array (
     'LANG_NAME' => 'Scala',
     'COMMENT_SINGLE' => array(1 => '//'),
     'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(2 => "/\\'(?!\w\\'|\\\\)\w+(?=\s)/"),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-    'QUOTEMARKS' => array("'", '"'),
+    'QUOTEMARKS' => array("'",'"'),
     'ESCAPE_CHAR' => '\\',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{1,2}#i",
+        //Hexadecimal Char Specs (unicode)
+        3 => "#\\\\u[\da-fA-F]{1,4}#",
+        //Hexadecimal Char Specs (Extended Unicode)
+        4 => "#\\\\U[\da-fA-F]{1,8}#",
+        ),
     'KEYWORDS' => array(
         1 => array(
             'abstract', 'case', 'catch', 'class', 'def',
@@ -75,11 +86,16 @@ $language_data = array (
             2 => 'color: #9999cc; font-weight: bold;',
             ),
         'COMMENTS' => array(
-            1=> 'color: #008000; font-style: italic;',
+            1 => 'color: #008000; font-style: italic;',
+            2 => 'color: #CC66FF;',
             'MULTI' => 'color: #00ff00; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
-            0 => 'color: #0000ff; font-weight: bold;'
+            0 => 'color: #6666ff; font-weight: bold;',
+            1 => 'color: #6666ff; font-weight: bold;',
+            2 => 'color: #5555ff; font-weight: bold;',
+            3 => 'color: #4444ff; font-weight: bold;',
+            4 => 'color: #3333ff; font-weight: bold;'
             ),
         'BRACKETS' => array(
             0 => 'color: #F78811;'
@@ -119,4 +135,4 @@ $language_data = array (
         )
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/scheme.php b/wp-content/plugins/wp-syntax/geshi/geshi/scheme.php
index 725891418136597449aa4007e8d6148ba02818e9..a84b90809a9dbfe22df126f7fd49bb468026eef3 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/scheme.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/scheme.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Jon Raphaelson (jonraphaelson@gmail.com)
  * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * Scheme language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/scilab.php b/wp-content/plugins/wp-syntax/geshi/geshi/scilab.php
index b2636c73fa7a7cbb64a1b1c9e6ebc173738241a8..f011497ddbea3015d6030b9662aac73440b41e27 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/scilab.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/scilab.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Christophe David (geshi@christophedavid.org)
  * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/08/04
  *
  * SciLab language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/sdlbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/sdlbasic.php
index 9bb8058dd7dd30ee86278d1c4709d579548400cd..381161fdf64746af1a15d417631b8490085d3add 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/sdlbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/sdlbasic.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Roberto Rossi
  * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/08/19
  *
  * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/smalltalk.php b/wp-content/plugins/wp-syntax/geshi/geshi/smalltalk.php
index f8b30168d63282bb8f2a1c965049db14b5d24ade..5b61badaf49203f2ce05ee1fc1f1a1ee25a3dfdf 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/smalltalk.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/smalltalk.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Bananeweizen (Bananeweizen@gmx.de)
  * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/03/27
  *
  * Smalltalk language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/smarty.php b/wp-content/plugins/wp-syntax/geshi/geshi/smarty.php
index 1f9f02199611960876b052eb81be9753b84487a5..86e9d44c0155ffd96e8ddf11386bfaa7904fae26 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/smarty.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/smarty.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/07/10
  *
  * Smarty template language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/spark.php b/wp-content/plugins/wp-syntax/geshi/geshi/spark.php
new file mode 100644
index 0000000000000000000000000000000000000000..0284a1a474f9c33dd8ade457cb1b2d8088440e06
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/spark.php
@@ -0,0 +1,132 @@
+<?php
+/*************************************************************************************
+ * ada.php
+ * -------
+ * Author: Phil Thornley (tux@inmail.cz)
+ * Copyright: (c) 2004 Phil Thornley (http://www.sparksure.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/08/22
+ *
+ * SPARK language file for GeSHi.
+ *
+ * Created by modifying Ada file version 1.0.2
+ * Words are from SciTe configuration file
+ *
+ * CHANGES
+ * -------
+ * 2010/08/28 (1.0.0)
+ *   -  First Release
+ *
+ * TODO (updated 2010/08/22)
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'SPARK',
+    'COMMENT_SINGLE' => array(1 => '--', 2 => '--#'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
+            'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
+            'goto', 'return'
+            ),
+        2 => array(
+            'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
+            ),
+        3 => array(
+            'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
+            'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
+            'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
+            'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
+            'procedure', 'protected', 'raise', 'range', 'record', 'renames',
+            'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
+            'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #00007f;',
+            2 => 'color: #0000ff;',
+            3 => 'color: #46aa03; font-weight:bold;',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #adadad; font-style: italic;',
+            2 => 'color: #adadad; font-style: italic; font-weight: bold;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #7f007f;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/sparql.php b/wp-content/plugins/wp-syntax/geshi/geshi/sparql.php
new file mode 100644
index 0000000000000000000000000000000000000000..282165a01542e7fff3a94ea89b9ff7e4881e1cf8
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/sparql.php
@@ -0,0 +1,155 @@
+<?php
+/*************************************************************************************
+ * sparql.php
+ * -------
+ * Author: Karima Rafes (karima.rafes@bordercloud.com)
+ * Copyright: (c) 2011 Bourdercloud.com
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/11/05
+ *
+ * SPARQL language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/11/05 (1.0.0)
+ *  -  First Release
+ *
+ * TODO
+ * ----
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'SPARQL',
+    'COMMENT_SINGLE' => array('#'),
+    'COMMENT_MULTI' => array('/*' => '*/' ),
+    'COMMENT_REGEXP' => array(
+        //IRI (it's not a comment ;)
+        1 => "/<[^> ]*>/i"
+        ),
+    'CASE_KEYWORDS' => 1,
+    'QUOTEMARKS' => array("'", '"', '`'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(
+            'BASE','PREFIX','SELECT','DISTINCT','REDUCED','CONSTRUCT','DESCRIBE','ASK','FROM',
+            'NAMED','WHERE','ORDER','BY','ASC','DESC','LIMIT','OFFSET','OPTIONAL','GRAPH',
+            'UNION','FILTER','STR','LANG','LANGMATCHES','DATATYPE','BOUND','SAMETERM',
+            'ISIRI','ISURI','ISBLANK',
+            'ISLITERAL','REGEX','SUBSTR','TRUE',
+            'FALSE','LOAD','CLEAR',
+            'DROP','ADD','MOVE','COPY',
+            'CREATE','DELETE','INSERT',
+            'USING','SILENT','DEFAULT','ALL',
+            'DATA','WITH','INTO','TO',
+            'AS','GROUP','HAVING','UNDEF',
+            'BINDINGS','SERVICE','BIND','MINUS_KEYWORD',
+            'IRI','URI', 'BNODE',
+            'RAND','ABS','CEIL','FLOOR','ROUND',
+            'CONCAT','STRLEN',
+            'UCASE','LCASE','ENCODE_FOR_URI',
+            'CONTAINS','STRSTARTS',
+            'STRENDS','STRBEFORE',
+            'STRAFTER','REPLACE',
+            'YEAR','MONTH',
+            'DAY','HOURS',
+            'MINUTES','SECONDS',
+            'TIMEZONE','TZ',
+            'NOW','MD5',
+            'SHA1','SHA224',
+            'SHA256','SHA384',
+            'SHA512','COALESCE',
+            'IF','STRLANG','STRDT',
+            'ISNUMERIC','COUNT',
+            'SUM','MIN',
+            'MAX','AVG','SAMPLE',
+            'GROUP_CONCAT ','NOT',
+            'IN','EXISTS','SEPARATOR'
+            )
+        ),
+    'REGEXPS' => array(
+        //Variables without braces
+        1 => "\\?[a-zA-Z_][a-zA-Z0-9_]*",
+        //prefix
+        2 => "[a-zA-Z_.\\-0-9]*:",
+        //tag lang
+        3 => "@[^ .)}]*",
+        ),
+    'SYMBOLS' => array(
+        0 => array(
+            '{', '}' , '.', ';'
+            ),
+        1 => array(
+            '^^',
+            '<=','>=','!=','=','<','>','|',
+            '&&','||',
+            '(',')','[', ']',
+            '+','-','*','!','/'
+            ),
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #993333; font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #808080; font-style: italic;',
+            1 => 'color: #000078;',
+            //2 => 'color: #808080; font-style: italic;',
+            'MULTI' => 'color: #808080; font-style: italic;',
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #FF63C3;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #0000FF;',
+            1 => 'color: #FF8000; font-weight: bold;'
+            ),
+        'SCRIPT' => array(),
+        'REGEXPS' => array(
+            1 => 'color: #007800;',
+            2 => 'color: #780078;',
+            3 => 'color: #005078;'
+            )
+        ),
+    'URLS' => array(
+        1 => ''
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/sql.php b/wp-content/plugins/wp-syntax/geshi/geshi/sql.php
index 4d1d51921e643b3ccc9de429b0a11d039f910866..4d08a51fe1de61f578b23189f82c6b71018c58ee 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/sql.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/sql.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Jürgen Thomas (Juergen.Thomas@vs-polis.de)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * SQL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/stonescript.php b/wp-content/plugins/wp-syntax/geshi/geshi/stonescript.php
new file mode 100644
index 0000000000000000000000000000000000000000..2844e885ed606efab5df879a21bc50e8e4d2eba3
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/stonescript.php
@@ -0,0 +1,307 @@
+<?php
+/*************************************************************************************
+ * stonescript.php
+ * --------
+ * Author: Archimmersion ( based on ruby.php by Moises Deniz )
+ * Copyright: (c) 2011 Archimmersion ( http://www.archimmersion.com )
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/03/30
+ *
+ * StoneScript language file for GeSHi.
+ *
+ * StonesCript is a Lua based script language for the ShiVa3D game engine ( http://www.stonetrip.com )
+ *
+ * More information can be found at http://www.stonetrip.com/developer/doc/api/introduction
+ *
+ * CHANGES
+ * -------
+ * 2011/04/18 (1.0.8.11)
+ *   -  Initial release
+ *
+ *************************************************************************************
+ *
+ *   This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'StoneScript',
+    'COMMENT_SINGLE' => array(1 => "--"),
+    'COMMENT_MULTI' => array("--[[" => "]]"),
+    'COMMENT_REGEXP' => array(
+        4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', '`','\''),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        // Blue - General Keywords
+        1 => array(
+                'and', 'begin', 'break', 'do', 'else', 'elseif', 'end',
+                'for', 'if', 'in', 'while', 'next', 'not', 'or', 'redo',
+                'then', 'unless', 'until', 'when', 'false', 'nil', 'self',
+                'true', 'local', 'this', 'return',
+            ),
+        // Dark Blue - Main API names
+        2 => array(
+                'animation', 'application', 'cache', 'camera', 'debug',
+                'dynamics', 'group', 'hashtable', 'hud', 'input', 'light',
+                'log', 'math', 'mesh', 'microphone', 'music', 'navigation',
+                'network', 'object', 'pixelmap', 'projector', 'scene',
+                'sensor', 'server', 'session', 'sfx', 'shape', 'sound',
+                'string', 'system', 'table', 'user', 'video', 'xml',
+                // Plugin API names
+                'plasma', 'watersim',
+                'winDirectories',
+                'ActionSheet', 'Alert', 'Mail', 'Picker', 'StatusBar',
+            ),
+        // Constants
+        // Can be commented out if performance is crucial -> then these keywords will appear in a slightly lighter color
+        3 => array(
+                //Animation
+                'kPlaybackModeLoop', 'kPlaybackModeLoopMirrored', 'kPlaybackModeLoopReversed',
+                'kPlaybackModeOnce', 'kPlaybackModeOnceReversed',
+                //Application - Environment
+                'kStatusLoading', 'kStatusReady', 'kStatusSaving', // 'kStatusNone'
+                //Application - Options
+                'kOptionAudioMasterVolume', 'kOptionAutomaticVirtualKeyboard', 'kOptionDynamicShadowsBufferCount',
+                'kOptionDynamicShadowsBufferSize', 'kOptionDynamicShadowsConstantSampling', 'kOptionDynamicShadowsPCFSampleCount',
+                'kOptionDynamicShadowsQuality', 'kOptionDynamicShadowsScreenSpaceBlur', 'kOptionFullscreen',
+                'kOptionFullscreenHeight', 'kOptionFullscreenWidth', 'kOptionHardwareOcclusion',
+                'kOptionMaxEventBouncesPerFrame', 'kOptionNetworkStreams', 'kOptionNetworkStreamsUseBrowser',
+                'kOptionPrioritizeEventBounces', 'kOptionRenderingEnabled', 'kOptionShadersQuality',
+                'kOptionSwapInterval', 'kOptionTerrainsQuality', 'kOptionTexturesAnisotropyLevel',
+                'kOptionTexturesMipmapBias', 'kOptionTexturesQuality', 'kOptionViewportRotation',
+                //Application - Resource Types
+                'kResourceTypeAnimBank', 'kResourceTypeFont', 'kResourceTypeHUD',
+                'kResourceTypeMaterial', 'kResourceTypeMesh', 'kResourceTypeParticle',
+                'kResourceTypePixelMap', 'kResourceTypeSoundBank', 'kResourceTypeTexture',
+                'kResourceTypeTextureClip', 'kResourceTypeTrail',
+                //Cache
+                'kPropertyHeight', 'kPropertySize', 'kPropertyWidth',
+                //Dynamics
+                'kAxisX', 'kAxisY', 'kAxisZ',
+                'kTypeBox', 'kTypeCapsule', 'kTypeSphere',
+                //HUD
+                'kAddressingModeClamp', 'kAddressingModeRepeat', 'kAlignCenter', 'kAlignJustify','kAlignLeft', 'kAlignRight',
+                'kAlignTop', 'kBlendModeAdd', 'kBlendModeDefault', 'kBlendModeModulate', 'kCaseFixed', 'kCaseVariable',
+                'kCommandTypeCallAction', 'kCommandTypeCopyCheckStateToRegister', 'kCommandTypeCopyEditTextToRegister',
+                'kCommandTypeCopyListItemTextToRegister', 'kCommandTypeCopyListLastSelectedItemToRegister',
+                'kCommandTypeCopyProgressValueToRegister', 'kCommandTypeCopySliderValueToRegister', 'kCommandTypeCopyTagToRegister',
+                'kCommandTypeEnterModalMode', 'kCommandTypeInterpolateBackgroundColor', 'kCommandTypeInterpolateBorderColor',
+                'kCommandTypeInterpolateForegroundColor', 'kCommandTypeInterpolateHeight', 'kCommandTypeInterpolateOpacity',
+                'kCommandTypeInterpolatePosition', 'kCommandTypeInterpolateProgressValue', 'kCommandTypeInterpolateRotation',
+                'kCommandTypeInterpolateSize', 'kCommandTypeInterpolateWidth', 'kCommandTypeLeaveModalMode',
+                'kCommandTypeMatchScreenSpaceBottomLeftCorner', 'kCommandTypeMatchScreenSpaceBottomRightCorner',
+                'kCommandTypeMatchScreenSpaceCenter', 'kCommandTypeMatchScreenSpaceHeight', 'kCommandTypeMatchScreenSpaceTopLeftCorner',
+                'kCommandTypeMatchScreenSpaceTopRightCorner', 'kCommandTypeMatchScreenSpaceWidth', 'kCommandTypePauseMovie',
+                'kCommandTypePauseSound', 'kCommandTypePauseTimer', 'kCommandTypePlayMovie', 'kCommandTypePlaySound',
+                'kCommandTypePlaySoundLoop', 'kCommandTypeResumeSound', 'kCommandTypeSendEventToUser', 'kCommandTypeSetActive',
+                'kCommandTypeSetBackgroundColor', 'kCommandTypeSetBackgroundImage', 'kCommandTypeSetBackgroundImageUVOffset',
+                'kCommandTypeSetBackgroundImageUVScale', 'kCommandTypeSetBorderColor', 'kCommandTypeSetButtonText',
+                'kCommandTypeSetCheckState', 'kCommandTypeSetCheckText', 'kCommandTypeSetCursorPosition', 'kCommandTypeSetCursorVisible',
+                'kCommandTypeSetEditText', 'kCommandTypeSetFocus', 'kCommandTypeSetForegroundColor', 'kCommandTypeSetHeight',
+                'kCommandTypeSetLabelText', 'kCommandTypeSetOpacity', 'kCommandTypeSetPosition', 'kCommandTypeSetRotation',
+                'kCommandTypeSetSize', 'kCommandTypeSetVisible', 'kCommandTypeSetWidth', 'kCommandTypeSleep', 'kCommandTypeStartTimer',
+                'kCommandTypeStopAction', 'kCommandTypeStopMovie', 'kCommandTypeStopSound', 'kCommandTypeStopTimer',
+                'kComponentTypeButton', 'kComponentTypeCheck', 'kComponentTypeContainer', 'kComponentTypeEdit', 'kComponentTypeLabel',
+                'kComponentTypeList', 'kComponentTypeMovie', 'kComponentTypePicture', 'kComponentTypePixelMap', 'kComponentTypeProgress',
+                'kComponentTypeRenderMap', 'kComponentTypeSlider', 'kCursorShapeCross', 'kCursorShapeDefault', 'kCursorShapeHandPointing',
+                'kCursorShapeIBeam', 'kCursorShapeNone', 'kCursorShapeWaiting', 'kDirectionLeftToRight', 'kDirectionRightToLeft',
+                'kEncodingASCII', 'kEncodingUTF8', 'kEventTypeGainFocus', 'kEventTypeLooseFocus', 'kEventTypeMouseEnter',
+                'kEventTypeMouseLeave', 'kFillModeSolid', 'kInterpolatorTypeLinear', 'kInterpolatorTypePower2', 'kInterpolatorTypePower3',
+                'kInterpolatorTypePower4', 'kInterpolatorTypeRoot2', 'kInterpolatorTypeRoot3', 'kInterpolatorTypeRoot4',
+                'kInterpolatorTypeSpring1', 'kInterpolatorTypeSpring2', 'kInterpolatorTypeSpring3', 'kInterpolatorTypeSpring4',
+                'kInterpolatorTypeSpring5', 'kInterpolatorTypeSpring6',
+                'kOriginBottom', 'kOriginBottomLeft', 'kOriginBottomRight', 'kOriginCenter', 'kOriginLeft', 'kOriginRight',
+                'kOriginTop', 'kOriginTopLeft', 'kOriginTopRight', 'kProgressTypeBottomToTop', 'kProgressTypeLeftToRight',
+                'kProgressTypeRightToLeft', 'kProgressTypeTopToBottom', 'kRuntimeValueCallArgument0', 'kRuntimeValueCallArgument1',
+                'kRuntimeValueCallArgument2', 'kRuntimeValueCallArgument3', 'kRuntimeValueCurrentUser', 'kRuntimeValueCurrentUserMainCamera',
+                'kRuntimeValueRegister0', 'kRuntimeValueRegister1', 'kRuntimeValueRegister2', 'kRuntimeValueRegister3',
+                'kShapeTypeEllipsoid', 'kShapeTypeRectangle', 'kShapeTypeRoundRectangle', 'kSliderTypeBottomToTop',
+                'kSliderTypeLeftToRight', 'kSliderTypeRightToLeft', 'kSliderTypeTopToBottom', 'kWaveTypeConstant',
+                'kWaveTypeSawtooth', 'kWaveTypeSawtoothInv', 'kWaveTypeSinus', 'kWaveTypeSinusNoise', 'kWaveTypeSquare', 'kWaveTypeTriangle',
+                //Input
+                'kJoypadTypeIPhone', 'kJoypadTypeNone', 'kJoypadTypePhone', 'kJoypadTypeStandard', 'kJoypadTypeWiimote',
+                'kKey0', 'kKey1', 'kKey2', 'kKey3', 'kKey4', 'kKey5', 'kKey6', 'kKey7', 'kKey8', 'kKey9', 'kKeyA', 'kKeyB',
+                'kKeyBackspace', 'kKeyC', 'kKeyD', 'kKeyDelete', 'kKeyDown', 'kKeyE', 'kKeyEnd', 'kKeyEscape', 'kKeyF',
+                'kKeyF1', 'kKeyF10', 'kKeyF11', 'kKeyF12', 'kKeyF2', 'kKeyF3', 'kKeyF4', 'kKeyF5', 'kKeyF6', 'kKeyF7',
+                'kKeyF8', 'kKeyF9', 'kKeyG', 'kKeyH', 'kKeyHome', 'kKeyI', 'kKeyInsert', 'kKeyJ', 'kKeyK', 'kKeyL',
+                'kKeyLAlt', 'kKeyLControl', 'kKeyLeft', 'kKeyLShift', 'kKeyM', 'kKeyN', 'kKeyO', 'kKeyP', 'kKeyPageDown',
+                'kKeyPageUp', 'kKeyQ', 'kKeyR', 'kKeyRAlt', 'kKeyRControl', 'kKeyReturn', 'kKeyRight', 'kKeyRShift',
+                'kKeyS', 'kKeySpace', 'kKeyT', 'kKeyTab', 'kKeyU', 'kKeyUp', 'kKeyV', 'kKeyW', 'kKeyX', 'kKeyY',
+                'kKeyZ', 'kJoypadButtonPSPCircle', 'kJoypadButtonPSPCross', 'kJoypadButtonPSPDown', 'kJoypadButtonPSPL',
+                'kJoypadButtonPSPLeft', 'kJoypadButtonPSPR', 'kJoypadButtonPSPRight', 'kJoypadButtonPSPSelect',
+                'kJoypadButtonPSPSquare', 'kJoypadButtonPSPStart', 'kJoypadButtonPSPTriangle', 'kJoypadButtonPSPUp',
+                'kJoypadTypePSP', 'kJoypadButtonWiimoteA', 'kJoypadButtonWiimoteB', 'kJoypadButtonWiimoteC',
+                'kJoypadButtonWiimoteDown', 'kJoypadButtonWiimoteHome', 'kJoypadButtonWiimoteLeft',
+                'kJoypadButtonWiimoteMinus', 'kJoypadButtonWiimoteOne', 'kJoypadButtonWiimotePlus',
+                'kJoypadButtonWiimoteRight', 'kJoypadButtonWiimoteTwo', 'kJoypadButtonWiimoteUp', 'kJoypadButtonWiimoteZ',
+                //Light
+                'kTypeDirectional', 'kTypePoint',
+                //Math
+                'kEpsilon', 'kInfinity', 'kPi',
+                //Mesh
+                'kLockModeRead', 'kLockModeWrite', 'kLockReadWrite',
+                //Network
+                'kBluetoothServerPort', 'kDefaultServerPort', 'kStatusAuthenticated', 'kStatusSearchFinished', // 'kStatusNone', 'kStatusPending',
+                //Object
+                'kControllerTypeAI', 'kControllerTypeAnimation', 'kControllerTypeAny', 'kControllerTypeDynamics',
+                'kControllerTypeNavigation', 'kControllerTypeSound', 'kGlobalSpace', 'kLocalSpace', 'kParentSpace',
+                'kTransformOptionInheritsParentRotation', 'kTransformOptionInheritsParentScale', 'kTransformOptionInheritsParentTranslation',
+                'kTransformOptionTranslationAffectedByParentRotation', 'kTransformOptionTranslationAffectedByParentScale', 'kTypeCamera',
+                'kTypeCollider', 'kTypeDummy', 'kTypeGroup', 'kTypeLight', 'kTypeOccluder', 'kTypeProjector', 'kTypeReflector',
+                'kTypeSensor', 'kTypeSfx', 'kTypeShape',
+                //Pixelmap
+                'kBlendModeDecal', 'kBlendModeReplace', 'kFillModeBrush', 'kFillModeNone', 'kPenModeBrush', // 'kFillModeSolid',
+                'kPenModeNone', 'kPenModeSolid',
+                //Projector
+                'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
+                //Scene
+                'kFilteringModeBilinear', 'kFilteringModeNearest', 'kFilteringModeTrilinear', // 'kAddressingModeClamp', 'kAddressingModeRepeat',
+                'kSkyBoxFaceBack', 'kSkyBoxFaceBottom', 'kSkyBoxFaceFront', 'kSkyBoxFaceLeft', 'kSkyBoxFaceRight', 'kSkyBoxFaceTop',
+                //Sensor
+                'kShapeTypeBox', 'kShapeTypeSphere',
+                //Server
+                'kStatusConnected', 'kStatusNone', 'kStatusPending',
+                //Session - duplicate keywords
+                //'kStatusConnected', 'kStatusNone', 'kStatusPending',
+                //Shape
+                'kMapTypeUnknown', 'kCurveTypeBezier', 'kCurveTypeBSpline', 'kCurveTypeCatmullRom', 'kCurveTypePolyLine',
+                // 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture',  'kMapTypeTextureClip',
+
+                //System
+                'kOSType3DS', 'kOSTypeBada', 'kOSTypeBrew', 'kOSTypePalm', 'kOSTypePS3',
+                'kClientTypeEditor', 'kClientTypeEmbedded', 'kClientTypeStandalone',
+                'kGPUCapabilityBloomFilterSupport', 'kGPUCapabilityContrastFilterSupport', 'kGPUCapabilityDepthBlurFilterSupport',
+                'kGPUCapabilityDistortionFilterSupport', 'kGPUCapabilityDynamicShadowsSupport', 'kGPUCapabilityHardwareOcclusionSupport',
+                'kGPUCapabilityHardwareRenderingSupport', 'kGPUCapabilityMonochromeFilterSupport', 'kGPUCapabilityMotionBlurFilterSupport',
+                'kGPUCapabilityPixelShaderSupport', 'kGPUCapabilityVelocityBlurFilterSupport', 'kGPUCapabilityVertexShaderSupport',
+                'kLanguageAlbanian', 'kLanguageArabic', 'kLanguageBulgarian', 'kLanguageCatalan', 'kLanguageCzech', 'kLanguageDanish',
+                'kLanguageDutch', 'kLanguageEnglish', 'kLanguageFinnish', 'kLanguageFrench', 'kLanguageGerman', 'kLanguageGreek',
+                'kLanguageHebrew', 'kLanguageHungarian', 'kLanguageIcelandic', 'kLanguageItalian', 'kLanguageJapanese', 'kLanguageKorean',
+                'kLanguageNorwegian', 'kLanguagePolish', 'kLanguagePortuguese', 'kLanguageRomanian', 'kLanguageRussian',
+                'kLanguageSerboCroatian', 'kLanguageSlovak', 'kLanguageSpanish', 'kLanguageSwedish', 'kLanguageThai',
+                'kLanguageTurkish', 'kLanguageUnknown', 'kLanguageUrdu', 'kOSTypeAndroid', 'kOSTypeAngstrom', 'kOSTypeIPhone',
+                'kOSTypeLinux', 'kOSTypeMac', 'kOSTypePSP', 'kOSTypeSymbian', 'kOSTypeWii', 'kOSTypeWindows', 'kOSTypeWindowsCE',
+            ),
+        // Not used yet
+        4 => array(
+                'dummycommand',
+            ),
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
+        '+', '-', '=>', '<<'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color:#0000FF; font-weight:bold;',
+            2 => 'color:#000088; font-weight:bold;',
+            3 => 'color:#C088C0; font-weight:bold;',
+            4 => 'color:#00FEFE; font-weight:bold;',
+            ),
+        'COMMENTS' => array(
+            1 => 'color:#008000; font-style:italic;',
+            4 => 'color: #cc0000; font-style: italic;',
+            'MULTI' => 'color:#008000; font-style:italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color:#000099;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color:#000000; font-weight:bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color:#888800;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color:#AA0000;'
+            ),
+        // names after "."
+        'METHODS' => array(
+            1 => 'color:#FF00FF; font-weight:bold;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color:#000000; font-weight:bold;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color:#ff6633; font-weight:bold;',
+            1 => 'color:#0066ff; font-weight:bold;',
+            2 => 'color:#6666ff; font-weight:bold;',
+            3 => 'color:#ff3333; font-weight:bold;'
+            ),
+        'SCRIPT' => array(
+            0 => '',
+            1 => '',
+            2 => '',
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.'
+        ),
+    'REGEXPS' => array(
+        0 => array(//Variables
+            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => ''
+            ),
+        1 => array(//Arrays
+            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => ''
+            ),
+        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
+        3 => array(
+            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => '',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => ''
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
+    'SCRIPT_DELIMITERS' => array(
+        0 => array(
+            '<%' => '%>'
+            )
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        0 => true,
+        ),
+    'TAB_WIDTH' => 2
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/systemverilog.php b/wp-content/plugins/wp-syntax/geshi/geshi/systemverilog.php
index c30b97689cf09769b28e55b0f3f8735d5d3ddf41..f2ba92b19a0c89b7454bb0194c620714470fd38b 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/systemverilog.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/systemverilog.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Sean O'Boyle
  * Copyright: (C) 2008 IntelligentDV
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/06/25
  *
  * SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi.
@@ -52,9 +52,9 @@
  *        Project:  SyntaxFiles
  *
  * File: systemverilog.php
- * $LastChangedBy: seanoboyle $
- * $LastChangedDate: 2009-07-22 22:20:25 -0700 (Wed, 22 Jul 2009) $
- * $LastChangedRevision: 17 $
+ * $LastChangedBy: benbe $
+ * $LastChangedDate: 2012-08-18 01:56:20 +0200 (Sa, 18. Aug 2012) $
+ * $LastChangedRevision: 2542 $
  *
  ************************************************************************/
 
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/tcl.php b/wp-content/plugins/wp-syntax/geshi/geshi/tcl.php
index 64da1fe2640cde212ad4370c22da0eadaf4c59e2..4dd7be87b9219957045345b9a57f44f1d39ec788 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/tcl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/tcl.php
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Reid van Melle (rvanmelle@gmail.com)
  * Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/05/05
  *
  * TCL/iTCL language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/teraterm.php b/wp-content/plugins/wp-syntax/geshi/geshi/teraterm.php
index 5b29c1eb405da8001f0d8fde74c16281a5e5e7b9..f125642d59a823e120d79c671e0c47171d339ee3 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/teraterm.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/teraterm.php
@@ -4,23 +4,29 @@
  * --------
  * Author: Boris Maisuradze (boris at logmett.com)
  * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/09/26
  *
  * Tera Term Macro language file for GeSHi.
  *
  *
- * This version of ttl.php was created for Tera Term 4.60 and LogMeTT 2.9.4.
+ * This version of teraterm.php was created for Tera Term 4.62 and LogMeTT 2.9.4.
  * Newer versions of these application can contain additional Macro commands
- * and/or keywords that are not listed here. The latest release of ttl.php
+ * and/or keywords that are not listed here. The latest release of teraterm.php
  * can be downloaded from Download section of LogMeTT.com
  *
  * CHANGES
  * -------
- * 2008/09/26 (1.0.8)
+ * 2008/09/26 (1.0.0)
  *   -  First Release for Tera Term 4.60 and below.
+ * 2009/03/22 (1.1.0)
+ *   -  First Release for Tera Term 4.62 and below.
+ * 2009/04/25 (1.1.1)
+ *   -  Second Release for Tera Term 4.62 and below.
+ * 2010/09/12 (1.1.2)
+ *   -  Second Release for Tera Term 4.67, LogMeTT 2.97, TTLEditor 1.2.1 and below.
  *
- * TODO (updated 2008/09/26)
+ * TODO (updated 2010/09/12)
  * -------------------------
  * *
  *
@@ -57,27 +63,29 @@ $language_data = array (
             'Beep',
             'BplusRecv',
             'BplusSend',
-            'Break',            // (version 4.53 or later)
+            'Break',
             'Call',
-            'CallMenu',         // (version 4.56 or later)
+            'CallMenu',
             'ChangeDir',
             'ClearScreen',
-            'Clipb2Var',        //(version 4.46 or later)
+            'Clipb2Var',
             'ClosesBox',
             'CloseTT',
             'Code2Str',
             'Connect',
-            'CRC32',            // (version 4.60 or later)
-            'CRC32File',        // (version 4.60 or later)
-            'CygConnect',       // (version 4.57 or later)
+            'CRC32',
+            'CRC32File',
+            'CygConnect',
             'DelPassword',
             'Disconnect',
-            'Do',               // (version 4.56 or later)
+            'DispStr',
+            'Do',
             'Else',
+            'ElseIf',
             'EnableKeyb',
             'End',
             'EndIf',
-            'EndUntil',         // (version 4.56 or later)
+            'EndUntil',
             'EndWhile',
             'Exec',
             'ExecCmnd',
@@ -88,32 +96,37 @@ $language_data = array (
             'FileCreate',
             'FileDelete',
             'FileMarkPtr',
-            'FilenameBox',      //(version 4.54 or later)
+            'FileNameBox',
             'FileOpen',
             'FileRead',
-            'FileReadln',       // (version 4.48 or later)
+            'FileReadln',
             'FileRename',
             'FileSearch',
             'FileSeek',
             'FileSeekBack',
+            'FileStat',
             'FileStrSeek',
             'FileStrSeek2',
+            'FileTruncate',
             'FileWrite',
-            'FileWriteln',
-            'FindOperations',
+            'FileWriteLn',
+            'FindClose',
+            'FindFirst',
+            'FindNext',
             'FlushRecv',
-            'ForNext',
+            'For',
             'GetDate',
-            'GetDir',           //(version 4.46 or later)
+            'GetDir',
             'GetEnv',
+            'GetHostname',
             'GetPassword',
             'GetTime',
             'GetTitle',
-            'GetVer',           //(version 4.58 or later)
+            'GetTTDir',
+            'Getver',
             'GoTo',
             'If',
-            'IfDefined',        // (version 4.46 or later)
-            'IfThenElseIf',
+            'IfDefined',
             'Include',
             'InputBox',
             'Int2Str',
@@ -121,73 +134,91 @@ $language_data = array (
             'KmtGet',
             'KmtRecv',
             'KmtSend',
-            'LoadKeyMap',
+            'LoadKeymap',
             'LogClose',
             'LogOpen',
             'LogPause',
             'LogStart',
             'LogWrite',
-            'Loop',             // (version 4.56 or later)
+            'Loop',
             'MakePath',
             'MessageBox',
-            'MPause',           // (version 4.27 or later)
+            'MPause',
+            'Next',
             'PasswordBox',
             'Pause',
-            'QuickvanRecv',
-            'QuickvanSend',
-            'Random',           //(version 4.27 or later)
-            'Recvln',
+            'QuickVANRecv',
+            'QuickVANSend',
+            'Random',
+            'RecvLn',
             'RestoreSetup',
             'Return',
-            'RotateLeft',       //(version 4.54 or later)
-            'RotateRight',      //(version 4.54 or later)
-            'ScpRecv',          // (version 4.57 or later)
-            'ScpSend',          // (version 4.57 or later)
+            'RotateLeft',
+            'RotateRight',
+            'ScpRecv',
+            'ScpSend',
             'Send',
             'SendBreak',
+            'SendBroadcast',
             'SendFile',
-            'SendKcode',
-            'Sendln',
-            'SetBaud',          // (version 4.58 or later)
+            'SendKCode',
+            'SendLn',
+            'SendLnBroadcast',
+            'SendMulticast',
+            'SetBaud',
             'SetDate',
+            'SetDebug',
             'SetDir',
             'SetDlgPos',
-            'SetDTR',           // (version 4.59 or later)
-            'SetRTS',           // (version 4.59 or later)
-            'SetEnv',           // (version 4.54 or later)
+            'SetDTR',
             'SetEcho',
+            'SetEnv',
             'SetExitCode',
+            'SetMulticastName',
+            'SetRTS',
             'SetSync',
             'SetTime',
             'SetTitle',
             'Show',
             'ShowTT',
-            'Sprintf',          // (version 4.52 or later)
+            'SPrintF',
+            'SPrintF2',
             'StatusBox',
             'Str2Code',
             'Str2Int',
             'StrCompare',
             'StrConcat',
             'StrCopy',
+            'StrInsert',
+            'StrJoin',
             'StrLen',
-            'StrMatch',         // (version 4.59 or later)
+            'StrMatch',
+            'StrRemove',
+            'StrReplace',
             'StrScan',
-            'Testlink',
+            'StrSpecial',
+            'StrSplit',
+            'StrTrim',
+            'TestLink',
             'Then',
-            'ToLower',          //(version 4.53 or later)
-            'ToUpper',          //(version 4.53 or later)
-            'Unlink',
-            'Until',            // (version 4.56 or later)
-            'Var2Clipb',        //(version 4.46 or later)
+            'ToLower',
+            'ToUpper',
+            'UnLink',
+            'Until',
+            'Var2Clipb',
             'Wait',
+            'Wait4All',
             'WaitEvent',
-            'Waitln',
+            'WaitLn',
+            'WaitN',
             'WaitRecv',
-            'WaitRegex',        // (version 4.21 or later)
+            'WaitRegEx',
             'While',
             'XmodemRecv',
             'XmodemSend',
             'YesNoBox',
+            'YmodemRecv',
+            'YmodemSend',
             'ZmodemRecv',
             'ZmodemSend'
             ),
@@ -204,6 +235,7 @@ $language_data = array (
             'groupmatchstr9',
             'inputstr',
             'matchstr',
+            'mtimeout',
             'param2',
             'param3',
             'param4',
@@ -225,11 +257,14 @@ $language_data = array (
             '$[6]',
             '$[7]',
             '$[8]',
+            '$[9]',
+            '$branch$',
+            '$computername$',
             '$connection$',
             '$email$',
             '$logdir$',
             '$logfilename$',
-            '$logit$',
+            '$lttfilename$',
             '$mobile$',
             '$name$',
             '$pager$',
@@ -239,7 +274,7 @@ $language_data = array (
             '$ttdir$',
             '$user$',
             '$windir$',
-            ),
+        ),
         /* Keyword Symbols */
         4 => array(
             'and',
@@ -249,9 +284,11 @@ $language_data = array (
             )
         ),
     'SYMBOLS' => array(
-        '(', ')', '[', ']',
-        '~', '!', '+', '-', '*', '/', '%', '>>', '<<', '<<<', '>>>', '&', '^', '|',
-        '<>', '<=', '>=', '=', '==', '<>', '!=', '&&', '||'
+        '(', ')', '[', ']', '{', '}',
+        '+', '-', '*', '/', '%',
+        '!', '&', '|', '^',
+        '<', '>', '=',
+        '?', ':', ';',
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -314,4 +351,4 @@ $language_data = array (
     'TAB_WIDTH' => 4
 );
 
-?>
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/text.php b/wp-content/plugins/wp-syntax/geshi/geshi/text.php
index 259af41924bcfd859aaeca7c0b9d04f2da80f9ab..87fb7110c2b739b30e3b0097b2e1742e4e333498 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/text.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/text.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Sean Hanna (smokingrope@gmail.com)
  * Copyright: (c) 2006 Sean Hanna
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 04/23/2006
  *
  * Standard Text File (No Syntax Highlighting).
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/thinbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/thinbasic.php
index b41471b5888ba58c6644d5167e16153cfa05d72b..f54959e16abf0069d99fa004266e14b45a25d393 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/thinbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/thinbasic.php
@@ -4,7 +4,7 @@
  * ------
  * Author: Eros Olmi (eros.olmi@thinbasic.com)
  * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/05/12
  *
  * thinBasic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/tsql.php b/wp-content/plugins/wp-syntax/geshi/geshi/tsql.php
index 42e2ce2eae63b7765e7935909b17b9b14816f407..b4bf6bdad822952efcc1caa574e0945c27b28c90 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/tsql.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/tsql.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Duncan Lock (dunc@dflock.co.uk)
  * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/11/22
  *
  * T-SQL language file for GeSHi.
@@ -55,7 +55,7 @@ $language_data = array (
             // Keywords
             'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS',
             'ASC', 'ASSERTION', 'AT', 'AUTHORIZATION', 'BACKUP', 'BEFORE', 'BEGIN', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'BOTH', 'BREADTH',
-            'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
+            'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATCH', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
             'CLASS', 'CLOB', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLLATION', 'COLUMN', 'COMMIT', 'COMPLETION', 'COMPUTE', 'CONNECT',
             'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRUCTOR', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CONVERT', 'CORRESPONDING', 'CREATE',
             'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
@@ -79,7 +79,7 @@ $language_data = array (
             'SEQUENCE', 'SESSION', 'SESSION_USER', 'SET', 'SETS', 'SETUSER', 'SHUTDOWN', 'SIZE', 'SMALLINT', 'SPACE', 'SPECIFIC',
             'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STRUCTURE',
             'SYSTEM_USER', 'TABLE', 'TEMPORARY', 'TERMINATE', 'TEXTSIZE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE',
-            'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TSEQUAL', 'UNDER', 'UNION',
+            'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TRY', 'TSEQUAL', 'UNDER', 'UNION',
             'UNIQUE', 'UNKNOWN', 'UNNEST', 'UPDATE', 'UPDATETEXT', 'USAGE', 'USE', 'USER', 'USING', 'VALUE', 'VALUES', 'VARCHAR', 'VARIABLE',
             'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WITH', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'YEAR', 'ZONE',
             'UNCOMMITTED', 'NOCOUNT',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/typoscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/typoscript.php
index c1e3806897835ed07617d9b231cf53557cf4b2e1..6751aaa8da39e30a98c51ebd13ba5d869dbbd883 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/typoscript.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/typoscript.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Jan-Philipp Halle (typo3@jphalle.de)
  * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/07/29
  *
  * TypoScript language file for GeSHi.
@@ -218,6 +218,15 @@ $language_data = array (
     'OBJECT_SPLITTERS' => array(
         ),
     'REGEXPS' => array(
+            // xhtml tag
+        2 => array(
+            GESHI_SEARCH => '(&lt;)([a-zA-Z\\/][^\\/\\|]*?)(&gt;)',
+            GESHI_REPLACE => '\\2',
+            GESHI_MODIFIERS => 's',
+            GESHI_BEFORE => '\\1',
+            GESHI_AFTER => '\\3'
+            ),
+
             // Constant
         0 => array(
             GESHI_SEARCH => '(\{)(\$[a-zA-Z_\.]+[a-zA-Z0-9_\.]*)(\})',
@@ -236,15 +245,6 @@ $language_data = array (
             GESHI_AFTER => '\\2'
             ),
 
-            // xhtml tag
-        2 => array(
-            GESHI_SEARCH => '(&lt;[a-zA-Z\!\/].*?&gt;)',
-            GESHI_REPLACE => '\\1',
-            GESHI_MODIFIERS => 's',
-            GESHI_BEFORE => '',
-            GESHI_AFTER => ''
-            ),
-
             // extension keys / tables: (static|user|ttx|tx|tt|fe)_something[_something]
         3 => array(
             GESHI_SEARCH => '(plugin\.|[^\.]\b)((?:static|user|ttx|tx|tt|fe)(?:_[0-9A-Za-z_]+?)\b)',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/unicon.php b/wp-content/plugins/wp-syntax/geshi/geshi/unicon.php
index 839bc096684128ca1a432947a6126e327a7a78df..6fe62d0fbf9e0c0f1fedd53aacf71bcf435cc3d2 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/unicon.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/unicon.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Matt Oates (mattoates@gmail.com)
  * Copyright: (c) 2010 Matt Oates (http://mattoates.co.uk)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/04/20
  *
  * Unicon the Unified Extended Dialect of Icon language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/upc.php b/wp-content/plugins/wp-syntax/geshi/geshi/upc.php
new file mode 100644
index 0000000000000000000000000000000000000000..e05303228d8450b227b3918696bba03eb316482d
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/upc.php
@@ -0,0 +1,270 @@
+<?php
+/*************************************************************************************
+ * upc.php
+ * -----
+ * Author: Viraj Sinha (viraj@indent.com)
+ * Contributors:
+ *  - Nigel McNie (nigel@geshi.org)
+ *  - Jack Lloyd (lloyd@randombit.net)
+ *  - Michael Mol (mikemol@gmail.com)
+ * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2004/06/04
+ *
+ * UPC language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2011/06/14 (1.0.8.11)
+ *   -  This file is a revision of c.php with UPC keywords added
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'UPC',
+    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#"
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        1 => array(
+            'if', 'return', 'while', 'case', 'continue', 'default',
+            'do', 'else', 'for', 'switch', 'goto',
+
+            'upc_forall', 'upc_barrier', 'upc_notify', 'upc_wait', 'upc_fence'
+            ),
+        2 => array(
+            'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
+            ),
+        3 => array(
+            // assert.h
+            'assert',
+
+            //complex.h
+            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
+            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
+            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
+
+            //ctype.h
+            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
+            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
+            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
+
+            //inttypes.h
+            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
+            'wcstoumax',
+
+            //locale.h
+            'localeconv', 'setlocale',
+
+            //math.h
+            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
+            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
+            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
+
+            //setjmp.h
+            'longjmp', 'setjmp',
+
+            //signal.h
+            'raise',
+
+            //stdarg.h
+            'va_arg', 'va_copy', 'va_end', 'va_start',
+
+            //stddef.h
+            'offsetof',
+
+            //stdio.h
+            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
+            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
+            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
+            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
+            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
+            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
+            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
+            'vsprintf', 'vsscanf',
+
+            //stdlib.h
+            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
+            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
+            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
+            'strtol', 'strtoul', 'system',
+
+            //string.h
+            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
+            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
+            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
+            'strspn', 'strstr', 'strtok', 'strxfrm',
+
+            //time.h
+            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
+            'mktime', 'strftime', 'time',
+
+            //wchar.h
+            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
+            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
+            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
+            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
+            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
+            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
+            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
+            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
+            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
+
+            //wctype.h
+            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
+            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
+            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
+            'wctrans', 'wctype'
+            ),
+        4 => array(
+            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
+            'register', 'short', 'signed', 'sizeof', 'static', 'struct',
+            'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t',
+
+            'int8', 'int16', 'int32', 'int64',
+            'uint8', 'uint16', 'uint32', 'uint64',
+
+            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
+            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
+
+            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
+            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
+
+            'int8_t', 'int16_t', 'int32_t', 'int64_t',
+            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
+
+            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t',
+            'size_t', 'off_t',
+
+            'upc_lock_t', 'shared', 'strict', 'relaxed', 'upc_blocksizeof',
+            'upc_localsizeof', 'upc_elemsizeof'
+            ),
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', '[', ']',
+        '+', '-', '*', '/', '%',
+        '=', '<', '>',
+        '!', '^', '&', '|',
+        '?', ':',
+        ';', ','
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;',
+            2 => 'color: #000000; font-weight: bold;',
+            3 => 'color: #000066;',
+            4 => 'color: #993333;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            2 => 'color: #339933;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;',
+            1 => 'color: #000099; font-weight: bold;',
+            2 => 'color: #660099; font-weight: bold;',
+            3 => 'color: #660099; font-weight: bold;',
+            4 => 'color: #660099; font-weight: bold;',
+            5 => 'color: #006699; font-weight: bold;',
+            'HARD' => '',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0000dd;',
+            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
+            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
+            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
+            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
+            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #202020;',
+            2 => 'color: #202020;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::'
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/urbi.php b/wp-content/plugins/wp-syntax/geshi/geshi/urbi.php
new file mode 100644
index 0000000000000000000000000000000000000000..a7353ea8bba93c5dbab0a23f171d03a28b08ffe0
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/urbi.php
@@ -0,0 +1,200 @@
+<?php
+/*************************************************************************************
+ * urbi.php
+ * -------
+ * Author: Alexandre Morgand (morgand.alexandre@gmail.com)
+ * Copyright: (c) 2011 Morgand (http://gostai.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2011/09/10
+ *
+ * Urbi language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * -------------------------
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Urbi',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Multiline-continued single-line comments
+        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Multiline-continued preprocessor define
+        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        // Urbi warning.
+        3 => "#\[[0-9a-f]{8}:warning\].*#",
+        // Urbi message from echo.
+        4 => '#\[[0-9a-f]{8}\] \*\*\*.*#',
+        // Urbi error message.
+        6 => '#\[[0-9a-f]{8}:error\].*#',
+        // Urbi system message.
+        5 => '#\[00.*\].*#',
+        // Nested comment. Max depth 4.
+        7 => '#\/\*(.|\n)*\/\*(.|\n)*\*\/(.|\n)*\*\/#',
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array(
+        0 => '"',
+        1 => '\'',
+        ),
+    // For Urbi, disable escape char is better.
+    'ESCAPE_CHAR' => '\\',
+    'ESCAPE_REGEXP' => array(
+        //Simple Single Char Escapes
+        1 => "#\\\\[abfnrtv\\\'\"?\n]#",
+        //Hexadecimal Char Specs
+        2 => "#\\\\x[\da-fA-F]{2}#",
+        //Hexadecimal Char Specs
+        3 => "#\\\\u[\da-fA-F]{4}#",
+        //Hexadecimal Char Specs
+        4 => "#\\\\U[\da-fA-F]{8}#",
+        //Octal Char Specs
+        5 => "#\\\\[0-7]{1,3}#",
+        ),
+    'NUMBERS' =>
+        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
+        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
+        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
+    'KEYWORDS' => array(
+        // Condition keywords.
+        1 => array(
+            'at', 'at;', 'at|', 'at&', 'at,', 'break', 'call', 'case', 'catch', 'continue',
+            'do', 'else', 'every', 'every&', 'every,', 'every;', 'every|', 'for', 'for&',
+            'for,', 'for;', 'foreach', 'for|', 'freezeif', 'goto', 'if', 'in', 'loop',
+            'loop&', 'loop,', 'loop;', 'loop|', 'or_eq', 'stopif', 'switch', 'try',
+            'waituntil', 'when', 'whenever', 'while', 'while&', 'while,', 'while;',
+            'while|', 'throw', 'onleave', 'watch', 'return', 'and_eq', 'default', 'finally',
+            'timeout', 'xor_eq'
+            ),
+        // Type.
+        2 => array(
+            'virtual', 'using', 'namespace', 'inline', 'protected', 'private', 'public',
+            'typename', 'typeid', 'class', 'const_cast', 'dynamic_cast', 'friend',
+            'template', 'enum', 'static_cast', 'reinterpret_cast', 'mutable', 'explicit'
+            ),
+        // Standard function.
+        3 => array(
+            'this', 'sizeof', 'delete', 'assert', 'isdef', 'compl', 'detach',
+            'disown', '__HERE__', 'asm'
+            ),
+        // Type.
+        4 => array(
+            'char', 'const', 'double', 'int', 'long', 'typedef', 'union',
+            'unsigned', 'var', 'short', 'wchar_t', 'volatile', 'signed', 'bool',
+            'float', 'struct', 'auto', 'register', 'static', 'extern', 'function',
+            'export', 'external', 'internal', 'closure', 'BIN'
+            ),
+        ),
+    'SYMBOLS' => array(
+        0 => array('(', ')', '{', '}', '[', ']'),
+        1 => array('<', '>','=', '!=', '==', '==='),
+        2 => array('+', '-', '*', '/', '%', 'bitand', 'bitor', 'xor'),
+        3 => array('!', '^', '&', '|'),
+        4 => array('?', ':', ';')
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000ff;',
+            2 => 'color: #0000ff;',
+            3 => 'color: #0000dd;',
+            4 => 'color: #0000ff;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666;',
+            2 => 'color: #339900;',
+            3 => 'color: #d46b0f;',
+            4 => 'color: #20b537;',
+            5 => 'color: #73776f;',
+            6 => 'color: #a71616;',
+            7 => 'color: #666666;',
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #ff0000;',
+            1 => 'color: #ff0000;',
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #7a0874; font-weight: bold;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #ff0000;',
+            1 => 'color: #007788;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #0000dd;'
+            ),
+        'METHODS' => array(
+            1 => 'color: #007788;',
+            2 => 'color: #007788;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #008000;',
+            1 => 'color: #0000f8;',
+            2 => 'color: #000040;',
+            3 => 'color: #000040; font-weight: bold;',
+            4 => 'color: #008080;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #0000dd',
+            1 => 'color: #0000dd;',
+            2 => 'color: #0000dd;',
+            3 => 'color: #0000dd;',
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '.',
+        2 => '::',
+        // FIXME: add -> splitter.
+        ),
+    'REGEXPS' => array(
+        0 => '0x[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])*',
+        1 => '[0-9]([0-9_]*[0-9])*(e|E)(-|\+)?[0-9]([0-9_]*[0-9])*',
+        2 => '[0-9]([0-9_]*[0-9])*(min|s|ms|h|d)',
+        3 => '[0-9]+_([0-9_])*[0-9]',
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'TAB_WIDTH' => 4,
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/uscript.php b/wp-content/plugins/wp-syntax/geshi/geshi/uscript.php
new file mode 100644
index 0000000000000000000000000000000000000000..58cdb8d9e51e0000071d0f0050cb8d49065eb255
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/uscript.php
@@ -0,0 +1,299 @@
+<?php
+/*************************************************************************************
+ * uscript.php
+ * ---------------------------------
+ * Author: pospi (pospi@spadgos.com)
+ * Copyright: (c) 2007 pospi (http://pospi.spadgos.com)
+ * Release Version: 1.0.8.11
+ * Date Started: 2007/05/21
+ *
+ * UnrealScript language file for GeSHi.
+ *
+ * Comments:
+ * * Main purpose at this time is for Unreal Engine 2 / 2.5
+ * * Mostly taken from UltraEdit unrealScript wordfile.
+ *
+ * CHANGES
+ * -------
+ * 2007/05/21 (1.0.8.10)
+ *  -  First Release
+ *
+ * TODO (updated 2007/05/21)
+ * -------------------------
+ * * Update to feature any UE3 classes / keywords when UT3 comes out
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'Unreal Script',
+    'COMMENT_SINGLE' => array(
+            1 => '//',
+            2 => '#'
+            ),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array("'", '"'),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        1 => array(        //declaration keywords
+            'simulated', 'state', 'class', 'function', 'event', 'var', 'local',
+            'ignores', 'globalconfig', 'config', 'abstract', 'nativereplication', 'native',
+            'auto', 'coerce', 'const', 'default',
+            'defaultproperties',
+            'enum', 'extends', 'expands', 'final', 'guid', 'latent', 'localized',
+            'new', 'noexport', 'operator', 'preoperator', 'optional', 'out',
+            'private', 'public', 'protected', 'reliable', 'replication',
+            'singular', 'static', 'struct', 'transient', 'unreliable',
+            'hidedropdown', 'cacheexempt', 'exec', 'delegate', 'import', 'placeable', 'exportstructs'
+            ),
+        2 => array(        //control flow keywords
+            'for', 'while', 'do', 'if', 'else', 'switch', 'case', 'return', 'break', 'continue',
+            'begin', 'loop', 'assert',
+            'foreach', 'AllActors', 'DynamicActors', 'ChildActors', 'BasedActors', 'TouchingActors',
+            'TraceActors', 'RadiusActors', 'VisibleActors', 'CollidingActors', 'VisibleCollidingActors'
+            ),
+        3 => array(        //global (object) functions
+            'log', 'warn', 'rot', 'vect', 'Rand', 'Min', 'Max', 'Clamp', 'Abs', 'Sin', 'ASin',
+            'Cos', 'ACos', 'Tan', 'ATan', 'Exp', 'Loge', 'Sqrt', 'Square', 'FRand', 'FMin', 'FMax', 'FClamp',
+            'Lerp', 'Smerp', 'Ceil', 'Round', 'VSize', 'Normal', 'Invert', 'VRand', 'MirrorVectorByNormal',
+            'GetAxes', 'GetUnAxes', 'RotRand', 'OrthoRotation', 'Normalize', 'ClockwiseFrom',
+            'Len', 'InStr', 'Mid', 'Left', 'Right', 'Caps', 'Chr', 'Asc', 'Locs',
+            'Divide', 'Split', 'StrCmp', 'Repl', 'Eval',
+            'InterpCurveEval', 'InterpCurveGetOutputRange', 'InterpCurveGetInputDomain',
+            'QuatProduct', 'QuatInvert', 'QuatRotateVector', 'QuatFindBetween', 'QuatFromAxisAndAngle',
+            'QuatFromRotator', 'QuatToRotator', 'QuatSlerp',
+            'Localize', 'GotoState', 'IsInState', 'GetStateName',
+            'ClassIsChildOf', 'IsA', 'Enable', 'Disable',
+            'GetPropertyText', 'SetPropertyText', 'GetEnum', 'DynamicLoadObject', 'FindObject',
+            'SaveConfig', 'ClearConfig', 'StaticSaveConfig', 'ResetConfig', 'StaticClearConfig',
+            'GetPerObjectNames', 'RandRange', 'StopWatch', 'IsOnConsole', 'IsSoaking',
+            'PlatformIsMacOS', 'PlatformIsUnix', 'PlatformIsWindows', 'PlatformIs64Bit',
+            'BeginState', 'EndState', 'Created', 'AllObjects', 'GetReferencers', 'GetItemName',
+            'ReplaceText', 'EatStr'
+            ),
+        4 => array(        //common almost-global (actor) functions
+            'ClientMessage', 'ConsoleCommand', 'CopyObjectToClipboard', 'TextToSpeech',
+            'Error', 'Sleep', 'SetCollision', 'SetCollisionSize', 'SetDrawScale', 'SetDrawScale3D',
+            'SetStaticMesh', 'SetDrawType', 'Move', 'SetLocation', 'SetRotation',
+            'SetRelativeLocation', 'SetRelativeRotation', 'MoveSmooth', 'AutonomousPhysics',
+            'SetBase', 'SetOwner', 'IsJoinedTo', 'GetMeshName', 'PlayAnim', 'LoopAnim', 'TweenAnim',
+            'IsAnimating', 'FinishAnim', 'HasAnim', 'StopAnimating', 'FreezeFrameAt', 'SetAnimFrame',
+            'IsTweening', 'AnimStopLooping', 'AnimEnd', 'LinkSkelAnim', 'LinkMesh', 'BoneRefresh',
+            'GetBoneCoords', 'GetBoneRotation', 'GetRootLocation', 'GetRootRotation', 'AttachToBone',
+            'DetachFromBone', 'SetBoneScale', 'UpdateURL', 'GetURLOption', 'SetPhysics', 'KAddImpulse',
+            'KImpact', 'KApplyForce', 'Clock', 'UnClock', 'Destroyed', 'GainedChild', 'LostChild',
+            'Tick', 'PostNetReceive', 'ClientTrigger', 'Trigger', 'UnTrigger', 'BeginEvent', 'EndEvent',
+            'Timer', 'HitWall', 'Falling', 'Landed', 'ZoneChange', 'PhysicsVolumeChange', 'Touch',
+            'PostTouch', 'UnTouch', 'Bump', 'BaseChange', 'Attach', 'Detach', 'SpecialHandling',
+            'EncroachingOn', 'EncroachedBy', 'RanInto', 'FinishedInterpolation', 'EndedRotation',
+            'UsedBy', 'FellOutOfWorld', 'KilledBy', 'TakeDamage', 'HealDamage', 'Trace', 'FastTrace',
+            'TraceThisActor', 'spawn', 'Destroy', 'TornOff', 'SetTimer', 'PlaySound', 'PlayOwnedSound',
+            'GetSoundDuration', 'MakeNoise', 'BeginPlay', 'GetAllInt', 'RenderOverlays', 'RenderTexture',
+            'PreBeginPlay', 'PostBeginPlay', 'PostNetBeginPlay', 'HurtRadius', 'Reset', 'Crash'
+            ),
+        5 => array(        //data types
+            'none', 'null',
+            'float', 'int', 'bool', 'byte', 'char', 'double', 'iterator', 'name', 'string',    //primitive
+            'plane', 'rotator', 'vector', 'spline',    'coords', 'Quat', 'Range', 'RangeVector', //structs
+            'Scale', 'Color', 'Box', 'IntBox', 'FloatBox', 'BoundingVolume', 'Matrix', 'InterpCurvePoint',
+            'InterpCurve', 'CompressedPosition', 'TMultiMap', 'PointRegion',
+            'KRigidBodyState', 'KSimParams', 'AnimRep', 'FireProperties',
+            'lodmesh', 'skeletalmesh', 'mesh', 'StaticMesh', 'MeshInstance',    //3d resources
+            'sound',    //sound resources
+            'material', 'texture', 'combiner', 'modifier', 'ColorModifier', 'FinalBlend',    //2d resources
+            'MaterialSequence', 'MaterialSwitch', 'OpacityModifier', 'TexModifier', 'TexEnvMap',
+            'TexCoordSource', 'TexMatrix', 'TexOscillator', 'TexPanner', 'TexRotator', 'TexScaler',
+            'RenderedMaterial', 'BitmapMaterial', 'ScriptedTexture', 'ShadowBitmapMaterial', 'Cubemap',
+            'FractalTexture', 'FireTexture', 'IceTexture', 'WaterTexture', 'FluidTexture', 'WaveTexture',
+            'WetTexture', 'ConstantMaterial', 'ConstantColor', 'FadeColor', 'ParticleMaterial',
+            'ProjectorMaterial', 'Shader', 'TerrainMaterial', 'VertexColor'
+            ),
+        6 => array(        //misc keywords
+            'false', 'true', 'self', 'super', 'MaxInt', 'Pi'
+            ),
+        7 => array(        //common actor enums & variables
+            'DT_None', 'DT_Sprite', 'DT_Mesh', 'DT_Brush', 'DT_RopeSprite',
+            'DT_VerticalSprite', 'DT_TerraForm', 'DT_SpriteAnimOnce', 'DT_StaticMesh', 'DT_DrawType',
+            'DT_Particle', 'DT_AntiPortal', 'DT_FluidSurface',
+            'PHYS_None', 'PHYS_Walking', 'PHYS_Falling', 'PHYS_Swimming', 'PHYS_Flying',
+            'PHYS_Rotating', 'PHYS_Projectile', 'PHYS_Interpolating', 'PHYS_MovingBrush', 'PHYS_Spider',
+            'PHYS_Trailer', 'PHYS_Ladder', 'PHYS_RootMotion', 'PHYS_Karma', 'PHYS_KarmaRagDoll',
+            'PHYS_Hovering', 'PHYS_CinMotion',
+            'ROLE_None', 'ROLE_DumbProxy', 'ROLE_SimulatedProxy',
+            'ROLE_AutonomousProxy', 'ROLE_Authority',
+            'STY_None', 'STY_Normal', 'STY_Masked', 'STY_Translucent', 'STY_Modulated', 'STY_Alpha',
+            'STY_Additive', 'STY_Subtractive', 'STY_Particle', 'STY_AlphaZ',
+            'OCCLUSION_None', 'OCCLUSION_BSP', 'OCCLUSION_Default', 'OCCLUSION_StaticMeshes',
+            'SLOT_None', 'SLOT_Misc', 'SLOT_Pain', 'SLOT_Interact', 'SLOT_Ambient', 'SLOT_Talk',
+            'SLOT_Interface', 'MTRAN_None', 'MTRAN_Instant', 'MTRAN_Segue', 'MTRAN_Fade',
+            'MTRAN_FastFade', 'MTRAN_SlowFade',
+
+            'DrawType', 'Physics', 'Owner', 'Base', 'Level', 'Game', 'Instigator', 'RemoteRole', 'Role',
+            'LifeSpan', 'Tag', 'Event', 'Location', 'Rotation', 'Velocity', 'Acceleration',
+            'RelativeLocation', 'RelativeRotation', 'DrawScale', 'DrawScale3D', 'Skins', 'Style',
+            'SoundVolume', 'SoundPitch', 'SoundRadius', 'TransientSoundVolume', 'TransientSoundRadius',
+            'CollisionRadius', 'CollisionHeight', 'Mass', 'Buoyancy', 'RotationRate', 'DesiredRotation'
+            ),
+        8 => array(        //common non-actor uscript classes
+            'Object',
+            'CacheManager', 'CameraEffect', 'Canvas', 'CheatManager', 'Commandlet', 'DecoText', 'GUI',
+            'InteractionMaster', 'Interactions', 'Interaction', 'KarmaParamsCollision', 'KarmaParamsRBFull',
+            'KarmaParamsSkel', 'KarmaParams', 'LevelSummary', 'Locale', 'Manifest', 'MaterialFactory',
+            'MeshObject', 'ObjectPool', 'Pallete',
+            'ParticleEmitter', 'MeshEmitter', 'BeamEmitter', 'SpriteEmitter', 'SparkEmitter', 'TrailEmitter',
+            'Player', 'PlayerInput', 'PlayInfo', 'ReachSpec', 'Resource', 'LatentScriptedAction', 'ScriptedAction',
+            'speciesType', 'StreamBase', 'Stream', 'EditorEngine', 'Engine', 'Time', 'WeaponFire',
+            'WebApplication', 'WebRequest', 'WebResponse', 'WebSkin', 'xPawnGibGroup', 'xPawnSoundGroup',
+            'xUtil'
+            ),
+        9 => array(        //common actor-based uscript classes
+            'Actor',
+            'Controller', 'AIController', 'ScriptedController', 'Bot', 'xBot',
+            'PlayerController', 'UnrealPlayer', 'xPlayer',
+            'DamageType', 'WeaponDamageType', 'Effects', 'Emitter', 'NetworkEmitter',
+            'Gib', 'HUD', 'HudBase', 'Info', 'FluidSurfaceInfo', 'Combo',
+            'GameInfo', 'UnrealMPGameInfo', 'DeathMatch', 'TeamGame', 'CTFGame',
+            'xCTFGame', 'xBombingRun', 'xDoubleDom', 'xTeamGame',
+            'ASGameInfo', 'Invasion', 'ONSOnslaughtGame', 'xDeathmatch',
+            'Mutator', 'Inventory', 'Ammunition', 'KeyInventory', 'Powerups', 'Armor', 'Weapon',
+            'InventoryAttachment', 'WeaponAttachment',
+            'KActor', 'KConstraint', 'KBSJoint', 'KCarWheelJoint', 'KConeLimit', 'KHinge', 'KTire',
+            'KVehicleFactory', 'Keypoint', 'AIScript', 'ScriptedSequence', 'ScriptedTrigger',
+            'AmbientSound', 'Light', 'SpotLight', 'SunLight', 'TriggerLight',
+            'MeshEffect', 'NavigationPoint', 'GameObjective', 'DestroyableObjective',
+            'PathNode', 'FlyingPathNode', 'RoadPathNode', 'InventorySpot', 'PlayerStart',
+            'Pawn', 'Vehicle', 'UnrealPawn', 'xPawn', 'Monster', 'ASVehicle', 'KVehicle', 'KCar',
+            'ONSWeaponPawn', 'SVehicle', 'ONSVehicle', 'ONSChopperCraft', 'ONSHoverCraft',
+            'ONSPlaneCraft', 'ONSTreadCraft', 'ONSWheeledCraft',
+            'Pickup', 'Ammo', 'UTAmmoPickup', 'ArmorPickup', 'KeyPickup', 'TournamentPickup',
+            'Projectile', 'Projector', 'DynamicProjector', 'ShadowProjector', 'xScorch',
+            'xEmitter', 'xPickupBase', 'xProcMesh', 'xWeatherEffect', 'PhysicsVolume', 'Volume'
+            ),
+        10 => array(    //symbol-like operators
+            'dot','cross'
+            )
+        ),
+    'SYMBOLS' => array(
+        '+','-','=','/','*','-','%','>','<','&','^','!','|','`','(',')','[',']','{','}',
+        '<<','>>','$','@'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false,
+        6 => false,
+        7 => false,
+        8 => false,
+        9 => false,
+        10 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #0000FF;',
+            2 => 'color: #0000FF;',
+            3 => 'color: #0066AA;',
+            4 => 'color: #0088FF;',
+            5 => 'color: #E000E0;',
+            6 => 'color: #900000;',
+            7 => 'color: #888800;',
+            8 => 'color: #AA6600;',
+            9 => 'color: #FF8800;',
+            10 => 'color: #0000FF;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #008080; font-style: italic;',
+            2 => 'color: #000000; font-weight: bold;',
+            'MULTI' => 'color: #008080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => ''
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #000000;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #999999;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #FF0000;'
+            ),
+        'METHODS' => array(
+            0 => 'color: #006600;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #669966;'
+            ),
+        'REGEXPS' => array(
+            0 => 'color: #E000E0;',
+            1 => 'color: #E000E0;'
+            ),
+        'SCRIPT' => array(
+            0 => ''
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => '',
+        6 => '',
+        7 => '',
+        8 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
+        9 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
+        10 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array('.'),
+    'REGEXPS' => array(            //handle template-style variable definitions
+        0 => array(
+            GESHI_SEARCH => '(class\s*)<(\s*(\w+)\s*)>',
+            GESHI_REPLACE => "\${1}",
+            GESHI_MODIFIERS => 'i',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => "< \${3} >"
+            ),
+        1 => array(
+            GESHI_SEARCH => '(array\s*)<(\s*(\w+)\s*)>',
+            GESHI_REPLACE => "\${1}",
+            GESHI_MODIFIERS => 'i',
+            GESHI_BEFORE => '',
+            GESHI_AFTER => "< \${3} >"
+            )
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            10 => array(
+                'DISALLOWED_BEFORE' => '(?<!<)(?=DOT>)'
+                )
+            )
+        )
+);
+
+?>
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vala.php b/wp-content/plugins/wp-syntax/geshi/geshi/vala.php
index 1e4cecefb4b51f6c27a891ffecf32674561107ec..acac57e2aef4b69b435f092a534267b44acdd25a 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/vala.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vala.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Nicolas Joseph (nicolas.joseph@valaide.org)
  * Copyright: (c) 2009 Nicolas Joseph
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/04/29
  *
  * Vala language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vb.php b/wp-content/plugins/wp-syntax/geshi/geshi/vb.php
index 638da5e8af536866532890ca7b40f08b010a7cfa..528e7cd45a1a64d9ac53daa89057811f04cd7bc3 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/vb.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vb.php
@@ -5,7 +5,7 @@
  * Author: Roberto Rossi (rsoftware@altervista.org)
  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org),
  *                     Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/08/30
  *
  * Visual Basic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vbnet.php b/wp-content/plugins/wp-syntax/geshi/geshi/vbnet.php
index 0121f8de66d394feefb9ca3208ad13a615dc5e7d..758df9893694a536c2da24552e226d4ac0e59d36 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/vbnet.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vbnet.php
@@ -4,7 +4,7 @@
  * ---------
  * Author: Alan Juden (alan@judenware.org)
  * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/06/04
  *
  * VB.NET language file for GeSHi.
@@ -45,60 +45,46 @@ $language_data = array (
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
+        //Keywords
         1 => array(
-            '3DDKSHADOW', '3DHIGHLIGHT', '3DLIGHT', 'ABORT', 'ABORTRETRYIGNORE', 'ACTIVEBORDER',
-            'ACTIVETITLEBAR', 'ALIAS', 'APPLICATIONMODAL', 'APPLICATIONWORKSPACE', 'ARCHIVE',
-            'BACK', 'BINARYCOMPARE', 'BLACK', 'BLUE', 'BUTTONFACE', 'BUTTONSHADOW', 'BUTTONTEXT',
-            'CANCEL', 'CDROM', 'CR', 'CRITICAL', 'CRLF', 'CYAN', 'DEFAULT', 'DEFAULTBUTTON1',
-            'DEFAULTBUTTON2', 'DEFAULTBUTTON3', 'DESKTOP', 'DIRECTORY', 'EXCLAMATION', 'FALSE',
-            'FIXED', 'FORAPPENDING', 'FORMFEED', 'FORREADING', 'FORWRITING', 'FROMUNICODE',
-            'GRAYTEXT', 'GREEN', 'HIDDEN', 'HIDE', 'HIGHLIGHT', 'HIGHLIGHTTEXT', 'HIRAGANA',
-            'IGNORE', 'INACTIVEBORDER', 'INACTIVECAPTIONTEXT', 'INACTIVETITLEBAR', 'INFOBACKGROUND',
-            'INFORMATION', 'INFOTEXT', 'KATAKANALF', 'LOWERCASE', 'MAGENTA', 'MAXIMIZEDFOCUS',
-            'MENUBAR', 'MENUTEXT', 'METHOD', 'MINIMIZEDFOCUS', 'MINIMIZEDNOFOCUS', 'MSGBOXRIGHT',
-            'MSGBOXRTLREADING', 'MSGBOXSETFOREGROUND', 'NARROW', 'NEWLINE', 'NO', 'NORMAL',
-            'NORMALFOCUS', 'NORMALNOFOCUS', 'NULLSTRING', 'OBJECTERROR', 'OK', 'OKCANCEL', 'OKONLY',
-            'PROPERCASE', 'QUESTION', 'RAMDISK', 'READONLY', 'RED', 'REMOTE', 'REMOVABLE', 'RETRY',
-            'RETRYCANCEL', 'SCROLLBARS', 'SYSTEMFOLDER', 'SYSTEMMODAL', 'TEMPORARYFOLDER',
-            'TEXTCOMPARE', 'TITLEBARTEXT', 'TRUE', 'UNICODE', 'UNKNOWN', 'UPPERCASE', 'VERTICALTAB',
-            'VOLUME', 'WHITE', 'WIDE', 'WIN16', 'WIN32', 'WINDOWBACKGROUND', 'WINDOWFRAME',
-            'WINDOWSFOLDER', 'WINDOWTEXT', 'YELLOW', 'YES', 'YESNO', 'YESNOCANCEL'
-            ),
+            'AddHandler', 'AddressOf', 'Alias', 'And', 'AndAlso', 'As', 'ByRef', 'ByVal',
+            'Call', 'Case', 'Catch', 'Char', 'Class', 'Const', 'Continue',
+            'Declare', 'Default',
+            'Delegate', 'Dim', 'DirectCast', 'Do', 'Each', 'Else', 'ElseIf', 'End', 'EndIf',
+            'Enum', 'Erase', 'Error', 'Event', 'Exit', 'False', 'Finally', 'For', 'Friend', 'Function',
+            'Get', 'GetType', 'GetXMLNamespace', 'Global', 'GoSub', 'GoTo', 'Handles', 'If', 'Implements',
+            'Imports', 'In', 'Inherits', 'Interface', 'Is', 'IsNot', 'Let', 'Lib', 'Like', 'Loop', 'Me',
+            'Mod', 'Module', 'Module Statement', 'MustInherit', 'MustOverride', 'MyBase', 'MyClass', 'Namespace',
+            'Narrowing', 'New', 'Next', 'Not', 'Nothing', 'NotInheritable', 'NotOverridable', 'Of', 'On',
+            'Operator', 'Option', 'Optional', 'Or', 'OrElse', 'Out', 'Overloads', 'Overridable', 'Overrides',
+            'ParamArray', 'Partial', 'Private', 'Property', 'Protected', 'Public', 'RaiseEvent', 'ReadOnly', 'ReDim',
+            'REM', 'RemoveHandler', 'Resume', 'Return', 'Select','Set', 'Shadows', 'Shared', 'Static', 'Step',
+            'Stop', 'Structure', 'Sub', 'SyncLock', 'Then', 'Throw', 'To', 'True', 'Try', 'TryCast', 'TypeOf',
+            'Using', 'Wend', 'When', 'While', 'Widening', 'With', 'WithEvents', 'WriteOnly', 'Xor'
+            ),
+        //Data Types
         2 => array(
-            'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE',
-            'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For',
-            'Friend', 'Func', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride',
-            'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE',
-            'NOTOVERRIDABLE', 'Of', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', 'Predicate',
-            'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step',
-            'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents'
+            'Boolean', 'Byte', 'Date', 'Decimal', 'Double', 'Integer', 'Long', 'Object',
+            'SByte', 'Short', 'Single', 'String', 'UInteger', 'ULong', 'UShort'
             ),
+        //Compiler Directives
         3 => array(
-            'COLLECTION', 'DEBUG', 'DICTIONARY', 'DRIVE', 'DRIVES', 'ERR', 'FILE', 'FILES',
-            'FILESYSTEMOBJECT', 'FOLDER', 'FOLDERS', 'TEXTSTREAM'
+            '#Const', '#Else', '#ElseIf', '#End', '#If'
             ),
+        //Constants
         4 => array(
-            'BOOLEAN', 'BYTE', 'DATE', 'DECIMIAL', 'DOUBLE', 'INTEGER', 'LONG', 'OBJECT',
-            'SINGLE STRING'
+            'CBool', 'CByte', 'CChar', 'CChr', 'CDate', 'CDbl', 'CDec','CInt', 'CLng', 'CLng8', 'CObj', 'CSByte', 'CShort',
+            'CSng', 'CStr', 'CType', 'CUInt', 'CULng', 'CUShort'
             ),
+        //Linq
         5 => array(
-            'ADDRESSOF', 'AND', 'BITAND', 'BITNOT', 'BITOR', 'BITXOR',
-            'GETTYPE', 'LIKE', 'MOD', 'NOT', 'ORXOR'
-            ),
-        6 => array(
-            'APPACTIVATE', 'BEEP', 'CALL', 'CHDIR', 'CHDRIVE', 'CLASS', 'CASE', 'CATCH', 'CONST',
-            'DECLARE', 'DELEGATE', 'DELETESETTING', 'DIM', 'DO', 'DOEVENTS', 'END', 'ENUM',
-            'EVENT', 'EXIT', 'EACH', 'FUNCTION', 'FINALLY', 'IF', 'IMPORTS', 'INHERITS',
-            'INTERFACE', 'IMPLEMENTS', 'KILL', 'LOOP', 'NAMESPACE', 'OPEN', 'PUT',
-            'RAISEEVENT', 'RANDOMIZE', 'REDIM', 'REM', 'RESET', 'SAVESETTING', 'SELECT',
-            'SETATTR', 'STOP', 'SUB', 'SYNCLOCK', 'STRUCTURE', 'SHADOWS', 'SWITCH',
-            'TRY', 'WIDTH', 'WITH', 'WRITE', 'WHILE'
+            'By','From','Group','Where'
             ),
+        //Built-in functions
         7 => array(
-            'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CBOOL', 'CBYTE', 'CCHAR',
-            'CCHR', 'CDATE', 'CDBL', 'CDEC', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
-            'CINT', 'CLNG', 'CLNG8', 'CLOSE', 'COBJ', 'COMMAND', 'COMMAND$', 'CONVERSION',
-            'COS', 'CREATEOBJECT', 'CSHORT', 'CSTR', 'CURDIR', 'CTYPE', 'CVDATE', 'DATEADD',
+            'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
+            'CLOSE', 'COMMAND', 'COMMAND$', 'CONVERSION',
+            'COS', 'CREATEOBJECT', 'CURDIR', 'CVDATE', 'DATEADD',
             'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$',
             'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER',
             'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER',
@@ -115,16 +101,10 @@ $language_data = array (
             'TIMER', 'TIMESERIAL', 'TIMEVALUE', 'TODAY', 'TRIM', 'TRIM$', 'TYPENAME', 'UBOUND',
             'UCASE', 'UCASE$', 'VAL', 'WEEKDAY', 'WEEKDAYNAME', 'YEAR'
             ),
-        8 => array(
-            'ANY', 'ATN', 'CALENDAR', 'CIRCLE', 'CURRENCY', 'DEFBOOL', 'DEFBYTE', 'DEFCUR',
-            'DEFDATE', 'DEFDBL', 'DEFDEC', 'DEFINT', 'DEFLNG', 'DEFOBJ', 'DEFSNG', 'DEFSTR',
-            'DEFVAR', 'EQV', 'GOSUB', 'IMP', 'INITIALIZE', 'ISMISSING', 'LET', 'LINE', 'LSET',
-            'RSET', 'SGN', 'SQR', 'TERMINATE', 'VARIANT', 'VARTYPE', 'WEND'
-            ),
         ),
     'SYMBOLS' => array(
-        '&', '&=', '*', '*=', '+', '+=', '-', '-=', '//', '/', '/=', '=', '\\', '\\=',
-        '^', '^='
+        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!',
+        '(', ')', '{', '}', '.'
         ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
@@ -133,24 +113,20 @@ $language_data = array (
         3 => false,
         4 => false,
         5 => false,
-        6 => false,
-        7 => false,
-        8 => false,
+        7 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
-            1 => 'color: #0600FF;',        //Constants
-            2 => 'color: #FF8000;',        //Keywords
-            3 => 'color: #008000;',        //Data Types
-            4 => 'color: #FF0000;',        //Objects
-            5 => 'color: #804040;',        //Operators
-            6 => 'color: #0600FF;',        //Statements
-            7 => 'color: #0600FF;',        //Functions
-            8 => 'color: #0600FF;'        //Deprecated
+            1 => 'color: #0000FF; font-weight: bold;',  //Keywords
+            2 => 'color: #6a5acd;',                     //primitive Data Types
+            3 => 'color: #6a5acd; font-weight: bold;',  //preprocessor-commands
+            4 => 'color: #cd6a5a;',                     //Constants
+            5 => 'color: #cd6a5a; font-weight: bold;',  //LinQ
+            7 => 'color: #000066;',                     //Built-in functions
             ),
         'COMMENTS' => array(
-            1 => 'color: #008080; font-style: italic;',
-            'MULTI' => 'color: #008080; font-style: italic;'
+            1 => 'color: #008000; font-style: italic;',
+            'MULTI' => 'color: #008000; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
             0 => 'color: #008080; font-weight: bold;'
@@ -159,16 +135,16 @@ $language_data = array (
             0 => 'color: #000000;'
             ),
         'STRINGS' => array(
-            0 => 'color: #808080;'
+            0 => 'color: #a52a2a; back-color: #fffacd;'
             ),
         'NUMBERS' => array(
-            0 => 'color: #FF0000;'
+            0 => 'color: #a52a2a; back-color: #fffacd;'
             ),
         'METHODS' => array(
-            1 => 'color: #0000FF;'
+            1 => 'color: #000000;'
             ),
         'SYMBOLS' => array(
-            0 => 'color: #008000;'
+            0 => 'color: #000000;'
             ),
         'REGEXPS' => array(
             ),
@@ -181,9 +157,7 @@ $language_data = array (
         3 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com',
         4 => '',
         5 => '',
-        6 => '',
-        7 => '',
-        8 => ''
+        7 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com'
         ),
     'OOLANG' => true,
     'OBJECT_SPLITTERS' => array(
@@ -195,6 +169,13 @@ $language_data = array (
     'SCRIPT_DELIMITERS' => array(
         ),
     'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'KEYWORDS' => array(
+            7 => array(
+                'DISALLOWED_AFTER' => '(?!\w)(?=\s*\()'
+                )
+            )
         )
 );
 
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vedit.php b/wp-content/plugins/wp-syntax/geshi/geshi/vedit.php
new file mode 100644
index 0000000000000000000000000000000000000000..19b2bdb21275660a02c693f82ddfe17dec60b63d
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vedit.php
@@ -0,0 +1,103 @@
+<?php
+/*************************************************************************************
+ * vedit.php
+ * --------
+ * Author: Pauli Lindgren (pauli0212@yahoo.com)
+ * Copyright: (c) 2009 Pauli Lindgren (http://koti.mbnet.fi/pkl/)
+ * Release Version: 1.0.8.11
+ * Date Started: 2009/12/16
+ *
+ * Vedit macro language language file for GeSHi.
+ *
+ * CHANGES
+ * -------
+ * 2009/12/16 (1.0.8.11)
+ *  -  First Release
+ *
+ * TODO (updated 2009/12/16)
+ * -------------------------
+ * - Add keyword groups 2, 3 and 4.
+ *
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array(
+    'LANG_NAME' => 'Vedit macro language',
+    'COMMENT_SINGLE' => array(1 => '//'),
+    'COMMENT_MULTI' => array(),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', '\''),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'break', 'breakout', 'break_out', 'continue', 'do', 'else', 'for',
+            'goto', 'if', 'repeat', 'return', 'while'
+            )
+        ),
+    'SYMBOLS' => array(
+        1 => array(
+            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%',
+            '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
+            )
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #b1b100;'
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #666666; font-style: italic;',
+            'MULTI' => 'color: #666666; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #009900;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #0000ff;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #cc66cc;',
+            ),
+        'METHODS' => array(
+            0 => 'color: #004000;'
+            ),
+        'SYMBOLS' => array(
+            1 => 'color: #339933;'
+            ),
+        'REGEXPS' => array(),
+        'SCRIPT' => array()
+        ),
+    'URLS' => array(1 => ''),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(),
+    'REGEXPS' => array(),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(),
+    'HIGHLIGHT_STRICT_BLOCK' => array()
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/verilog.php b/wp-content/plugins/wp-syntax/geshi/geshi/verilog.php
index 3c3c2249c909a3d7c4657e39403d0bab5ed6df4f..2bf66d1c0034c66cd66dd666e87bf7fb1e8830c5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/verilog.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/verilog.php
@@ -4,7 +4,7 @@
  * -----------
  * Author: G�nter Dannoritzer <dannoritzer@web.de>
  * Copyright: (C) 2008 Guenter Dannoritzer
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/05/28
  *
  * Verilog language file for GeSHi.
@@ -53,7 +53,7 @@ $language_data = array (
             'casex', 'casez', 'cmos', 'deassign', 'default', 'defparam',
             'disable', 'edge', 'else', 'end', 'endcase', 'endfunction',
             'endmodule', 'endprimitive', 'endspecify', 'endtable', 'endtask',
-            'event', 'for', 'force', 'forever', 'function', 'highz0',
+            'event', 'fork', 'for', 'force', 'forever', 'function', 'highz0',
             'highz1', 'if', 'ifnone', 'initial', 'inout', 'input', 'integer',
             'join', 'large', 'macromodule', 'medium', 'module', 'nand',
             'negedge', 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or',
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vhdl.php b/wp-content/plugins/wp-syntax/geshi/geshi/vhdl.php
index 386604c08615b74b5314ad1edaf5ddaa0dab2961..a8f37e67664f8834d52a08df5f061a504b29c04e 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/vhdl.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vhdl.php
@@ -3,14 +3,21 @@
  * vhdl.php
  * --------
  * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
+ * Contributors:
+ *  - Kevin Thibedeau (kevinpt@yahoo.com)
  * Copyright: (c) 2005 Alexander Krause
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/06/15
  *
  * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2012/4/30 (1.0.8.10)
+ *  -  Reworked to support new features of VHDL-2008.
+ *  -    Changes include: multi-line comments, all new keywords, PSL keywords and metacomments,
+ *  -    based literals, attribute highlighting, preprocessor macros (from PSL), and other small
+ *  -    improvements.
  * 2008/05/23 (1.0.7.22)
  *  -  Added description of extra language features (SF#1970248)
  *  -  Optimized regexp group 0 somewhat
@@ -43,56 +50,80 @@
 $language_data = array (
     'LANG_NAME' => 'VHDL',
     'COMMENT_SINGLE' => array(1 => '--'),
-    'COMMENT_MULTI' => array('%' => '%'),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        // PSL adds C-preprocessor support
+        1 => '/(?<=\s)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        // PSL metacomments (single-line only for now)
+        2 => '/--\s*@?psl(?:.)*?;$/m',
+        ),
     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     'QUOTEMARKS' => array('"'),
     'ESCAPE_CHAR' => '',
     'KEYWORDS' => array(
         /*keywords*/
         1 => array(
-            'access','after','alias','all','assert','attribute','architecture','begin',
-            'block','body','buffer','bus','case','component','configuration','constant',
-            'disconnect','downto','else','elsif','end','entity','exit','file','for',
+            'access','after','alias','all','attribute','architecture','array','begin',
+            'block','body','buffer','bus','case','case?','component','configuration','constant','context',
+            'disconnect','downto','else','elsif','end','entity','exit','file','for','force',
             'function','generate','generic','group','guarded','if','impure','in',
             'inertial','inout','is','label','library','linkage','literal','loop',
             'map','new','next','null','of','on','open','others','out','package',
-            'port','postponed','procedure','process','pure','range','record','register',
-            'reject','report','return','select','severity','signal','shared','subtype',
+            'port','postponed','procedure','process','protected','pure','range','record','register',
+            'reject','release','report','return','select','severity','shared','signal','subtype',
             'then','to','transport','type','unaffected','units','until','use','variable',
-            'wait','when','while','with','note','warning','error','failure','and',
-            'or','xor','not','nor','used','memory','segments','dff','dffe','help_id',
-            'mod','info','latch','rising_edge','falling_edge'
-        ),
-        /*types*/
+            'wait','when','while','with'
+            ),
+        /*types and standard libs*/
         2 => array(
-            'bit','bit_vector','character','boolean','integer','real','time','string',
+            'bit','bit_vector','character','boolean','integer','real','time','delay_length','string',
             'severity_level','positive','natural','signed','unsigned','line','text',
-            'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state',
-            'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength',
-            'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector',
-            'work','ieee','std_logic_signed','std_logic_1164','std_logic_arith',
-            'numeric_std'
-
-        ),
+            'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector',
+            'sfixed','ufixed','float','float32','float64','float128',
+            'work','ieee','std_logic_1164','math_real','math_complex','textio',
+            'numeric_std','numeric_std_signed','numeric_std_unsigned','numeric_bit'
+            ),
         /*operators*/
-    ),
+        3 => array(
+            'abs','and','mod','nor','not','or','rem','rol','ror','sla','sll','sra','srl','xnor','xor'
+            ),
+        /*psl*/
+        4 => array(
+            'assert','assume','assume_guarantee','clock','const','countones','cover','default',
+            'endpoint','fairness','fell','forall','inf','inherit','isunknown','onehot','onehot0','property',
+            'prev','restrict','restrict_guarantee','rose','sequence','stable','strong','union','vmode','vprop','vunit'
+            ),
+        /*psl operators*/
+        5 => array(
+            'abort','always','before','before!','before!_','before_','eventually!','never',
+            'next!','next_a','next_a!','next_e','next_e!','next_event','next_event!','next_event_a','next_event_a!',
+            'next_event_e','next_event_e!','until!','until!_','until_','within'
+            )
+        ),
     'SYMBOLS' => array(
         '[', ']', '(', ')',
         ';',':',
-        '<','>','=','<=',':=','=>','=='
+        '<','>','=','+','-','*','/','&','|','?'
     ),
     'CASE_SENSITIVE' => array(
         GESHI_COMMENTS => false,
         1 => false,
-        2 => false
+        2 => false,
+        3 => false,
+        4 => false,
+        5 => false
         ),
     'STYLES' => array(
         'KEYWORDS' => array(
             1 => 'color: #000080; font-weight: bold;',
-            2 => 'color: #0000ff;'
+            2 => 'color: #0000ff;',
+            3 => 'color: #000066;',
+            4 => 'color: #000080; font-weight: bold;',
+            5 => 'color: #000066;'
             ),
         'COMMENTS' => array(
             1 => 'color: #008000; font-style: italic;',
+            2 => 'color: #ff0000; font-weight: bold;',
             'MULTI' => 'color: #008000; font-style: italic;'
             ),
         'ESCAPE_CHAR' => array(
@@ -114,25 +145,33 @@ $language_data = array (
             ),
         'REGEXPS' => array(
             0 => 'color: #ff0000;',
-            1 => 'color: #ff0000;'
+            //1 => 'color: #ff0000;',
+            2 => 'color: #ee82ee;'
             ),
         'SCRIPT' => array(
             )
         ),
     'URLS' => array(
         1 => '',
-        2 => ''
-    ),
+        2 => '',
+        3 => '',
+        4 => '',
+        5 => ''
+        ),
     'OOLANG' => false,
     'OBJECT_SPLITTERS' => array(
         ),
     'REGEXPS' => array(
-        //Hex numbers and scientific notation for numbers
-        0 => '(\b0x[0-9a-fA-F]+|\b\d[0-9a-fA-F]+[hH])|'.
-            '(\b\d+?(\.\d+?)?E[+\-]?\d+)|(\bns)|'.
-            "('[0-9a-zA-Z]+(?!'))",
-        //Number characters?
-        1 => "\b(''\d'')"
+        //Based literals, scientific notation, and time units
+        0 => '(\b\d+#[[:xdigit:]_]+#)|'.
+            '(\b[\d_]+(\.[\d_]+)?[eE][+\-]?[\d_]+)|'.
+            '(\b(hr|min|sec|ms|us|ns|ps|fs)\b)',
+        //Character literals
+        /* GeSHi won't match this pattern for some reason and QUOTEMARKS
+         * can't be used because it interferes with attribute parsing */
+        /*1 => "\b'.'\b",*/
+        //Attributes
+        2 => "'\w+(?!')"
         ),
     'STRICT_MODE_APPLIES' => GESHI_NEVER,
     'SCRIPT_DELIMITERS' => array(
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/vim.php b/wp-content/plugins/wp-syntax/geshi/geshi/vim.php
index 0d63ccdb092dacd8fbda1f962ffd8702669daa9d..fe7e5e006df0306fb637c717421b2fa2a7f8bb48 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/vim.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/vim.php
@@ -6,7 +6,7 @@
  * Contributors:
  *  - Laurent Peuch (psycojoker@gmail.com)
  * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/10/19
  *
  * Vim scripting language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/visualfoxpro.php b/wp-content/plugins/wp-syntax/geshi/geshi/visualfoxpro.php
index a14bed824c8c2bbda3b7dca1170d83fa1511a500..123a3db4107d73b630c9415e55175d7df283f734 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/visualfoxpro.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/visualfoxpro.php
@@ -4,7 +4,7 @@
  * ----------------
  * Author: Roberto Armellin (r.armellin@tin.it)
  * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/09/17
  *
  * Visual FoxPro language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/visualprolog.php b/wp-content/plugins/wp-syntax/geshi/geshi/visualprolog.php
index 21827193dfe7c16416a9a9105f440825ba8ef062..d36f1c67ad8dfaae08b4bb0a85c609e59b02b7b5 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/visualprolog.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/visualprolog.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Thomas Linder Puls (puls@pdc.dk)
  * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/11/20
  *
  * Visual Prolog language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/whitespace.php b/wp-content/plugins/wp-syntax/geshi/geshi/whitespace.php
index 91186d3f0e2c4f6c7a987d8060c514d459ec348a..58f39637639323c06ee3659708ddd57e89a84d7c 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/whitespace.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/whitespace.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2009/10/31
  *
  * Whitespace language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/whois.php b/wp-content/plugins/wp-syntax/geshi/geshi/whois.php
index 24065ed1fc4dd41f266c76cb23bc47d0a2e76f54..a89e4731d92b135a9ea4086f246826e2c2655126 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/whois.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/whois.php
@@ -4,7 +4,7 @@
  * --------
  * Author: Benny Baumann (BenBE@geshi.org)
  * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/09/14
  *
  * Whois response (RPSL format) language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/winbatch.php b/wp-content/plugins/wp-syntax/geshi/geshi/winbatch.php
index a39d1de87f9df9f019d61c467f9422ff50b3a8a7..3599a027c2c939812882ce1419664ed4437b3a34 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/winbatch.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/winbatch.php
@@ -4,7 +4,7 @@
  * ------------
  * Author: Craig Storey (storey.craig@gmail.com)
  * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2006/05/19
  *
  * WinBatch language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/xbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/xbasic.php
index b30c02cf859bcb752c341092a5ca94bac15b65a6..2edede3640ed4235d4efdadc67573a5ed89af982 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/xbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/xbasic.php
@@ -4,9 +4,8 @@
  * ----------
  * Author: Jos� Gabriel Moya Yang�ela (josemoya@gmail.com)
  * Copyright: (c) 2005 Jos� Gabriel Moya Yang�ela (http://aprenderadesaprender.6te.net)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2005/11/23
- * Last Modified: $Date: 2010/01/30 00:42:00 $
  *
  * XBasic language file for GeSHi.
  *
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/xml.php b/wp-content/plugins/wp-syntax/geshi/geshi/xml.php
index e85a5564bc8a2b7aff88cf474d27514b7a066820..6354e457ba535d81fb30bab7515e94ec3b8635aa 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/xml.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/xml.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Nigel McNie (nigel@geshi.org)
  * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2004/09/01
  *
  * XML language file for GeSHi. Based on the idea/file by Christian Weiske
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/xorg_conf.php b/wp-content/plugins/wp-syntax/geshi/geshi/xorg_conf.php
index 388850d75628ca8dbe1d12bbc6918ed32e76e367..99edc66523e2ca7dbc6a195d7a2c66d5ecc63c21 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/xorg_conf.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/xorg_conf.php
@@ -4,7 +4,7 @@
  * ----------
  * Author: Milian Wolff (mail@milianw.de)
  * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2008/06/18
  *
  * xorg.conf language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/xpp.php b/wp-content/plugins/wp-syntax/geshi/geshi/xpp.php
index 367a1c6803c677dc1820741d6c4ca8d04f43cb00..a06e27794f031d270edf73f0e8456d19b431627b 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/xpp.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/xpp.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Simon Butcher (simon@butcher.name)
  * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/02/27
  *
  * Axapta/Dynamics Ax X++ language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/yaml.php b/wp-content/plugins/wp-syntax/geshi/geshi/yaml.php
new file mode 100644
index 0000000000000000000000000000000000000000..a2974eb5759bce29c6964298ec4c6eae0daf181d
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/yaml.php
@@ -0,0 +1,150 @@
+<?php
+/*************************************************************************************
+ * yaml.php
+ * --------
+ * Author: Josh Ventura (JoshV10@gmail.com)
+ * Copyright: (c) 2010 Josh Ventura
+ * Release Version: 1.0.8.11
+ * Date Started: 2010/12/14
+ *
+ * YAML language file for GeSHi.
+ *
+ * YAML gets hairy sometimes. If anything needs fixed, drop me an email and
+ *      I'll probably spit up on it. This is, in general, not a long format.
+ *
+ * CHANGES
+ * ---------
+ * 2010/12/14
+ *  - Started project in rage over GML support but not YAML support. WTFH?
+ * 2010/12/15
+ *  - Submitted to Ben.
+ *
+ * TODO (not updated since release)
+ * ----------------------------------
+ *  -  Field testing and necessary corrections: this grammar file is usable, but not
+ *     completely accurate. There are, in fact, multiple cases in which it will mess
+ *     up, and some of it may need moved around. It is the most temperamental parser
+ *     I have ever associated my name with. Points of interest follow:
+ *   *  Improvised support for | and >: since PHP offers no variable-width lookbehind,
+ *      these blocks will still be highlighted even when commented out. As it happens,
+ *      any line ending with | or > could result in the unintentional highlighting of
+ *      all remaining lines in the file, just because I couldn't check for this regex
+ *      as a lookbehind:  '/:(\s+)(!!(\w+)(\s+))?/'
+ *      If there is a workaround for that, it needs implemented.
+ *   *  I may be missing some operators. I deliberately omitted inline array notation
+ *      as, in general, it's ugly and tends to conflict with plain-text. Ensuring all
+ *      highlighted list delimiters are not plain text would be as simple as checking
+ *      that they follow a colon directly. Alas, without variable-length lookbehinds,
+ *      if there is a way to do so in GeSHi I am unaware of it.
+ *   *  I kind of whored the comment regexp array. It seemed like a safe bet, so it's
+ *      where I crammed everything. Some of it may need moved elsewhere for neatness.
+ *   *  The !!typename highlight needs not to interfere with ": |" and ": >": Pairing
+ *      key: !!type | value is perfectly legal, but again due to lookbehind issues, I
+ *      can't add a case for that. Also, it is likely that multiple spaces can be put
+ *      between the colon and pipe symbol, which would also break it.
+ *
+ *************************************************************************************
+ *
+ *     This file is part of GeSHi.
+ *
+ *   GeSHi is free software; you can redistribute it and/or modify it
+ *   under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   GeSHi is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with GeSHi; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ ************************************************************************************/
+
+$language_data = array (
+    'LANG_NAME' => 'YAML',
+    'COMMENT_SINGLE' => array(),
+    'COMMENT_MULTI' => array(),
+    //Keys
+    'COMMENT_REGEXP' => array( // ENTRY ZERO  SHOULD CHECK FOR (\n(\s*)([^#%]+?):(\s+)(!!(\w+)(\s+))?) AS A LOOKBEHIND, BUT IT CAN'T.
+        0 => '/(?<=\s[\|>]\n)(\s+)(.*)((?=[\n$])(([\n^](\1(.*)|(?=[\n$])))*)|$)/', // Pipe blocks and > blocks.
+        1 => '/#(.*)/', // Blue # comments
+        2 => '/%(.*)/', // Red % comments
+        3 => '/(^|\n)([^#%^\n]+?)(?=: )/',  // Key-value names
+        4 => '/(^|\n)([^#%^\n]+?)(?=:\n)/',// Key-group names
+        5 => '/(?<=^---)(\s*)!(\S+)/',    // Comments after ---
+        6 => '/(?<=: )(\s*)\&(\S+)/',    // References
+        7 => '/(?<=: )(\s*)\*(\S+)/',   // Dereferences
+        8 => '/!!(\w+)/',              // Types
+        //9 => '/(?<=\n)(\s*)-(?!-)/',       // List items: This needs to search within comments 3 and 4, but I don't know how.
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"'),
+    'ESCAPE_CHAR' => '',
+    'KEYWORDS' => array(
+        1 => array(
+            'all','any','none', "yes", "no"
+            ),
+        ),
+    'SYMBOLS' => array(
+        1 => array('---', '...'),
+        2 => array(': ', ">\n", "|\n", '<<:', ":\n") // It'd be nice if I could specify that the colon must
+        //                                              follow comment 3 or 4 to be considered, and the > and |
+        //                                              must follow such a colon.
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => false,
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'font-weight: bold;'
+            ),
+        'COMMENTS' => array(
+            0 => 'color: #303050;background-color: #F5F5F5',
+            1 => 'color: blue;',
+            2 => 'font-weight: bold; color: red;',
+            3 => 'color: green;',
+            4 => 'color: #007F45;',
+            5 => 'color: #7f7fFF;',
+            6 => 'color: #FF7000;',
+            7 => 'color: #FF45C0;',
+            8 => 'font-weight: bold; color: #005F5F;',
+            //9 => 'font-weight: bold; color: #000000;',
+            ),
+        'ESCAPE_CHAR' => array(
+            ),
+        'BRACKETS' => array(
+            ),
+        'STRINGS' => array(
+            0 => 'color: #CF00CF;'
+            ),
+        'NUMBERS' => array(
+            // 0 => 'color: #33f;' // Don't highlight numbers, really...
+            ),
+        'METHODS' => array(
+            1 => '',
+            2 => ''
+            ),
+        'SYMBOLS' => array(
+            1 => 'color: cyan;',
+            2 => 'font-weight: bold; color: brown;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            0 => ''
+            )
+        ),
+    'URLS' => array(1 => ''),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array( ),
+    'REGEXPS' => array( ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array( ),
+    'HIGHLIGHT_STRICT_BLOCK' => array( )
+);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/z80.php b/wp-content/plugins/wp-syntax/geshi/geshi/z80.php
index 5ab146bf9469c41b9168ff1e10a14589b68071f2..47326bb21e8e402274c01a16305d1bf565ff7649 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/z80.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/z80.php
@@ -4,7 +4,7 @@
  * -------
  * Author: Benny Baumann (BenBE@omorphia.de)
  * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/)
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2007/02/06
  *
  * ZiLOG Z80 Assembler language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/geshi/geshi/zxbasic.php b/wp-content/plugins/wp-syntax/geshi/geshi/zxbasic.php
index 430e5f6aebbc778af08dd3cb2da9166fd61788f1..b1de472b50f421b27cd49ff3d7ed02bf1ac33979 100644
--- a/wp-content/plugins/wp-syntax/geshi/geshi/zxbasic.php
+++ b/wp-content/plugins/wp-syntax/geshi/geshi/zxbasic.php
@@ -4,7 +4,7 @@
  * -------------
  * Author: Jose Rodriguez (a.k.a. Boriel)
  * Based on Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) Freebasic template
- * Release Version: 1.0.8.9
+ * Release Version: 1.0.8.11
  * Date Started: 2010/06/19
  *
  * ZXBasic language file for GeSHi.
diff --git a/wp-content/plugins/wp-syntax/js/wp-syntax.js b/wp-content/plugins/wp-syntax/js/wp-syntax.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7f6c739f9b073ab7b08a1fa977e7387033c5a0b
--- /dev/null
+++ b/wp-content/plugins/wp-syntax/js/wp-syntax.js
@@ -0,0 +1,34 @@
+jQuery(document).ready(function($)
+{
+	$('.wp_syntax').bind(
+	{
+		mouseover: function()
+		{
+			var w = $(this).find('table').outerWidth();
+			var hw = $(document).width() - $(this).offset().left - 20;
+			
+			/*
+			 * Test code.
+			 */
+			/*var left, top;
+			left = $(this).offset().left;
+			top = $(this).offset().top;
+			
+			$(this)
+				.appendTo('body')
+				.css({
+				'position': 'absolute',
+				'left': left + 'px',
+				'top': top + 'px'
+			});
+			*/
+			
+			if(w > $(this).outerWidth())
+				$(this).css({'position':'relative', 'z-index':'9999', 'box-shadow':'5px 5px 5px #888', 'width':(w > hw ? hw : w)+'px'});
+		},
+		mouseout: function()
+		{
+			//$(this).removeAttr('style');
+		}					
+	});
+});
\ No newline at end of file
diff --git a/wp-content/plugins/wp-syntax/wp-syntax.php b/wp-content/plugins/wp-syntax/wp-syntax.php
index 3d195ead125159cb3c6032137e331601d2d092e1..d3a95ffea5abbac272983e3b0fe47ffbad65990f 100644
--- a/wp-content/plugins/wp-syntax/wp-syntax.php
+++ b/wp-content/plugins/wp-syntax/wp-syntax.php
@@ -1,207 +1,372 @@
 <?php
 /*
 Plugin Name: WP-Syntax
-Plugin URI: http://wordpress.org/extend/plugins/wp-syntax/
-Description: Syntax highlighting using <a href="http://qbnz.com/highlighter/">GeSHi</a> supporting a wide range of popular languages.  Wrap code blocks with <code>&lt;pre lang="LANGUAGE" line="1"&gt;</code> and <code>&lt;/pre&gt;</code> where <code>LANGUAGE</code> is a geshi supported language syntax.  The <code>line</code> attribute is optional.
+Plugin URI: http://www.connections-pro.com
+Description: Syntax highlighting using <a href="http://qbnz.com/highlighter/">GeSHi</a> supporting a wide range of popular languages.
+Version: 1.0
 Author: Steven A. Zahm
-Version: 0.9.12
-Author URI: http://connections-pro.com
+Author URI: http://www.connections-pro.com
+License: GPL2
+Text Domain: wp_syntax
+Domain Path: /lang
+
+Original Author: Ryan McGeary
+
+Copyright 2013  Steven A. Zahm  (email : helpdesk@connections-pro.com)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License, version 2, as
+published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
-#  Original Author: Ryan McGeary
-
-#
-#  Copyright (c) 2007-2009 Ryan McGeary 2010 Steven A. Zahm
-#
-#  This file is part of WP-Syntax.
-#
-#  WP-Syntax is free software; you can redistribute it and/or modify it under
-#  the terms of the GNU General Public License as published by the Free
-#  Software Foundation; either version 2 of the License, or (at your option)
-#  any later version.
-#
-#  WP-Syntax is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
-#  details.
-#
-#  You should have received a copy of the GNU General Public License along
-#  with WP-Syntax; if not, write to the Free Software Foundation, Inc., 59
-#  Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-
-// Override allowed attributes for pre tags in order to use <pre lang=""> in
-// comments. For more info see wp-includes/kses.php
-if (!CUSTOM_TAGS) {
-  $allowedposttags['pre'] = array(
-    'lang' => array(),
-    'line' => array(),
-    'escaped' => array(),
-    'style' => array(),
-    'width' => array(),
-	'highlight' => array()
-  );
-  //Allow plugin use in comments
-  $allowedtags['pre'] = array(
-    'lang' => array(),
-    'line' => array(),
-    'escaped' => array(),
-	'highlight' => array()
-  );
-}
-
-include_once("geshi/geshi.php");
-
-if (!defined("WP_CONTENT_URL")) define("WP_CONTENT_URL", get_option("siteurl") . "/wp-content");
-if (!defined("WP_PLUGIN_URL"))  define("WP_PLUGIN_URL",  WP_CONTENT_URL        . "/plugins");
-
-function wp_syntax_head()
-{
-  /*$css_url = WP_PLUGIN_URL . "/wp-syntax/wp-syntax.css";
-  if (file_exists(TEMPLATEPATH . "/wp-syntax.css"))
-  {
-    $css_url = get_bloginfo("template_url") . "/wp-syntax.css";
-  }
-  echo "\n".'<link rel="stylesheet" href="' . $css_url . '" type="text/css" media="screen" />'."\n";*/
-
-  $css_url = WP_PLUGIN_URL . "/wp-syntax/wp-syntax.css";
-  if (file_exists(STYLESHEETPATH . "/wp-syntax.css"))
-  {
-    $css_url = get_bloginfo("stylesheet_directory") . "/wp-syntax.css";
-  }
-  echo "\n".'<link rel="stylesheet" href="' . $css_url . '" type="text/css" media="screen" />'."\n";
-}
-
-function wp_syntax_code_trim($code)
-{
-    // special ltrim b/c leading whitespace matters on 1st line of content
-    $code = preg_replace("/^\s*\n/siU", "", $code);
-    $code = rtrim($code);
-    return $code;
-}
-
-function wp_syntax_substitute(&$match)
-{
-    global $wp_syntax_token, $wp_syntax_matches;
-
-    $i = count($wp_syntax_matches);
-    $wp_syntax_matches[$i] = $match;
-
-    return "\n\n<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>\n\n";
-}
-
-function wp_syntax_line_numbers($code, $start)
-{
-    $line_count = count(explode("\n", $code));
-    $output = "<pre>";
-    for ($i = 0; $i < $line_count; $i++)
-    {
-        $output .= ($start + $i) . "\n";
-    }
-    $output .= "</pre>";
-    return $output;
-}
-
-function wp_syntax_highlight($match)
-{
-    global $wp_syntax_matches;
- 
-    $i = intval($match[1]);
-    $match = $wp_syntax_matches[$i];
- 
-    $language = strtolower(trim($match[1]));
-    $line = trim($match[2]);
-    $escaped = trim($match[3]);
- 
-    $code = wp_syntax_code_trim($match[5]);
-    if ($escaped == "true") $code = htmlspecialchars_decode($code);
- 
-    $geshi = new GeSHi($code, $language);
-    $geshi->enable_keyword_links(false);
-    do_action_ref_array('wp_syntax_init_geshi', array(&$geshi));
- 
-    //START LINE HIGHLIGHT SUPPORT
-    $highlight = array();
-    if ( !empty($match[4]) )
-    {
-        $highlight = strpos($match[4],',') == false ? array($match[4]) : explode(',', $match[4]);
- 
-	$h_lines = array();
-	for( $i=0; $i<sizeof($highlight); $i++ )
-	{
-		$h_range = explode('-', $highlight[$i]);
- 
-		if( sizeof($h_range) == 2 )
-			$h_lines = array_merge( $h_lines, range($h_range[0], $h_range[1]) );
-		else
-			array_push($h_lines, $highlight[$i]);
+/*
+@todo integrate TinyMCE button support using one of these as a base:
+	http://wordpress.org/extend/plugins/wp-syntax-integration/
+	http://wordpress.org/extend/plugins/wp-syntax-button/
+@todo Merge this add-on plugin functionality:  http://wordpress.org/extend/plugins/wp-syntax-download-extension/
+
+Look at these:	http://wordpress.org/extend/plugins/wp-synhighlight/
+				http://wordpress.org/extend/plugins/wp-codebox/
+ */
+
+if ( ! class_exists( 'WP_Syntax' ) ) {
+
+	class WP_Syntax {
+
+		/**
+		* @var (object) WP_Syntax stores the instance of this class.
+		*/
+		private static $instance;
+
+		private static $token;
+
+		private static $matches;
+
+		/**
+		 * A dummy constructor to prevent WP_Syntax from being loaded more than once.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @see WP_Syntax::instance()
+		 * @see WP_Syntax();
+		 */
+		private function __construct() { /* Do nothing here */ }
+
+		/**
+		 * Main WP_Syntax Instance
+		 *
+		 * Insures that only one instance of WP_Syntax exists in memory at any one time.
+		 *
+		 * @access public
+		 * @since 1.0
+		 * @return object WP_Syntax
+		 */
+		public static function getInstance() {
+			if ( ! isset( self::$instance ) ) {
+				self::$instance = new self;
+				self::$instance->init();
+			}
+			return self::$instance;
+		}
+
+		/**
+		 * Initiate the plugin.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @return void
+		 */
+		private function init() {
+
+			self::defineConstants();
+			self::inludeDependencies();
+
+			self::$token = md5( uniqid( rand() ) );
+
+			self::$matches = array();
+
+			// Nothing to do during activation/deactivation yet...
+			// register_activation_hook( dirname(__FILE__) . '/wp-syntax.php', array( __CLASS__, 'activate' ) );
+			// register_deactivation_hook( dirname(__FILE__) . '/wp-syntax.php', array( __CLASS__, 'deactivate' ) );
+
+			// Nothing to translate presently.
+			// load_plugin_textdomain( 'wp_syntax' , false , WPS__DIR_NAME . 'lang' );
+
+			add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueueScripts' ) );
+
+			// Update config for WYSIWYG editor to accept the pre tag and its attributes.
+			add_filter( 'tiny_mce_before_init', array( __CLASS__,'tinyMCEConfig') );
+
+			// We want to run before other filters; hence, a priority of 0 was chosen.
+			// The lower the number, the higher the priority.  10 is the default and
+			// several formatting filters run at or around 6.
+			add_filter( 'the_content', array( __CLASS__, 'beforeFilter' ), 0);
+			add_filter( 'the_excerpt', array( __CLASS__, 'beforeFilter' ), 0);
+			add_filter( 'comment_text', array( __CLASS__, 'beforeFilter' ), 0);
+
+			// We want to run after other filters; hence, a priority of 99.
+			add_filter( 'the_content', array( __CLASS__, 'afterFilter' ), 99);
+			add_filter( 'the_excerpt', array( __CLASS__, 'afterFilter' ), 99);
+			add_filter( 'comment_text', array( __CLASS__, 'afterFilter' ), 99);
+
+		}
+
+		/**
+		 * Define the constants.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @return void
+		 */
+		private static function defineConstants() {
+
+			define( 'WPS_VERSION', '1.0' );
+
+			define( 'WPS_DIR_NAME', plugin_basename( dirname( __FILE__ ) ) );
+			define( 'WPS_BASE_NAME', plugin_basename( __FILE__ ) );
+			define( 'WPS_BASE_PATH', plugin_dir_path( __FILE__ ) );
+			define( 'WPS_BASE_URL', plugin_dir_url( __FILE__ ) );
+
+		}
+
+		private static function inludeDependencies() {
+
+			include_once( 'geshi/geshi.php' );
+
+		}
+
+		/**
+		 * Called when activating  via the activation hook.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @return void
+		 */
+		public static function activate() {
+
+		}
+
+		/**
+		 * Called when deactivating via the deactivation hook.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @return void
+		 */
+		public static function deactivate() {
+
+		}
+
+		/**
+		 * Enqueue the CSS and JavaScripts.
+		 *
+		 * @access private
+		 * @since 1.0
+		 * @return void
+		 */
+		public static function enqueueScripts() {
+
+			// If a wp-syntax.css file exists in the theme folder use it instead.
+			$url = file_exists( STYLESHEETPATH . '/wp-syntax.css' ) ? get_bloginfo( 'stylesheet_directory' ) . '/wp-syntax.css' : WPS_BASE_URL . 'css/wp-syntax.css';
+
+			// Enqueue the CSS
+			wp_enqueue_style( 'wp-syntax-css', $url, array(), WPS_VERSION );
+
+			// Enqueue the JavaScript
+			// wp_enqueue_script( 'wp-syntax-js', WPS_BASE_URL . 'js/wp-syntax.js', array( 'jquery' ), WPS_VERSION, TRUE );
+
+		}
+
+		/**
+		 * Update the TinyMCE config to add support for the pre tag and its attributes.
+		 *
+		 * @access private
+		 * @since 0.9.13
+		 * @param  (array) $init The TinyMCE config.
+		 * @return (array)
+		 */
+		public static function tinyMCEConfig( $init ) {
+
+			$ext = 'pre[id|name|class|style|lang|line|escaped|highlight|src]';
+
+			if ( isset( $init['extended_valid_elements'] ) ) {
+				$init['extended_valid_elements'] .= "," . $ext;
+			} else {
+				$init['extended_valid_elements'] = $ext;
+			}
+
+			return $init;
+		}
+
+		// special ltrim b/c leading whitespace matters on 1st line of content
+		public static function trimCode( $code ) {
+			$code = preg_replace("/^\s*\n/siU", '', $code);
+			$code = rtrim ($code );
+			return $code;
+		}
+
+		public static function substituteToken( &$match ) {
+			// global $wp_syntax_token, $wp_syntax_matches;
+
+			$i = count( self::$matches );
+			self::$matches[ $i ] = $match;
+
+			return "\n\n<p>" . self::$token . sprintf( '%03d', $i ) . "</p>\n\n";
+		}
+
+		public static function lineNumbers( $code, $start ) {
+
+			$line_count = count( explode( "\n", $code ) );
+			$output = '<pre>';
+
+			for ( $i = 0; $i < $line_count; $i++ ) {
+				$output .= ( $start + $i ) . "\n";
+			}
+
+			$output .= '</pre>';
+
+			return $output;
+		}
+
+		public static function caption( $url ) {
+
+			$parsed = parse_url( $url );
+			$path = pathinfo( $parsed['path'] );
+			$caption = '';
+
+			if ( ! isset( $path['filename'] ) ) {
+				return;
+			}
+
+			if ( isset( $parsed['scheme'] ) ) {
+				$caption .= '<a href="' . $url . '">';
+			}
+
+			if ( isset( $parsed["host"] ) && $parsed["host"] == 'github.com' )
+			{
+				$caption .= substr( $parsed['path'], strpos( $parsed['path'], '/', 1 ) ); /* strip github.com username */
+			} else {
+				$caption .= $parsed['path'];
+			}
+
+			/* $caption . $path["filename"];
+			if (isset($path["extension"])) {
+				$caption .= "." . $path["extension"];
+			}*/
+
+			if ( isset($parsed['scheme']) ) {
+				$caption .= '</a>';
+			}
+
+			return $caption;
+		}
+
+		public static function highlight( $match ) {
+			// global $wp_syntax_matches;
+
+			$i = intval( $match[1] );
+			$match = self::$matches[ $i ];
+
+			$language = strtolower( trim( $match[1] ) );
+			$line = trim( $match[2] );
+			$escaped = trim( $match[3] );
+			$caption = self::caption( $match[5] );
+			$code = self::trimCode( $match[6] );
+
+			if ( $escaped == 'true' ) $code = htmlspecialchars_decode( $code );
+
+			$geshi = new GeSHi( $code, $language );
+			$geshi->enable_keyword_links( FALSE );
+
+			do_action_ref_array( 'wp_syntax_init_geshi', array( &$geshi ) );
+
+			if ( ! empty( $match[4] ) ) {
+
+				$linespecs = strpos( $match[4], ",") == FALSE ? array( $match[4] ) : explode( ',', $match[4] );
+				$lines = array();
+
+				foreach ( $linespecs as $spec ) {
+					$range = explode( '-', $spec );
+					$lines = array_merge( $lines, ( count( $range ) == 2) ? range( $range[0], $range[1]) : $range );
+				}
+
+				$geshi->highlight_lines_extra( $lines );
+			}
+
+			$output = "\n" . '<div class="wp_syntax">';
+			$output .= '<table>';
+
+			if ( ! empty( $caption ) ) {
+				$output .= '<caption>' . $caption . '</caption>';
+			}
+
+			$output .= '<tr>';
+
+			if ( $line ) {
+				$output .='<td class="line_numbers">' . self::lineNumbers( $code, $line ) . '</td>';
+			}
+
+			$output .= '<td class="code">';
+			$output .= $geshi->parse_code();
+			$output .= '</td></tr></table>';
+			$output .= '</div>' . "\n";
+
+			return $output;
+		}
+
+		public static function beforeFilter( $content ) {
+
+			return preg_replace_callback(
+				"/\s*<pre(?:lang=[\"']([\w-]+)[\"']|line=[\"'](\d*)[\"']|escaped=[\"'](true|false)?[\"']|highlight=[\"']((?:\d+[,-])*\d+)[\"']|src=[\"']([^\"']+)[\"']|\s)+>(.*)<\/pre>\s*/siU",
+				array( __CLASS__, 'substituteToken' ),
+				$content
+			);
+
+		}
+
+		public static function afterFilter( $content ) {
+			// global $wp_syntax_token;
+
+			 $content = preg_replace_callback(
+				 '/<p>\s*' . self::$token . '(\d{3})\s*<\/p>/si',
+				 array( __CLASS__, 'highlight' ),
+				 $content
+			 );
+
+			return $content;
+		}
+
 	}
 
-        $geshi->highlight_lines_extra( $h_lines );
-    }
-    //END LINE HIGHLIGHT SUPPORT
- 
-    $output = "\n<div class=\"wp_syntax\">";
- 
-    if ($line)
-    {
-        $output .= "<table><tr><td class=\"line_numbers\">";
-        $output .= wp_syntax_line_numbers($code, $line);
-        $output .= "</td><td class=\"code\">";
-        $output .= $geshi->parse_code();
-        $output .= "</td></tr></table>";
-    }
-    else
-    {
-        $output .= "<div class=\"code\">";
-        $output .= $geshi->parse_code();
-        $output .= "</div>";
-    }
-    return
- 
-    $output .= "</div>\n";
- 
-    return $output;
-}
-
-function wp_syntax_before_filter($content)
-{
-    return preg_replace_callback(
-        "/\s*<pre(?:lang=[\"']([\w-]+)[\"']|line=[\"'](\d*)[\"']|escaped=[\"'](true|false)?[\"']|highlight=[\"']((?:\d+[,-])*\d+)[\"']|\s)+>(.*)<\/pre>\s*/siU",
-        "wp_syntax_substitute",
-        $content
-    );
-}
-
-function wp_syntax_after_filter($content)
-{
-    global $wp_syntax_token;
-
-     $content = preg_replace_callback(
-         "/<p>\s*".$wp_syntax_token."(\d{3})\s*<\/p>/si",
-         "wp_syntax_highlight",
-         $content
-     );
-
-    return $content;
-}
-
-$wp_syntax_token = md5(uniqid(rand()));
-$wp_syntax_matches = array();
-
-// Add styling
-add_action('wp_head', 'wp_syntax_head');
-
-// We want to run before other filters; hence, a priority of 0 was chosen.
-// The lower the number, the higher the priority.  10 is the default and
-// several formatting filters run at or around 6.
-add_filter('the_content', 'wp_syntax_before_filter', 0);
-add_filter('the_excerpt', 'wp_syntax_before_filter', 0);
-add_filter('comment_text', 'wp_syntax_before_filter', 0);
-
-// We want to run after other filters; hence, a priority of 99.
-add_filter('the_content', 'wp_syntax_after_filter', 99);
-add_filter('the_excerpt', 'wp_syntax_after_filter', 99);
-add_filter('comment_text', 'wp_syntax_after_filter', 99);
-
-?>
+	/**
+	 * The main function responsible for returning the WP_Syntax instance
+	 * to functions everywhere.
+	 *
+	 * Use this function like you would a global variable, except without needing
+	 * to declare the global.
+	 *
+	 * Example: <?php $wp_syntex = WP_Syntax(); ?>
+	 *
+	 * @access public
+	 * @since 1.0
+	 * @return mixed (object)
+	 */
+	function WP_Syntax() {
+		return WP_Syntax::getInstance();
+	}
+
+	/**
+	 * Start the plugin.
+	 */
+	add_action( 'plugins_loaded', 'WP_Syntax' );
+
+}
\ No newline at end of file