Merge pull request #98 from gerundt/master

"Online Demo" page for the website
This commit is contained in:
Daniel Marjamäki 2012-06-04 21:42:22 -07:00
commit bc237b9dc8
10 changed files with 5783 additions and 0 deletions

93
htdocs/demo/index.php Normal file
View File

@ -0,0 +1,93 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Online Demo - Cppcheck</title>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Orbitron&amp;text=Cppcheck" />
<link rel="stylesheet" type="text/css" href="/site/css/all.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<script type="text/javascript">
function checkCodeLength() {
if (document.f.code.value.length > 1024) {
alert('code length exceeded');
return false;
}
return true;
}
</script>
</head>
<body>
<div id="header">
<div class="wrap">
<h1>Cppcheck</h1>
<p>A tool for static C/C++ code analysis</p>
</div> <!-- .wrap -->
</div> <!-- #header -->
<div id="tabs">
<div class="wrap">
<ul>
<li><a href="/">Home</a></li>
<li><a href="http://sourceforge.net/apps/mediawiki/cppcheck/">Wiki</a></li>
<li><a href="http://sourceforge.net/apps/phpbb/cppcheck/">Forum</a></li>
<li><a href="http://sourceforge.net/apps/trac/cppcheck/">Trac</a></li>
<li><a href="/devinfo/" title="Developer Information">Developer Info</a></li>
<li><strong><a href="/demo/">Online Demo</a></strong></li>
<li><a href="http://sourceforge.net/projects/cppcheck/">Project page</a></li>
</ul>
</div> <!-- .wrap -->
</div> <!-- #tabs -->
<div id="content">
<div class="wrap">
<h2>Online Demo</h2>
<form action="/demo/report/" name="f" onsubmit="return checkCodeLength();" method="post" target="_blank">
<p><label for="code">Enter code:</label><br />
<textarea id="code" name="code" rows="20" cols="80">
void f()
{
char *p;
*p = 0;
}
</textarea><br />
<input type="submit" value="Check" /> (max 1024 characters)</p>
</form>
<h3>Examples</h3>
<p>This code can be copy and pasted in the edit box above.</p>
<h4>NULL pointers</h4>
<pre class="code">void f1(struct fred_t *p)
{
<em>// dereference p and then check if it's NULL</em>
int x = p-&gt;x;
if (p)
do_something(x);
}
void f2()
{
const char *p = NULL;
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] == ' ')
{
p = str + i;
break;
}
}
<em>// p is NULL if str doesn't have a space. If str always has a</em>
<em>// a space then the condition (str[i] != '\0') would be redundant</em>
return p[1];
}
void f3(int a)
{
struct fred_t *p = NULL;
if (a == 1)
p = fred1;
<em>// if a is not 1 then p is NULL</em>
p-&gt;x = 0;
}</pre>
</div> <!-- .wrap -->
</div> <!-- #content -->
</body>
</html>

View File

@ -0,0 +1,142 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Online Demo Report - Cppcheck</title>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Orbitron&amp;text=Cppcheck" />
<link rel="stylesheet" type="text/css" href="/site/css/all.css" />
<link rel="stylesheet" type="text/css" href="/site/css/geshi.css" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="/site/js/picnet.table.filter.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#resultsTable').tableFilter();
});
</script>
</head>
<body>
<div id="header">
<div class="wrap">
<h1>Cppcheck</h1>
<p>A tool for static C/C++ code analysis</p>
</div> <!-- .wrap -->
</div> <!-- #header -->
<div id="tabs">
<div class="wrap">
<ul>
<li><a href="/">Home</a></li>
<li><a href="http://sourceforge.net/apps/mediawiki/cppcheck/">Wiki</a></li>
<li><a href="http://sourceforge.net/apps/phpbb/cppcheck/">Forum</a></li>
<li><a href="http://sourceforge.net/apps/trac/cppcheck/">Trac</a></li>
<li><a href="/devinfo/" title="Developer Information">Developer Info</a></li>
<li><em><a href="/demo/">Online Demo</a></em></li>
<li><a href="http://sourceforge.net/projects/cppcheck/">Project page</a></li>
</ul>
</div> <!-- .wrap -->
</div> <!-- #tabs -->
<div id="content">
<div class="wrap">
<h2>Online Demo Report</h2>
<?php
$isCodePosted = isset($_POST['code']) && !empty($_POST['code']);
/**
* ...
* @param string $code Source code
* @return string Output lines
*/
function get_democlient_output($code) {
$postdata = http_build_query(
array(
'code' => $code
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
return file_get_contents('http://cppcheck.sourceforge.net/cgi-bin/democlient.cgi', false, $context);
}
/**
* ...
* @param string $output Output lines
* @return array Parsed output
*/
function parse_democlient_output($output) {
try {
$parsed = array();
$xml = simplexml_load_string($output);
foreach ($xml->errors->error as $error) { //for all errors...
$severity = (string)$error->attributes()->severity;
$msg = (string)$error->attributes()->msg;
$line = (string)$error->location->attributes()->line;
if (!empty($severity) && !empty($msg) && !empty($line)) { //if complete error...
$parsed[] = array('severity' => $severity, 'msg' => $msg, 'line' => $line);
}
}
return $parsed;
}
catch (Exception $ex) {
return array();
}
}
function cut_string($string, $length = 1024) {
if (strlen($string) > $length) {
return substr($string, 0, $length);
}
return $string;
}
if ($isCodePosted) { //if code posted...
include_once '../../site/geshi/geshi.php';
$code = cut_string($_POST['code']);
$geshi = new GeSHi($code, 'cpp');
$geshi->enable_classes();
$geshi->set_header_type(GESHI_HEADER_PRE_TABLE);
$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
$geshi->set_overall_class('geshicode');
echo "<h3>Input</h3>\n";
echo $geshi->parse_code();
echo "<h3>Output</h3>\n";
$output = get_democlient_output($code);
$results = parse_democlient_output($output);
if (!empty($results)) {
echo "<table id=\"resultsTable\">\n";
echo "<thead>\n";
echo " <tr><th class=\"center\" filter-type=\"ddl\">Line</th><th class=\"center\" filter-type=\"ddl\">Severity</th><th>Message</th></tr>\n";
echo "</thead>\n";
echo "<tbody>\n";
foreach ($results as $result) { //for each result...
echo " <tr><td class=\"center\">" . htmlspecialchars($result['line']) . "</td><td class=\"center\">" . htmlspecialchars($result['severity']) . "</td><td>" . htmlspecialchars($result['msg']) . "</td></tr>\n";
}
echo "</tbody>\n";
echo "</table>\n";
}
else {
echo "<p>No errors found.</p>\n";
}
}
else {
echo "<p>Use the <a href=\"/demo/\">online demo</a> page to create the report.</p>\n";
}
?>
</div> <!-- .wrap -->
</div> <!-- #content -->
</body>
</html>

View File

@ -33,6 +33,7 @@
<li><a href="http://sourceforge.net/apps/phpbb/cppcheck/">Forum</a></li>
<li><a href="http://sourceforge.net/apps/trac/cppcheck/">Trac</a></li>
<li><strong><a href="/devinfo/" title="Developer Information">Developer Info</a></strong></li>
<li><a href="/demo/">Online Demo</a></li>
<li><a href="http://sourceforge.net/projects/cppcheck/">Project page</a></li>
</ul>
</div> <!-- .wrap -->

View File

@ -30,6 +30,7 @@ uninitialized variables, unused functions" />
<li><a href="http://sourceforge.net/apps/phpbb/cppcheck/">Forum</a></li>
<li><a href="http://sourceforge.net/apps/trac/cppcheck/">Trac</a></li>
<li><a href="/devinfo/" title="Developer Information">Developer Info</a></li>
<li><a href="/demo/">Online Demo</a></li>
<li><a href="http://sourceforge.net/projects/cppcheck/">Project page</a></li>
</ul>
</div> <!-- .wrap -->

View File

@ -6,6 +6,10 @@ body {
background: #eee;
}
dt {
font-weight:bold;
}
/* Default link style */
a:link { color:#036; text-decoration:underline; }
a:visited { color:#036; text-decoration:underline; }
@ -117,8 +121,44 @@ a.downloadnow em {
font-style: normal;
}
/* Source Code */
pre.code {
padding: .5em;
background: #f7f7f7;
border: 1px solid #e2e2e2;
}
pre.code em {
color: green;
}
.geshicode {
padding: .5em;
background: #f7f7f7;
border: 1px solid #e2e2e2;
}
/* Results table */
#resultsTable {
border-collapse: collapse;
}
#resultsTable th {
padding: .25em;
text-align: left;
background: #e2e2e2;
border: 1px solid #e2e2e2;
}
#resultsTable td {
padding: .25em;
background: #f7f7f7;
border: 1px solid #e2e2e2;
}
#resultsTable .center {
text-align: center;
}
/* Printing */
@media print {
#header { color: black; border-bottom: 1px solid black; }
#tabs { display: none; }
#resultsTable th { background: white; border: 1px solid black; }
#resultsTable td { background: white; border: 1px solid black; }
}

40
htdocs/site/css/geshi.css Normal file
View File

@ -0,0 +1,40 @@
/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.cpp.geshicode .de1, .cpp.geshicode .de2 {font:normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.geshicode {font-family:monospace;}
.cpp.geshicode .imp {font-weight:bold; color:red;}
.cpp.geshicode li, .cpp.geshicode .li1 {font-weight:normal; vertical-align:top;}
.cpp.geshicode .ln {width:1px; text-align:right; margin:0; padding:0 2px; vertical-align:top; color:#999999;}
.cpp.geshicode .kw1 {color:#0000ff;}
.cpp.geshicode .kw2 {color:#0000ff;}
.cpp.geshicode .kw3 {color:#0000dd;}
.cpp.geshicode .kw4 {color:#0000ff;}
.cpp.geshicode .co1 {color:#666666;}
.cpp.geshicode .co2 {color:#339900;}
.cpp.geshicode .coMULTI {color:#ff0000; font-style:italic;}
.cpp.geshicode .es0 {color:#000099; font-weight:bold;}
.cpp.geshicode .es1 {color:#000099; font-weight:bold;}
.cpp.geshicode .es2 {color:#660099; font-weight:bold;}
.cpp.geshicode .es3 {color:#660099; font-weight:bold;}
.cpp.geshicode .es4 {color:#660099; font-weight:bold;}
.cpp.geshicode .es5 {color:#006699; font-weight:bold;}
.cpp.geshicode .br0 {color:#008000;}
.cpp.geshicode .sy0 {color:#008000;}
.cpp.geshicode .sy1 {color:#000080;}
.cpp.geshicode .sy2 {color:#000040;}
.cpp.geshicode .sy3 {color:#000040;}
.cpp.geshicode .sy4 {color:#008080;}
.cpp.geshicode .st0 {color:#ff0000;}
.cpp.geshicode .nu0 {color:#0000dd;}
.cpp.geshicode .nu6 {color:#208080;}
.cpp.geshicode .nu8 {color:#208080;}
.cpp.geshicode .nu12 {color:#208080;}
.cpp.geshicode .nu16 {color:#800080;}
.cpp.geshicode .nu17 {color:#800080;}
.cpp.geshicode .nu18 {color:#800080;}
.cpp.geshicode .nu19 {color:#800080;}
.cpp.geshicode .me1 {color:#007788;}
.cpp.geshicode .me2 {color:#007788;}
.cpp.geshicode span.xtra {display:block;}

4755
htdocs/site/geshi/geshi.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,281 @@
<?php
/*************************************************************************************
* c.php
* -----
* Author: Nigel McNie (nigel@geshi.org)
* Contributors:
* - Jack Lloyd (lloyd@randombit.net)
* - Michael Mol (mikemol@gmail.com)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
* Release Version: 1.0.8.10
* Date Started: 2004/06/04
*
* C language file for GeSHi.
*
* CHANGES
* -------
* 2009/01/22 (1.0.8.3)
* - Made keywords case-sensitive.
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2004/XX/XX (1.0.4)
* - Added a couple of new keywords (Jack Lloyd)
* 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 support for symbols
* 2004/07/14 (1.0.0)
* - First Release
*
* TODO (updated 2009/02/08)
* -------------------------
* - Get a list of inbuilt functions to add (and explore C more
* to complete this rather bare language file
*
*************************************************************************************
*
* 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' => 'C',
'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'
),
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'
),
),
'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
);
?>

View File

@ -0,0 +1,240 @@
<?php
/*************************************************************************************
* cpp.php
* -------
* Author: Dennis Bayer (Dennis.Bayer@mnifh-giessen.de)
* Contributors:
* - 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.10
* Date Started: 2004/09/27
*
* C++ language file for GeSHi.
*
* CHANGES
* -------
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2004/XX/XX (1.0.2)
* - Added several new keywords (Jack Lloyd)
* 2004/11/27 (1.0.1)
* - Added StdCLib function and constant names, changed color scheme to
* a cleaner one. (M. Uli Kusterer)
* - Added support for multiple object splitters
* 2004/10/27 (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
*
************************************************************************************/
$language_data = array (
'LANG_NAME' => 'C++',
'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(
'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
'switch', 'throw', 'while'
),
2 => array(
'NULL', 'false', 'true', 'enum', 'errno', 'EDOM',
'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class'
),
3 => array(
'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
),
4 => array(
'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
'register', 'short', 'shortint', 'signed', 'static', 'struct',
'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', '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'
),
),
'SYMBOLS' => array(
0 => array('(', ')', '{', '}', '[', ']'),
1 => array('<', '>','='),
2 => array('+', '-', '*', '/', '%'),
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;',
'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;'
),
'REGEXPS' => array(
),
'SCRIPT' => array(
)
),
'URLS' => array(
1 => '',
2 => '',
3 => '',
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,
'PARSER_CONTROL' => array(
'KEYWORDS' => array(
'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
)
)
);
?>

View File

@ -0,0 +1,190 @@
function $JSCompiler_alias_THROW$$($jscomp_throw_param$$){throw $jscomp_throw_param$$;}var $JSCompiler_alias_VOID$$=void 0,$JSCompiler_alias_TRUE$$=!0,$JSCompiler_alias_NULL$$=null,$JSCompiler_alias_FALSE$$=!1,$JSCompiler_prototypeAlias$$,$goog$global$$=this;
function $goog$typeOf$$($value$$41$$){var $s$$2$$=typeof $value$$41$$;if("object"==$s$$2$$)if($value$$41$$){if($value$$41$$ instanceof Array)return"array";if($value$$41$$ instanceof Object)return $s$$2$$;var $className$$1$$=Object.prototype.toString.call($value$$41$$);if("[object Window]"==$className$$1$$)return"object";if("[object Array]"==$className$$1$$||"number"==typeof $value$$41$$.length&&"undefined"!=typeof $value$$41$$.splice&&"undefined"!=typeof $value$$41$$.propertyIsEnumerable&&!$value$$41$$.propertyIsEnumerable("splice"))return"array";
if("[object Function]"==$className$$1$$||"undefined"!=typeof $value$$41$$.call&&"undefined"!=typeof $value$$41$$.propertyIsEnumerable&&!$value$$41$$.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==$s$$2$$&&"undefined"==typeof $value$$41$$.call)return"object";return $s$$2$$}function $goog$isArrayLike$$($val$$4$$){var $type$$47$$=$goog$typeOf$$($val$$4$$);return"array"==$type$$47$$||"object"==$type$$47$$&&"number"==typeof $val$$4$$.length}
function $goog$isString$$($val$$6$$){return"string"==typeof $val$$6$$}function $goog$isFunction$$($val$$9$$){return"function"==$goog$typeOf$$($val$$9$$)}function $goog$isObject$$($val$$10$$){var $type$$48$$=typeof $val$$10$$;return"object"==$type$$48$$&&$val$$10$$!=$JSCompiler_alias_NULL$$||"function"==$type$$48$$}var $goog$UID_PROPERTY_$$="closure_uid_"+Math.floor(2147483648*Math.random()).toString(36),$goog$uidCounter_$$=0;
function $goog$bindNative_$$($fn$$,$selfObj$$1$$,$var_args$$24$$){return $fn$$.call.apply($fn$$.bind,arguments)}
function $goog$bindJs_$$($fn$$1$$,$selfObj$$2$$,$var_args$$25$$){$fn$$1$$||$JSCompiler_alias_THROW$$(Error());if(2<arguments.length){var $boundArgs$$=Array.prototype.slice.call(arguments,2);return function(){var $newArgs$$=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply($newArgs$$,$boundArgs$$);return $fn$$1$$.apply($selfObj$$2$$,$newArgs$$)}}return function(){return $fn$$1$$.apply($selfObj$$2$$,arguments)}}
function $goog$bind$$($fn$$2$$,$selfObj$$3$$,$var_args$$26$$){$goog$bind$$=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?$goog$bindNative_$$:$goog$bindJs_$$;return $goog$bind$$.apply($JSCompiler_alias_NULL$$,arguments)}
function $goog$partial$$($fn$$3$$,$var_args$$27$$){var $args$$=Array.prototype.slice.call(arguments,1);return function(){var $newArgs$$1$$=Array.prototype.slice.call(arguments);$newArgs$$1$$.unshift.apply($newArgs$$1$$,$args$$);return $fn$$3$$.apply(this,$newArgs$$1$$)}}var $goog$now$$=Date.now||function(){return+new Date};
function $goog$inherits$$($childCtor$$,$parentCtor$$){function $tempCtor$$(){}$tempCtor$$.prototype=$parentCtor$$.prototype;$childCtor$$.$superClass_$=$parentCtor$$.prototype;$childCtor$$.prototype=new $tempCtor$$};function $pn$ui$filter$FilterState$$($id$$1$$,$value$$43$$,$idx$$,$type$$50$$){this.id=$id$$1$$;this.value=$value$$43$$;this.$idx$=$idx$$;this.type=$type$$50$$}$pn$ui$filter$FilterState$$.prototype.toString=function $$pn$ui$filter$FilterState$$$$toString$(){return"id["+this.id+"] value["+this.value+"] idx["+this.$idx$+"] type["+this.type+"]"};function $pn$ui$filter$GenericListFilterOptions$$(){}$pn$ui$filter$GenericListFilterOptions$$.prototype.additionalFilterTriggers=[];$pn$ui$filter$GenericListFilterOptions$$.prototype.clearFiltersControls=[];$pn$ui$filter$GenericListFilterOptions$$.prototype.filterDelay=250;$pn$ui$filter$GenericListFilterOptions$$.prototype.filterToolTipMessage='Quotes (") match phrases. (not) excludes a match from the results. (or) can be used to do Or searches. I.e. [red or blue] will match either red or blue. Numeric values support >=, >, <=, <, = and != operators.';
$pn$ui$filter$GenericListFilterOptions$$.prototype.enableCookies=$JSCompiler_alias_TRUE$$;$pn$ui$filter$GenericListFilterOptions$$.prototype.matchingElement=$JSCompiler_alias_NULL$$;$pn$ui$filter$GenericListFilterOptions$$.prototype.filteringElements=$JSCompiler_alias_NULL$$;$pn$ui$filter$GenericListFilterOptions$$.prototype.sharedCookieId=$JSCompiler_alias_NULL$$;
$pn$ui$filter$GenericListFilterOptions$$.prototype.$disposeInternal$=function $$pn$ui$filter$GenericListFilterOptions$$$$$disposeInternal$$(){$pn$ui$filter$GenericListFilterOptions$$.$superClass_$.$disposeInternal$.call(this);$goog$array$forEach$$(this.additionalFilterTriggers,$goog$dispose$$);$goog$array$forEach$$(this.clearFiltersControls,$goog$dispose$$);for(var $i$$5$$ in this)delete this[$i$$5$$]};function $pn$ui$filter$TableFilterOptions$$(){}$goog$inherits$$($pn$ui$filter$TableFilterOptions$$,$pn$ui$filter$GenericListFilterOptions$$);$pn$ui$filter$TableFilterOptions$$.prototype.selectOptionLabel="Select...";$pn$ui$filter$TableFilterOptions$$.prototype.frozenHeaderTable=$JSCompiler_alias_NULL$$;$pn$ui$filter$TableFilterOptions$$.prototype.$disposeInternal$=function $$pn$ui$filter$TableFilterOptions$$$$$disposeInternal$$(){$goog$dispose$$(this.frozenHeaderTable);$pn$ui$filter$TableFilterOptions$$.$superClass_$.$disposeInternal$.call(this)};function $goog$string$subs$$($str$$12$$,$var_args$$29$$){for(var $i$$6$$=1;$i$$6$$<arguments.length;$i$$6$$++)var $replacement$$=(""+arguments[$i$$6$$]).replace(/\$/g,"$$$$"),$str$$12$$=$str$$12$$.replace(/\%s/,$replacement$$);return $str$$12$$}function $goog$string$trim$$($str$$25$$){return $str$$25$$.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}
function $goog$string$htmlEscape$$($str$$31$$){if(!$goog$string$allRe_$$.test($str$$31$$))return $str$$31$$;-1!=$str$$31$$.indexOf("&")&&($str$$31$$=$str$$31$$.replace($goog$string$amperRe_$$,"&amp;"));-1!=$str$$31$$.indexOf("<")&&($str$$31$$=$str$$31$$.replace($goog$string$ltRe_$$,"&lt;"));-1!=$str$$31$$.indexOf(">")&&($str$$31$$=$str$$31$$.replace($goog$string$gtRe_$$,"&gt;"));-1!=$str$$31$$.indexOf('"')&&($str$$31$$=$str$$31$$.replace($goog$string$quotRe_$$,"&quot;"));return $str$$31$$}
var $goog$string$amperRe_$$=/&/g,$goog$string$ltRe_$$=/</g,$goog$string$gtRe_$$=/>/g,$goog$string$quotRe_$$=/\"/g,$goog$string$allRe_$$=/[&<>\"]/;
function $goog$string$unescapeEntitiesUsingDom_$$($str$$33$$){var $seen$$={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},$div$$=document.createElement("div");return $str$$33$$.replace($goog$string$HTML_ENTITY_PATTERN_$$,function($s$$3$$,$entity$$){var $value$$44$$=$seen$$[$s$$3$$];if($value$$44$$)return $value$$44$$;if("#"==$entity$$.charAt(0)){var $n$$1$$=Number("0"+$entity$$.substr(1));isNaN($n$$1$$)||($value$$44$$=String.fromCharCode($n$$1$$))}$value$$44$$||($div$$.innerHTML=$s$$3$$+" ",$value$$44$$=
$div$$.firstChild.nodeValue.slice(0,-1));return $seen$$[$s$$3$$]=$value$$44$$})}function $goog$string$unescapePureXmlEntities_$$($str$$34$$){return $str$$34$$.replace(/&([^;]+);/g,function($s$$4$$,$entity$$1$$){switch($entity$$1$$){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:if("#"==$entity$$1$$.charAt(0)){var $n$$2$$=Number("0"+$entity$$1$$.substr(1));if(!isNaN($n$$2$$))return String.fromCharCode($n$$2$$)}return $s$$4$$}})}
var $goog$string$HTML_ENTITY_PATTERN_$$=/&([^;\s<&]+);?/g,$goog$string$toCamelCaseCache_$$={};function $goog$string$toCamelCase$$($str$$42$$){return $goog$string$toCamelCaseCache_$$[$str$$42$$]||($goog$string$toCamelCaseCache_$$[$str$$42$$]=(""+$str$$42$$).replace(/\-([a-z])/g,function($all$$,$match$$){return $match$$.toUpperCase()}))};var $goog$userAgent$detectedOpera_$$,$goog$userAgent$detectedIe_$$,$goog$userAgent$detectedWebkit_$$,$goog$userAgent$detectedGecko_$$;function $goog$userAgent$getUserAgentString$$(){return $goog$global$$.navigator?$goog$global$$.navigator.userAgent:$JSCompiler_alias_NULL$$}$goog$userAgent$detectedGecko_$$=$goog$userAgent$detectedWebkit_$$=$goog$userAgent$detectedIe_$$=$goog$userAgent$detectedOpera_$$=$JSCompiler_alias_FALSE$$;var $ua$$inline_9$$;
if($ua$$inline_9$$=$goog$userAgent$getUserAgentString$$()){var $navigator$$inline_10$$=$goog$global$$.navigator;$goog$userAgent$detectedOpera_$$=0==$ua$$inline_9$$.indexOf("Opera");$goog$userAgent$detectedIe_$$=!$goog$userAgent$detectedOpera_$$&&-1!=$ua$$inline_9$$.indexOf("MSIE");$goog$userAgent$detectedWebkit_$$=!$goog$userAgent$detectedOpera_$$&&-1!=$ua$$inline_9$$.indexOf("WebKit");$goog$userAgent$detectedGecko_$$=!$goog$userAgent$detectedOpera_$$&&!$goog$userAgent$detectedWebkit_$$&&"Gecko"==
$navigator$$inline_10$$.product}var $goog$userAgent$OPERA$$=$goog$userAgent$detectedOpera_$$,$goog$userAgent$IE$$=$goog$userAgent$detectedIe_$$,$goog$userAgent$GECKO$$=$goog$userAgent$detectedGecko_$$,$goog$userAgent$WEBKIT$$=$goog$userAgent$detectedWebkit_$$,$goog$userAgent$VERSION$$;
a:{var $version$$inline_12$$="",$re$$inline_13$$;if($goog$userAgent$OPERA$$&&$goog$global$$.opera)var $operaVersion$$inline_14$$=$goog$global$$.opera.version,$version$$inline_12$$="function"==typeof $operaVersion$$inline_14$$?$operaVersion$$inline_14$$():$operaVersion$$inline_14$$;else if($goog$userAgent$GECKO$$?$re$$inline_13$$=/rv\:([^\);]+)(\)|;)/:$goog$userAgent$IE$$?$re$$inline_13$$=/MSIE\s+([^\);]+)(\)|;)/:$goog$userAgent$WEBKIT$$&&($re$$inline_13$$=/WebKit\/(\S+)/),$re$$inline_13$$)var $arr$$inline_15$$=
$re$$inline_13$$.exec($goog$userAgent$getUserAgentString$$()),$version$$inline_12$$=$arr$$inline_15$$?$arr$$inline_15$$[1]:"";if($goog$userAgent$IE$$){var $docMode$$inline_16$$,$doc$$inline_136$$=$goog$global$$.document;$docMode$$inline_16$$=$doc$$inline_136$$?$doc$$inline_136$$.documentMode:$JSCompiler_alias_VOID$$;if($docMode$$inline_16$$>parseFloat($version$$inline_12$$)){$goog$userAgent$VERSION$$=""+$docMode$$inline_16$$;break a}}$goog$userAgent$VERSION$$=$version$$inline_12$$}
var $goog$userAgent$isVersionCache_$$={};
function $goog$userAgent$isVersion$$($version$$8$$){var $JSCompiler_temp$$5_order$$inline_20$$;if(!($JSCompiler_temp$$5_order$$inline_20$$=$goog$userAgent$isVersionCache_$$[$version$$8$$])){$JSCompiler_temp$$5_order$$inline_20$$=0;for(var $v1Subs$$inline_21$$=$goog$string$trim$$(""+$goog$userAgent$VERSION$$).split("."),$v2Subs$$inline_22$$=$goog$string$trim$$(""+$version$$8$$).split("."),$subCount$$inline_23$$=Math.max($v1Subs$$inline_21$$.length,$v2Subs$$inline_22$$.length),$subIdx$$inline_24$$=
0;0==$JSCompiler_temp$$5_order$$inline_20$$&&$subIdx$$inline_24$$<$subCount$$inline_23$$;$subIdx$$inline_24$$++){var $v1Sub$$inline_25$$=$v1Subs$$inline_21$$[$subIdx$$inline_24$$]||"",$v2Sub$$inline_26$$=$v2Subs$$inline_22$$[$subIdx$$inline_24$$]||"",$v1CompParser$$inline_27$$=RegExp("(\\d*)(\\D*)","g"),$v2CompParser$$inline_28$$=RegExp("(\\d*)(\\D*)","g");do{var $v1Comp$$inline_29$$=$v1CompParser$$inline_27$$.exec($v1Sub$$inline_25$$)||["","",""],$v2Comp$$inline_30$$=$v2CompParser$$inline_28$$.exec($v2Sub$$inline_26$$)||
["","",""];if(0==$v1Comp$$inline_29$$[0].length&&0==$v2Comp$$inline_30$$[0].length)break;$JSCompiler_temp$$5_order$$inline_20$$=((0==$v1Comp$$inline_29$$[1].length?0:parseInt($v1Comp$$inline_29$$[1],10))<(0==$v2Comp$$inline_30$$[1].length?0:parseInt($v2Comp$$inline_30$$[1],10))?-1:(0==$v1Comp$$inline_29$$[1].length?0:parseInt($v1Comp$$inline_29$$[1],10))>(0==$v2Comp$$inline_30$$[1].length?0:parseInt($v2Comp$$inline_30$$[1],10))?1:0)||((0==$v1Comp$$inline_29$$[2].length)<(0==$v2Comp$$inline_30$$[2].length)?
-1:(0==$v1Comp$$inline_29$$[2].length)>(0==$v2Comp$$inline_30$$[2].length)?1:0)||($v1Comp$$inline_29$$[2]<$v2Comp$$inline_30$$[2]?-1:$v1Comp$$inline_29$$[2]>$v2Comp$$inline_30$$[2]?1:0)}while(0==$JSCompiler_temp$$5_order$$inline_20$$)}$JSCompiler_temp$$5_order$$inline_20$$=$goog$userAgent$isVersionCache_$$[$version$$8$$]=0<=$JSCompiler_temp$$5_order$$inline_20$$}return $JSCompiler_temp$$5_order$$inline_20$$}var $goog$userAgent$isDocumentModeCache_$$={};
function $goog$userAgent$isDocumentMode$$(){return $goog$userAgent$isDocumentModeCache_$$[9]||($goog$userAgent$isDocumentModeCache_$$[9]=$goog$userAgent$IE$$&&!!document.documentMode&&9<=document.documentMode)};function $goog$object$forEach$$($obj$$21$$,$f$$){for(var $key$$15$$ in $obj$$21$$)$f$$.call($JSCompiler_alias_VOID$$,$obj$$21$$[$key$$15$$],$key$$15$$,$obj$$21$$)}var $goog$object$PROTOTYPE_FIELDS_$$="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
function $goog$object$extend$$($target$$37$$,$var_args$$32$$){for(var $key$$38$$,$source$$2$$,$i$$17$$=1;$i$$17$$<arguments.length;$i$$17$$++){$source$$2$$=arguments[$i$$17$$];for($key$$38$$ in $source$$2$$)$target$$37$$[$key$$38$$]=$source$$2$$[$key$$38$$];for(var $j$$1$$=0;$j$$1$$<$goog$object$PROTOTYPE_FIELDS_$$.length;$j$$1$$++)$key$$38$$=$goog$object$PROTOTYPE_FIELDS_$$[$j$$1$$],Object.prototype.hasOwnProperty.call($source$$2$$,$key$$38$$)&&($target$$37$$[$key$$38$$]=$source$$2$$[$key$$38$$])}}
;function $goog$debug$Error$$($opt_msg$$){this.stack=Error().stack||"";$opt_msg$$&&(this.message=""+$opt_msg$$)}$goog$inherits$$($goog$debug$Error$$,Error);$goog$debug$Error$$.prototype.name="CustomError";function $goog$asserts$AssertionError$$($messagePattern$$,$messageArgs$$){$messageArgs$$.unshift($messagePattern$$);$goog$debug$Error$$.call(this,$goog$string$subs$$.apply($JSCompiler_alias_NULL$$,$messageArgs$$));$messageArgs$$.shift()}$goog$inherits$$($goog$asserts$AssertionError$$,$goog$debug$Error$$);$goog$asserts$AssertionError$$.prototype.name="AssertionError";
function $goog$asserts$assert$$($condition$$1$$,$opt_message$$8$$,$var_args$$36$$){if(!$condition$$1$$){var $givenArgs$$inline_33$$=Array.prototype.slice.call(arguments,2),$message$$inline_34$$="Assertion failed";if($opt_message$$8$$)var $message$$inline_34$$=$message$$inline_34$$+(": "+$opt_message$$8$$),$args$$inline_35$$=$givenArgs$$inline_33$$;$JSCompiler_alias_THROW$$(new $goog$asserts$AssertionError$$(""+$message$$inline_34$$,$args$$inline_35$$||[]))}};var $goog$array$ARRAY_PROTOTYPE_$$=Array.prototype;function $goog$array$indexOf$$($arr$$12$$,$obj$$48$$){if($goog$isString$$($arr$$12$$))return!$goog$isString$$($obj$$48$$)||1!=$obj$$48$$.length?-1:$arr$$12$$.indexOf($obj$$48$$,0);for(var $i$$21$$=0;$i$$21$$<$arr$$12$$.length;$i$$21$$++)if($i$$21$$ in $arr$$12$$&&$arr$$12$$[$i$$21$$]===$obj$$48$$)return $i$$21$$;return-1}
function $goog$array$forEach$$($arr$$16$$,$f$$8$$,$opt_obj$$7$$){for(var $l$$2$$=$arr$$16$$.length,$arr2$$=$goog$isString$$($arr$$16$$)?$arr$$16$$.split(""):$arr$$16$$,$i$$23$$=0;$i$$23$$<$l$$2$$;$i$$23$$++)$i$$23$$ in $arr2$$&&$f$$8$$.call($opt_obj$$7$$,$arr2$$[$i$$23$$],$i$$23$$,$arr$$16$$)}
function $goog$array$map$$($arr$$21$$,$f$$13$$,$opt_obj$$12$$){for(var $l$$5$$=$arr$$21$$.length,$res$$6$$=Array($l$$5$$),$arr2$$3$$=$goog$isString$$($arr$$21$$)?$arr$$21$$.split(""):$arr$$21$$,$i$$26$$=0;$i$$26$$<$l$$5$$;$i$$26$$++)$i$$26$$ in $arr2$$3$$&&($res$$6$$[$i$$26$$]=$f$$13$$.call($opt_obj$$12$$,$arr2$$3$$[$i$$26$$],$i$$26$$,$arr$$21$$));return $res$$6$$}
function $goog$array$concat$$($var_args$$45$$){return $goog$array$ARRAY_PROTOTYPE_$$.concat.apply($goog$array$ARRAY_PROTOTYPE_$$,arguments)}function $goog$array$clone$$($arr$$42$$){if("array"==$goog$typeOf$$($arr$$42$$))return $goog$array$concat$$($arr$$42$$);for(var $rv$$7$$=[],$i$$38$$=0,$len$$=$arr$$42$$.length;$i$$38$$<$len$$;$i$$38$$++)$rv$$7$$[$i$$38$$]=$arr$$42$$[$i$$38$$];return $rv$$7$$}
function $goog$array$slice$$($arr$$44$$,$start$$5$$,$opt_end$$13$$){$goog$asserts$assert$$($arr$$44$$.length!=$JSCompiler_alias_NULL$$);return 2>=arguments.length?$goog$array$ARRAY_PROTOTYPE_$$.slice.call($arr$$44$$,$start$$5$$):$goog$array$ARRAY_PROTOTYPE_$$.slice.call($arr$$44$$,$start$$5$$,$opt_end$$13$$)};function $goog$dom$classes$add$$($element$$10$$,$var_args$$50$$){var $className$$inline_139_classes$$;$className$$inline_139_classes$$=$element$$10$$.className;$className$$inline_139_classes$$=$goog$isString$$($className$$inline_139_classes$$)&&$className$$inline_139_classes$$.match(/\S+/g)||[];for(var $args$$3_args$$inline_38$$=$goog$array$slice$$(arguments,1),$expectedCount$$=$className$$inline_139_classes$$.length+$args$$3_args$$inline_38$$.length,$classes$$inline_37$$=$className$$inline_139_classes$$,
$i$$inline_39$$=0;$i$$inline_39$$<$args$$3_args$$inline_38$$.length;$i$$inline_39$$++)0<=$goog$array$indexOf$$($classes$$inline_37$$,$args$$3_args$$inline_38$$[$i$$inline_39$$])||$classes$$inline_37$$.push($args$$3_args$$inline_38$$[$i$$inline_39$$]);$element$$10$$.className=$className$$inline_139_classes$$.join(" ");return $className$$inline_139_classes$$.length==$expectedCount$$};var $goog$dom$BrowserFeature$CAN_ADD_NAME_OR_TYPE_ATTRIBUTES$$=!$goog$userAgent$IE$$||$goog$userAgent$isDocumentMode$$();!$goog$userAgent$GECKO$$&&!$goog$userAgent$IE$$||$goog$userAgent$IE$$&&$goog$userAgent$isDocumentMode$$()||$goog$userAgent$GECKO$$&&$goog$userAgent$isVersion$$("1.9.1");var $goog$dom$BrowserFeature$CAN_USE_INNER_TEXT$$=$goog$userAgent$IE$$&&!$goog$userAgent$isVersion$$("9");function $goog$dom$getElementsByTagNameAndClass_$$($className$$10_opt_tag$$1_tagName$$1$$,$opt_class$$1$$,$els_opt_el$$3_parent$$5$$){$els_opt_el$$3_parent$$5$$=$els_opt_el$$3_parent$$5$$||document;$className$$10_opt_tag$$1_tagName$$1$$=$className$$10_opt_tag$$1_tagName$$1$$&&"*"!=$className$$10_opt_tag$$1_tagName$$1$$?$className$$10_opt_tag$$1_tagName$$1$$.toUpperCase():"";if($els_opt_el$$3_parent$$5$$.querySelectorAll&&$els_opt_el$$3_parent$$5$$.querySelector&&(!$goog$userAgent$WEBKIT$$||"CSS1Compat"==
document.compatMode||$goog$userAgent$isVersion$$("528"))&&($className$$10_opt_tag$$1_tagName$$1$$||$opt_class$$1$$))return $els_opt_el$$3_parent$$5$$.querySelectorAll($className$$10_opt_tag$$1_tagName$$1$$+($opt_class$$1$$?"."+$opt_class$$1$$:""));if($opt_class$$1$$&&$els_opt_el$$3_parent$$5$$.getElementsByClassName){$els_opt_el$$3_parent$$5$$=$els_opt_el$$3_parent$$5$$.getElementsByClassName($opt_class$$1$$);if($className$$10_opt_tag$$1_tagName$$1$$){for(var $arrayLike$$={},$len$$1$$=0,$i$$51$$=
0,$el$$1$$;$el$$1$$=$els_opt_el$$3_parent$$5$$[$i$$51$$];$i$$51$$++)$className$$10_opt_tag$$1_tagName$$1$$==$el$$1$$.nodeName&&($arrayLike$$[$len$$1$$++]=$el$$1$$);$arrayLike$$.length=$len$$1$$;return $arrayLike$$}return $els_opt_el$$3_parent$$5$$}$els_opt_el$$3_parent$$5$$=$els_opt_el$$3_parent$$5$$.getElementsByTagName($className$$10_opt_tag$$1_tagName$$1$$||"*");if($opt_class$$1$$){$arrayLike$$={};for($i$$51$$=$len$$1$$=0;$el$$1$$=$els_opt_el$$3_parent$$5$$[$i$$51$$];$i$$51$$++)$className$$10_opt_tag$$1_tagName$$1$$=
$el$$1$$.className,"function"==typeof $className$$10_opt_tag$$1_tagName$$1$$.split&&0<=$goog$array$indexOf$$($className$$10_opt_tag$$1_tagName$$1$$.split(/\s+/),$opt_class$$1$$)&&($arrayLike$$[$len$$1$$++]=$el$$1$$);$arrayLike$$.length=$len$$1$$;return $arrayLike$$}return $els_opt_el$$3_parent$$5$$}
function $goog$dom$setProperties$$($element$$18$$,$properties$$){$goog$object$forEach$$($properties$$,function($val$$19$$,$key$$42$$){"style"==$key$$42$$?$element$$18$$.style.cssText=$val$$19$$:"class"==$key$$42$$?$element$$18$$.className=$val$$19$$:"for"==$key$$42$$?$element$$18$$.htmlFor=$val$$19$$:$key$$42$$ in $goog$dom$DIRECT_ATTRIBUTE_MAP_$$?$element$$18$$.setAttribute($goog$dom$DIRECT_ATTRIBUTE_MAP_$$[$key$$42$$],$val$$19$$):0==$key$$42$$.lastIndexOf("aria-",0)?$element$$18$$.setAttribute($key$$42$$,
$val$$19$$):$element$$18$$[$key$$42$$]=$val$$19$$})}var $goog$dom$DIRECT_ATTRIBUTE_MAP_$$={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder",maxlength:"maxLength",type:"type"};
function $goog$dom$createDom$$($tagName$$2$$,$opt_attributes$$,$var_args$$52$$){var $args$$inline_42$$=arguments,$doc$$inline_43$$=document,$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$=$args$$inline_42$$[0],$attributes$$inline_45$$=$args$$inline_42$$[1];if(!$goog$dom$BrowserFeature$CAN_ADD_NAME_OR_TYPE_ATTRIBUTES$$&&$attributes$$inline_45$$&&($attributes$$inline_45$$.name||$attributes$$inline_45$$.type)){$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$=["<",$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$];
$attributes$$inline_45$$.name&&$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$.push(' name="',$goog$string$htmlEscape$$($attributes$$inline_45$$.name),'"');if($attributes$$inline_45$$.type){$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$.push(' type="',$goog$string$htmlEscape$$($attributes$$inline_45$$.type),'"');var $clone$$inline_47$$={};$goog$object$extend$$($clone$$inline_47$$,$attributes$$inline_45$$);$attributes$$inline_45$$=$clone$$inline_47$$;delete $attributes$$inline_45$$.type}$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$.push(">");
$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$=$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$.join("")}$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$=$doc$$inline_43$$.createElement($element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$);$attributes$$inline_45$$&&($goog$isString$$($attributes$$inline_45$$)?$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$.className=$attributes$$inline_45$$:"array"==$goog$typeOf$$($attributes$$inline_45$$)?
$goog$dom$classes$add$$.apply($JSCompiler_alias_NULL$$,[$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$].concat($attributes$$inline_45$$)):$goog$dom$setProperties$$($element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$,$attributes$$inline_45$$));2<$args$$inline_42$$.length&&$goog$dom$append_$$($doc$$inline_43$$,$element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$,$args$$inline_42$$);return $element$$inline_48_tagName$$inline_44_tagNameArr$$inline_46$$}
function $goog$dom$append_$$($doc$$12$$,$parent$$6$$,$args$$7$$){function $childHandler$$($child$$1$$){$child$$1$$&&$parent$$6$$.appendChild($goog$isString$$($child$$1$$)?$doc$$12$$.createTextNode($child$$1$$):$child$$1$$)}for(var $i$$52$$=2;$i$$52$$<$args$$7$$.length;$i$$52$$++){var $arg$$5$$=$args$$7$$[$i$$52$$];if($goog$isArrayLike$$($arg$$5$$)&&!($goog$isObject$$($arg$$5$$)&&0<$arg$$5$$.nodeType)){var $JSCompiler_inline_result$$50$$;a:{if($arg$$5$$&&"number"==typeof $arg$$5$$.length){if($goog$isObject$$($arg$$5$$)){$JSCompiler_inline_result$$50$$=
"function"==typeof $arg$$5$$.item||"string"==typeof $arg$$5$$.item;break a}if($goog$isFunction$$($arg$$5$$)){$JSCompiler_inline_result$$50$$="function"==typeof $arg$$5$$.item;break a}}$JSCompiler_inline_result$$50$$=$JSCompiler_alias_FALSE$$}$goog$array$forEach$$($JSCompiler_inline_result$$50$$?$goog$array$clone$$($arg$$5$$):$arg$$5$$,$childHandler$$)}else $childHandler$$($arg$$5$$)}}
var $goog$dom$TAGS_TO_IGNORE_$$={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},$goog$dom$PREDEFINED_TAG_VALUES_$$={IMG:" ",BR:"\n"};
function $goog$dom$getTextContent$$($node$$16_textContent$$){if($goog$dom$BrowserFeature$CAN_USE_INNER_TEXT$$&&"innerText"in $node$$16_textContent$$)$node$$16_textContent$$=$node$$16_textContent$$.innerText.replace(/(\r\n|\r|\n)/g,"\n");else{var $buf$$=[];$goog$dom$getTextContent_$$($node$$16_textContent$$,$buf$$,$JSCompiler_alias_TRUE$$);$node$$16_textContent$$=$buf$$.join("")}$node$$16_textContent$$=$node$$16_textContent$$.replace(/ \xAD /g," ").replace(/\xAD/g,"");$node$$16_textContent$$=$node$$16_textContent$$.replace(/\u200B/g,
"");$goog$dom$BrowserFeature$CAN_USE_INNER_TEXT$$||($node$$16_textContent$$=$node$$16_textContent$$.replace(/ +/g," "));" "!=$node$$16_textContent$$&&($node$$16_textContent$$=$node$$16_textContent$$.replace(/^\s*/,""));return $node$$16_textContent$$}
function $goog$dom$getTextContent_$$($child$$7_node$$18$$,$buf$$2$$,$normalizeWhitespace$$){if(!($child$$7_node$$18$$.nodeName in $goog$dom$TAGS_TO_IGNORE_$$))if(3==$child$$7_node$$18$$.nodeType)$normalizeWhitespace$$?$buf$$2$$.push((""+$child$$7_node$$18$$.nodeValue).replace(/(\r\n|\r|\n)/g,"")):$buf$$2$$.push($child$$7_node$$18$$.nodeValue);else if($child$$7_node$$18$$.nodeName in $goog$dom$PREDEFINED_TAG_VALUES_$$)$buf$$2$$.push($goog$dom$PREDEFINED_TAG_VALUES_$$[$child$$7_node$$18$$.nodeName]);
else for($child$$7_node$$18$$=$child$$7_node$$18$$.firstChild;$child$$7_node$$18$$;)$goog$dom$getTextContent_$$($child$$7_node$$18$$,$buf$$2$$,$normalizeWhitespace$$),$child$$7_node$$18$$=$child$$7_node$$18$$.nextSibling}
function $goog$dom$getAncestorByTagNameAndClass$$($element$$27$$,$opt_tag$$2$$){if(!$opt_tag$$2$$)return $JSCompiler_alias_NULL$$;var $tagName$$4$$=$opt_tag$$2$$?$opt_tag$$2$$.toUpperCase():$JSCompiler_alias_NULL$$;return $goog$dom$getAncestor$$($element$$27$$,function($node$$21$$){return(!$tagName$$4$$||$node$$21$$.nodeName==$tagName$$4$$)&&$JSCompiler_alias_TRUE$$})}
function $goog$dom$getAncestor$$($element$$29$$,$matcher$$){for(var $steps$$=0;$element$$29$$;){if($matcher$$($element$$29$$))return $element$$29$$;$element$$29$$=$element$$29$$.parentNode;$steps$$++}return $JSCompiler_alias_NULL$$};function $goog$style$setStyle_$$($element$$32$$,$value$$59$$,$style$$1$$){$element$$32$$.style[$goog$string$toCamelCase$$($style$$1$$)]=$value$$59$$};function $goog$events$Listener$$(){}var $goog$events$Listener$counter_$$=0;$JSCompiler_prototypeAlias$$=$goog$events$Listener$$.prototype;$JSCompiler_prototypeAlias$$.key=0;$JSCompiler_prototypeAlias$$.$removed$=$JSCompiler_alias_FALSE$$;$JSCompiler_prototypeAlias$$.$callOnce$=$JSCompiler_alias_FALSE$$;
$JSCompiler_prototypeAlias$$.$init$=function $$JSCompiler_prototypeAlias$$$$init$$($listener$$26$$,$proxy$$,$src$$5$$,$type$$53$$,$capture$$,$opt_handler$$){$goog$isFunction$$($listener$$26$$)?this.$isFunctionListener_$=$JSCompiler_alias_TRUE$$:$listener$$26$$&&$listener$$26$$.handleEvent&&$goog$isFunction$$($listener$$26$$.handleEvent)?this.$isFunctionListener_$=$JSCompiler_alias_FALSE$$:$JSCompiler_alias_THROW$$(Error("Invalid listener argument"));this.$listener$=$listener$$26$$;this.$proxy$=$proxy$$;
this.src=$src$$5$$;this.type=$type$$53$$;this.capture=!!$capture$$;this.$handler$=$opt_handler$$;this.$callOnce$=$JSCompiler_alias_FALSE$$;this.key=++$goog$events$Listener$counter_$$;this.$removed$=$JSCompiler_alias_FALSE$$};$JSCompiler_prototypeAlias$$.handleEvent=function $$JSCompiler_prototypeAlias$$$handleEvent$($eventObject$$){return this.$isFunctionListener_$?this.$listener$.call(this.$handler$||this.src,$eventObject$$):this.$listener$.handleEvent.call(this.$listener$,$eventObject$$)};!$goog$userAgent$IE$$||$goog$userAgent$isDocumentMode$$();var $goog$events$BrowserFeature$HAS_W3C_EVENT_SUPPORT$$=!$goog$userAgent$IE$$||$goog$userAgent$isDocumentMode$$();$goog$userAgent$IE$$&&$goog$userAgent$isVersion$$("8");!$goog$userAgent$WEBKIT$$||$goog$userAgent$isVersion$$("528");$goog$userAgent$GECKO$$&&$goog$userAgent$isVersion$$("1.9b")||$goog$userAgent$IE$$&&$goog$userAgent$isVersion$$("8")||$goog$userAgent$OPERA$$&&$goog$userAgent$isVersion$$("9.5")||$goog$userAgent$WEBKIT$$&&$goog$userAgent$isVersion$$("528");
$goog$userAgent$GECKO$$&&!$goog$userAgent$isVersion$$("8")||$goog$userAgent$IE$$&&$goog$userAgent$isVersion$$("9");var $goog$events$EventType$$={$CLICK$:"click",$DBLCLICK$:"dblclick",$MOUSEDOWN$:"mousedown",$MOUSEUP$:"mouseup",$MOUSEOVER$:"mouseover",$MOUSEOUT$:"mouseout",$MOUSEMOVE$:"mousemove",$SELECTSTART$:"selectstart",$KEYPRESS$:"keypress",$KEYDOWN$:"keydown",$KEYUP$:"keyup",$BLUR$:"blur",$FOCUS$:"focus",$DEACTIVATE$:"deactivate",$FOCUSIN$:$goog$userAgent$IE$$?"focusin":"DOMFocusIn",$FOCUSOUT$:$goog$userAgent$IE$$?"focusout":"DOMFocusOut",$CHANGE$:"change",$SELECT$:"select",$SUBMIT$:"submit",$INPUT$:"input",
$PROPERTYCHANGE$:"propertychange",$DRAGSTART$:"dragstart",$DRAGENTER$:"dragenter",$DRAGOVER$:"dragover",$DRAGLEAVE$:"dragleave",$DROP$:"drop",$TOUCHSTART$:"touchstart",$TOUCHMOVE$:"touchmove",$TOUCHEND$:"touchend",$TOUCHCANCEL$:"touchcancel",$CONTEXTMENU$:"contextmenu",$ERROR$:"error",$HELP$:"help",$LOAD$:"load",$LOSECAPTURE$:"losecapture",$READYSTATECHANGE$:"readystatechange",$RESIZE$:"resize",$SCROLL$:"scroll",$UNLOAD$:"unload",$HASHCHANGE$:"hashchange",$PAGEHIDE$:"pagehide",$PAGESHOW$:"pageshow",
$POPSTATE$:"popstate",$COPY$:"copy",$PASTE$:"paste",$CUT$:"cut",$BEFORECOPY$:"beforecopy",$BEFORECUT$:"beforecut",$BEFOREPASTE$:"beforepaste",$MESSAGE$:"message",$CONNECT$:"connect",$TRANSITIONEND$:$goog$userAgent$WEBKIT$$?"webkitTransitionEnd":$goog$userAgent$OPERA$$?"oTransitionEnd":"transitionend"};function $goog$Disposable$$(){}$goog$Disposable$$.prototype.$disposed_$=$JSCompiler_alias_FALSE$$;$goog$Disposable$$.prototype.$dispose$=function $$goog$Disposable$$$$$dispose$$(){this.$disposed_$||(this.$disposed_$=$JSCompiler_alias_TRUE$$,this.$disposeInternal$())};$goog$Disposable$$.prototype.$disposeInternal$=function $$goog$Disposable$$$$$disposeInternal$$(){this.$dependentDisposables_$&&$goog$disposeAll$$.apply($JSCompiler_alias_NULL$$,this.$dependentDisposables_$)};
function $goog$dispose$$($obj$$60$$){$obj$$60$$&&"function"==typeof $obj$$60$$.$dispose$&&$obj$$60$$.$dispose$()}function $goog$disposeAll$$($var_args$$56$$){for(var $i$$60$$=0,$len$$2$$=arguments.length;$i$$60$$<$len$$2$$;++$i$$60$$){var $disposable$$1$$=arguments[$i$$60$$];$goog$isArrayLike$$($disposable$$1$$)?$goog$disposeAll$$.apply($JSCompiler_alias_NULL$$,$disposable$$1$$):$goog$dispose$$($disposable$$1$$)}};function $goog$events$Event$$($type$$54$$,$opt_target$$1$$){this.type=$type$$54$$;this.currentTarget=this.target=$opt_target$$1$$}$goog$inherits$$($goog$events$Event$$,$goog$Disposable$$);$goog$events$Event$$.prototype.$disposeInternal$=function $$goog$events$Event$$$$$disposeInternal$$(){delete this.type;delete this.target;delete this.currentTarget};$goog$events$Event$$.prototype.$propagationStopped_$=$JSCompiler_alias_FALSE$$;$goog$events$Event$$.prototype.$returnValue_$=$JSCompiler_alias_TRUE$$;function $goog$reflect$sinkValue$$($x$$54$$){$goog$reflect$sinkValue$$[" "]($x$$54$$);return $x$$54$$}$goog$reflect$sinkValue$$[" "]=function $$goog$reflect$sinkValue$$$__0$(){};function $goog$events$BrowserEvent$$($opt_e$$,$opt_currentTarget$$){$opt_e$$&&this.$init$($opt_e$$,$opt_currentTarget$$)}$goog$inherits$$($goog$events$BrowserEvent$$,$goog$events$Event$$);$JSCompiler_prototypeAlias$$=$goog$events$BrowserEvent$$.prototype;$JSCompiler_prototypeAlias$$.target=$JSCompiler_alias_NULL$$;$JSCompiler_prototypeAlias$$.relatedTarget=$JSCompiler_alias_NULL$$;$JSCompiler_prototypeAlias$$.offsetX=0;$JSCompiler_prototypeAlias$$.offsetY=0;$JSCompiler_prototypeAlias$$.clientX=0;
$JSCompiler_prototypeAlias$$.clientY=0;$JSCompiler_prototypeAlias$$.screenX=0;$JSCompiler_prototypeAlias$$.screenY=0;$JSCompiler_prototypeAlias$$.button=0;$JSCompiler_prototypeAlias$$.keyCode=0;$JSCompiler_prototypeAlias$$.charCode=0;$JSCompiler_prototypeAlias$$.ctrlKey=$JSCompiler_alias_FALSE$$;$JSCompiler_prototypeAlias$$.altKey=$JSCompiler_alias_FALSE$$;$JSCompiler_prototypeAlias$$.shiftKey=$JSCompiler_alias_FALSE$$;$JSCompiler_prototypeAlias$$.metaKey=$JSCompiler_alias_FALSE$$;
$JSCompiler_prototypeAlias$$.$init$=function $$JSCompiler_prototypeAlias$$$$init$$($e$$13$$,$opt_currentTarget$$1$$){var $type$$56$$=this.type=$e$$13$$.type;$goog$events$Event$$.call(this,$type$$56$$);this.target=$e$$13$$.target||$e$$13$$.srcElement;this.currentTarget=$opt_currentTarget$$1$$;var $relatedTarget$$=$e$$13$$.relatedTarget;if($relatedTarget$$){if($goog$userAgent$GECKO$$){var $JSCompiler_inline_result$$53$$;a:{try{$goog$reflect$sinkValue$$($relatedTarget$$.nodeName);$JSCompiler_inline_result$$53$$=
$JSCompiler_alias_TRUE$$;break a}catch($e$$inline_55$$){}$JSCompiler_inline_result$$53$$=$JSCompiler_alias_FALSE$$}$JSCompiler_inline_result$$53$$||($relatedTarget$$=$JSCompiler_alias_NULL$$)}}else"mouseover"==$type$$56$$?$relatedTarget$$=$e$$13$$.fromElement:"mouseout"==$type$$56$$&&($relatedTarget$$=$e$$13$$.toElement);this.relatedTarget=$relatedTarget$$;this.offsetX=$goog$userAgent$WEBKIT$$||$e$$13$$.offsetX!==$JSCompiler_alias_VOID$$?$e$$13$$.offsetX:$e$$13$$.layerX;this.offsetY=$goog$userAgent$WEBKIT$$||
$e$$13$$.offsetY!==$JSCompiler_alias_VOID$$?$e$$13$$.offsetY:$e$$13$$.layerY;this.clientX=$e$$13$$.clientX!==$JSCompiler_alias_VOID$$?$e$$13$$.clientX:$e$$13$$.pageX;this.clientY=$e$$13$$.clientY!==$JSCompiler_alias_VOID$$?$e$$13$$.clientY:$e$$13$$.pageY;this.screenX=$e$$13$$.screenX||0;this.screenY=$e$$13$$.screenY||0;this.button=$e$$13$$.button;this.keyCode=$e$$13$$.keyCode||0;this.charCode=$e$$13$$.charCode||("keypress"==$type$$56$$?$e$$13$$.keyCode:0);this.ctrlKey=$e$$13$$.ctrlKey;this.altKey=
$e$$13$$.altKey;this.shiftKey=$e$$13$$.shiftKey;this.metaKey=$e$$13$$.metaKey;this.state=$e$$13$$.state;delete this.$returnValue_$;delete this.$propagationStopped_$};$JSCompiler_prototypeAlias$$.$disposeInternal$=function $$JSCompiler_prototypeAlias$$$$disposeInternal$$(){$goog$events$BrowserEvent$$.$superClass_$.$disposeInternal$.call(this);this.relatedTarget=this.currentTarget=this.target=$JSCompiler_alias_NULL$$};var $goog$events$listeners_$$={},$goog$events$listenerTree_$$={},$goog$events$sources_$$={},$goog$events$onStringMap_$$={};
function $goog$events$listen$$($src$$8$$,$type$$57$$,$key$$44_listener$$29$$,$capture$$1_opt_capt$$2$$,$opt_handler$$1$$){if($type$$57$$){if("array"==$goog$typeOf$$($type$$57$$)){for(var $i$$61_proxy$$1$$=0;$i$$61_proxy$$1$$<$type$$57$$.length;$i$$61_proxy$$1$$++)$goog$events$listen$$($src$$8$$,$type$$57$$[$i$$61_proxy$$1$$],$key$$44_listener$$29$$,$capture$$1_opt_capt$$2$$,$opt_handler$$1$$);return $JSCompiler_alias_NULL$$}var $capture$$1_opt_capt$$2$$=!!$capture$$1_opt_capt$$2$$,$listenerObj_map$$=
$goog$events$listenerTree_$$;$type$$57$$ in $listenerObj_map$$||($listenerObj_map$$[$type$$57$$]={$count_$:0,$remaining_$:0});$listenerObj_map$$=$listenerObj_map$$[$type$$57$$];$capture$$1_opt_capt$$2$$ in $listenerObj_map$$||($listenerObj_map$$[$capture$$1_opt_capt$$2$$]={$count_$:0,$remaining_$:0},$listenerObj_map$$.$count_$++);var $listenerObj_map$$=$listenerObj_map$$[$capture$$1_opt_capt$$2$$],$srcUid$$=$src$$8$$[$goog$UID_PROPERTY_$$]||($src$$8$$[$goog$UID_PROPERTY_$$]=++$goog$uidCounter_$$),
$listenerArray$$;$listenerObj_map$$.$remaining_$++;if($listenerObj_map$$[$srcUid$$]){$listenerArray$$=$listenerObj_map$$[$srcUid$$];for($i$$61_proxy$$1$$=0;$i$$61_proxy$$1$$<$listenerArray$$.length;$i$$61_proxy$$1$$++)if($listenerObj_map$$=$listenerArray$$[$i$$61_proxy$$1$$],$listenerObj_map$$.$listener$==$key$$44_listener$$29$$&&$listenerObj_map$$.$handler$==$opt_handler$$1$$){if($listenerObj_map$$.$removed$)break;return $listenerArray$$[$i$$61_proxy$$1$$].key}}else $listenerArray$$=$listenerObj_map$$[$srcUid$$]=
[],$listenerObj_map$$.$count_$++;$i$$61_proxy$$1$$=$goog$events$getProxy$$();$i$$61_proxy$$1$$.src=$src$$8$$;$listenerObj_map$$=new $goog$events$Listener$$;$listenerObj_map$$.$init$($key$$44_listener$$29$$,$i$$61_proxy$$1$$,$src$$8$$,$type$$57$$,$capture$$1_opt_capt$$2$$,$opt_handler$$1$$);$key$$44_listener$$29$$=$listenerObj_map$$.key;$i$$61_proxy$$1$$.key=$key$$44_listener$$29$$;$listenerArray$$.push($listenerObj_map$$);$goog$events$listeners_$$[$key$$44_listener$$29$$]=$listenerObj_map$$;$goog$events$sources_$$[$srcUid$$]||
($goog$events$sources_$$[$srcUid$$]=[]);$goog$events$sources_$$[$srcUid$$].push($listenerObj_map$$);$src$$8$$.addEventListener?($src$$8$$==$goog$global$$||!$src$$8$$.$customEvent_$)&&$src$$8$$.addEventListener($type$$57$$,$i$$61_proxy$$1$$,$capture$$1_opt_capt$$2$$):$src$$8$$.attachEvent($type$$57$$ in $goog$events$onStringMap_$$?$goog$events$onStringMap_$$[$type$$57$$]:$goog$events$onStringMap_$$[$type$$57$$]="on"+$type$$57$$,$i$$61_proxy$$1$$);return $key$$44_listener$$29$$}$JSCompiler_alias_THROW$$(Error("Invalid event type"))}
function $goog$events$getProxy$$(){var $proxyCallbackFunction$$=$goog$events$handleBrowserEvent_$$,$f$$25$$=$goog$events$BrowserFeature$HAS_W3C_EVENT_SUPPORT$$?function($eventObject$$1$$){return $proxyCallbackFunction$$.call($f$$25$$.src,$f$$25$$.key,$eventObject$$1$$)}:function($eventObject$$2_v$$){$eventObject$$2_v$$=$proxyCallbackFunction$$.call($f$$25$$.src,$f$$25$$.key,$eventObject$$2_v$$);if(!$eventObject$$2_v$$)return $eventObject$$2_v$$};return $f$$25$$}
function $goog$events$unlistenByKey$$($key$$46$$){if(!$goog$events$listeners_$$[$key$$46$$])return $JSCompiler_alias_FALSE$$;var $listener$$33$$=$goog$events$listeners_$$[$key$$46$$];if($listener$$33$$.$removed$)return $JSCompiler_alias_FALSE$$;var $src$$12_srcUid$$1$$=$listener$$33$$.src,$type$$60$$=$listener$$33$$.type,$listenerArray$$2_proxy$$2$$=$listener$$33$$.$proxy$,$capture$$3$$=$listener$$33$$.capture;$src$$12_srcUid$$1$$.removeEventListener?($src$$12_srcUid$$1$$==$goog$global$$||!$src$$12_srcUid$$1$$.$customEvent_$)&&
$src$$12_srcUid$$1$$.removeEventListener($type$$60$$,$listenerArray$$2_proxy$$2$$,$capture$$3$$):$src$$12_srcUid$$1$$.detachEvent&&$src$$12_srcUid$$1$$.detachEvent($type$$60$$ in $goog$events$onStringMap_$$?$goog$events$onStringMap_$$[$type$$60$$]:$goog$events$onStringMap_$$[$type$$60$$]="on"+$type$$60$$,$listenerArray$$2_proxy$$2$$);$src$$12_srcUid$$1$$=$src$$12_srcUid$$1$$[$goog$UID_PROPERTY_$$]||($src$$12_srcUid$$1$$[$goog$UID_PROPERTY_$$]=++$goog$uidCounter_$$);$listenerArray$$2_proxy$$2$$=$goog$events$listenerTree_$$[$type$$60$$][$capture$$3$$][$src$$12_srcUid$$1$$];
if($goog$events$sources_$$[$src$$12_srcUid$$1$$]){var $sourcesArray$$=$goog$events$sources_$$[$src$$12_srcUid$$1$$],$i$$inline_59$$=$goog$array$indexOf$$($sourcesArray$$,$listener$$33$$);0<=$i$$inline_59$$&&($goog$asserts$assert$$($sourcesArray$$.length!=$JSCompiler_alias_NULL$$),$goog$array$ARRAY_PROTOTYPE_$$.splice.call($sourcesArray$$,$i$$inline_59$$,1));0==$sourcesArray$$.length&&delete $goog$events$sources_$$[$src$$12_srcUid$$1$$]}$listener$$33$$.$removed$=$JSCompiler_alias_TRUE$$;$listenerArray$$2_proxy$$2$$.$needsCleanup_$=
$JSCompiler_alias_TRUE$$;$goog$events$cleanUp_$$($type$$60$$,$capture$$3$$,$src$$12_srcUid$$1$$,$listenerArray$$2_proxy$$2$$);delete $goog$events$listeners_$$[$key$$46$$];return $JSCompiler_alias_TRUE$$}
function $goog$events$cleanUp_$$($type$$61$$,$capture$$4$$,$srcUid$$2$$,$listenerArray$$3$$){if(!$listenerArray$$3$$.$locked_$&&$listenerArray$$3$$.$needsCleanup_$){for(var $oldIndex$$=0,$newIndex$$=0;$oldIndex$$<$listenerArray$$3$$.length;$oldIndex$$++)$listenerArray$$3$$[$oldIndex$$].$removed$?$listenerArray$$3$$[$oldIndex$$].$proxy$.src=$JSCompiler_alias_NULL$$:($oldIndex$$!=$newIndex$$&&($listenerArray$$3$$[$newIndex$$]=$listenerArray$$3$$[$oldIndex$$]),$newIndex$$++);$listenerArray$$3$$.length=
$newIndex$$;$listenerArray$$3$$.$needsCleanup_$=$JSCompiler_alias_FALSE$$;0==$newIndex$$&&(delete $goog$events$listenerTree_$$[$type$$61$$][$capture$$4$$][$srcUid$$2$$],$goog$events$listenerTree_$$[$type$$61$$][$capture$$4$$].$count_$--,0==$goog$events$listenerTree_$$[$type$$61$$][$capture$$4$$].$count_$&&(delete $goog$events$listenerTree_$$[$type$$61$$][$capture$$4$$],$goog$events$listenerTree_$$[$type$$61$$].$count_$--),0==$goog$events$listenerTree_$$[$type$$61$$].$count_$&&delete $goog$events$listenerTree_$$[$type$$61$$])}}
function $goog$events$fireListeners_$$($listenerArray$$5_map$$4$$,$obj$$66_objUid$$2$$,$type$$67$$,$capture$$9$$,$eventObject$$4$$){var $retval$$=1,$obj$$66_objUid$$2$$=$obj$$66_objUid$$2$$[$goog$UID_PROPERTY_$$]||($obj$$66_objUid$$2$$[$goog$UID_PROPERTY_$$]=++$goog$uidCounter_$$);if($listenerArray$$5_map$$4$$[$obj$$66_objUid$$2$$]){$listenerArray$$5_map$$4$$.$remaining_$--;$listenerArray$$5_map$$4$$=$listenerArray$$5_map$$4$$[$obj$$66_objUid$$2$$];$listenerArray$$5_map$$4$$.$locked_$?$listenerArray$$5_map$$4$$.$locked_$++:
$listenerArray$$5_map$$4$$.$locked_$=1;try{for(var $length$$15$$=$listenerArray$$5_map$$4$$.length,$i$$67$$=0;$i$$67$$<$length$$15$$;$i$$67$$++){var $listener$$39$$=$listenerArray$$5_map$$4$$[$i$$67$$];$listener$$39$$&&!$listener$$39$$.$removed$&&($retval$$&=$goog$events$fireListener$$($listener$$39$$,$eventObject$$4$$)!==$JSCompiler_alias_FALSE$$)}}finally{$listenerArray$$5_map$$4$$.$locked_$--,$goog$events$cleanUp_$$($type$$67$$,$capture$$9$$,$obj$$66_objUid$$2$$,$listenerArray$$5_map$$4$$)}}return Boolean($retval$$)}
function $goog$events$fireListener$$($listener$$40$$,$eventObject$$5$$){var $rv$$11$$=$listener$$40$$.handleEvent($eventObject$$5$$);$listener$$40$$.$callOnce$&&$goog$events$unlistenByKey$$($listener$$40$$.key);return $rv$$11$$}
function $goog$events$handleBrowserEvent_$$($key$$48$$,$opt_evt$$){if(!$goog$events$listeners_$$[$key$$48$$])return $JSCompiler_alias_TRUE$$;var $listener$$41$$=$goog$events$listeners_$$[$key$$48$$],$be$$1_type$$69$$=$listener$$41$$.type,$map$$6$$=$goog$events$listenerTree_$$;if(!($be$$1_type$$69$$ in $map$$6$$))return $JSCompiler_alias_TRUE$$;var $map$$6$$=$map$$6$$[$be$$1_type$$69$$],$ieEvent_part$$inline_63_retval$$1$$,$targetsMap$$1$$;if(!$goog$events$BrowserFeature$HAS_W3C_EVENT_SUPPORT$$){var $JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$;
if(!($JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$=$opt_evt$$))a:{$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$=["window","event"];for(var $cur$$inline_62_hasBubble$$1$$=$goog$global$$;$ieEvent_part$$inline_63_retval$$1$$=$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$.shift();)if($cur$$inline_62_hasBubble$$1$$[$ieEvent_part$$inline_63_retval$$1$$]!=$JSCompiler_alias_NULL$$)$cur$$inline_62_hasBubble$$1$$=$cur$$inline_62_hasBubble$$1$$[$ieEvent_part$$inline_63_retval$$1$$];else{$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$=
$JSCompiler_alias_NULL$$;break a}$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$=$cur$$inline_62_hasBubble$$1$$}$ieEvent_part$$inline_63_retval$$1$$=$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$;$JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$=$JSCompiler_alias_TRUE$$ in $map$$6$$;$cur$$inline_62_hasBubble$$1$$=$JSCompiler_alias_FALSE$$ in $map$$6$$;if($JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$){if(0>$ieEvent_part$$inline_63_retval$$1$$.keyCode||$ieEvent_part$$inline_63_retval$$1$$.returnValue!=
$JSCompiler_alias_VOID$$)return $JSCompiler_alias_TRUE$$;a:{var $evt$$14_useReturnValue$$inline_66$$=$JSCompiler_alias_FALSE$$;if(0==$ieEvent_part$$inline_63_retval$$1$$.keyCode)try{$ieEvent_part$$inline_63_retval$$1$$.keyCode=-1;break a}catch($ex$$inline_67$$){$evt$$14_useReturnValue$$inline_66$$=$JSCompiler_alias_TRUE$$}if($evt$$14_useReturnValue$$inline_66$$||$ieEvent_part$$inline_63_retval$$1$$.returnValue==$JSCompiler_alias_VOID$$)$ieEvent_part$$inline_63_retval$$1$$.returnValue=$JSCompiler_alias_TRUE$$}}$evt$$14_useReturnValue$$inline_66$$=
new $goog$events$BrowserEvent$$;$evt$$14_useReturnValue$$inline_66$$.$init$($ieEvent_part$$inline_63_retval$$1$$,this);$ieEvent_part$$inline_63_retval$$1$$=$JSCompiler_alias_TRUE$$;try{if($JSCompiler_temp$$8_hasCapture$$2_parts$$inline_61$$){for(var $ancestors$$2$$=[],$parent$$19$$=$evt$$14_useReturnValue$$inline_66$$.currentTarget;$parent$$19$$;$parent$$19$$=$parent$$19$$.parentNode)$ancestors$$2$$.push($parent$$19$$);$targetsMap$$1$$=$map$$6$$[$JSCompiler_alias_TRUE$$];$targetsMap$$1$$.$remaining_$=
$targetsMap$$1$$.$count_$;for(var $i$$69$$=$ancestors$$2$$.length-1;!$evt$$14_useReturnValue$$inline_66$$.$propagationStopped_$&&0<=$i$$69$$&&$targetsMap$$1$$.$remaining_$;$i$$69$$--)$evt$$14_useReturnValue$$inline_66$$.currentTarget=$ancestors$$2$$[$i$$69$$],$ieEvent_part$$inline_63_retval$$1$$&=$goog$events$fireListeners_$$($targetsMap$$1$$,$ancestors$$2$$[$i$$69$$],$be$$1_type$$69$$,$JSCompiler_alias_TRUE$$,$evt$$14_useReturnValue$$inline_66$$);if($cur$$inline_62_hasBubble$$1$$){$targetsMap$$1$$=
$map$$6$$[$JSCompiler_alias_FALSE$$];$targetsMap$$1$$.$remaining_$=$targetsMap$$1$$.$count_$;for($i$$69$$=0;!$evt$$14_useReturnValue$$inline_66$$.$propagationStopped_$&&$i$$69$$<$ancestors$$2$$.length&&$targetsMap$$1$$.$remaining_$;$i$$69$$++)$evt$$14_useReturnValue$$inline_66$$.currentTarget=$ancestors$$2$$[$i$$69$$],$ieEvent_part$$inline_63_retval$$1$$&=$goog$events$fireListeners_$$($targetsMap$$1$$,$ancestors$$2$$[$i$$69$$],$be$$1_type$$69$$,$JSCompiler_alias_FALSE$$,$evt$$14_useReturnValue$$inline_66$$)}}else $ieEvent_part$$inline_63_retval$$1$$=
$goog$events$fireListener$$($listener$$41$$,$evt$$14_useReturnValue$$inline_66$$)}finally{$ancestors$$2$$&&($ancestors$$2$$.length=0),$evt$$14_useReturnValue$$inline_66$$.$dispose$()}return $ieEvent_part$$inline_63_retval$$1$$}$be$$1_type$$69$$=new $goog$events$BrowserEvent$$($opt_evt$$,this);try{$ieEvent_part$$inline_63_retval$$1$$=$goog$events$fireListener$$($listener$$41$$,$be$$1_type$$69$$)}finally{$be$$1_type$$69$$.$dispose$()}return $ieEvent_part$$inline_63_retval$$1$$};var $goog$Timer$defaultTimerObject$$=$goog$global$$.window;
function $goog$Timer$callOnce$$($listener$$42$$,$opt_delay$$,$opt_handler$$7$$){$goog$isFunction$$($listener$$42$$)?$opt_handler$$7$$&&($listener$$42$$=$goog$bind$$($listener$$42$$,$opt_handler$$7$$)):$listener$$42$$&&"function"==typeof $listener$$42$$.handleEvent?$listener$$42$$=$goog$bind$$($listener$$42$$.handleEvent,$listener$$42$$):$JSCompiler_alias_THROW$$(Error("Invalid listener argument"));return 2147483647<$opt_delay$$?-1:$goog$Timer$defaultTimerObject$$.setTimeout($listener$$42$$,$opt_delay$$||
0)};function $goog$events$EventHandler$$($opt_handler$$8$$){this.$handler_$=$opt_handler$$8$$;this.$keys_$=[]}$goog$inherits$$($goog$events$EventHandler$$,$goog$Disposable$$);var $goog$events$EventHandler$typeArray_$$=[];
function $JSCompiler_StaticMethods_listen$$($JSCompiler_StaticMethods_listen$self$$,$src$$16$$,$type$$72$$,$opt_fn$$,$opt_handler$$9$$){"array"!=$goog$typeOf$$($type$$72$$)&&($goog$events$EventHandler$typeArray_$$[0]=$type$$72$$,$type$$72$$=$goog$events$EventHandler$typeArray_$$);for(var $i$$70$$=0;$i$$70$$<$type$$72$$.length;$i$$70$$++)$JSCompiler_StaticMethods_listen$self$$.$keys_$.push($goog$events$listen$$($src$$16$$,$type$$72$$[$i$$70$$],$opt_fn$$||$JSCompiler_StaticMethods_listen$self$$,$JSCompiler_alias_FALSE$$,
$opt_handler$$9$$||$JSCompiler_StaticMethods_listen$self$$.$handler_$||$JSCompiler_StaticMethods_listen$self$$))}$goog$events$EventHandler$$.prototype.$disposeInternal$=function $$goog$events$EventHandler$$$$$disposeInternal$$(){$goog$events$EventHandler$$.$superClass_$.$disposeInternal$.call(this);$goog$array$forEach$$(this.$keys_$,$goog$events$unlistenByKey$$);this.$keys_$.length=0};$goog$events$EventHandler$$.prototype.handleEvent=function $$goog$events$EventHandler$$$$handleEvent$(){$JSCompiler_alias_THROW$$(Error("EventHandler.handleEvent not implemented"))};function $goog$net$Cookies$$($context$$){this.$document_$=$context$$}var $goog$net$Cookies$SPLIT_RE_$$=/\s*;\s*/;
$goog$net$Cookies$$.prototype.set=function $$goog$net$Cookies$$$$set$($name$$64$$,$value$$68$$,$expiresStr_opt_maxAge$$,$opt_path_pathStr$$,$domainStr_opt_domain$$,$opt_secure_secureStr$$){/[;=\s]/.test($name$$64$$)&&$JSCompiler_alias_THROW$$(Error('Invalid cookie name "'+$name$$64$$+'"'));/[;\r\n]/.test($value$$68$$)&&$JSCompiler_alias_THROW$$(Error('Invalid cookie value "'+$value$$68$$+'"'));$expiresStr_opt_maxAge$$!==$JSCompiler_alias_VOID$$||($expiresStr_opt_maxAge$$=-1);$domainStr_opt_domain$$=
$domainStr_opt_domain$$?";domain="+$domainStr_opt_domain$$:"";$opt_path_pathStr$$=$opt_path_pathStr$$?";path="+$opt_path_pathStr$$:"";$opt_secure_secureStr$$=$opt_secure_secureStr$$?";secure":"";$expiresStr_opt_maxAge$$=0>$expiresStr_opt_maxAge$$?"":0==$expiresStr_opt_maxAge$$?";expires="+(new Date(1970,1,1)).toUTCString():";expires="+(new Date($goog$now$$()+1E3*$expiresStr_opt_maxAge$$)).toUTCString();this.$document_$.cookie=$name$$64$$+"="+$value$$68$$+$domainStr_opt_domain$$+$opt_path_pathStr$$+
$expiresStr_opt_maxAge$$+$opt_secure_secureStr$$};$goog$net$Cookies$$.prototype.get=function $$goog$net$Cookies$$$$get$($name$$65$$,$opt_default$$){for(var $nameEq$$=$name$$65$$+"=",$parts$$3$$=(this.$document_$.cookie||"").split($goog$net$Cookies$SPLIT_RE_$$),$i$$73$$=0,$part$$2$$;$part$$2$$=$parts$$3$$[$i$$73$$];$i$$73$$++){if(0==$part$$2$$.indexOf($nameEq$$))return $part$$2$$.substr($nameEq$$.length);if($part$$2$$==$name$$65$$)return""}return $opt_default$$};var $goog$net$cookies$$=new $goog$net$Cookies$$(document);
$goog$net$cookies$$.$MAX_COOKIE_LENGTH$=3950;function $pn$ui$filter$SearchEngine$$(){this.$precedences_$={or:1,and:2,not:3}}
function $JSCompiler_StaticMethods_doesTextMatchTokens$$($textToMatch$$,$postFixTokens$$,$exactMatch$$){if(!$postFixTokens$$)return $JSCompiler_alias_TRUE$$;for(var $textToMatch$$=$exactMatch$$?$textToMatch$$:$textToMatch$$.toLowerCase(),$stackResult$$=[],$stackResult1_token$$4$$,$stackResult2$$,$i$$77$$=0;$i$$77$$<$postFixTokens$$.length;$i$$77$$++)$stackResult1_token$$4$$=$postFixTokens$$[$i$$77$$],"and"!==$stackResult1_token$$4$$&&"or"!==$stackResult1_token$$4$$&&"not"!==$stackResult1_token$$4$$?
0===$stackResult1_token$$4$$.indexOf(">")||0===$stackResult1_token$$4$$.indexOf("<")||0===$stackResult1_token$$4$$.indexOf("=")||0===$stackResult1_token$$4$$.indexOf("!=")?$stackResult$$.push($JSCompiler_StaticMethods_doesNumberMatchToken_$$($stackResult1_token$$4$$,$textToMatch$$)):$stackResult$$.push($exactMatch$$?$textToMatch$$===$stackResult1_token$$4$$:0<=$textToMatch$$.indexOf($stackResult1_token$$4$$)):"and"===$stackResult1_token$$4$$?($stackResult1_token$$4$$=$stackResult$$.pop(),$stackResult2$$=
$stackResult$$.pop(),$stackResult$$.push($stackResult1_token$$4$$&&$stackResult2$$)):"or"===$stackResult1_token$$4$$?($stackResult1_token$$4$$=$stackResult$$.pop(),$stackResult2$$=$stackResult$$.pop(),$stackResult$$.push($stackResult1_token$$4$$||$stackResult2$$)):"not"===$stackResult1_token$$4$$&&($stackResult1_token$$4$$=$stackResult$$.pop(),$stackResult$$.push(!$stackResult1_token$$4$$));return 1===$stackResult$$.length&&$stackResult$$.pop()}
function $JSCompiler_StaticMethods_doesNumberMatchToken_$$($token$$5$$,$text$$10$$){var $op_txt$$inline_75$$,$exp$$,$actual$$;$op_txt$$inline_75$$=$text$$10$$;"$"===$op_txt$$inline_75$$.charAt(0)&&($op_txt$$inline_75$$=$op_txt$$inline_75$$.substring(1));$actual$$=parseFloat($op_txt$$inline_75$$);if(0===$token$$5$$.indexOf("="))$op_txt$$inline_75$$="=",$exp$$=parseFloat($token$$5$$.substring(1));else if(0===$token$$5$$.indexOf("!="))$op_txt$$inline_75$$="!=",$exp$$=parseFloat($token$$5$$.substring(2));
else if(0===$token$$5$$.indexOf(">="))$op_txt$$inline_75$$=">=",$exp$$=parseFloat($token$$5$$.substring(2));else if(0===$token$$5$$.indexOf(">"))$op_txt$$inline_75$$=">",$exp$$=parseFloat($token$$5$$.substring(1));else if(0===$token$$5$$.indexOf("<="))$op_txt$$inline_75$$="<=",$exp$$=parseFloat($token$$5$$.substring(2));else if(0===$token$$5$$.indexOf("<"))$op_txt$$inline_75$$="<",$exp$$=parseFloat($token$$5$$.substring(1));else return $JSCompiler_alias_TRUE$$;switch($op_txt$$inline_75$$){case "!=":return $actual$$!==
$exp$$;case "=":return $actual$$===$exp$$;case ">=":return $actual$$>=$exp$$;case ">":return $actual$$>$exp$$;case "<=":return $actual$$<=$exp$$;case "<":return $actual$$<$exp$$}$JSCompiler_alias_THROW$$(Error("Could not find a number operation: "+$op_txt$$inline_75$$))}
function $JSCompiler_StaticMethods_normaliseTerm_$$($tokens$$1$$,$token$$7$$,$term$$){for(var $idx$$1$$=$token$$7$$.indexOf($term$$);-1!==$idx$$1$$;)0<$idx$$1$$&&$tokens$$1$$.push($token$$7$$.substring(0,$idx$$1$$)),$tokens$$1$$.push($term$$),$token$$7$$=$token$$7$$.substring($idx$$1$$+1),$idx$$1$$=$token$$7$$.indexOf($term$$);return $token$$7$$};function $pn$ui$filter$GenericListFilter$$($input$$,$list$$,$options$$2$$){this.list=$list$$;this.options=$options$$2$$;this.$input_$=$input$$;this.$listItems$=[];this.$filters$=[this.$input_$];this.$eh_$=new $goog$events$EventHandler$$(this);this.$lastTimerID_$=this.$lastkeytime_$=0;this.$cancelQuickFind_$=$JSCompiler_alias_FALSE$$;this.$filterKey_$="";this.$search_$=new $pn$ui$filter$SearchEngine$$;this.$initialiseFilters$()}$goog$inherits$$($pn$ui$filter$GenericListFilter$$,$goog$Disposable$$);
var $pn$ui$filter$GenericListFilter$filteridx_$$=0;$JSCompiler_prototypeAlias$$=$pn$ui$filter$GenericListFilter$$.prototype;$JSCompiler_prototypeAlias$$.$resetList$=function $$JSCompiler_prototypeAlias$$$$resetList$$($list$$1$$){$goog$dispose$$(this.list);$goog$array$forEach$$(this.$listItems$,$goog$dispose$$);this.list=$list$$1$$;this.$initialiseControlCaches$();$JSCompiler_StaticMethods_registerListenersOnFilters_$$(this);$JSCompiler_StaticMethods_loadFiltersFromCookie_$$(this)};
function $JSCompiler_StaticMethods_getListId$$($JSCompiler_StaticMethods_getListId$self$$){return $JSCompiler_StaticMethods_getListId$self$$.list.getAttribute("id")||$JSCompiler_StaticMethods_getListId$self$$.list.getAttribute("name")||""}
$JSCompiler_prototypeAlias$$.$initialiseFilters$=function $$JSCompiler_prototypeAlias$$$$initialiseFilters$$(){this.$filterKey_$=$JSCompiler_StaticMethods_getListId$$(this)+"_"+ ++$pn$ui$filter$GenericListFilter$filteridx_$$+"_filters";this.$initialiseControlCaches$();$JSCompiler_StaticMethods_registerListenersOnFilters_$$(this);$JSCompiler_StaticMethods_loadFiltersFromCookie_$$(this)};
function $JSCompiler_StaticMethods_registerListenersOnFilters_$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$){$goog$array$forEach$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$filters$,function($filter$$){$JSCompiler_StaticMethods_listen$$(this.$eh_$,$filter$$,"text"===$filter$$.getAttribute("type")?"keyup":"change",this.$onFilterChanged_$,this)},$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$);if($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls)for(var $i$$81$$=
0;$i$$81$$<$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls.length;$i$$81$$++)$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls[$i$$81$$].length&&($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls[$i$$81$$]=$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls[$i$$81$$][0]),$JSCompiler_StaticMethods_listen$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$eh_$,
$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.clearFiltersControls[$i$$81$$],"click",$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$clearAllFilters$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$);if($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.additionalFilterTriggers)for($i$$81$$=0;$i$$81$$<$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.additionalFilterTriggers.length;$i$$81$$++){var $trigger$$=$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.additionalFilterTriggers[$i$$81$$];
$trigger$$.length&&($trigger$$=$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.additionalFilterTriggers[$i$$81$$]=$trigger$$[0]);var $type$$75$$=$trigger$$.options?"select-one":$trigger$$.getAttribute("type"),$et$$=$goog$events$EventType$$;switch($type$$75$$){case "select-one":$JSCompiler_StaticMethods_listen$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$eh_$,$trigger$$,$et$$.$CHANGE$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$onFilterChanged_$,
$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$);break;case "text":$trigger$$.setAttribute("title",$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.options.filterToolTipMessage);$JSCompiler_StaticMethods_listen$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$eh_$,$trigger$$,$et$$.$KEYUP$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$onFilterChanged_$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$);break;case "checkbox":$JSCompiler_StaticMethods_listen$$($JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$eh_$,
$trigger$$,$et$$.$CLICK$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$.$onFilterChanged_$,$JSCompiler_StaticMethods_registerListenersOnFilters_$self$$);break;default:$JSCompiler_alias_THROW$$("Filter type "+$type$$75$$+" is not supported")}}}
$JSCompiler_prototypeAlias$$.$clearAllFilters$=function $$JSCompiler_prototypeAlias$$$$clearAllFilters$$(){$goog$array$forEach$$(this.$filters$,this.$clearFilterValue$,this);this.options.additionalFilterTriggers&&$goog$array$forEach$$(this.options.additionalFilterTriggers,this.$clearFilterValue$,this);this.refresh()};
$JSCompiler_prototypeAlias$$.$clearFilterValue$=function $$JSCompiler_prototypeAlias$$$$clearFilterValue$$($f$$26$$){var $type$$76$$=$f$$26$$.options?"select-one":$f$$26$$.getAttribute("type");switch($type$$76$$){case "select-one":$f$$26$$.selectedIndex=0;break;case "text":$f$$26$$.value="";break;case "checkbox":$f$$26$$.checked=$JSCompiler_alias_FALSE$$;break;default:$JSCompiler_alias_THROW$$("Filter type "+$type$$76$$+" is not supported")}};
$JSCompiler_prototypeAlias$$.$initialiseControlCaches$=function $$JSCompiler_prototypeAlias$$$$initialiseControlCaches$$(){this.$listItems$=this.list.childNodes};
function $JSCompiler_StaticMethods_loadFiltersFromCookie_$$($JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$){var $additionalStates_filterState_sharedCookieId$$=$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.options.enableCookies&&$goog$net$cookies$$.get($JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.$filterKey_$),$states$$=[];if($additionalStates_filterState_sharedCookieId$$)for(var $additionalStates_filterState_sharedCookieId$$=$additionalStates_filterState_sharedCookieId$$.split("|"),
$i$$82_k$$=0;$i$$82_k$$<$additionalStates_filterState_sharedCookieId$$.length;$i$$82_k$$++){var $additionalFilterStates_found$$2_s$$19$$=$additionalStates_filterState_sharedCookieId$$[$i$$82_k$$].split(","),$fid_fs_header$$2_headerText$$=new $pn$ui$filter$FilterState$$($additionalFilterStates_found$$2_s$$19$$[0],$additionalFilterStates_found$$2_s$$19$$[3],parseInt($additionalFilterStates_found$$2_s$$19$$[1],10),$additionalFilterStates_found$$2_s$$19$$[2]);$states$$.push($fid_fs_header$$2_headerText$$)}if($additionalStates_filterState_sharedCookieId$$=
$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.options.sharedCookieId){$additionalFilterStates_found$$2_s$$19$$=$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.options.enableCookies&&$goog$net$cookies$$.get($additionalStates_filterState_sharedCookieId$$);if(!$additionalFilterStates_found$$2_s$$19$$)return;$additionalFilterStates_found$$2_s$$19$$=$additionalFilterStates_found$$2_s$$19$$.split("|");$additionalStates_filterState_sharedCookieId$$=[];for($i$$82_k$$=0;$i$$82_k$$<$additionalFilterStates_found$$2_s$$19$$.length;$i$$82_k$$++){var $j$$6_state$$=
$additionalFilterStates_found$$2_s$$19$$[$i$$82_k$$].split(","),$stateHeaderTextOrAdditionalFilterId$$=$j$$6_state$$[0];if("#"==$stateHeaderTextOrAdditionalFilterId$$.charAt(0))$fid_fs_header$$2_headerText$$=new $pn$ui$filter$FilterState$$($stateHeaderTextOrAdditionalFilterId$$.substr(1),$j$$6_state$$[3],-1,$j$$6_state$$[2]),$additionalStates_filterState_sharedCookieId$$.push($fid_fs_header$$2_headerText$$);else for(var $hidx$$=0;$hidx$$<$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.$headers_$.length;$hidx$$++){var $fid_fs_header$$2_headerText$$=
$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.$headers_$[$hidx$$],$visible$$="none"!=$fid_fs_header$$2_headerText$$.style.display;if(($fid_fs_header$$2_headerText$$="false"===$fid_fs_header$$2_headerText$$.getAttribute("filter")||!$visible$$?$JSCompiler_alias_NULL$$:$goog$dom$getTextContent$$($fid_fs_header$$2_headerText$$))&&$fid_fs_header$$2_headerText$$==$stateHeaderTextOrAdditionalFilterId$$)$fid_fs_header$$2_headerText$$=$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.$filters$[$JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$.$filterColumnIndexes_$.indexOf($hidx$$)].getAttribute("id"),
$fid_fs_header$$2_headerText$$=new $pn$ui$filter$FilterState$$($fid_fs_header$$2_headerText$$,$j$$6_state$$[3],$hidx$$,$j$$6_state$$[2]),$additionalStates_filterState_sharedCookieId$$.push($fid_fs_header$$2_headerText$$)}}for($i$$82_k$$=0;$i$$82_k$$<$additionalStates_filterState_sharedCookieId$$.length;$i$$82_k$$++){$additionalFilterStates_found$$2_s$$19$$=$JSCompiler_alias_FALSE$$;for($j$$6_state$$=0;$j$$6_state$$<$states$$.length;$j$$6_state$$++)$additionalStates_filterState_sharedCookieId$$[$i$$82_k$$].id==
$states$$[$j$$6_state$$].id&&($states$$[$j$$6_state$$].value=$additionalStates_filterState_sharedCookieId$$[$i$$82_k$$].value,$additionalFilterStates_found$$2_s$$19$$=$JSCompiler_alias_TRUE$$);$additionalFilterStates_found$$2_s$$19$$||$states$$.push($additionalStates_filterState_sharedCookieId$$[$i$$82_k$$])}}$JSCompiler_StaticMethods_applyFilterStates_$$($JSCompiler_StaticMethods_loadFiltersFromCookie_$self$$,$states$$,$JSCompiler_alias_TRUE$$)}
$JSCompiler_prototypeAlias$$.$onFilterChanged_$=function $$JSCompiler_prototypeAlias$$$$onFilterChanged_$$(){this.$lastkeytime_$=(new Date).getTime();this.$quickFindTimer_$()};
$JSCompiler_prototypeAlias$$.$quickFindTimer_$=function $$JSCompiler_prototypeAlias$$$$quickFindTimer_$$(){this.$lastTimerID_$&&(clearTimeout(this.$lastTimerID_$),this.$lastTimerID_$=0);this.$cancelQuickFind_$=$JSCompiler_alias_TRUE$$;var $delay$$3$$=this.options.filterDelay;(new Date).getTime()-this.$lastkeytime_$>=$delay$$3$$?this.refresh():this.$lastTimerID_$=$goog$Timer$callOnce$$(function(){this.$quickFindTimer_$.call(this)},$delay$$3$$/3,this)};
$JSCompiler_prototypeAlias$$.refresh=function $$JSCompiler_prototypeAlias$$$refresh$(){this.$cancelQuickFind_$=$JSCompiler_alias_FALSE$$;clearTimeout(this.$lastTimerID_$);var $filterStates$$=this.$getFilterStates$();$JSCompiler_StaticMethods_applyFilterStates_$$(this,$filterStates$$,$JSCompiler_alias_FALSE$$);if(this.options.enableCookies){for(var $filterStatesById$$inline_84$$=[],$filterStatesByHeaderText$$inline_85$$=[],$sharedCookieId$$inline_86$$=$JSCompiler_alias_NULL$$,$i$$inline_87$$=0;$i$$inline_87$$<
$filterStates$$.length;$i$$inline_87$$++){var $state$$inline_88$$=$filterStates$$[$i$$inline_87$$];$JSCompiler_StaticMethods_addFilterStateToStringArray_$$($filterStatesById$$inline_84$$,$state$$inline_88$$);if($sharedCookieId$$inline_86$$=this.options.sharedCookieId){var $header$$inline_90_headerText$$inline_89$$;if(0<=$state$$inline_88$$.$idx$){$header$$inline_90_headerText$$inline_89$$=this.$headers_$[$state$$inline_88$$.$idx$];var $visible$$inline_91$$="none"!=$header$$inline_90_headerText$$inline_89$$.style.display;
$header$$inline_90_headerText$$inline_89$$="false"===$header$$inline_90_headerText$$inline_89$$.getAttribute("filter")||!$visible$$inline_91$$?$JSCompiler_alias_NULL$$:$goog$dom$getTextContent$$($header$$inline_90_headerText$$inline_89$$)}else $header$$inline_90_headerText$$inline_89$$="#"+$state$$inline_88$$.id;$header$$inline_90_headerText$$inline_89$$&&($filterStatesByHeaderText$$inline_85$$=$JSCompiler_StaticMethods_addFilterStateToStringArray_$$($filterStatesByHeaderText$$inline_85$$,new $pn$ui$filter$FilterState$$($header$$inline_90_headerText$$inline_89$$,
$state$$inline_88$$.value,$state$$inline_88$$.$idx$,$state$$inline_88$$.type)))}}$goog$net$cookies$$.set(this.$filterKey_$,$filterStatesById$$inline_84$$.join(""),999999);$sharedCookieId$$inline_86$$&&$goog$net$cookies$$.set($sharedCookieId$$inline_86$$,$filterStatesByHeaderText$$inline_85$$.join(""),999999)}};
$JSCompiler_prototypeAlias$$.$getFilterStates$=function $$JSCompiler_prototypeAlias$$$$getFilterStates$$(){var $state$$1$$=this.$getFilterStateForFilter$(this.$input_$);return $state$$1$$?[$state$$1$$]:[]};
$JSCompiler_prototypeAlias$$.$getFilterStateForFilter$=function $$JSCompiler_prototypeAlias$$$$getFilterStateForFilter$$($filter$$2_id$$3$$){var $type$$77$$=$filter$$2_id$$3$$.options?"select-one":$filter$$2_id$$3$$.getAttribute("type"),$value$$70$$;switch($type$$77$$){case "text":$value$$70$$=$filter$$2_id$$3$$.value===$JSCompiler_alias_NULL$$?$JSCompiler_alias_NULL$$:$filter$$2_id$$3$$.value.toLowerCase();break;case "select-one":$value$$70$$=0===$filter$$2_id$$3$$.selectedIndex?$JSCompiler_alias_NULL$$:
$filter$$2_id$$3$$.options[$filter$$2_id$$3$$.selectedIndex].value;break;case "checkbox":$value$$70$$=$filter$$2_id$$3$$.checked;break;default:$JSCompiler_alias_THROW$$("Filter type "+$type$$77$$+" is not supported")}if($value$$70$$===$JSCompiler_alias_NULL$$||0>=$value$$70$$.length)return $JSCompiler_alias_NULL$$;$filter$$2_id$$3$$=$filter$$2_id$$3$$.getAttribute("id");return new $pn$ui$filter$FilterState$$($filter$$2_id$$3$$,$value$$70$$,0,$type$$77$$)};
function $JSCompiler_StaticMethods_addFilterStateToStringArray_$$($arr$$55$$,$state$$3$$){0<$arr$$55$$.length&&$arr$$55$$.push("|");$arr$$55$$.push($state$$3$$.id);$arr$$55$$.push(",");$arr$$55$$.push($state$$3$$.$idx$);$arr$$55$$.push(",");$arr$$55$$.push($state$$3$$.type);$arr$$55$$.push(",");$arr$$55$$.push($state$$3$$.value)}
function $JSCompiler_StaticMethods_applyFilterStates_$$($JSCompiler_StaticMethods_applyFilterStates_$self$$,$filterStates$$1$$,$setValueOnFilter$$){$JSCompiler_StaticMethods_applyFilterStates_$self$$.options.filteringElements&&$JSCompiler_StaticMethods_applyFilterStates_$self$$.options.filteringElements($filterStates$$1$$);$JSCompiler_StaticMethods_applyFilterStatesImpl_$$($JSCompiler_StaticMethods_applyFilterStates_$self$$,$filterStates$$1$$,$setValueOnFilter$$);$JSCompiler_StaticMethods_applyFilterStates_$self$$.options.filteredElements&&
$JSCompiler_StaticMethods_applyFilterStates_$self$$.options.filteredElements($filterStates$$1$$)}
function $JSCompiler_StaticMethods_applyFilterStatesImpl_$$($JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$,$filterStates$$2$$,$setValueOnFilter$$1$$){$JSCompiler_StaticMethods_clearElementFilteredStates_$$($JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$);if(!(0===(!$filterStates$$2$$||$filterStates$$2$$.length)&&$JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$.options.matchingElement))if($filterStates$$2$$===$JSCompiler_alias_NULL$$||0===$filterStates$$2$$.length)$JSCompiler_StaticMethods_applyStateToElements_$$($JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$,
$JSCompiler_alias_NULL$$);else for(var $i$$84$$=0;$i$$84$$<$filterStates$$2$$.length;$i$$84$$++){var $state$$4$$=$filterStates$$2$$[$i$$84$$];if($setValueOnFilter$$1$$&&$state$$4$$.type&&$state$$4$$.id){var $filter$$3$$=$goog$isString$$($state$$4$$.id)?document.getElementById($state$$4$$.id):$state$$4$$.id;if(!$filter$$3$$||0===$filter$$3$$.length)continue;switch($state$$4$$.type){case "select-one":$goog$array$forEach$$($filter$$3$$.options,function($o$$1$$,$idx$$3$$){$o$$1$$.value===$state$$4$$.value?
($o$$1$$.setAttribute("selected","selected"),$filter$$3$$.selectedIndex=$idx$$3$$):$o$$1$$.removeAttribute("selected")});break;case "text":$filter$$3$$.value=$state$$4$$.value;break;case "checkbox":$filter$$3$$.checked="true"===$state$$4$$.value;break;default:$JSCompiler_alias_THROW$$("Filter type "+$state$$4$$.type+" is not supported")}}$JSCompiler_StaticMethods_applyStateToElements_$$($JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$,$state$$4$$)}$JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$$($JSCompiler_StaticMethods_applyFilterStatesImpl_$self$$)}
function $JSCompiler_StaticMethods_clearElementFilteredStates_$$($JSCompiler_StaticMethods_clearElementFilteredStates_$self$$){$goog$array$forEach$$($JSCompiler_StaticMethods_clearElementFilteredStates_$self$$.$listItems$,function($r$$){$r$$.removeAttribute("filtermatch")})}
function $JSCompiler_StaticMethods_applyStateToElements_$$($JSCompiler_StaticMethods_applyStateToElements_$self$$,$filterState$$1$$){for(var $normalisedTokens$$3$$=$JSCompiler_StaticMethods_getNormalisedSearchTokensForState_$$($JSCompiler_StaticMethods_applyStateToElements_$self$$,$filterState$$1$$),$i$$85$$=0;$i$$85$$<$JSCompiler_StaticMethods_applyStateToElements_$self$$.$listItems$.length&&!$JSCompiler_StaticMethods_applyStateToElements_$self$$.$cancelQuickFind_$;$i$$85$$++){var $item$$1$$=$JSCompiler_StaticMethods_applyStateToElements_$self$$.$listItems$[$i$$85$$];
$item$$1$$.getAttribute("filtermatch")||$JSCompiler_StaticMethods_applyStateToElements_$self$$.$doesElementContainText$($filterState$$1$$,$item$$1$$,$normalisedTokens$$3$$)||$item$$1$$.setAttribute("filtermatch","false")}}
function $JSCompiler_StaticMethods_getNormalisedSearchTokensForState_$$($JSCompiler_StaticMethods_getNormalisedSearchTokensForState_$self$$,$state$$5$$){if($state$$5$$===$JSCompiler_alias_NULL$$)return $JSCompiler_alias_NULL$$;switch($state$$5$$.type){case "select-one":return[-1!=$state$$5$$.value.indexOf("&")?"document"in $goog$global$$?$goog$string$unescapeEntitiesUsingDom_$$($state$$5$$.value):$goog$string$unescapePureXmlEntities_$$($state$$5$$.value):$state$$5$$.value];case "text":var $JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$;
$JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$=$JSCompiler_StaticMethods_getNormalisedSearchTokensForState_$self$$.$search_$;var $matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=$state$$5$$.value;if($matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$){var $matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.toLowerCase(),
$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$;$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.replace(">= ",">=").replace("> ",">").replace("<= ","<=").replace("< ","<").replace("!= ","!=").replace("= ","=");for(var $i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=/([^"^\s]+)\s*|"([^"]+)"\s*/g,$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=
[],$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=$JSCompiler_alias_NULL$$;$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$.exec($exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$);)$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.push($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$[1]||
$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$[2]);$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$=[];for($i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=0;$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$<$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.length;$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$++)$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=
$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$[$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$],$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=$JSCompiler_StaticMethods_normaliseTerm_$$($exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$,$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$,"("),$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=
$JSCompiler_StaticMethods_normaliseTerm_$$($exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$,$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$,")"),0<$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$.length&&$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.push($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$);$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=
$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$;$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$=[];for(var $lastToken$$inline_155_normalisedTokens$$inline_161$$,$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=0;$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$<$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.length;$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$++)if(($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=
$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$[$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$])&&0!==$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$.length)0===$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$.indexOf("-")&&($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$="not",$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$[$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$]=
$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$[$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$].substring(1),$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$--),$lastToken$$inline_155_normalisedTokens$$inline_161$$&&"("!==$lastToken$$inline_155_normalisedTokens$$inline_161$$&&"not"!==$lastToken$$inline_155_normalisedTokens$$inline_161$$&&"and"!==$lastToken$$inline_155_normalisedTokens$$inline_161$$&&"or"!==$lastToken$$inline_155_normalisedTokens$$inline_161$$&&
"and"!==$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$&&"or"!==$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$&&")"!==$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$&&$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.push("and"),$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.push($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$),
$lastToken$$inline_155_normalisedTokens$$inline_161$$=$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$;$lastToken$$inline_155_normalisedTokens$$inline_161$$=$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$;$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$="";$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$=[];for($i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$=
0;$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$<$lastToken$$inline_155_normalisedTokens$$inline_161$$.length;$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$++){var $token$$inline_166$$=$lastToken$$inline_155_normalisedTokens$$inline_161$$[$i$$inline_165_match$$inline_148_token$$inline_151_token$$inline_157$$];if(0!==$token$$inline_166$$.length)if("and"!==$token$$inline_166$$&&"or"!==$token$$inline_166$$&&"not"!==$token$$inline_166$$&&"("!==$token$$inline_166$$&&
")"!==$token$$inline_166$$)$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$+"|"+$token$$inline_166$$;else if(0===$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length||"("===$token$$inline_166$$)$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.push($token$$inline_166$$);else if(")"===$token$$inline_166$$)for($i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=
$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.pop();"("!==$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$&&0<$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length;)$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$+"|"+$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$,
$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.pop();else{if("("!==$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$[$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length-1])for(;0!==$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length&&"("!==$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$[$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length-
1];)if($JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$.$precedences_$[$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$[$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length-1]]>$JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$.$precedences_$[$token$$inline_166$$])$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$=
$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.pop(),$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$+"|"+$i$$inline_150_i$$inline_156_regex$$inline_146_stackOperator$$inline_164$$;else break;$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.push($token$$inline_166$$)}}for(;0<$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.length;)$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$=
$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$+"|"+$exp$$inline_145_newTokens$$inline_154_normalisedTokens$$inline_149_stackOps$$inline_163$$.pop();$JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$=$matches$$inline_147_postFix$$inline_162_text$$inline_95_tokens$$inline_153$$.substring(1).split("|")}else $JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$=$JSCompiler_alias_NULL$$;return $JSCompiler_StaticMethods_parseSearchTokens$self$$inline_94_JSCompiler_inline_result$$93$$;
case "checkbox":return $JSCompiler_alias_NULL$$;default:$JSCompiler_alias_THROW$$("State type "+$state$$5$$.type+" is not supported")}}
function $JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$$($JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$self$$){for(var $i$$86$$=0;$i$$86$$<$JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$self$$.$listItems$.length&&!$JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$self$$.$cancelQuickFind_$;$i$$86$$++){var $item$$2$$=$JSCompiler_StaticMethods_hideElementsThatDoNotMatchAnyFiltres_$self$$.$listItems$[$i$$86$$],$show$$="false"!==$item$$2$$.getAttribute("filtermatch");
$item$$2$$.style.display=$show$$?"":"none"}}
$JSCompiler_prototypeAlias$$.$doesElementContainText$=function $$JSCompiler_prototypeAlias$$$$doesElementContainText$$($state$$6$$,$item$$3$$,$textTokens$$1$$,$opt_txt_text$$inline_169$$){var $JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=$state$$6$$!=$JSCompiler_alias_NULL$$&&"select-one"===$state$$6$$.type;$opt_txt_text$$inline_169$$||($opt_txt_text$$inline_169$$=$goog$string$trim$$($goog$dom$getTextContent$$($item$$3$$)));if($JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=$JSCompiler_StaticMethods_doesTextMatchTokens$$($opt_txt_text$$inline_169$$,
$textTokens$$1$$,$JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$))this.options.matchingElement?($JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=$item$$3$$,window.jQuery&&($JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=window.jQuery($item$$3$$)),$JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=this.options.matchingElement($state$$6$$,$JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$,$textTokens$$1$$)):
$JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$=$JSCompiler_alias_TRUE$$;return $JSCompiler_temp$$134_JSCompiler_temp$$4_exact_object$$inline_105$$};
$JSCompiler_prototypeAlias$$.$disposeInternal$=function $$JSCompiler_prototypeAlias$$$$disposeInternal$$(){$pn$ui$filter$GenericListFilter$$.$superClass_$.$disposeInternal$.call(this);$goog$dispose$$(this.list);$goog$dispose$$(this.options);$goog$dispose$$(this.$input_$);$goog$array$forEach$$(this.$listItems$,$goog$dispose$$);$goog$array$forEach$$(this.$filters$,$goog$dispose$$);$goog$dispose$$(this.$eh_$);$goog$dispose$$(this.$search_$);delete this.list;delete this.options;delete this.$input_$;delete this.$listItems$;
delete this.$filters$;delete this.$eh_$;delete this.$search_$};function $pn$ui$filter$TableFilter$$($grid$$,$opts$$){$opts$$.matchingRow&&($opts$$.matchingElement=$opts$$.matchingRow);$opts$$.filteringRows&&($opts$$.filteringElements=$opts$$.filteringRows);$opts$$.filteredRows&&($opts$$.filteredElements=$opts$$.filteredRows);$pn$ui$filter$GenericListFilter$$.call(this,$JSCompiler_alias_NULL$$,$grid$$,$opts$$)}$goog$inherits$$($pn$ui$filter$TableFilter$$,$pn$ui$filter$GenericListFilter$$);$JSCompiler_prototypeAlias$$=$pn$ui$filter$TableFilter$$.prototype;
$JSCompiler_prototypeAlias$$.$initialiseFilters$=function $$JSCompiler_prototypeAlias$$$$initialiseFilters$$(){this.$tbody_$=$goog$dom$getElementsByTagNameAndClass_$$("tbody",$JSCompiler_alias_NULL$$,this.list)[0];this.$thead_$=$goog$dom$getElementsByTagNameAndClass_$$("thead",$JSCompiler_alias_NULL$$,this.options.frozenHeaderTable||this.list)[0];if(!this.$thead_$){var $tdCells_trTableRow$$=$goog$dom$getElementsByTagNameAndClass_$$("tr",$JSCompiler_alias_NULL$$,this.$tbody_$)[0],$tdCells_trTableRow$$=
$goog$dom$getElementsByTagNameAndClass_$$("td",$JSCompiler_alias_NULL$$,$tdCells_trTableRow$$),$thead$$=$goog$dom$createDom$$("thead",$JSCompiler_alias_NULL$$),$parent$$inline_107_tr$$=this.list;$parent$$inline_107_tr$$.insertBefore($thead$$,$parent$$inline_107_tr$$.childNodes[0]||$JSCompiler_alias_NULL$$);$parent$$inline_107_tr$$=$goog$dom$createDom$$("tr",$JSCompiler_alias_NULL$$);$thead$$.appendChild($parent$$inline_107_tr$$);for(var $i$$87$$=0;$i$$87$$<$tdCells_trTableRow$$.length;$i$$87$$++){var $th$$=
$goog$dom$createDom$$("th",$JSCompiler_alias_NULL$$);$th$$.innerHTML="col"+$i$$87$$;$parent$$inline_107_tr$$.appendChild($th$$)}this.$thead_$=$thead$$}$pn$ui$filter$TableFilter$$.$superClass_$.$initialiseFilters$.call(this)};
$JSCompiler_prototypeAlias$$.$initialiseControlCaches$=function $$JSCompiler_prototypeAlias$$$$initialiseControlCaches$$(){var $headerRows_tHeadFilters$$=$goog$dom$getElementsByTagNameAndClass_$$("tr",$JSCompiler_alias_NULL$$,this.$thead_$),$filterRow$$=$goog$dom$getElementsByTagNameAndClass_$$("tr","filters",this.$thead_$);1<$headerRows_tHeadFilters$$.length&&0<$filterRow$$.length?this.$headers_$=$goog$dom$getElementsByTagNameAndClass_$$("th",$JSCompiler_alias_NULL$$,$headerRows_tHeadFilters$$[$headerRows_tHeadFilters$$.length-
2]):0<$headerRows_tHeadFilters$$.length&&(this.$headers_$=$goog$dom$getElementsByTagNameAndClass_$$("th",$JSCompiler_alias_NULL$$,$headerRows_tHeadFilters$$[$headerRows_tHeadFilters$$.length-1]));this.$listItems$=$goog$dom$getElementsByTagNameAndClass_$$("tr",$JSCompiler_alias_NULL$$,this.$tbody_$);$JSCompiler_StaticMethods_buildFiltersRow_$$(this);$headerRows_tHeadFilters$$=$goog$dom$getElementsByTagNameAndClass_$$("tr","filters",this.$thead_$)[0];this.$filters$=$goog$array$concat$$($goog$array$map$$($goog$dom$getElementsByTagNameAndClass_$$("input",
$JSCompiler_alias_NULL$$,$headerRows_tHeadFilters$$),function($ctl$$){return $ctl$$}),$goog$array$map$$($goog$dom$getElementsByTagNameAndClass_$$("select",$JSCompiler_alias_NULL$$,$headerRows_tHeadFilters$$),function($ctl$$1$$){return $ctl$$1$$}));this.$filterColumnIndexes_$=$goog$array$map$$(this.$filters$,this.$getColumnIndexOfFilter_$,this)};
$JSCompiler_prototypeAlias$$.$getColumnIndexOfFilter_$=function $$JSCompiler_prototypeAlias$$$$getColumnIndexOfFilter_$$($f$$27_td$$){$f$$27_td$$=$goog$dom$getAncestorByTagNameAndClass$$($f$$27_td$$,"TD");if(!$f$$27_td$$||0>=$f$$27_td$$.length)return-1;var $cells$$=$goog$dom$getAncestorByTagNameAndClass$$($f$$27_td$$,"TR").getElementsByTagName("td");return $goog$array$indexOf$$($cells$$,$f$$27_td$$)};
function $JSCompiler_StaticMethods_buildFiltersRow_$$($JSCompiler_StaticMethods_buildFiltersRow_$self$$){var $filterRow$$1_node$$inline_116_tr$$2$$=$goog$dom$getElementsByTagNameAndClass_$$("tr","filters",$JSCompiler_StaticMethods_buildFiltersRow_$self$$.$thead_$);0<$filterRow$$1_node$$inline_116_tr$$2$$.length&&($filterRow$$1_node$$inline_116_tr$$2$$=$filterRow$$1_node$$inline_116_tr$$2$$[0])&&$filterRow$$1_node$$inline_116_tr$$2$$.parentNode&&$filterRow$$1_node$$inline_116_tr$$2$$.parentNode.removeChild($filterRow$$1_node$$inline_116_tr$$2$$);
for(var $filterRow$$1_node$$inline_116_tr$$2$$=$goog$dom$createDom$$("tr",{"class":"filters"}),$i$$88$$=0;$i$$88$$<$JSCompiler_StaticMethods_buildFiltersRow_$self$$.$headers_$.length;$i$$88$$++){var $element$$inline_123_filterType$$inline_121_header$$4_td$$1$$=$JSCompiler_StaticMethods_buildFiltersRow_$self$$.$headers_$[$i$$88$$],$filterClass_visible$$2$$="none"!=$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$.style.display;if($filterClass_visible$$2$$){var $JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$=
"false"===$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$.getAttribute("filter")||!$filterClass_visible$$2$$?"":$goog$dom$getTextContent$$($element$$inline_123_filterType$$inline_121_header$$4_td$$1$$),$filterClass_visible$$2$$=$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$.getAttribute("filter-class");if($JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$&&0<$JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$.length){var $filter$$4$$;
a:{var $JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$=$JSCompiler_StaticMethods_buildFiltersRow_$self$$,$colIdx$$inline_119$$=$i$$88$$,$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$=$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$.getAttribute("filter-type")||"text";switch($element$$inline_123_filterType$$inline_121_header$$4_td$$1$$){case "text":$filter$$4$$=$goog$dom$createDom$$("input",{type:"text",id:$JSCompiler_StaticMethods_getListId$$($JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$)+
"_filter_"+$colIdx$$inline_119$$,"class":"filter",title:$JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$.options.filterToolTipMessage});break a;case "ddl":$filter$$4$$=$JSCompiler_StaticMethods_getSelectFilter_$$($JSCompiler_StaticMethods_getFilterDom_$self$$inline_118_headerText$$2$$,$colIdx$$inline_119$$);break a;default:$JSCompiler_alias_THROW$$("filter-type: "+$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$+" is not supported")}}$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$=
$filter$$4$$;$goog$isString$$("width")?$goog$style$setStyle_$$($element$$inline_123_filterType$$inline_121_header$$4_td$$1$$,"95%","width"):$goog$object$forEach$$("width",$goog$partial$$($goog$style$setStyle_$$,$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$));$element$$inline_123_filterType$$inline_121_header$$4_td$$1$$=$goog$dom$createDom$$("td",$JSCompiler_alias_NULL$$,$filter$$4$$)}else $element$$inline_123_filterType$$inline_121_header$$4_td$$1$$=$goog$dom$createDom$$("td",{},"");
$filterClass_visible$$2$$&&$goog$dom$classes$add$$($element$$inline_123_filterType$$inline_121_header$$4_td$$1$$,$filterClass_visible$$2$$);$filterRow$$1_node$$inline_116_tr$$2$$.appendChild($element$$inline_123_filterType$$inline_121_header$$4_td$$1$$)}}$JSCompiler_StaticMethods_buildFiltersRow_$self$$.$thead_$.appendChild($filterRow$$1_node$$inline_116_tr$$2$$)}
function $JSCompiler_StaticMethods_getSelectFilter_$$($JSCompiler_StaticMethods_getSelectFilter_$self$$,$colIdx$$1$$){var $select$$=$goog$dom$createDom$$("select",{id:$JSCompiler_StaticMethods_getListId$$($JSCompiler_StaticMethods_getSelectFilter_$self$$)+"_filter_"+$colIdx$$1$$,"class":"filter"},$goog$dom$createDom$$("option",{},$JSCompiler_StaticMethods_getSelectFilter_$self$$.options.selectOptionLabel)),$cells$$1$$=$goog$array$map$$($JSCompiler_StaticMethods_getSelectFilter_$self$$.$listItems$,
function($r$$1$$){return $r$$1$$.cells[$colIdx$$1$$]}),$values$$7$$=[];$goog$array$forEach$$($cells$$1$$,function($td$$2_txt$$1$$){($td$$2_txt$$1$$=$goog$string$trim$$($goog$dom$getTextContent$$($td$$2_txt$$1$$)))&&!("&nbsp;"===$td$$2_txt$$1$$||0<=$goog$array$indexOf$$($values$$7$$,$td$$2_txt$$1$$))&&$values$$7$$.push($td$$2_txt$$1$$)});$values$$7$$.sort();$goog$array$forEach$$($values$$7$$,function($child$$inline_132_txt$$2$$){$child$$inline_132_txt$$2$$=$goog$dom$createDom$$("option",{value:$child$$inline_132_txt$$2$$.replace('"',
"&quot;")},$child$$inline_132_txt$$2$$);$select$$.appendChild($child$$inline_132_txt$$2$$)});return $select$$}
$JSCompiler_prototypeAlias$$.$getFilterStates$=function $$JSCompiler_prototypeAlias$$$$getFilterStates$$(){for(var $filterStates$$3$$=[],$i$$89$$=0;$i$$89$$<this.$filters$.length;$i$$89$$++){var $state$$8$$=this.$getFilterStateForFilter$(this.$filters$[$i$$89$$]);$state$$8$$&&$filterStates$$3$$.push($state$$8$$)}if(!this.options.additionalFilterTriggers)return $filterStates$$3$$;for($i$$89$$=0;$i$$89$$<this.options.additionalFilterTriggers.length;$i$$89$$++)($state$$8$$=this.$getFilterStateForFilter$(this.options.additionalFilterTriggers[$i$$89$$]))&&
$filterStates$$3$$.push($state$$8$$);return $filterStates$$3$$};$JSCompiler_prototypeAlias$$.$getFilterStateForFilter$=function $$JSCompiler_prototypeAlias$$$$getFilterStateForFilter$$($filter$$5$$){var $state$$9$$=$pn$ui$filter$TableFilter$$.$superClass_$.$getFilterStateForFilter$.call(this,$filter$$5$$);$state$$9$$&&($state$$9$$.$idx$=this.$getColumnIndexOfFilter_$($filter$$5$$));return $state$$9$$};
$JSCompiler_prototypeAlias$$.$doesElementContainText$=function $$JSCompiler_prototypeAlias$$$$doesElementContainText$$($state$$10$$,$tr$$3$$,$textTokens$$5$$){var $cells$$2$$=$tr$$3$$.getElementsByTagName("td"),$columnIdx_txt$$3$$=$state$$10$$===$JSCompiler_alias_NULL$$?-1:$state$$10$$.$idx$;if(0>$columnIdx_txt$$3$$){for(var $columnIdx_txt$$3$$=[],$i$$90$$=0;$i$$90$$<$cells$$2$$.length;$i$$90$$++){var $header$$6$$=this.$headers_$[$i$$90$$];"none"!=$header$$6$$.style.display&&"false"!==$header$$6$$.getAttribute("filter")&&
$columnIdx_txt$$3$$.push($goog$string$trim$$($goog$dom$getTextContent$$($cells$$2$$[$i$$90$$])))}return $pn$ui$filter$TableFilter$$.$superClass_$.$doesElementContainText$.call(this,$state$$10$$,$tr$$3$$,$textTokens$$5$$,$columnIdx_txt$$3$$.join("\t"))}return $pn$ui$filter$TableFilter$$.$superClass_$.$doesElementContainText$.call(this,$state$$10$$,$cells$$2$$[$columnIdx_txt$$3$$],$textTokens$$5$$)};
$JSCompiler_prototypeAlias$$.$disposeInternal$=function $$JSCompiler_prototypeAlias$$$$disposeInternal$$(){$pn$ui$filter$TableFilter$$.$superClass_$.$disposeInternal$.call(this);$goog$dispose$$(this.$thead_$);$goog$dispose$$(this.$tbody_$);$goog$array$forEach$$(this.$headers_$,$goog$dispose$$);delete this.$filterColumnIndexes_$;delete this.$headers_$;delete this.$thead_$;delete this.$tbody_$};var $jq$$=window.jQuery;
$jq$$&&function($jq$$1$$){$jq$$1$$.$tableFilter$=function $$jq$$1$$$$tableFilter$$($element$$68$$,$opts$$1$$){var $tf$$;this.$init$=function $this$$init$$(){var $options$$3$$=$jq$$1$$.extend({},new $pn$ui$filter$TableFilterOptions$$,$opts$$1$$);$tf$$=new $pn$ui$filter$TableFilter$$($element$$68$$,$options$$3$$)};this.refresh=function $this$refresh$(){$pn$ui$filter$TableFilter$$.$superClass_$.refresh.call($tf$$)};this.reset=function $this$reset$($list$$2$$){$pn$ui$filter$TableFilter$$.$superClass_$.$resetList$.call($tf$$,$list$$2$$)};
this.$init$()};$jq$$1$$.fn.tableFilter=function $$jq$$1$$$fn$tableFilter$($options$$4$$){return $goog$array$forEach$$(this,function($t$$){if($JSCompiler_alias_VOID$$===$jq$$1$$($t$$).data("tableFilter")||$jq$$1$$($t$$).data("tableFilter")===$JSCompiler_alias_NULL$$){var $plugin$$1$$=new $jq$$1$$.$tableFilter$($t$$,$options$$4$$);$jq$$1$$($t$$).data("tableFilter",$plugin$$1$$)}})};$jq$$1$$.fn.tableFilterApplyFilterValues=function $$jq$$1$$$fn$tableFilterApplyFilterValues$(){return $goog$array$forEach$$(this,
function($t$$1$$){$JSCompiler_alias_VOID$$!==$jq$$1$$($t$$1$$).data("tableFilter")&&$jq$$1$$($t$$1$$).data("tableFilter")!==$JSCompiler_alias_NULL$$&&$jq$$1$$($t$$1$$).data("tableFilter").refresh()})};$jq$$1$$.fn.tableFilterRefresh=function $$jq$$1$$$fn$tableFilterRefresh$(){return $goog$array$forEach$$(this,function($t$$2$$){$JSCompiler_alias_VOID$$!==$jq$$1$$($t$$2$$).data("tableFilter")&&$jq$$1$$($t$$2$$).data("tableFilter")!==$JSCompiler_alias_NULL$$&&$jq$$1$$($t$$2$$).data("tableFilter").reset($t$$2$$)})}}($jq$$);